Israel Hernández Orozco / Mbed 2 deprecated 4_4bueno

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers 44prueba.cpp Source File

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 */