Israel Hernández Orozco / Mbed 2 deprecated 4_1bueno

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers 41prueba.cpp Source File

41prueba.cpp

00001 /*Proponga  un  programa  que  inicie  con  el  mensaje  “Contraseña”  y  obtenga  3  dígitos  de  contraseña
00002 mediante  el  teclado,  visualizando  en  un  LCD  uno  a  uno  de  los  caracteres,  al  obtener  los  tres  dígitos
00003 visualizar  la  contraseña  y  esperar  un  segundo  para  mostrar  el  mensaje  “acceso”  recorriéndolo  a  la
00004 derecha  y  activar  un  actuador(relevador  ó  motor  CD)  durante2  segundo,  el  caso  de  ser  incorrecto
00005 que  aparezca  “denegado”  recorriendo  el  texto  a  la  derecha  durante  2  segundos,  al  finalizar  que
00006 aparezca  el  texto  “Contraseña”
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 DigitalOut motor(D7);
00014 TextLCD lcd(D2,D3,A2,A3,A4,A5); // rs, e, d4-d7
00015 
00016 int main() {
00017      while(1){
00018          lcd.cls();
00019          int c1='0';int c2='6';int c3='9';
00020          int T1='0';
00021          int T2='0';
00022          int T3='0';
00023          int val=1;
00024                  val=1;
00025                  while(val){
00026                  lcd.printf("Contrasena\n");wait(0.1);lcd.cls();
00027                  for (int i=0; i<4;i++){
00028                      r=1<<i;
00029                      switch(c){//switch 1
00030                         case 0x01:
00031                             switch(r){
00032                                 case 0x01:
00033                                     T1='1';lcd.printf("1\n");wait(0.5);lcd.cls();val=0;break;//1
00034                                 case 0x02:
00035                                     T1='4';lcd.printf("4\n");wait(0.5);lcd.cls();val=0;break;//4
00036                                 case 0x04:
00037                                     T1='7';lcd.printf("7\n");wait(0.5);lcd.cls();val=0;break;//7
00038                                 case 0x08:
00039                                     wait(0.1);break; //asterisco
00040                             }        
00041                             break;
00042                         case 0x02:
00043                             switch(r){
00044                                 case 0x01:
00045                                     T1='2';lcd.printf("2\n");wait(0.5);lcd.cls();val=0;break;//2
00046                                 case 0x02:
00047                                     T1='5';lcd.printf("5\n");wait(0.5);lcd.cls();val=0;break;//5
00048                                 case 0x04:
00049                                     T1='8';lcd.printf("8\n");wait(0.5);lcd.cls();val=0;break;//8
00050                                 case 0x08:
00051                                     T1='0';lcd.printf("0\n");wait(0.5);lcd.cls();val=0;break; //0
00052                             }  
00053                             break;
00054                         case 0x04:
00055                             switch(r){
00056                                 case 0x01:
00057                                     T1='3';lcd.printf("3\n");wait(0.5);lcd.cls();val=0;break;//3
00058                                 case 0x02:
00059                                     T1='6';lcd.printf("6\n");wait(0.5);lcd.cls();val=0;break;//6
00060                                 case 0x04:
00061                                     T1='9';lcd.printf("9\n");wait(0.5);lcd.cls();val=0;break;//9
00062                                 case 0x08:
00063                                     wait(0.1);break; //#
00064                             } 
00065                             break;
00066                         case 0x08:
00067                             switch(r){
00068                                 case 0x01:
00069                                     wait(0.1);break;//A
00070                                 case 0x02:
00071                                     wait(0.1);break;//B
00072                                 case 0x04:
00073                                     wait(0.1);break;//C
00074                                 case 0x08:
00075                                     wait(0.1);break; //D
00076                             } //end switch2
00077                             break;
00078                         default:
00079                             wait(0.001);
00080                             break;
00081                     }//end switch1
00082             }//end for
00083          }//end while val
00084          
00085          int val2=1;
00086                  val2=1;
00087                  while(val2){
00088                  for (int i=0; i<4;i++){
00089                      r=1<<i;
00090                      switch(c){//switch 1
00091                         case 0x01:
00092                             switch(r){
00093                                 case 0x01:
00094                                     T2='1';lcd.printf("1\n");wait(0.5);lcd.cls();val2=0;break;//1
00095                                 case 0x02:
00096                                     T2='4';lcd.printf("4\n");wait(0.5);lcd.cls();val2=0;break;//4
00097                                 case 0x04:
00098                                     T2='7';lcd.printf("7\n");wait(0.5);lcd.cls();val2=0;break;//7
00099                                 case 0x08:
00100                                     wait(0.1);break; //asterisco
00101                             }        
00102                             break;
00103                         case 0x02:
00104                             switch(r){
00105                                 case 0x01:
00106                                     T2='2';lcd.printf("2\n");wait(0.5);lcd.cls();val2=0;break;//2
00107                                 case 0x02:
00108                                     T2='5';lcd.printf("5\n");wait(0.5);lcd.cls();val2=0;break;//5
00109                                 case 0x04:
00110                                     T2='8';lcd.printf("8\n");wait(0.5);lcd.cls();val2=0;break;//8
00111                                 case 0x08:
00112                                     T2='0';lcd.printf("0\n");wait(0.5);lcd.cls();val2=0;break; //0
00113                             }  
00114                             break;
00115                         case 0x04:
00116                             switch(r){
00117                                 case 0x01:
00118                                     T2='3';lcd.printf("3\n");wait(0.5);lcd.cls();val2=0;break;//3
00119                                 case 0x02:
00120                                     T2='6';lcd.printf("6\n");wait(0.5);lcd.cls();val2=0;break;//6
00121                                 case 0x04:
00122                                     T2='9';lcd.printf("9\n");wait(0.5);lcd.cls();val2=0;break;//9
00123                                 case 0x08:
00124                                     wait(0.1);break; //#
00125                             } 
00126                             break;
00127                         case 0x08:
00128                             switch(r){
00129                                 case 0x01:
00130                                     wait(0.1);break;//A
00131                                 case 0x02:
00132                                     wait(0.1);break;//B
00133                                 case 0x04:
00134                                     wait(0.1);break;//C
00135                                 case 0x08:
00136                                     wait(0.1);break; //D
00137                             } //end switch2
00138                             break;
00139                         default:
00140                             wait(0.001);
00141                             break;
00142                     }//end switch1
00143             }//end for
00144          }//end while val 2
00145          
00146          int val3=1;
00147                  val3=1;
00148                  while(val3){
00149                  for (int i=0; i<4;i++){
00150                      r=1<<i;
00151                      switch(c){//switch 1
00152                         case 0x01:
00153                             switch(r){
00154                                 case 0x01:
00155                                     T3='1';lcd.printf("1\n");wait(0.5);lcd.cls();val3=0;break;//1
00156                                 case 0x02:
00157                                     T3='4';lcd.printf("4\n");wait(0.5);lcd.cls();val3=0;break;//4
00158                                 case 0x04:
00159                                     T3='7';lcd.printf("7\n");wait(0.5);lcd.cls();val3=0;break;//7
00160                                 case 0x08:
00161                                     wait(0.1);break; //asterisco
00162                             }        
00163                             break;
00164                         case 0x02:
00165                             switch(r){
00166                                 case 0x01:
00167                                     T3='2';lcd.printf("2\n");wait(0.5);lcd.cls();val3=0;break;//2
00168                                 case 0x02:
00169                                     T3='5';lcd.printf("5\n");wait(0.5);lcd.cls();val3=0;break;//5
00170                                 case 0x04:
00171                                     T3='8';lcd.printf("8\n");wait(0.5);lcd.cls();val3=0;break;//8
00172                                 case 0x08:
00173                                     T3='0';lcd.printf("0\n");wait(0.5);lcd.cls();val3=0;break; //0
00174                             }  
00175                             break;
00176                         case 0x04:
00177                             switch(r){
00178                                 case 0x01:
00179                                     T3='3';lcd.printf("3\n");wait(0.5);lcd.cls();val3=0;break;//3
00180                                 case 0x02:
00181                                     T3='6';lcd.printf("6\n");wait(0.5);lcd.cls();val3=0;break;//6
00182                                 case 0x04:
00183                                     T3='9';lcd.printf("9\n");wait(0.5);lcd.cls();val3=0;break;//9
00184                                 case 0x08:
00185                                     wait(0.1);break; //#
00186                             } 
00187                             break;
00188                         case 0x08:
00189                             switch(r){
00190                                 case 0x01:
00191                                     wait(0.1);break;//A
00192                                 case 0x02:
00193                                     wait(0.1);break;//B
00194                                 case 0x04:
00195                                     wait(0.1);break;//C
00196                                 case 0x08:
00197                                     wait(0.1);break; //D
00198                             } //end switch2
00199                             break;
00200                         default:
00201                             wait(0.001);
00202                             break;
00203                     }//end switch1
00204             }//end for
00205          }//end while val 3
00206                 
00207          for(int k=0;k<5;k++){  //adorno
00208              lcd.printf("*******\n");wait(0.2);lcd.cls();
00209              lcd.printf(" \n");wait(0.2);lcd.cls();
00210              }
00211         
00212         lcd.printf(" %c %c %c\n", T1, T2, T3);wait(1);lcd.cls(); //mostrando contraseña
00213            
00214         //int c1=contra[0];int c2=contra[1];int c3=contra[2];     
00215         if(T1==c1 && T2==c2 && T3==c3){
00216             lcd.printf("O\n");wait(0.2);lcd.cls();
00217             lcd.printf(" \n");wait(0.001);lcd.cls();
00218             lcd.printf("SO\n");wait(0.2);lcd.cls();
00219             lcd.printf(" \n");wait(0.001);lcd.cls();
00220             lcd.printf("ESO\n");wait(0.2);lcd.cls();
00221             lcd.printf(" \n");wait(0.001);lcd.cls();
00222             lcd.printf("CESO\n");wait(0.2);lcd.cls();
00223             lcd.printf(" \n");wait(0.001);lcd.cls();
00224             lcd.printf("CCESO\n");wait(0.2);lcd.cls();
00225             lcd.printf(" \n");wait(0.001);lcd.cls();
00226             lcd.printf("ACCESO\n");wait(0.2);lcd.cls();
00227             lcd.printf(" \n");wait(0.001);lcd.cls();
00228             lcd.printf(" ACCESO\n");wait(0.2);lcd.cls();
00229             lcd.printf(" \n");wait(0.001);lcd.cls();
00230             lcd.printf("  ACCESO\n");wait(0.2);lcd.cls();
00231             lcd.printf(" \n");wait(0.001);lcd.cls();
00232             lcd.printf("   ACCESO\n");wait(0.2);lcd.cls();
00233             lcd.printf(" \n");wait(0.001);lcd.cls();
00234             lcd.printf("    ACCESO\n");wait(0.2);lcd.cls();
00235             lcd.printf(" \n");wait(0.001);lcd.cls();
00236             lcd.printf("     ACCESO\n");wait(0.2);lcd.cls();
00237             lcd.printf(" \n");wait(0.001);lcd.cls();
00238             lcd.printf("      ACCESO\n");wait(0.2);lcd.cls();
00239             lcd.printf(" \n");wait(0.001);lcd.cls();
00240             lcd.printf("       ACCESO\n");wait(0.2);lcd.cls();
00241             lcd.printf(" \n");wait(0.001);lcd.cls();
00242             lcd.printf("        ACCESO\n");wait(0.2);lcd.cls();
00243             lcd.printf(" \n");wait(0.001);lcd.cls();
00244             lcd.printf("         ACCESO\n");wait(0.2);lcd.cls();
00245             lcd.printf(" \n");wait(0.001);lcd.cls();
00246             lcd.printf("          ACCESO\n");wait(0.2);lcd.cls();
00247             lcd.printf(" \n");wait(0.001);lcd.cls();
00248             lcd.printf("           ACCES\n");wait(0.2);lcd.cls();
00249             lcd.printf(" \n");wait(0.001);lcd.cls();
00250             lcd.printf("            ACCE\n");wait(0.2);lcd.cls();
00251             lcd.printf(" \n");wait(0.001);lcd.cls();
00252             lcd.printf("             ACC\n");wait(0.2);lcd.cls();
00253             lcd.printf(" \n");wait(0.001);lcd.cls();
00254             lcd.printf("              AC\n");wait(0.2);lcd.cls();
00255             lcd.printf(" \n");wait(0.001);lcd.cls();
00256             lcd.printf("               A\n");wait(0.2);lcd.cls();
00257             lcd.printf(" \n");wait(0.001);lcd.cls();
00258             lcd.printf(" \n");wait(0.2);lcd.cls();            
00259             motor=1;
00260             wait(2);
00261             motor=0;
00262         }
00263         else{
00264             lcd.printf("O\n");wait(0.2);lcd.cls();
00265             lcd.printf(" \n");wait(0.001);lcd.cls();
00266             lcd.printf("DO\n");wait(0.2);lcd.cls();
00267             lcd.printf(" \n");wait(0.001);lcd.cls();
00268             lcd.printf("ADO\n");wait(0.2);lcd.cls();
00269             lcd.printf(" \n");wait(0.001);lcd.cls();
00270             lcd.printf("GADO\n");wait(0.2);lcd.cls();
00271             lcd.printf(" \n");wait(0.001);lcd.cls();
00272             lcd.printf("EGADO\n");wait(0.2);lcd.cls();
00273             lcd.printf(" \n");wait(0.001);lcd.cls();
00274             lcd.printf("NEGADO\n");wait(0.2);lcd.cls();
00275             lcd.printf(" \n");wait(0.001);lcd.cls();
00276             lcd.printf("ENEGADO\n");wait(0.2);lcd.cls();
00277             lcd.printf(" \n");wait(0.001);lcd.cls();
00278             lcd.printf("DENEGADO\n");wait(0.2);lcd.cls();
00279             lcd.printf(" \n");wait(0.001);lcd.cls();
00280             lcd.printf(" DENEGADO\n");wait(0.2);lcd.cls();
00281             lcd.printf(" \n");wait(0.001);lcd.cls();
00282             lcd.printf("  DENEGADO\n");wait(0.2);lcd.cls();
00283             lcd.printf(" \n");wait(0.001);lcd.cls();
00284             lcd.printf("   DENEGADO\n");wait(0.2);lcd.cls();
00285             lcd.printf(" \n");wait(0.001);lcd.cls();
00286             lcd.printf("    DENEGADO\n");wait(0.2);lcd.cls();
00287             lcd.printf(" \n");wait(0.001);lcd.cls();
00288             lcd.printf("     DENEGADO\n");wait(0.2);lcd.cls();
00289             lcd.printf(" \n");wait(0.001);lcd.cls();
00290             lcd.printf("      DENEGADO\n");wait(0.2);lcd.cls();
00291             lcd.printf(" \n");wait(0.001);lcd.cls();
00292             lcd.printf("       DENEGADO\n");wait(0.2);lcd.cls();
00293             lcd.printf(" \n");wait(0.001);lcd.cls();
00294             lcd.printf("        DENEGADO\n");wait(0.2);lcd.cls();
00295             lcd.printf(" \n");wait(0.001);lcd.cls();
00296             lcd.printf("         DENEGAD\n");wait(0.2);lcd.cls();
00297             lcd.printf(" \n");wait(0.001);lcd.cls();
00298             lcd.printf("          DENEGA\n");wait(0.2);lcd.cls();
00299             lcd.printf(" \n");wait(0.001);lcd.cls();
00300             lcd.printf("           DENEG\n");wait(0.2);lcd.cls();
00301             lcd.printf(" \n");wait(0.001);lcd.cls();
00302             lcd.printf("            DENE\n");wait(0.2);lcd.cls();
00303             lcd.printf(" \n");wait(0.001);lcd.cls();
00304             lcd.printf("             DEN\n");wait(0.2);lcd.cls();
00305             lcd.printf(" \n");wait(0.001);lcd.cls();
00306             lcd.printf("              DE\n");wait(0.2);lcd.cls();
00307             lcd.printf(" \n");wait(0.001);lcd.cls();
00308             lcd.printf("               D\n");wait(0.2);lcd.cls();
00309             lcd.printf(" \n");wait(0.2);lcd.cls();
00310             NVIC_SystemReset();
00311         }
00312         
00313      }  //end while (1)
00314 }//end int