DISPLAY DE 7 SEGMENTOS CON TECLADO
Dependencies: mbed
DISPLAY7SEG_4DIGITOS.CPPArrepapimain.cpp@5:9e6e87677625, 2019-10-02 (annotated)
- Committer:
- fcalzadas
- Date:
- Wed Oct 02 20:19:55 2019 +0000
- Revision:
- 5:9e6e87677625
DISPLAY DE 7 SEGMENTOS CON TECLADO
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fcalzadas | 5:9e6e87677625 | 1 | /* Includes */ |
fcalzadas | 5:9e6e87677625 | 2 | #include "mbed.h" |
fcalzadas | 5:9e6e87677625 | 3 | /* Definiciones */ |
fcalzadas | 5:9e6e87677625 | 4 | #define On 0 |
fcalzadas | 5:9e6e87677625 | 5 | #define off 1 |
fcalzadas | 5:9e6e87677625 | 6 | #define TRUE 1 |
fcalzadas | 5:9e6e87677625 | 7 | #define FALSE 0 |
fcalzadas | 5:9e6e87677625 | 8 | /* Configuración de Puertos */ |
fcalzadas | 5:9e6e87677625 | 9 | Ticker Barrido; // Interrupción del Timer |
fcalzadas | 5:9e6e87677625 | 10 | BusOut Anodos(PTA14, PTA15, PTA16, PTA17); // Salidas a los anodos del display: A4 A3 A2 A1 |
fcalzadas | 5:9e6e87677625 | 11 | BusOut Catodos(PTE16, PTE17, PTE18, PTE19, PTE20, PTE21, PTE22, PTE23); // Salidas a los catodos: g f a b c d e p |
fcalzadas | 5:9e6e87677625 | 12 | DigitalOut Green_Led (PTD5); // Led de Actividad del Programa |
fcalzadas | 5:9e6e87677625 | 13 | DigitalOut Red_Led (PTE29); // Led de Actividad del Programa |
fcalzadas | 5:9e6e87677625 | 14 | /* Variables Globales de Usuario */ |
fcalzadas | 5:9e6e87677625 | 15 | uint16_t Rate=1000; // 1000us=1ms |
fcalzadas | 5:9e6e87677625 | 16 | uint8_t cont_1ms=0; |
fcalzadas | 5:9e6e87677625 | 17 | uint8_t cont_10ms=0; |
fcalzadas | 5:9e6e87677625 | 18 | uint8_t cont_100ms=0; |
fcalzadas | 5:9e6e87677625 | 19 | uint8_t cont_1s=0; |
fcalzadas | 5:9e6e87677625 | 20 | uint16_t counter=500; |
fcalzadas | 5:9e6e87677625 | 21 | /*Banderas*/ |
fcalzadas | 5:9e6e87677625 | 22 | bool Flag1=FALSE; |
fcalzadas | 5:9e6e87677625 | 23 | bool Flag2=FALSE; |
fcalzadas | 5:9e6e87677625 | 24 | /*Variables*/ |
fcalzadas | 5:9e6e87677625 | 25 | uint8_t i=0; |
fcalzadas | 5:9e6e87677625 | 26 | uint8_t scan_rate =0; |
fcalzadas | 5:9e6e87677625 | 27 | uint8_t Digitos[]={0x08, 0x04, 0x02, 0x01}; |
fcalzadas | 5:9e6e87677625 | 28 | uint8_t Numeros[]={0,1,2,3,4,5,6,7,8,9,38, |
fcalzadas | 5:9e6e87677625 | 29 | 36,38,//- |
fcalzadas | 5:9e6e87677625 | 30 | 23,24,38,//no |
fcalzadas | 5:9e6e87677625 | 31 | 22,14,38,//me |
fcalzadas | 5:9e6e87677625 | 32 | 27,14,25,27,30,14,11,14,38,//repruebe |
fcalzadas | 5:9e6e87677625 | 33 | 25,27,24,15,14,38,//profe |
fcalzadas | 5:9e6e87677625 | 34 | 15,14,21,18,25,14,38,//felipe |
fcalzadas | 5:9e6e87677625 | 35 | 25,13,40,38,//pd |
fcalzadas | 5:9e6e87677625 | 36 | 22,14,38,//me |
fcalzadas | 5:9e6e87677625 | 37 | 21,21,10,22,24,38,//llamo |
fcalzadas | 5:9e6e87677625 | 38 | 36,38,//- |
fcalzadas | 5:9e6e87677625 | 39 | 10,27,22,10,23,13,24,38,//ARMANDO |
fcalzadas | 5:9e6e87677625 | 40 | 24,21,31,14,27,10,38, /*OLVERA*/ |
fcalzadas | 5:9e6e87677625 | 41 | 38,38,36,38,38, /*ESPACIOS*/ |
fcalzadas | 5:9e6e87677625 | 42 | 10,13,18,24,28,40,38, /*ADIOS*/ |
fcalzadas | 5:9e6e87677625 | 43 | 38,38,38,38,38,38,38,38,38,38,38,38}; |
fcalzadas | 5:9e6e87677625 | 44 | /*VECTOR PARA CORRIEMIENTO DE MENSAJES*/ |
fcalzadas | 5:9e6e87677625 | 45 | uint8_t Copia[4]; |
fcalzadas | 5:9e6e87677625 | 46 | uint8_t Cadena[]={0xCA, 0x8E, 0x67, 0xFA}; |
fcalzadas | 5:9e6e87677625 | 47 | uint8_t Caracteres[]={ |
fcalzadas | 5:9e6e87677625 | 48 | 0x81,/*0*/ |
fcalzadas | 5:9e6e87677625 | 49 | 0xE7, /*1*/ |
fcalzadas | 5:9e6e87677625 | 50 | 0x49, /*2*/ |
fcalzadas | 5:9e6e87677625 | 51 | 0x43, /*3*/ |
fcalzadas | 5:9e6e87677625 | 52 | 0x27, /*4*/ |
fcalzadas | 5:9e6e87677625 | 53 | 0x13, /*5*/ |
fcalzadas | 5:9e6e87677625 | 54 | 0x11, /*6*/ |
fcalzadas | 5:9e6e87677625 | 55 | 0xC7, /*7*/ |
fcalzadas | 5:9e6e87677625 | 56 | 0x01, /*8*/ |
fcalzadas | 5:9e6e87677625 | 57 | 0x03, /*9*/ |
fcalzadas | 5:9e6e87677625 | 58 | 0x05, /*10A*/ |
fcalzadas | 5:9e6e87677625 | 59 | 0x31, /*11B*/ |
fcalzadas | 5:9e6e87677625 | 60 | 0x99, /*12C*/ |
fcalzadas | 5:9e6e87677625 | 61 | 0x61, /*13D*/ |
fcalzadas | 5:9e6e87677625 | 62 | 0x19, /*14E*/ |
fcalzadas | 5:9e6e87677625 | 63 | 0x1D, /*15F*/ |
fcalzadas | 5:9e6e87677625 | 64 | 0x91, /*16G*/ |
fcalzadas | 5:9e6e87677625 | 65 | 0x35, /*17H*/ |
fcalzadas | 5:9e6e87677625 | 66 | 0xBD, /*18I*/ |
fcalzadas | 5:9e6e87677625 | 67 | 0xB3, /*19J*/ |
fcalzadas | 5:9e6e87677625 | 68 | 0x2D, /*20K*/ |
fcalzadas | 5:9e6e87677625 | 69 | 0xB9, /*21L*/ |
fcalzadas | 5:9e6e87677625 | 70 | 0x85, /*22M*/ |
fcalzadas | 5:9e6e87677625 | 71 | 0x75, /*23N*/ |
fcalzadas | 5:9e6e87677625 | 72 | 0x71, /*24O*/ |
fcalzadas | 5:9e6e87677625 | 73 | 0x0D, /*25P*/ |
fcalzadas | 5:9e6e87677625 | 74 | 0x07, /*26Q*/ |
fcalzadas | 5:9e6e87677625 | 75 | 0x3D, /*27R*/ |
fcalzadas | 5:9e6e87677625 | 76 | 0x13, /*28S*/ |
fcalzadas | 5:9e6e87677625 | 77 | 0x39, /*29T*/ |
fcalzadas | 5:9e6e87677625 | 78 | 0xF1, /*30U*/ |
fcalzadas | 5:9e6e87677625 | 79 | 0xE1, /*31V*/ |
fcalzadas | 5:9e6e87677625 | 80 | 0xA1, /*32W*/ |
fcalzadas | 5:9e6e87677625 | 81 | 0x25, /*33X*/ |
fcalzadas | 5:9e6e87677625 | 82 | 0x37, /*34Y*/ |
fcalzadas | 5:9e6e87677625 | 83 | 0x49, /*35Z*/ |
fcalzadas | 5:9e6e87677625 | 84 | 0x7F, /*36-*/ |
fcalzadas | 5:9e6e87677625 | 85 | 0xCA, /*37||NO HECHO*/ |
fcalzadas | 5:9e6e87677625 | 86 | 0xFF, /*38ESPACIO*/ |
fcalzadas | 5:9e6e87677625 | 87 | 0x60, /*39 D con PUNTO */ |
fcalzadas | 5:9e6e87677625 | 88 | 0xFE /*40 .*/ |
fcalzadas | 5:9e6e87677625 | 89 | }; |
fcalzadas | 5:9e6e87677625 | 90 | /* Rutinas de los Vectores de Interrupción */ |
fcalzadas | 5:9e6e87677625 | 91 | void Barrido_OnInterrupt(void) // Rutina de Atención al Ticker |
fcalzadas | 5:9e6e87677625 | 92 | { //El servicio a la interrupcion van aqui! |
fcalzadas | 5:9e6e87677625 | 93 | cont_1ms++; |
fcalzadas | 5:9e6e87677625 | 94 | scan_rate++; |
fcalzadas | 5:9e6e87677625 | 95 | counter--; |
fcalzadas | 5:9e6e87677625 | 96 | if(scan_rate==4){scan_rate=0;Flag1=TRUE;} |
fcalzadas | 5:9e6e87677625 | 97 | if (cont_1ms>=10){cont_10ms++;cont_1ms=0;} |
fcalzadas | 5:9e6e87677625 | 98 | if (cont_10ms>=10){cont_100ms++;cont_10ms=0;} |
fcalzadas | 5:9e6e87677625 | 99 | if (cont_100ms>=10){cont_1s++;cont_100ms=0;} |
fcalzadas | 5:9e6e87677625 | 100 | if (cont_1s>=10){cont_1s=0;} |
fcalzadas | 5:9e6e87677625 | 101 | if (!counter){counter=300;Flag2=TRUE;} |
fcalzadas | 5:9e6e87677625 | 102 | } |
fcalzadas | 5:9e6e87677625 | 103 | |
fcalzadas | 5:9e6e87677625 | 104 | /*============================================================================== |
fcalzadas | 5:9e6e87677625 | 105 | | | |
fcalzadas | 5:9e6e87677625 | 106 | | P R O G R A M A P R I N C I P A L | |
fcalzadas | 5:9e6e87677625 | 107 | | | |
fcalzadas | 5:9e6e87677625 | 108 | #=============================================================================*/ |
fcalzadas | 5:9e6e87677625 | 109 | int main() |
fcalzadas | 5:9e6e87677625 | 110 | { uint8_t u=0; |
fcalzadas | 5:9e6e87677625 | 111 | Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Inicialización de variables, puertos e interrupciones |
fcalzadas | 5:9e6e87677625 | 112 | while (true) //El Programa principal está aquí !!! |
fcalzadas | 5:9e6e87677625 | 113 | { |
fcalzadas | 5:9e6e87677625 | 114 | if (Flag1==TRUE) |
fcalzadas | 5:9e6e87677625 | 115 | { |
fcalzadas | 5:9e6e87677625 | 116 | Anodos=Digitos[i];//A esta madre no se le mueve |
fcalzadas | 5:9e6e87677625 | 117 | /*Esta madre es para correr un mensaje*/ |
fcalzadas | 5:9e6e87677625 | 118 | Catodos=Caracteres[Copia[i]]; |
fcalzadas | 5:9e6e87677625 | 119 | i++; |
fcalzadas | 5:9e6e87677625 | 120 | Flag1=FALSE; |
fcalzadas | 5:9e6e87677625 | 121 | } |
fcalzadas | 5:9e6e87677625 | 122 | if(Flag2==TRUE) |
fcalzadas | 5:9e6e87677625 | 123 | { |
fcalzadas | 5:9e6e87677625 | 124 | for(uint8_t o=0;o<=3;o++) |
fcalzadas | 5:9e6e87677625 | 125 | {Copia[o]=Numeros[o+u];} |
fcalzadas | 5:9e6e87677625 | 126 | u++; |
fcalzadas | 5:9e6e87677625 | 127 | Flag2=FALSE; |
fcalzadas | 5:9e6e87677625 | 128 | } |
fcalzadas | 5:9e6e87677625 | 129 | /*Esta madre es solo para un mensaje estatico*/ |
fcalzadas | 5:9e6e87677625 | 130 | /* |
fcalzadas | 5:9e6e87677625 | 131 | |
fcalzadas | 5:9e6e87677625 | 132 | if (Flag1==TRUE){ |
fcalzadas | 5:9e6e87677625 | 133 | Anodos=Digitos[i];//Esta madre no se le mueve |
fcalzadas | 5:9e6e87677625 | 134 | Catodos=Caracteres[Numeros[i]]; |
fcalzadas | 5:9e6e87677625 | 135 | i++; |
fcalzadas | 5:9e6e87677625 | 136 | Flag1=FALSE; |
fcalzadas | 5:9e6e87677625 | 137 | }*/ |
fcalzadas | 5:9e6e87677625 | 138 | |
fcalzadas | 5:9e6e87677625 | 139 | /* SECUENCIA LEDS DE PLACA */ |
fcalzadas | 5:9e6e87677625 | 140 | if (i==4){i=0;Red_Led=!Red_Led;} |
fcalzadas | 5:9e6e87677625 | 141 | if (Flag2==TRUE){Green_Led=!Green_Led;Flag2=FALSE;} |
fcalzadas | 5:9e6e87677625 | 142 | } |
fcalzadas | 5:9e6e87677625 | 143 | } // End Main |