
Contador digital de 24 horas mediante display LCD 16x2
main.cpp@0:34d51311d7e7, 2014-09-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |