DISPLAY DE 7 SEGMENTOS CON TECLADO

Dependencies:   mbed

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?

UserRevisionLine numberNew 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