DISPLAY DE 7 SEGMENTOS CON TECLADO
Dependencies: mbed
Revision 5:9e6e87677625, committed 2019-10-02
- Comitter:
- fcalzadas
- Date:
- Wed Oct 02 20:19:55 2019 +0000
- Parent:
- 4:2c686609c21d
- Commit message:
- DISPLAY DE 7 SEGMENTOS CON TECLADO
Changed in this revision
Arrepapimain.cpp | Show diff for this revision Revisions of this file |
DISPLAY7SEG_4DIGITOS.CPPArrepapimain.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/Arrepapimain.cpp Thu May 02 18:43:32 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/* ############################################################ -# - Archivo: Arrepapimain.c # -# - Proyecto: FRDM-KL46Z_Plantilla # -# - Procesador: MKL46Z256VLL4 # -# - Herramienta Mbed # -# - Version: Driver 01.01 # -# - Compilador: GNU C Compiler # -# - Fecha/Hora: 14-07-2015, 11:48, # CodeGen: 0 # -# - Descripción: # -# # -# # -# # -# # -# # -# - Autores: # -# - ATEAM Development Group: # -# - OLVERA VASQUEZ JOSE ARMANDO # -# # -# - Versión : Beta # -# - Revisión : A # -# - Release : 0 # -# - Bugs & Fixes : # -# - Date : 20/10/2019 # -###############################################################*/ - - -/* 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; - -bool Flag1=FALSE; -bool Flag2=FALSE; - -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,22,14,38,27,14,25,30,14,11,14,38,25,24,15,14,38, 10,23,29,30,21,18,24,38, 25,39 ,38,22,14,38,21,21,10,22,24,38,36,38,10,27,22,10,23,13,24,38, -24,21,31,14,27,10, /*OLVERA*/ -38,38,36,38,38, /*ESPACIOS*/ -10,13,18,24,28, /*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, /*38 ESPACIO */ - 0x60 /*39 D con PUNTO */ - - - - }; - - - - - -/* 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 \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DISPLAY7SEG_4DIGITOS.CPPArrepapimain.cpp Wed Oct 02 20:19:55 2019 +0000 @@ -0,0 +1,143 @@ +/* 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 \ No newline at end of file