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.
44prueba.cpp
00001 /*Utilizando un LCD, teclado matricial, implemente programa que realice las función como un hornode microondas, 00002 en cual el teclado numérico permite definir eltiempo de funcionamiento En el LCDse debe iniciar con la leyenda 00003 Selecciona tiempo , posteriormente adquirir el tiempo en segundo,el valor máximo debe ser 5 minutos, oprimir la 00004 opción de iniciar (∗) debe de visualizar el tiempoque lleva y al llegar a cero debe aparecer finalizado y 00005 encender un led para posteriormente volvera seleccionar tiempo, la opción (#) deben usarse para detener y pedir 00006 el tiempo de nuevo antesoprimir iniciar 00007 */ 00008 #include "mbed.h" 00009 #include "TextLCD.h" 00010 00011 BusOut r(D8,D9,D10,D11); 00012 BusIn c(D12,D13,D14,D15); 00013 TextLCD lcd(D2,D3,A2,A3,A4,A5); // rs, e, d4-d7 00014 00015 double delay = 0.5; // 500 ms 00016 00017 int main() { 00018 while(1){ 00019 lcd.cls(); 00020 int T1='0'; 00021 int T2='0'; 00022 int T3='0'; 00023 int val=1; 00024 val=1; 00025 while(val){ 00026 for (int i=0; i<4;i++){ 00027 r=1<<i; 00028 switch(c){//switch 1 00029 case 0x01: 00030 switch(r){ 00031 case 0x01: 00032 T1='1';lcd.printf("1\n");wait(0.5);lcd.cls();val=0;break;//1 00033 case 0x02: 00034 T1='4';lcd.printf("4\n");wait(0.5);lcd.cls();val=0;break;//4 00035 case 0x04: 00036 T1='7';lcd.printf("7\n");wait(0.5);lcd.cls();val=0;break;//7 00037 case 0x08: 00038 wait(0.1);break; //asterisco 00039 } 00040 break; 00041 case 0x02: 00042 switch(r){ 00043 case 0x01: 00044 T1='2';lcd.printf("2\n");wait(0.5);lcd.cls();val=0;break;//2 00045 case 0x02: 00046 T1='5';lcd.printf("5\n");wait(0.5);lcd.cls();val=0;break;//5 00047 case 0x04: 00048 T1='8';lcd.printf("8\n");wait(0.5);lcd.cls();val=0;break;//8 00049 case 0x08: 00050 T1='0';lcd.printf("0\n");wait(0.5);lcd.cls();val=0;break; //0 00051 } 00052 break; 00053 case 0x04: 00054 switch(r){ 00055 case 0x01: 00056 T1='3';lcd.printf("3\n");wait(0.5);lcd.cls();val=0;break;//3 00057 case 0x02: 00058 T1='6';lcd.printf("6\n");wait(0.5);lcd.cls();val=0;break;//6 00059 case 0x04: 00060 T1='9';lcd.printf("9\n");wait(0.5);lcd.cls();val=0;break;//9 00061 case 0x08: 00062 wait(0.1);break; //# 00063 } 00064 break; 00065 case 0x08: 00066 switch(r){ 00067 case 0x01: 00068 wait(0.1);break;//A 00069 case 0x02: 00070 wait(0.1);break;//B 00071 case 0x04: 00072 wait(0.1);break;//C 00073 case 0x08: 00074 wait(0.1);break; //D 00075 } //end switch2 00076 break; 00077 default: 00078 wait(0.001); 00079 break; 00080 }//end switch1 00081 }//end for 00082 }//end while val 00083 00084 int val2=1; 00085 val2=1; 00086 while(val2){ 00087 for (int i=0; i<4;i++){ 00088 r=1<<i; 00089 switch(c){//switch 1 00090 case 0x01: 00091 switch(r){ 00092 case 0x01: 00093 T2='1';lcd.printf("1\n");wait(0.5);lcd.cls();val2=0;break;//1 00094 case 0x02: 00095 T2='4';lcd.printf("4\n");wait(0.5);lcd.cls();val2=0;break;//4 00096 case 0x04: 00097 T2='7';lcd.printf("7\n");wait(0.5);lcd.cls();val2=0;break;//7 00098 case 0x08: 00099 wait(0.1);break; //asterisco 00100 } 00101 break; 00102 case 0x02: 00103 switch(r){ 00104 case 0x01: 00105 T2='2';lcd.printf("2\n");wait(0.5);lcd.cls();val2=0;break;//2 00106 case 0x02: 00107 T2='5';lcd.printf("5\n");wait(0.5);lcd.cls();val2=0;break;//5 00108 case 0x04: 00109 T2='8';lcd.printf("8\n");wait(0.5);lcd.cls();val2=0;break;//8 00110 case 0x08: 00111 T2='0';lcd.printf("0\n");wait(0.5);lcd.cls();val2=0;break; //0 00112 } 00113 break; 00114 case 0x04: 00115 switch(r){ 00116 case 0x01: 00117 T2='3';lcd.printf("3\n");wait(0.5);lcd.cls();val2=0;break;//3 00118 case 0x02: 00119 T2='6';lcd.printf("6\n");wait(0.5);lcd.cls();val2=0;break;//6 00120 case 0x04: 00121 T2='9';lcd.printf("9\n");wait(0.5);lcd.cls();val2=0;break;//9 00122 case 0x08: 00123 wait(0.1);break; //# 00124 } 00125 break; 00126 case 0x08: 00127 switch(r){ 00128 case 0x01: 00129 wait(0.1);break;//A 00130 case 0x02: 00131 wait(0.1);break;//B 00132 case 0x04: 00133 wait(0.1);break;//C 00134 case 0x08: 00135 wait(0.1);break; //D 00136 } //end switch2 00137 break; 00138 default: 00139 wait(0.001); 00140 break; 00141 }//end switch1 00142 }//end for 00143 }//end while val 2 00144 00145 int val3=1; 00146 val3=1; 00147 while(val3){ 00148 for (int i=0; i<4;i++){ 00149 r=1<<i; 00150 switch(c){//switch 1 00151 case 0x01: 00152 switch(r){ 00153 case 0x01: 00154 T3='1';lcd.printf("1\n");wait(0.5);lcd.cls();val3=0;break;//1 00155 case 0x02: 00156 T3='4';lcd.printf("4\n");wait(0.5);lcd.cls();val3=0;break;//4 00157 case 0x04: 00158 T3='7';lcd.printf("7\n");wait(0.5);lcd.cls();val3=0;break;//7 00159 case 0x08: 00160 wait(0.1);break; //asterisco 00161 } 00162 break; 00163 case 0x02: 00164 switch(r){ 00165 case 0x01: 00166 T3='2';lcd.printf("2\n");wait(0.5);lcd.cls();val3=0;break;//2 00167 case 0x02: 00168 T3='5';lcd.printf("5\n");wait(0.5);lcd.cls();val3=0;break;//5 00169 case 0x04: 00170 T3='8';lcd.printf("8\n");wait(0.5);lcd.cls();val3=0;break;//8 00171 case 0x08: 00172 T3='0';lcd.printf("0\n");wait(0.5);lcd.cls();val3=0;break; //0 00173 } 00174 break; 00175 case 0x04: 00176 switch(r){ 00177 case 0x01: 00178 T3='3';lcd.printf("3\n");wait(0.5);lcd.cls();val3=0;break;//3 00179 case 0x02: 00180 T3='6';lcd.printf("6\n");wait(0.5);lcd.cls();val3=0;break;//6 00181 case 0x04: 00182 T3='9';lcd.printf("9\n");wait(0.5);lcd.cls();val3=0;break;//9 00183 case 0x08: 00184 wait(0.1);break; //# 00185 } 00186 break; 00187 case 0x08: 00188 switch(r){ 00189 case 0x01: 00190 wait(0.1);break;//A 00191 case 0x02: 00192 wait(0.1);break;//B 00193 case 0x04: 00194 wait(0.1);break;//C 00195 case 0x08: 00196 wait(0.1);break; //D 00197 } //end switch2 00198 break; 00199 default: 00200 wait(0.001); 00201 break; 00202 }//end switch1 00203 }//end for 00204 }//end while val 3 00205 00206 for(int k=0;k<5;k++){ 00207 lcd.printf("*******\n");wait(0.2);lcd.cls(); 00208 } 00209 00210 int suma=0; 00211 switch(T1){ 00212 case '0': wait(0.1);suma=0;break; 00213 case '1': wait(0.1);suma=100;break; 00214 case '2': wait(0.1);suma=200;break; 00215 case '3': wait(0.1);suma=300;break; 00216 case '4': wait(0.1);suma=400;break; 00217 case '5': wait(0.1);suma=500;break; 00218 case '6': wait(0.1);suma=600;break; 00219 case '7': wait(0.1);suma=700;break; 00220 case '8': wait(0.1);suma=800;break; 00221 case '9': wait(0.1);suma=900;break;} 00222 switch(T2){ 00223 case '0': wait(0.1);suma=suma+00;break; 00224 case '1': wait(0.1);suma=suma+10;break; 00225 case '2': wait(0.1);suma=suma+20;break; 00226 case '3': wait(0.1);suma=suma+30;break; 00227 case '4': wait(0.1);suma=suma+40;break; 00228 case '5': wait(0.1);suma=suma+50;break; 00229 case '6': wait(0.1);suma=suma+60;break; 00230 case '7': wait(0.1);suma=suma+70;break; 00231 case '8': wait(0.1);suma=suma+80;break; 00232 case '9': wait(0.1);suma=suma+90;break;} 00233 switch(T3){ 00234 case '0': wait(0.1);suma=suma+0;break; 00235 case '1': wait(0.1);suma=suma+1;break; 00236 case '2': wait(0.1);suma=suma+2;break; 00237 case '3': wait(0.1);suma=suma+3;break; 00238 case '4': wait(0.1);suma=suma+4;break; 00239 case '5': wait(0.1);suma=suma+5;break; 00240 case '6': wait(0.1);suma=suma+6;break; 00241 case '7': wait(0.1);suma=suma+7;break; 00242 case '8': wait(0.1);suma=suma+8;break; 00243 case '9': wait(0.1);suma=suma+9;break;} 00244 00245 if (suma>=300){//para que sea menor a 5 minutos 00246 for(int k=0;k<4;k++){ 00247 lcd.printf("No mas de 5 min\n");wait(0.8);lcd.cls(); 00248 } 00249 NVIC_SystemReset(); 00250 }//end if 00251 else{ 00252 for(int k=0;k<4;k++){ 00253 lcd.printf("%i \n",suma);wait(0.7);lcd.cls(); 00254 lcd.printf(" \n");wait(0.3);lcd.cls(); 00255 } 00256 } 00257 00258 int ast=1; 00259 ast=1; 00260 while(ast){ 00261 r=1<<3; 00262 lcd.printf("* para continuar\n");wait(0.8);lcd.cls(); 00263 switch(c){ 00264 case 0x01://asterisco 00265 //for(int l=0;l<=suma;l++){ 00266 for (int l=suma; l > 0; l--){ 00267 switch(c){ 00268 case 0x04://# 00269 for(int k=0;k<5;k++){ 00270 lcd.printf("*DETENER*\n");wait(0.5);lcd.cls(); 00271 lcd.printf("*********\n");wait(0.5);lcd.cls(); 00272 } 00273 NVIC_SystemReset(); //reiniciando todo 00274 break; 00275 default: 00276 lcd.printf("%i \n",l);wait(1);lcd.cls(); 00277 break; 00278 } 00279 } 00280 for(int k=0;k<5;k++){ 00281 lcd.printf("*FINALIZADO*\n");wait(0.5);lcd.cls(); 00282 lcd.printf("************\n");wait(0.5);lcd.cls(); 00283 } 00284 ast=0; //reiniciando todo 00285 break; 00286 case 0x04://# 00287 for(int k=0;k<5;k++){ 00288 lcd.printf("*DETENER*\n");wait(0.5);lcd.cls(); 00289 lcd.printf("*********\n");wait(0.5);lcd.cls(); 00290 } 00291 ast=0; 00292 break; //reiniciando para pedir nuevos valores 00293 } 00294 }//end while asterisco 00295 00296 00297 //val2=1; 00298 } //end while (1) 00299 }//end int 00300 00301 00302 /* 00303 #include "mbed.h" 00304 InterruptIn button(USER_BUTTON); 00305 DigitalOut led(LED1); 00306 BusOut r(D8,D9,D10,D11); 00307 BusIn c(D12,D13,D14,D15); 00308 BusOut ld(D4,D5,D6,D7); 00309 BusOut row(D2,D3); 00310 00311 double delay = 0.5; // 500 ms 00312 int Tiempo[3] = {'0','0'}; 00313 00314 int main() { 00315 //c.fall(&pressed); 00316 //c.rise(&released); 00317 while(1){ 00318 int T[3]={'0','0'}; 00319 int val=1; 00320 int val2=1; 00321 while (val2) { 00322 for (int j=0;j<2;j++){ 00323 Tiempo[j]=T[j]; 00324 if(T[2]!='0'){ 00325 val2=0;} 00326 val=1; 00327 while(val){ 00328 for (int i=0; i<4;i++){ 00329 r=1<<i; 00330 //r=1<<0; 00331 switch(c){ 00332 case 0x01: 00333 //ld=1<<0; 00334 switch(r){ 00335 case 0x01: 00336 row=0x00;ld=0x01;T[j]='1';wait(0.5);val=0;break;//1 00337 case 0x02: 00338 row=0x01;ld=0x01;T[j]='4';wait(0.5);val=0;break;//4 00339 case 0x04: 00340 row=0x02;ld=0x01;T[j]='7';wait(0.5);val=0;break;//7 00341 case 0x08: 00342 row=0x03;ld=0x01;wait(0.1);break; //asterisco 00343 } 00344 break; 00345 case 0x02: 00346 //ld=1<<1; 00347 switch(r){ 00348 case 0x01: 00349 row=0x00;ld=0x02;T[j]='2';wait(0.5);val=0;break;//2 00350 case 0x02: 00351 row=0x01;ld=0x02;T[j]='5';wait(0.5);val=0;break;//5 00352 case 0x04: 00353 row=0x02;ld=0x02;T[j]='8';wait(0.5);val=0;break;//8 00354 case 0x08: 00355 row=0x03;ld=0x02;T[j]='0';wait(0.5);val=0;break; //0 00356 } 00357 break; 00358 case 0x04: 00359 switch(r){ 00360 case 0x01: 00361 row=0x00;ld=0x04;T[j]='3';wait(0.5);val=0;break;//3 00362 case 0x02: 00363 row=0x01;ld=0x04;T[j]='6';wait(0.5);val=0;break;//6 00364 case 0x04: 00365 row=0x02;ld=0x04;T[j]='9';wait(0.5);val=0;break;//9 00366 case 0x08: 00367 row=0x03;ld=0x04;wait(0.1);break; //# 00368 } 00369 break; 00370 case 0x08: 00371 switch(r){ 00372 case 0x01: 00373 row=0x00;ld=0x08;wait(0.1);;break;//A 00374 case 0x02: 00375 row=0x01;ld=0x08;wait(0.1);break;//B 00376 case 0x04: 00377 row=0x02;ld=0x08;wait(0.1);break;//C 00378 case 0x08: 00379 row=0x03;ld=0x08;wait(0.1);break; //D 00380 } 00381 break; 00382 default: 00383 row=0x00; 00384 ld=0x00; 00385 wait(0.001); 00386 break; 00387 }} 00388 //wait(0.01); 00389 } 00390 } 00391 } 00392 for(int k=0;k<10;k++){ 00393 ld=1<<k; wait(0.1); 00394 } 00395 switch(Tiempo[1]){ 00396 case '0': ld=0x00;wait(0.5);break; 00397 case '1': ld=0x01;wait(0.5);break; 00398 case '2': ld=0x02;wait(0.5);break; 00399 case '3': ld=0x03;wait(0.5);break; 00400 case '4': ld=0x04;wait(0.5);break; 00401 case '5': ld=0x05;wait(0.5);break; 00402 case '6': ld=0x06;wait(0.5);break; 00403 case '7': ld=0x07;wait(0.5);break; 00404 case '8': ld=0x08;wait(0.5);break; 00405 case '9': ld=0x09;wait(0.5);break;} 00406 switch(Tiempo[2]){ 00407 case '0': ld=0x00;wait(0.5);break; 00408 case '1': ld=0x01;wait(0.5);break; 00409 case '2': ld=0x02;wait(0.5);break; 00410 case '3': ld=0x03;wait(0.5);break; 00411 case '4': ld=0x04;wait(0.5);break; 00412 case '5': ld=0x05;wait(0.5);break; 00413 case '6': ld=0x06;wait(0.5);break; 00414 case '7': ld=0x07;wait(0.5);break; 00415 case '8': ld=0x08;wait(0.5);break; 00416 case '9': ld=0x09;wait(0.5);break;} 00417 val2=1; 00418 } 00419 } 00420 */
Generated on Sun Aug 14 2022 10:39:09 by
1.7.2