Contador digital de 24 horas mediante display LCD 16x2

Dependencies:   TextLCD mbed

Files at this revision

API Documentation at this revision

Comitter:
Zarandaja
Date:
Tue Sep 09 02:32:59 2014 +0000
Commit message:
Reloj digital con LCD 16x2

Changed in this revision

TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Tue Sep 09 02:32:59 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/TextLCD/#308d188a2d3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 09 02:32:59 2014 +0000
@@ -0,0 +1,75 @@
+//Reloj Digital
+
+#include "mbed.h"
+#include "TextLCD.h" //Librería para control de display LCD
+ 
+TextLCD lcd(p15, p16, p17, p18, p19, p20); /* Asignación de pines
+                                             para rs, e, d4, d5. d6,d7*/
+
+//Contadores para cada dígito
+int seg1=0; //Variable para contador de unidades de segundo
+int seg2=0; //Variable para contador de décimas de segundo
+int min1=0; //Variable para contador de unidades de minuto
+int min2=0; //Variable para contador de décimas de minuto
+int hor1=0; //Variable para contador de unidades de hora
+int hor2=0; //Variable para contador de décimas de hora
+
+void reloj(){//Subrutina para generar reloj de 6 segmentos
+    lcd.locate(11,1);//Posicionamiento de las unidades de segundo
+    lcd.printf("%i", seg1);
+    lcd.locate(10,1);//Posicionamiento de las décimas de segundo
+    lcd.printf("%i",seg2);
+    lcd.locate(9,1);//Posicionamiento del doble punto
+    lcd.printf(":");
+    lcd.locate(8,1);//Posicionamiento de las unidades de minuto
+    lcd.printf("%i",min1);
+    lcd.locate(7,1);//Posicionamiento de las décimas de minuto
+    lcd.printf("%i",min2);
+    lcd.locate(6,1);//Posicionamiento del punto doble
+    lcd.printf(":");
+    lcd.locate(5,1);//Posicionamiento de las unidades de minuto
+    lcd.printf("%i",hor1);
+    lcd.locate(4,1);//Posicionamiento de las décimas de minuto
+    lcd.printf("%i",hor2);
+}
+ 
+ 
+int main() {
+    
+    lcd.cls(); //Limpia el LCD
+    lcd.locate(2, 0); //Posiciona en columna 2, fila 0)
+    lcd.printf("Reloj digital"); //Imprime en LCD "Reloj digital"
+    
+    while (1){
+        
+        reloj(); //Llama a subrutina
+            
+        seg1++; //Inician el primer contador de unidades de segundo
+        wait(1); //Genera tiempo de un segundo
+        if (seg1==10){
+            seg2++;//Contador décimas de segundo
+            seg1=0;
+            if (seg2==6){
+                min1++;//Contador unidades de minuto
+                seg2=0;
+                if (min1==10){
+                    min2++;//Contador décimas de minuto
+                    min1=0;
+                    if(min2==6){
+                        hor1++;//Contador unidades de hora
+                        min2=0;
+                        if(hor1==10){
+                            hor2++;//Contador décimas de hora
+                            hor1=0;
+                            if((hor2==2)&&(hor1==4)){/*Cuando el contador llega
+                                                       a 24hrs, este se reinicia*/
+                                hor2=0;
+                                hor1=0;
+                            }
+                        }
+                    }
+                }
+            }
+        }  
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Sep 09 02:32:59 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9327015d4013
\ No newline at end of file