Don Pável / Mbed 2 deprecated Reloj_LCD_1602

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //Reloj Digital
00002 
00003 #include "mbed.h"
00004 #include "TextLCD.h" //Librería para control de display LCD
00005  
00006 TextLCD lcd(p15, p16, p17, p18, p19, p20); /* Asignación de pines
00007                                              para rs, e, d4, d5. d6,d7*/
00008 
00009 //Contadores para cada dígito
00010 int seg1=0; //Variable para contador de unidades de segundo
00011 int seg2=0; //Variable para contador de décimas de segundo
00012 int min1=0; //Variable para contador de unidades de minuto
00013 int min2=0; //Variable para contador de décimas de minuto
00014 int hor1=0; //Variable para contador de unidades de hora
00015 int hor2=0; //Variable para contador de décimas de hora
00016 
00017 void reloj(){//Subrutina para generar reloj de 6 segmentos
00018     lcd.locate(11,1);//Posicionamiento de las unidades de segundo
00019     lcd.printf("%i", seg1);
00020     lcd.locate(10,1);//Posicionamiento de las décimas de segundo
00021     lcd.printf("%i",seg2);
00022     lcd.locate(9,1);//Posicionamiento del doble punto
00023     lcd.printf(":");
00024     lcd.locate(8,1);//Posicionamiento de las unidades de minuto
00025     lcd.printf("%i",min1);
00026     lcd.locate(7,1);//Posicionamiento de las décimas de minuto
00027     lcd.printf("%i",min2);
00028     lcd.locate(6,1);//Posicionamiento del punto doble
00029     lcd.printf(":");
00030     lcd.locate(5,1);//Posicionamiento de las unidades de minuto
00031     lcd.printf("%i",hor1);
00032     lcd.locate(4,1);//Posicionamiento de las décimas de minuto
00033     lcd.printf("%i",hor2);
00034 }
00035  
00036  
00037 int main() {
00038     
00039     lcd.cls(); //Limpia el LCD
00040     lcd.locate(2, 0); //Posiciona en columna 2, fila 0)
00041     lcd.printf("Reloj digital"); //Imprime en LCD "Reloj digital"
00042     
00043     while (1){
00044         
00045         reloj(); //Llama a subrutina
00046             
00047         seg1++; //Inician el primer contador de unidades de segundo
00048         wait(1); //Genera tiempo de un segundo
00049         if (seg1==10){
00050             seg2++;//Contador décimas de segundo
00051             seg1=0;
00052             if (seg2==6){
00053                 min1++;//Contador unidades de minuto
00054                 seg2=0;
00055                 if (min1==10){
00056                     min2++;//Contador décimas de minuto
00057                     min1=0;
00058                     if(min2==6){
00059                         hor1++;//Contador unidades de hora
00060                         min2=0;
00061                         if(hor1==10){
00062                             hor2++;//Contador décimas de hora
00063                             hor1=0;
00064                             if((hor2==2)&&(hor1==4)){/*Cuando el contador llega
00065                                                        a 24hrs, este se reinicia*/
00066                                 hor2=0;
00067                                 hor1=0;
00068                             }
00069                         }
00070                     }
00071                 }
00072             }
00073         }  
00074     }
00075 }