Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed FXOS8700Q TextLCD
main.cpp
00001 #include "mbed.h" 00002 #include "C12832.h" 00003 00004 00005 DigitalOut L1(p8); 00006 DigitalOut L2(p9); 00007 DigitalOut L3(p10); 00008 AnalogIn pot(p15); 00009 C12832 lcd(SPI_MOSI, SPI_SCK, SPI_MISO, p8, p11); 00010 00011 00012 //Contadores para cada dígito 00013 int seg1=0; //Variable para contador de unidades de segundo 00014 int seg2=0; //Variable para contador de décimas de segundo 00015 int min1=0; //Variable para contador de unidades de minuto 00016 int min2=0; //Variable para contador de décimas de minuto 00017 int hor1=0; //Variable para contador de unidades de hora 00018 int hor2=0; //Variable para contador de décimas de hora 00019 00020 void reloj(){//Subrutina para generar reloj de 6 segmentos 00021 lcd.locate(21,1);//Posicionamiento de las unidades de segundo 00022 lcd.printf("%i", seg1); 00023 lcd.locate(11,1);//Posicionamiento de las décimas de segundo 00024 lcd.printf("%i",seg2); 00025 lcd.locate(26,1);//Posicionamiento del doble punto 00026 lcd.printf(":"); 00027 lcd.locate(42,1);//Posicionamiento de las unidades de minuto 00028 lcd.printf("%i",min1); 00029 lcd.locate(32,1);//Posicionamiento de las décimas de minuto 00030 lcd.printf("%i",min2); 00031 lcd.locate(49,1);//Posicionamiento del punto doble 00032 lcd.printf(":"); 00033 lcd.locate(63,1);//Posicionamiento de las unidades de minuto 00034 lcd.printf("%i",hor1); 00035 lcd.locate(53,1);//Posicionamiento de las décimas de minuto 00036 lcd.printf("%i",hor2); 00037 } 00038 00039 00040 int main() { 00041 00042 printf("Proyecto, equipo 3\n"); 00043 printf("Contraseña: 8569 \n"); 00044 float x; 00045 lcd.cls(); 00046 while(1){ 00047 x = 5*pot.read(); 00048 00049 if(x<3.5){ 00050 00051 lcd.cls(); //Limpia el LCD 00052 lcd.locate(15, 15); //Posiciona en columna 2, fila 0) 00053 lcd.printf("Tiempo de inactividad"); //Imprime en LCD "Reloj digital" 00054 lcd.copy_to_lcd(); 00055 00056 00057 00058 reloj(); //Llama a subrutina 00059 00060 seg1++; //Inician el primer contador de unidades de segundo 00061 wait(1); //Genera tiempo de un segundo 00062 if (seg1==10){ 00063 seg2++;//Contador décimas de segundo 00064 seg1=0; 00065 if (seg2==6){ 00066 min1++;//Contador unidades de minuto 00067 seg2=0; 00068 if (min1==10){ 00069 min2++;//Contador décimas de minuto 00070 min1=0; 00071 if(min2==6){ 00072 hor1++;//Contador unidades de hora 00073 min2=0; 00074 if(hor1==10){ 00075 hor2++;//Contador décimas de hora 00076 hor1=0; 00077 if((hor2==2)&&(hor1==4)){/*Cuando el contador llega 00078 a 24hrs, este se reinicia*/ 00079 hor2=0; 00080 hor1=0; 00081 } 00082 } 00083 } 00084 } 00085 } 00086 } 00087 } 00088 00089 00090 if(x>=3.5){ 00091 00092 int valida = 8569; 00093 int clave; 00094 00095 00096 lcd.cls(); 00097 lcd.locate(1,1); 00098 lcd.printf( "Introduzca su clave: "); 00099 scanf("%i", &clave) ; 00100 wait(1); 00101 00102 if(clave != valida) { 00103 00104 lcd.locate(1,15); 00105 lcd.printf("No valida!"); 00106 lcd.copy_to_lcd(); 00107 L1 = 1; 00108 wait(0.3); 00109 L1 = 0; 00110 wait(0.3); 00111 L1 = 1; 00112 wait(0.3); 00113 L1 = 0; 00114 wait(0.3); 00115 L1 = 1; 00116 wait(0.3); 00117 L1 = 0; 00118 lcd.cls(); 00119 clave=0; 00120 } 00121 00122 if (clave == valida){ 00123 lcd.locate(1,15); 00124 lcd.printf("Aceptada."); 00125 L2 = 1; 00126 L3 = 1; 00127 wait(0.3); 00128 L2 = 0; 00129 wait(0.3); 00130 L2 = 1; 00131 wait(0.3); 00132 L2 = 0; 00133 wait(0.3); 00134 L2 = 1; 00135 wait(0.3); 00136 L2 = 0; 00137 wait(15); 00138 L3 = 0; 00139 00140 } 00141 if (clave == 0){ 00142 lcd.cls(); 00143 lcd.locate(1,1); 00144 lcd.printf( "No ha introducido ninguna clave"); 00145 00146 } 00147 } 00148 } 00149 }
Generated on Tue Aug 23 2022 00:18:18 by
1.7.2