Electgpl

PIC - Desplazamiento con 4094

Sep 7th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.91 KB | None | 0 0
  1. #define LARGO 65//Longitud de la tabla
  2. #define DATA pin_a0
  3. #define CLOCK pin_a1
  4. #define STROBE pin_a2
  5. void escribir_4094(int16 caracter);
  6. signed int16 bitMask[16]={0b0111111111111111,
  7.                           0b1011111111111111,
  8.                           0b1101111111111111,
  9.                           0b1110111111111111,
  10.                           0b1111011111111111,
  11.                           0b1111101111111111,
  12.                           0b1111110111111111,
  13.                           0b1111111011111111,
  14.                           0b1111111101111111,
  15.                           0b1111111110111111,
  16.                           0b1111111111011111,
  17.                           0b1111111111101111,
  18.                           0b1111111111110111,
  19.                           0b1111111111111011,
  20.                           0b1111111111111101,
  21.                           0b1111111111111110};
  22. int const tabla[LARGO+16]={0b00000000, //Espacio
  23.                            0b00000000, //Espacio
  24.                            0b00000000, //Espacio
  25.                            0b00000000, //Espacio
  26.                            0b00000000, //Espacio
  27.                            0b00000000, //Espacio
  28.                            0b00000000, //Espacio
  29.                            0b00000000, //Espacio
  30.                            0b00000000, //Espacio
  31.                            0b00000000, //Espacio
  32.                            0b00000000, //Espacio
  33.                            0b00000000, //Espacio
  34.                            0b00000000, //Espacio
  35.                            0b00000000, //Espacio
  36.                            0b00000000, //Espacio
  37.                            0b00000000, //Espacio
  38.                            0b00000000, //Espacio
  39.                            0b00000000, //Espacio
  40.                            0b00000000, //Espacio
  41.                            0b00000000, //Espacio
  42.                            0b10000001, //Dato de tabla I
  43.                            0b10000001,
  44.                            0b11111111,
  45.                            0b10000001,
  46.                            0b10000001,
  47.                            0b00000000, //Espacio
  48.                            0b11111111, //Dato de tabla P
  49.                            0b00010001,
  50.                            0b00010001,
  51.                            0b00010001,
  52.                            0b00001110,
  53.                            0b00000000, //Espacio
  54.                            0b11111111, //Dato de tabla E
  55.                            0b10001001,
  56.                            0b10001001,
  57.                            0b10001001,
  58.                            0b10000001
  59.                            0b00000000, //Espacio
  60.                            0b00000001, //Dato de tabla T
  61.                            0b00000001,
  62.                            0b11111111,
  63.                            0b00000001,
  64.                            0b00000001,
  65.                            0b00000000, //Espacio
  66.                            0b00000000, //Espacio
  67.                            0b00000000, //Espacio
  68.                            0b11100001, //Dato de Tabla 2
  69.                            0b10010001,
  70.                            0b10010001,
  71.                            0b10010001,
  72.                            0b10001110,
  73.                            0b00000000, //Espacio
  74.                            0b10001111, //Dato de tabla 5
  75.                            0b10001001,
  76.                            0b10001001,
  77.                            0b10001001,
  78.                            0b01110001,
  79.                            0b00000000, //Espacio
  80.                            0b01111110, //Dato de Tabla 0
  81.                            0b10010001,
  82.                            0b10001001,
  83.                            0b10000101,
  84.                            0b01111110,
  85.                            0b00000000, //Espacio
  86.                            0b00000000, //Espacio
  87.                            0b00000000, //Espacio
  88.                            0b00000000, //Espacio
  89.                            0b00000000, //Espacio
  90. };
  91. void main(){
  92.    set_tris_b (0x00);
  93.    set_tris_a(0x00);
  94.    int i,j,k; //Variables contadores
  95.    while(TRUE){ //Ciclo infinito
  96.       for(i=0;i<LARGO;i++){ //Recorrido de tabla
  97.          for(k=0;k<30;k++){ //Refresco de matriz
  98.             for(j=0;j<16;j++){//Barrido de Columnas
  99.                escribir_4094(j); //Columnas ponderadas
  100.                output_b(tabla[j+i]); //Desplazamiento de tabla
  101.                delay_us(1); //Demora de multiplexado
  102.             }
  103.          }
  104.       }
  105.    }
  106. }
  107. void escribir_4094(int16 caracter){ //Subrutina que carga los Datos en el CD4094
  108.    int contador_8;
  109.    output_low(DATA);
  110.    output_low(STROBE);
  111.    output_low(CLOCK);
  112.    for(contador_8=0;contador_8<16;contador_8++){
  113.       output_bit(DATA,bit_test(bitMask[caracter],contador_8));
  114.       output_high(CLOCK);
  115.       delay_cycles(1);
  116.       output_low(CLOCK);
  117.    }
  118.    output_high(STROBE);
  119.    delay_cycles(1);
  120.    output_low(STROBE);
  121. }
Advertisement
Add Comment
Please, Sign In to add comment