Contador digital de 24 horas mediante display LCD 16x2

Dependencies:   TextLCD mbed

Committer:
Zarandaja
Date:
Tue Sep 09 02:32:59 2014 +0000
Revision:
0:34d51311d7e7
Reloj digital con LCD 16x2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Zarandaja 0:34d51311d7e7 1 //Reloj Digital
Zarandaja 0:34d51311d7e7 2
Zarandaja 0:34d51311d7e7 3 #include "mbed.h"
Zarandaja 0:34d51311d7e7 4 #include "TextLCD.h" //Librería para control de display LCD
Zarandaja 0:34d51311d7e7 5
Zarandaja 0:34d51311d7e7 6 TextLCD lcd(p15, p16, p17, p18, p19, p20); /* Asignación de pines
Zarandaja 0:34d51311d7e7 7 para rs, e, d4, d5. d6,d7*/
Zarandaja 0:34d51311d7e7 8
Zarandaja 0:34d51311d7e7 9 //Contadores para cada dígito
Zarandaja 0:34d51311d7e7 10 int seg1=0; //Variable para contador de unidades de segundo
Zarandaja 0:34d51311d7e7 11 int seg2=0; //Variable para contador de décimas de segundo
Zarandaja 0:34d51311d7e7 12 int min1=0; //Variable para contador de unidades de minuto
Zarandaja 0:34d51311d7e7 13 int min2=0; //Variable para contador de décimas de minuto
Zarandaja 0:34d51311d7e7 14 int hor1=0; //Variable para contador de unidades de hora
Zarandaja 0:34d51311d7e7 15 int hor2=0; //Variable para contador de décimas de hora
Zarandaja 0:34d51311d7e7 16
Zarandaja 0:34d51311d7e7 17 void reloj(){//Subrutina para generar reloj de 6 segmentos
Zarandaja 0:34d51311d7e7 18 lcd.locate(11,1);//Posicionamiento de las unidades de segundo
Zarandaja 0:34d51311d7e7 19 lcd.printf("%i", seg1);
Zarandaja 0:34d51311d7e7 20 lcd.locate(10,1);//Posicionamiento de las décimas de segundo
Zarandaja 0:34d51311d7e7 21 lcd.printf("%i",seg2);
Zarandaja 0:34d51311d7e7 22 lcd.locate(9,1);//Posicionamiento del doble punto
Zarandaja 0:34d51311d7e7 23 lcd.printf(":");
Zarandaja 0:34d51311d7e7 24 lcd.locate(8,1);//Posicionamiento de las unidades de minuto
Zarandaja 0:34d51311d7e7 25 lcd.printf("%i",min1);
Zarandaja 0:34d51311d7e7 26 lcd.locate(7,1);//Posicionamiento de las décimas de minuto
Zarandaja 0:34d51311d7e7 27 lcd.printf("%i",min2);
Zarandaja 0:34d51311d7e7 28 lcd.locate(6,1);//Posicionamiento del punto doble
Zarandaja 0:34d51311d7e7 29 lcd.printf(":");
Zarandaja 0:34d51311d7e7 30 lcd.locate(5,1);//Posicionamiento de las unidades de minuto
Zarandaja 0:34d51311d7e7 31 lcd.printf("%i",hor1);
Zarandaja 0:34d51311d7e7 32 lcd.locate(4,1);//Posicionamiento de las décimas de minuto
Zarandaja 0:34d51311d7e7 33 lcd.printf("%i",hor2);
Zarandaja 0:34d51311d7e7 34 }
Zarandaja 0:34d51311d7e7 35
Zarandaja 0:34d51311d7e7 36
Zarandaja 0:34d51311d7e7 37 int main() {
Zarandaja 0:34d51311d7e7 38
Zarandaja 0:34d51311d7e7 39 lcd.cls(); //Limpia el LCD
Zarandaja 0:34d51311d7e7 40 lcd.locate(2, 0); //Posiciona en columna 2, fila 0)
Zarandaja 0:34d51311d7e7 41 lcd.printf("Reloj digital"); //Imprime en LCD "Reloj digital"
Zarandaja 0:34d51311d7e7 42
Zarandaja 0:34d51311d7e7 43 while (1){
Zarandaja 0:34d51311d7e7 44
Zarandaja 0:34d51311d7e7 45 reloj(); //Llama a subrutina
Zarandaja 0:34d51311d7e7 46
Zarandaja 0:34d51311d7e7 47 seg1++; //Inician el primer contador de unidades de segundo
Zarandaja 0:34d51311d7e7 48 wait(1); //Genera tiempo de un segundo
Zarandaja 0:34d51311d7e7 49 if (seg1==10){
Zarandaja 0:34d51311d7e7 50 seg2++;//Contador décimas de segundo
Zarandaja 0:34d51311d7e7 51 seg1=0;
Zarandaja 0:34d51311d7e7 52 if (seg2==6){
Zarandaja 0:34d51311d7e7 53 min1++;//Contador unidades de minuto
Zarandaja 0:34d51311d7e7 54 seg2=0;
Zarandaja 0:34d51311d7e7 55 if (min1==10){
Zarandaja 0:34d51311d7e7 56 min2++;//Contador décimas de minuto
Zarandaja 0:34d51311d7e7 57 min1=0;
Zarandaja 0:34d51311d7e7 58 if(min2==6){
Zarandaja 0:34d51311d7e7 59 hor1++;//Contador unidades de hora
Zarandaja 0:34d51311d7e7 60 min2=0;
Zarandaja 0:34d51311d7e7 61 if(hor1==10){
Zarandaja 0:34d51311d7e7 62 hor2++;//Contador décimas de hora
Zarandaja 0:34d51311d7e7 63 hor1=0;
Zarandaja 0:34d51311d7e7 64 if((hor2==2)&&(hor1==4)){/*Cuando el contador llega
Zarandaja 0:34d51311d7e7 65 a 24hrs, este se reinicia*/
Zarandaja 0:34d51311d7e7 66 hor2=0;
Zarandaja 0:34d51311d7e7 67 hor1=0;
Zarandaja 0:34d51311d7e7 68 }
Zarandaja 0:34d51311d7e7 69 }
Zarandaja 0:34d51311d7e7 70 }
Zarandaja 0:34d51311d7e7 71 }
Zarandaja 0:34d51311d7e7 72 }
Zarandaja 0:34d51311d7e7 73 }
Zarandaja 0:34d51311d7e7 74 }
Zarandaja 0:34d51311d7e7 75 }