DISPLAY DE 7 SEGMENTOS CON TECLADO
Dependencies: mbed
DISPLAY7SEG_4DIGITOS.CPPArrepapimain.cpp
- Committer:
- fcalzadas
- Date:
- 2019-10-02
- Revision:
- 5:9e6e87677625
File content as of revision 5:9e6e87677625:
/* Includes */ #include "mbed.h" /* Definiciones */ #define On 0 #define off 1 #define TRUE 1 #define FALSE 0 /* Configuración de Puertos */ Ticker Barrido; // Interrupción del Timer BusOut Anodos(PTA14, PTA15, PTA16, PTA17); // Salidas a los anodos del display: A4 A3 A2 A1 BusOut Catodos(PTE16, PTE17, PTE18, PTE19, PTE20, PTE21, PTE22, PTE23); // Salidas a los catodos: g f a b c d e p DigitalOut Green_Led (PTD5); // Led de Actividad del Programa DigitalOut Red_Led (PTE29); // Led de Actividad del Programa /* Variables Globales de Usuario */ uint16_t Rate=1000; // 1000us=1ms uint8_t cont_1ms=0; uint8_t cont_10ms=0; uint8_t cont_100ms=0; uint8_t cont_1s=0; uint16_t counter=500; /*Banderas*/ bool Flag1=FALSE; bool Flag2=FALSE; /*Variables*/ uint8_t i=0; uint8_t scan_rate =0; uint8_t Digitos[]={0x08, 0x04, 0x02, 0x01}; uint8_t Numeros[]={0,1,2,3,4,5,6,7,8,9,38, 36,38,//- 23,24,38,//no 22,14,38,//me 27,14,25,27,30,14,11,14,38,//repruebe 25,27,24,15,14,38,//profe 15,14,21,18,25,14,38,//felipe 25,13,40,38,//pd 22,14,38,//me 21,21,10,22,24,38,//llamo 36,38,//- 10,27,22,10,23,13,24,38,//ARMANDO 24,21,31,14,27,10,38, /*OLVERA*/ 38,38,36,38,38, /*ESPACIOS*/ 10,13,18,24,28,40,38, /*ADIOS*/ 38,38,38,38,38,38,38,38,38,38,38,38}; /*VECTOR PARA CORRIEMIENTO DE MENSAJES*/ uint8_t Copia[4]; uint8_t Cadena[]={0xCA, 0x8E, 0x67, 0xFA}; uint8_t Caracteres[]={ 0x81,/*0*/ 0xE7, /*1*/ 0x49, /*2*/ 0x43, /*3*/ 0x27, /*4*/ 0x13, /*5*/ 0x11, /*6*/ 0xC7, /*7*/ 0x01, /*8*/ 0x03, /*9*/ 0x05, /*10A*/ 0x31, /*11B*/ 0x99, /*12C*/ 0x61, /*13D*/ 0x19, /*14E*/ 0x1D, /*15F*/ 0x91, /*16G*/ 0x35, /*17H*/ 0xBD, /*18I*/ 0xB3, /*19J*/ 0x2D, /*20K*/ 0xB9, /*21L*/ 0x85, /*22M*/ 0x75, /*23N*/ 0x71, /*24O*/ 0x0D, /*25P*/ 0x07, /*26Q*/ 0x3D, /*27R*/ 0x13, /*28S*/ 0x39, /*29T*/ 0xF1, /*30U*/ 0xE1, /*31V*/ 0xA1, /*32W*/ 0x25, /*33X*/ 0x37, /*34Y*/ 0x49, /*35Z*/ 0x7F, /*36-*/ 0xCA, /*37||NO HECHO*/ 0xFF, /*38ESPACIO*/ 0x60, /*39 D con PUNTO */ 0xFE /*40 .*/ }; /* Rutinas de los Vectores de Interrupción */ void Barrido_OnInterrupt(void) // Rutina de Atención al Ticker { //El servicio a la interrupcion van aqui! cont_1ms++; scan_rate++; counter--; if(scan_rate==4){scan_rate=0;Flag1=TRUE;} if (cont_1ms>=10){cont_10ms++;cont_1ms=0;} if (cont_10ms>=10){cont_100ms++;cont_10ms=0;} if (cont_100ms>=10){cont_1s++;cont_100ms=0;} if (cont_1s>=10){cont_1s=0;} if (!counter){counter=300;Flag2=TRUE;} } /*============================================================================== | | | P R O G R A M A P R I N C I P A L | | | #=============================================================================*/ int main() { uint8_t u=0; Barrido.attach_us(&Barrido_OnInterrupt, Rate); // Inicialización de variables, puertos e interrupciones while (true) //El Programa principal está aquí !!! { if (Flag1==TRUE) { Anodos=Digitos[i];//A esta madre no se le mueve /*Esta madre es para correr un mensaje*/ Catodos=Caracteres[Copia[i]]; i++; Flag1=FALSE; } if(Flag2==TRUE) { for(uint8_t o=0;o<=3;o++) {Copia[o]=Numeros[o+u];} u++; Flag2=FALSE; } /*Esta madre es solo para un mensaje estatico*/ /* if (Flag1==TRUE){ Anodos=Digitos[i];//Esta madre no se le mueve Catodos=Caracteres[Numeros[i]]; i++; Flag1=FALSE; }*/ /* SECUENCIA LEDS DE PLACA */ if (i==4){i=0;Red_Led=!Red_Led;} if (Flag2==TRUE){Green_Led=!Green_Led;Flag2=FALSE;} } } // End Main