STM32F103C8_Barrido_Display Barrido de un Display de Ánodo Común

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* ###########################################################################
00002 **    Archivo        : main.c
00003 **    Proyecto       : STM32-F103C8_Plantilla
00004 **    Procesador     : STM32F103C8
00005 **    Herramienta    : Mbed
00006 **    Version        : Driver 01.01
00007 **    Compilador     : GNU C Compiler
00008 **    Fecha/Hora     : 14-07-2015, 11:48, # CodeGen: 0
00009 **    Descripción    :
00010 **         Este proyecto hace...
00011 **         This module contains user's application code.
00012 **   Componentes     : GPIO, Timer, etc .
00013 **   Configuraciones : Includes, Stacks y Drivers externos
00014 **   Autores         :
00015 **         ATEAM Development Group:
00016 **          - Antulio Morgado Valle
00017 **
00018 **   Versión        : Beta
00019 **   Revisión       : A
00020 **   Release        : 0
00021 **   Bugs & Fixes   :
00022 **   Date           : 20/10/2019
00023 **                    Added support for Led_RGB
00024 **                    22/09/2018 
00025 **                    Added LCD Menu, Beta version (with bugs)
00026 **
00027 ** ###########################################################################*/
00028 /*
00029 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00030 :  Includes
00031 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00032 */
00033 #include "mbed.h"
00034 #include "stm32f103c8t6.h"
00035 //#include "stm32f10x.h"
00036 #include "PinNames.h"
00037 //#include "SysClockConf.h"
00038 //#include "AnalogIn.h"
00039 //#include "Led_RGB.h"
00040 //#include "Serial.h"
00041 //#include "stdio.h"
00042 
00043 /*
00044 :...............................................................................
00045 :  Definiciones
00046 :...............................................................................
00047 */
00048 #define     on              0           // Estado para boton presionado
00049 #define     off             1           // Estado para boton sin presionar
00050 #define     hold            2           // Estado para boton mantenido
00051 #define     release         3           // Estado para boton liberado
00052 #define     TRUE            1
00053 #define     FALSE           0
00054 #define     Ticker_Period   1000        // Periodo de Tiempo del Ticker (us)
00055 #define     Rate_Period     2           // Tiempo de Encendido de los Digitos (ms)
00056 #define     Scan_Time       2           // Tiempo de Barrido del Display (ms)
00057 #define     Shift_Time      2           // Tiempo de corrimiento  (x Counter_Time)
00058 #define     Counter_Time    100         // Tiempo de counter (ms)
00059 #define     String_Size     20          // Tamaño del Buffer de Caracteres
00060 #define     Digit_Null      0xFF        // Valor para apagar los Segmentos 
00061 #define     Degree_Symbol   0x0F        // Valor para el Símbolo de Grados
00062 #define     DO2             0.0078125            // 128 Hz      (Escala Filosófica)
00063 #define     DOs2            0.0073740180703125   // 136 Hz
00064 #define     RE2             0.006960146234375    // 144 Hz
00065 #define     REs2            0.0065695032421875   // 152 Hz
00066 #define     MI2             0.006200785359375    // 161 Hz
00067 #define     FA2             0.005852762015625    // 171 Hz
00068 #define     FAs2            0.0055242717265625   // 181 Hz
00069 #define     SOL2            0.0052142181796875   // 192 Hz
00070 #define     SOLs2           0.0049215666015625   // 203 Hz
00071 #define     LA2             0.004645340296875    // 215 Hz
00072 #define     LAs2            0.004384617375       // 228 Hz
00073 #define     SI2             0.0041385277109375   // 242 Hz
00074 #define     DO3             0.00390625           // 256 Hz
00075 #define     DOs3            0.00368700903515625  // 271 Hz
00076 #define     RE3             0.0034800731171875   // 287 Hz
00077 #define     REs3            0.00328475162109375  // 304 Hz
00078 #define     MI3             0.0031003926796875   // 323 Hz
00079 #define     FA3             0.0029263810078125   // 342 Hz
00080 #define     FAs3            0.0055242717265625   // 362 Hz
00081 #define     SOL3            0.00260710908984375  // 384 Hz
00082 #define     SOLs3           0.00246078330078125  // 406 Hz
00083 #define     LA3             0.0023226701484375   // 431 Hz
00084 #define     LAs3            0.0021923086875      // 456 Hz
00085 #define     SI3             0.00206926385546875  // 483 Hz
00086 #define     DO4             0.00390625           // 512 Hz
00087 #define     DOs4            0.001843504517578125 // 542 Hz
00088 #define     RE4             0.00174003655859375  // 575 Hz
00089 #define     REs4            0.001642375810546875 // 609 Hz
00090 #define     MI4             0.00155019633984375  // 645 Hz
00091 #define     FA4             0.00146319050390625  // 683 Hz
00092 #define     FAs4            0.001381067931640625 // 724 Hz
00093 #define     SOL4            0.001303554544921875 // 767 Hz
00094 #define     SOLs4           0.001230391650390625 // 813 Hz
00095 #define     LA4             0.00116133507421875  // 861 Hz
00096 #define     LAs4            0.00109615434375     // 912 Hz
00097 #define     SI4             0.001034631927734375 // 966 Hz
00098 #define     DO5             0.001953125          // 1024 Hz
00099 /*
00100 +-------------------------------------------------------------------------------
00101 |  Configuración de Puertos 
00102 +-------------------------------------------------------------------------------
00103 */
00104 BusIn       Renglones (PA_8, PA_9, PA_10, PA_11);      // Definición para los Renglones
00105 
00106 BusOut      Anodos    (PB_6, PB_7, PB_8, PB_9);    // Definición para los Ánodos
00107 BusOut      Catodos   (PA_0, PA_1,PA_2,PA_3,PA_4,PA_5,PA_6,PA_7);    // Definición para los Cätodos
00108 DigitalOut  Green_Led (PC_11);            // Led de Actividad del Programa
00109 DigitalOut  Red_Led   (PB_11);           // Led de Actividad del Programa
00110 PwmOut      Buzzer    (PB_13);           // Salida del Buzzer
00111 Ticker      Barrido; 
00112 Serial      Terminal(USBTX, USBRX);           //activa la Terminal a traves del Puerto USB
00113 /*
00114 +-------------------------------------------------------------------------------
00115 |  Variables Globales de Usuario 
00116 +-------------------------------------------------------------------------------
00117 */
00118 uint16_t Rate=1000;
00119 //             Offset:  0    1    2    3    4    5    6    7    8    9   10    11  12   13   14   15   16   17   18   19   20   21  22    23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47  48  49  50  51 52  53  54  55  56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83  84   85   86
00120 //                      0    1    2    3    4    5    6    7    8    9    A     b   C    d    E    f    G    h    I    j    K    L   M     n    o    P    q    r    S    t    u    V    W    X    y    Z  null  a    e    +o  +/c   c    /c   +u   +n   [    ]    °     ^    ¬  + >   ^   / v   <    v    >                                            /_   -    _    =    /=   ==   ¬_   ii   #   /#     J   /J   -J   -/J  -J  -/J   |    ||   +    /+ null         !  "   #   $  %   &   '   (    )   *   +   -   .   /   :   ;   <   >   ?   @
00121 uint8_t  Segmentos[]={0x81,0xE7,0x49,0x43,0x27,0x13,0x11,0xC7,0x01,0x03,0x05,0x31,0x99,0x61,0x19,0x1D,0x91,0x35,0xBD,0xB3,0x2D,0xB9,0x85,0x75,0x71,0x0D,0x07,0x3D,0x13,0x39,0xF1,0xE1,0xA1,0x25,0x37,0x49,0xFF,0xBE,0xF6,0x0F,0x8F,0x4F,0x2F,0x1F,0x0F,0x13,0x01,0x7F,0x7D,0x7B,0x79,0x75,0x73,0x71,0x70,0x99,0xC3,0x3F,0x9F,0xCF,0x6F,0x7D,0xF9,0xF3,0xD7,0xF7,0xDF,0x7F,0xFB,0x5F,0x7B,0x5B,0xBD,0xF5,0x6D,0x37,0xE3,0xB9,0x9D,0x7C,0xE7,0xBD,0xCa,0x00};
00122 uint8_t  Digitos[]={0x08,0x04,0x02,0x01,0x00,0x0F};     // Millares, Centenas, Decenas, Unidades, Apagados, Encendidos
00123 uint8_t  Numeros[]={1,0,2,4};
00124 uint8_t  Cadena[]={33,0,21,10,36,14,28,18,22,36,35,10,12,10,29,14,23,12,24,36,36};
00125 uint8_t  Tecla[]={1,2,3,10,4,5,6,11,7,8,9,12,75,0,74,13};
00126 uint8_t  Boton[]={1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1};
00127 uint8_t  Boton_Ant[]={1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1};
00128 uint8_t  Edo_Boton[]={off,off,off,off, off,off,off,off, off,off,off,off, off,off,off,off};
00129 uint8_t  Renglon[]={0,0,0,0};
00130 uint8_t  punto_decimal=0;   //Posición del punto decimal: 0=sin punto, 1=unidades, 2=decenas, 3=centemas 4=millares,  
00131 uint8_t  cont_1ms;
00132 uint8_t  cont_10ms;
00133 uint8_t  cont_100ms;
00134 uint8_t  cont_1s;
00135 uint8_t  scan_rate=25;
00136 uint8_t  shift_rate=0;
00137 uint16_t counter=250;
00138 uint8_t  i=0;
00139 uint8_t  j=0;
00140 uint8_t  valor=0;
00141 uint8_t  nchar=0;
00142 bool     flag1=FALSE;
00143 bool     flag2=FALSE;
00144 bool     Blinking=FALSE;
00145 bool     mode=0;
00146 
00147 /*
00148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00149 |  Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
00150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00151 */
00152 void Barrido_OnInterrupt(void);  
00153 void Buzzer_SetPeriodMode(float Periodo,bool Estado);
00154 /*
00155 #===============================================================================
00156 |
00157 |               P R O G R A M A     P R I N C I P A L
00158 |
00159 #=============================================================================== 
00160 */
00161 int main()
00162 {
00163                         // Inicialización de variables, puertos e interrupciones
00164   Terminal.baud(115200);                    // Establece la velocidad de Transmisión de la Terminal
00165   Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Period);   // Periodo de Interrupción del Timer = 1ms (Ticker_Period=1000)
00166   Renglones.mode(PullUp);                   // Habilita los Pull-Up's de las entradas
00167     while (true) 
00168     {                   //El Programa principal está aquí !!!
00169         nchar=0;                            // Inicializa el contador de caracteres a desplegar   
00170         if (flag1==TRUE)
00171         {
00172             Buzzer_SetPeriodMode(LA4,FALSE);// Apaga el Buzzer            
00173             Buzzer=off;                     // Apaga el Buzzer
00174             Anodos=Digitos[4];              // Apaga todos los Digitos (Evita fantasmas)   
00175             Catodos=Segmentos[Numeros[i]];  // Escribe los segmentos del Dígito
00176             if (i==4-punto_decimal) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal 
00177             Anodos=Digitos[i];              // Activa el Dígito/columna                   
00178             valor=Renglones;                // Lee los renglones
00179             Renglon[i]=(valor>>i)&1;        // Obtiene el valor de cada bit del renglón 
00180             Boton[i+j]=Renglon[i];          // Llena el renglon-columna correspondiente
00181             if (Boton[i+j]==1)
00182             {
00183             Buzzer_SetPeriodMode(DO5,TRUE); // Selecciona Tono y lo habilita
00184             Buzzer=on;                      // Enciende el Buzzer
00185             }
00186             if ( Boton[i+j] &&  Boton_Ant[i+j]) 
00187             {
00188                 Edo_Boton[i+j]= off;        // El Botón está Apagado
00189             }   
00190             if (!Boton[i+j] &&  Boton_Ant[i+j]) 
00191             {
00192                 Edo_Boton[i+j]= on;         // El Botón está Encendido
00193             }  
00194             if (!Boton[i+j] && !Boton_Ant[i+j]) 
00195             {
00196                 Edo_Boton[i+j]= hold;       // El Botón está Presionado
00197             } 
00198             if ( Boton[i+j] && !Boton_Ant[i+j]) 
00199             {
00200                 Edo_Boton[i+j]= release;    // El Botón está Liberado
00201             } 
00202             Boton_Ant[i+j]=Boton[i+j];      // Actualiza el valor del botón anterior
00203             if (valor != 0xFF)
00204             {
00205                 Numeros[0]= Digit_Null;     // Millares
00206                 Numeros[1]= Digit_Null;     // Centenas
00207                 Numeros[2]= Digit_Null;     // Decenas
00208                 Numeros[3]= Tecla[i+j];     // Unidades
00209                 mode=2;
00210             }    
00211             i++;                            // Incrementa la columna
00212             if (i==4)                       // Se terminó de barrer las columnas?  
00213             {
00214                 i=0;                        // Reinicia las columnas
00215                 j=j+4;                      // Brinca al siguiente renglón
00216                 if (j==16) j=0;             // Se terminó de barrer los renglones? Reinicia los renglones 
00217                 
00218                 if (mode==1)                // Se va a desplegar un mensaje?
00219                 {
00220                     Numeros[i]=Cadena[i+nchar]; // Cargamos 4 caracteres en el buffer de despliege
00221                     if (nchar >= String_Size) nchar=0;   // Restablece el contador de caractres
00222                 }
00223                 if (mode==2)                // Se va a desplegar un el valor de la botonera
00224                 {
00225                     if ( Blinking==1) punto_decimal=3;  // Activa los puntos del Reloj
00226                     if ( Blinking==0) punto_decimal=0;  // Desactiva los puntos del Reloj
00227                     if (i==4-punto_decimal)
00228                     Catodos=Segmentos[Numeros[i]&0xFE];  // Enciende el punto decimal 
00229                     Terminal.printf("Tecla Oprimida: %c",valor);                   
00230                 }
00231                 Red_Led=!Red_Led;           // Parpadeo del Led Rojo
00232             }
00233                 
00234             flag1=FALSE;                    // Apaga la Bandera 1
00235         }    
00236         if (flag2==TRUE)                    // Está puesta la Bandera 2?
00237         {
00238             Green_Led=!Green_Led;           // Parpadeo del Led Verde
00239             flag2=FALSE;                    // Apaga la Bandera 2
00240         } 
00241     }
00242 }
00243 /* END main() */
00244 /*
00245 ................................................................................
00246 :  Rutinas de los Vectores de Interrupción
00247 ................................................................................
00248 */
00249 void Barrido_OnInterrupt(void)              // Rutina de Atención al Ticker
00250 {
00251     cont_1ms++;
00252     scan_rate++;
00253     counter--;
00254     if(!scan_rate)                  // Se terminó el tiempo de barrido 
00255     {
00256         scan_rate=Rate_Period;      // Restablece el tiempo de barrido? 
00257         flag1=TRUE;                 // Enciende la bandera para las rutinas de despliege y teclado 
00258     }        
00259     if (cont_1ms>=10)
00260     {
00261         cont_10ms++;
00262         cont_1ms=0;
00263     }      
00264     if (cont_10ms>=10)
00265     {
00266         cont_100ms++;
00267         cont_10ms=0;
00268     }    
00269     if (cont_100ms>=10)
00270     {
00271         cont_1s++;
00272         cont_100ms=0;
00273     }    
00274     if (cont_1s>=10) 
00275     {
00276         cont_1s=0;
00277     }
00278     if (!counter)                   // Se terminó de contar? 
00279     {
00280         counter=500;                // Restablece el contador
00281         Blinking= !Blinking;        // Parpadeo
00282         shift_rate --;              // Decrementa el tiempo del corrimiento
00283         flag2=TRUE;                 // Prende la bandera para realizar un desplazamiento         
00284     }
00285     if (!shift_rate)                // Se terminó el tiempo de corrimiento? 
00286     {    
00287         mode=!mode;                 // Tiempo entre desplazamientos del mensaje
00288         shift_rate = Shift_Time;    // Restablece el tiempo de los corrimientos
00289     }
00290 }   
00291 /* END Events */
00292 
00293 /*
00294 ________________________________________________________________________________
00295 |
00296 |  Funciones Prototipo
00297 |_______________________________________________________________________________
00298 */
00299                 // Las Funciones Prototipo van aquí !
00300 void Buzzer_SetPeriodMode(float Periodo,bool Estado)
00301 {
00302     Buzzer.period(Periodo);
00303     Buzzer.pulsewidth(Periodo/2);
00304     if (Estado==1)Buzzer=0.5; 
00305     if (Estado==0)Buzzer=0.0; 
00306 }
00307                 
00308 /* END Routines */ 
00309 
00310 /* END program */ 
00311 /*+------------------------------------------------------------------------------------
00312 *+ Descripción del Display de 7 Segmentos de Anodos Comunes en modo multiplexado
00313 *+-------------------------------------------------------------------------------------
00314 *+                            13 12 11 10  9  8
00315 *+                             |  |  |  |  |  |                         
00316 *+                             |  |  |  |  |  |  
00317 *+               --------------------------------------------------
00318 *+              |               A  a  f  A  A  b                   |
00319 *+              |               4        3  2                      |
00320 *+              |  ______________________________________________  |             
00321 *+              | |       ____      ____      _____     _____    | |
00322 *+              | |     /     /   /     /    /     /   /     /   | |
00323 *+              | |    /____ /   /____ / .  /____ /   /____ /    | |
00324 *+              | |   /     /   /     / .  /     /   /     /     | |
00325 *+              | |  /____ /.  /_____/ .  /____ /.  /____ /.     | |
00326 *+              | |                                              | |
00327 *+              | |______________________________________________| |
00328 *+              |                                                  |
00329 *+              |                              A                   |
00330 *+              |               e  d  p  c  g  1                   |
00331 *+               --------------------------------------------------
00332 *+                              |  |  |  |  |  |  |                       
00333 *+                              |  |  |  |  |  |  |
00334 *+                              1  2  3  4  5  6  7                                  
00335 *+
00336 *+                              Display: HS410561K-D30
00337 *+
00338 *+
00339 *+                            13 12 11 10  9  8
00340 *+                             |  |  |  |  |  |                         
00341 *+                             |  |  |  |  |  |  
00342 *+               --------------------------------------------------
00343 *+              |               A  g  f  p  a  b                   |
00344 *+              |               4                                  |
00345 *+              |  ______________________________________________  |             
00346 *+              | |       ____      ____      _____     _____    | |
00347 *+              | |     /     /   /     /    /     /   /     /   | |
00348 *+              | |    /____ /   /____ / .  /____ /   /____ /    | |
00349 *+              | |   /     /   /     / .  /     /   /     /     | |
00350 *+              | |  /____ /.  /_____/    /____ /.  /____ /.     | |
00351 *+              | |                                              | |
00352 *+              | |______________________________________________| |
00353 *+              |                                                  |
00354 *+              |                  A  A        A                   |
00355 *+              |               e  3  2  c  d  1                   |
00356 *+               --------------------------------------------------
00357 *+                              |  |  |  |  |  |  |                       
00358 *+                              |  |  |  |  |  |  |
00359 *+                              1  2  3  4  5  6  7                                  
00360 *+
00361 *+                               Display: BQ-M544RE
00362 *+
00363 *+
00364 *+                            16 15 14 13    11 
00365 *+                             |  |  |  |    |                           
00366 *+                             |  |  |  |    |    
00367 *+               --------------------------------------------------
00368 *+              |              b  g  a  c    f                     |
00369 *+              |                                                  |
00370 *+              |  ______________________________________________  |             
00371 *+              | |       ____      ____      _____  .  _____    | |
00372 *+              | |     /     /   /     /    /     /   /     /   | |
00373 *+              | |    /____ /   /____ / .  /____ /   /____ /    | |
00374 *+              | |   /     /   /     / .  /     /   /     /     | |
00375 *+              | |  /____ /.  /_____/ .  /____ /.  /____ /.     | |
00376 *+              | |                                              | |
00377 *+              | |______________________________________________| |
00378 *+              |                                                  |
00379 *+              |               A  A     A     A     A             |
00380 *+              |               4  3  3  p  e  2  p  1             |
00381 *+               --------------------------------------------------
00382 *+                              |  |  |  |  |  |  |  |                      
00383 *+                              |  |  |  |  |  |  |  |
00384 *+                              1  2  3  4  5  6  7  8                                  
00385 *+
00386 *+                              Display: KEM-3942BSR
00387 *+
00388 +*
00389 *+
00390 *+                            12 11 10  9  8  7
00391 *+                             |  |  |  |  |  |                         
00392 *+                             |  |  |  |  |  |  
00393 *+               --------------------------------------------------
00394 *+              |              A  a  f  A  A  b                    |
00395 *+              |              4        3  2                       |
00396 *+              |  ______________________________________________  |             
00397 *+              | |       ____      ____      _____     _____    | |
00398 *+              | |     /     /   /     /    /     /   /     /   | |
00399 *+              | |    /____ /   /____ / .  /____ /   /____ /    | |
00400 *+              | |   /     /   /     / .  /     /   /     /     | |
00401 *+              | |  /____ /.  /_____/ .  /____ /.  /____ /.     | |
00402 *+              | |                                              | |
00403 *+              | |______________________________________________| |
00404 *+              |                                                  |
00405 *+              |                              A                   |
00406 *+              |               e  d  p  c  g  1                   |
00407 *+               --------------------------------------------------
00408 *+                              |  |  |  |  |  |                        
00409 *+                              |  |  |  |  |  |  
00410 *+                              1  2  3  4  5  6                                    
00411 *+
00412 *+                              Display: FYQ-2841BH
00413 *+
00414 *+
00415 *+                      PTA17 PTA16 PTA15 PTA14 
00416 *+                        A4    A3    A2    A1
00417 *+                       Mill  Cent  Dec   Uni
00418 *+  
00419 *+     FRDM_KL25Z       PTE23 PTE22 PTE21 PTE20   PTE5  PTE4  PTE3  PTE2     #    Hex
00420 *+     FRDM-KL46Z       PTE23 PTE22 PTE21 PTE20   PTE19 PTE18 PTE17 PTE16    #    Hex        Offset
00421 *+            a
00422 *+         ______         g     f     a     b       c     d     e     p       
00423 *+        /     /         1     0     0     0       1     0     0     0      0    0x81      0
00424 *+     f /  g  / b        1     1     0     1       1     1     1     0      1    0xE7      1
00425 *+      /_____/           1     0     1     1       0     1     0     0      2    0x49      2
00426 *+     /     /            1     0     0     1       0     1     0     0      3    0x43      3
00427 *+  e /     / c           1     1     0     1       0     0     1     0      4    0x27      4
00428 *+   /_____/ .            1     0     0     1       0     0     0     1      5    0x13      5
00429 *+      d    p            1     0     0     0       0     0     0     1      6    0x11      6
00430 *+                        1     1     0     1       1     1     0     0      7    0xC7      7
00431 *+                        1     0     0     0       0     0     0     0      8    0x01      8
00432 *+                        1     0     0     1       0     0     0     0      9    0x03      9
00433 *+                        1     1     0     0       0     0     0     0      A    0x05      10
00434 *+                        1     0     0     0       0     0     1     1      b    0x31      11
00435 *+                        1     0     1     0       1     0     0     1      C    0x99      12
00436 *+                        1     0     0     0       0     1     1     0      d    0x61      13
00437 *+                        1     0     1     0       0     0     0     1      E    0x19      14
00438 *+                        1     1     1     0       0     0     0     1      f    0x1D      15
00439 *+                        1     0     0     0       1     0     0     1      G    0x91      16
00440 *+                        1     1     0     0       0     0     1     1      h    0x35      17
00441 *+                        1     1     0     1       1     1     1     1      i    0xBD      18
00442 *+                        1     0     0     0       1     1     1     0      J    0xB3      19
00443 *+                        1     0     1     0       0     0     1     0      k    0x2D      20
00444 *+                        1     0     1     0       1     0     1     1      L    0xB9      21
00445 *+                        1     1     0     0       1     0     0     0      M    0x85      22
00446 *+                        1     1     0     0       0     1     1     1      n    0x75      23
00447 *+                        1     0     0     0       0     1     1     1      o    0x71      24
00448 *+                        1     1     1     0       0     0     0     0      P    0x0D      25
00449 *+                        1     1     0     1       0     0     0     0      q    0x07      26
00450 *+                        1     1     1     0       0     1     1     1      r    0x3D      27
00451 *+                        1     0     0     1       0     0     0     1      s    0x13      28
00452 *+                        1     0     1     0       0     0     1     1      t    0x39      29
00453 *+                        1     0     0     0       1     1     1     1      u    0xF1      30
00454 *+                        1     0     0     0       1     0     1     1      V    0xE1      31
00455 *+                        1     0     0     0       1     0     1     0      w    0xA1      32
00456 *+                        1     1     0     0       1     0     1     0      X    0x25      33
00457 *+                        1     0     0     1       0     0     1     0      y    0x37      34
00458 *+                        1     0     1     0       1     1     0     0      Z    0x49      35
00459 *+                        1     0     0     0       0     1     0     0      a    0x84      36
00460 *+                        1     0     1     0       0     0     0     0      e    0xA0      37
00461 *+                        1     1     1     1       0     0     0     1    + c    0xF1      38
00462 *+                        1     1     1     1       0     1     0     0    +/c    0xF4      39
00463 *+                        1     0     1     0       0     1     1     1      c    0xA7      40
00464 *+                        1     0     0     1       0     1     1     1     /c    0x97      41
00465 *+                        1     1     1     1       0     0     1     0    + u    0xF2      42
00466 *+                        1     1     1     1       1     0     0     0    + n    0xF8      43
00467 *+                        1     0     1     0       1     0     0     1      [    0xA9      44
00468 *+                        1     0     0     1       1     1     0     0      ]    0x9C      45
00469 *+                        1     1     1     1       0     0     0     0      °    0xF0      46
00470 *+                        1     1     1     1       1     1     0     0      ¬    0xFC      47
00471 *+                        1     1     1     1       0     1     1     0    + >    0xF6      48
00472 *+                        1     1     1     0       0     1     1     1     ^     0xE7      49
00473 *+                        1     0     1     0       1     1     1     1    / <    0xAF      50
00474 *+                        1     0     0     1       1     1     1     1    / v    0x9F      51
00475 *+                        1     1     0     1       0     1     1     1      >    0xD7      52
00476 *+                        1     1     1     1       0     0     1     1      v    0xF3      53
00477 *+                        1     1     1     1       1     0     0     1      <    0xF9      54
00478 *+                        1     1     1     1       1     1     0     1    / _    0xBF      55
00479 *+                        1     1     1     1       0     1     1     1      -    0xF7      56
00480 *+                        1     0     1     1       1     1     1     1      _    0xFD      57
00481 *+                        1     1     1     1       0     1     0     1      =    0xF5      58
00482 *+                        1     0     1     1       0     1     1     1    / =    0xB7      59
00483 *+                        1     0     1     1       0     1     0     1     ==    0xB5      60
00484 *+                        1     0     1     1       1     1     0     1     _¬    0xBD      61
00485 *+                        1     1     0     0       1     1     1     1     ii    0xCF      62
00486 *+                        1     1     1     1       1     0     1     0      #    0xFA      63
00487 *+                        1     0     0     1       1     1     1     0      j    0x9E      64
00488 *+                        1     1     0     1       1     1     0     0     /j    0xDC      65
00489 *+                        1     1     1     0       1     0     0     1    - j    0xE9      66
00490 *+                        1     0     1     0       1     0     1     1    -/j    0xAB      67
00491 *+                        1     0     0     0       1     1     1     0    - J    0x8E      68
00492 *+                        1     1     0     1       1     0     0     0    -/J    0xD8      69
00493 *+                        1     1     1     0       1     0     1     1     |     0xEB      70
00494 *+                        1     1     0     0       1     0     1     0     ||    0xCA      71
00495 *+                        1     1     0     1       0     1     1     0      +    0xD6      72
00496 *+                        1     1     1     0       0     0     1     1     /+    0xE3      73
00497 *+                        1     0     0     1       1     0     1     1  espacio  0xFF      74
00498 *+
00499 *+ Nota: Cada dígito se activa al hacer la señal A correspondiente en "alto"
00500 *+       y enviar las señales de los segmentos que se desean encender en "bajo" 
00501 *+
00502 *+---------------------------------------------------------------------------------------- */
00503 /*........................................................................................
00504 :
00505 :                   TECLADO MATRICIAL DE 4X4
00506 :
00507 :                  C1       C2        C3        C4
00508 :                  |         |         |        |
00509 :                  |         |         |        |
00510 :                  | 1       |  2      | 3      | F1
00511 :            R1 __/ ________/ ________/ ________/
00512 :                  |         |         |         |
00513 :                  | 4       |  5      | 6      | F2
00514 :            R2 __/ ________/ ________/ ________/
00515 :                  |         |         |         |
00516 :                  | 7       |  8      | 9      | F3
00517 :            R3 __/ ________/ ________/ ________/
00518 :                  |         |         |         |
00519 :                  | *       |  0      | #      | F4
00520 :            R4 __/ ________/ ________/ ________/
00521 :
00522 :
00523 :            Función: REN1 REN2 REN3 REN4 COL1 COL2 COL3 COL4
00524 :                Pin:  1    2    3    4    5    6    7    8
00525 .......................................................................................... 
00526 *+----------------------------------------------------------------------------*
00527 *+
00528 *+   Powered by
00529 *+
00530 *+          T H E     A N T U L I U ' S   T E A M   R&D  Unltd 
00531 *+
00532 *+  Research, Development, Systems, Equipment, Support & Spare Parts.
00533 *+  (C) Copyright 1989-2019, All Rights Reserved            
00534 *+
00535 *+  Welcome to The Beaners Proyect Community!                   
00536 *+----------------------------------------------------------------------------*/
00537 /* END Mbed */
00538 /* END Mbed */