tvv

Dependencies:   TextLCD mbed

Revision:
0:df5d1a705b6d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/41prueba.cpp	Wed Sep 26 18:37:40 2018 +0000
@@ -0,0 +1,314 @@
+/*Proponga  un  programa  que  inicie  con  el  mensaje  “Contraseña”  y  obtenga  3  dígitos  de  contraseña
+mediante  el  teclado,  visualizando  en  un  LCD  uno  a  uno  de  los  caracteres,  al  obtener  los  tres  dígitos
+visualizar  la  contraseña  y  esperar  un  segundo  para  mostrar  el  mensaje  “acceso”  recorriéndolo  a  la
+derecha  y  activar  un  actuador(relevador  ó  motor  CD)  durante2  segundo,  el  caso  de  ser  incorrecto
+que  aparezca  “denegado”  recorriendo  el  texto  a  la  derecha  durante  2  segundos,  al  finalizar  que
+aparezca  el  texto  “Contraseña”
+*/
+#include "mbed.h"
+#include "TextLCD.h"
+
+BusOut r(D8,D9,D10,D11);
+BusIn c(D12,D13,D14,D15);
+DigitalOut motor(D7);
+TextLCD lcd(D2,D3,A2,A3,A4,A5); // rs, e, d4-d7
+
+int main() {
+     while(1){
+         lcd.cls();
+         int c1='0';int c2='6';int c3='9';
+         int T1='0';
+         int T2='0';
+         int T3='0';
+         int val=1;
+                 val=1;
+                 while(val){
+                 lcd.printf("Contrasena\n");wait(0.1);lcd.cls();
+                 for (int i=0; i<4;i++){
+                     r=1<<i;
+                     switch(c){//switch 1
+                        case 0x01:
+                            switch(r){
+                                case 0x01:
+                                    T1='1';lcd.printf("1\n");wait(0.5);lcd.cls();val=0;break;//1
+                                case 0x02:
+                                    T1='4';lcd.printf("4\n");wait(0.5);lcd.cls();val=0;break;//4
+                                case 0x04:
+                                    T1='7';lcd.printf("7\n");wait(0.5);lcd.cls();val=0;break;//7
+                                case 0x08:
+                                    wait(0.1);break; //asterisco
+                            }        
+                            break;
+                        case 0x02:
+                            switch(r){
+                                case 0x01:
+                                    T1='2';lcd.printf("2\n");wait(0.5);lcd.cls();val=0;break;//2
+                                case 0x02:
+                                    T1='5';lcd.printf("5\n");wait(0.5);lcd.cls();val=0;break;//5
+                                case 0x04:
+                                    T1='8';lcd.printf("8\n");wait(0.5);lcd.cls();val=0;break;//8
+                                case 0x08:
+                                    T1='0';lcd.printf("0\n");wait(0.5);lcd.cls();val=0;break; //0
+                            }  
+                            break;
+                        case 0x04:
+                            switch(r){
+                                case 0x01:
+                                    T1='3';lcd.printf("3\n");wait(0.5);lcd.cls();val=0;break;//3
+                                case 0x02:
+                                    T1='6';lcd.printf("6\n");wait(0.5);lcd.cls();val=0;break;//6
+                                case 0x04:
+                                    T1='9';lcd.printf("9\n");wait(0.5);lcd.cls();val=0;break;//9
+                                case 0x08:
+                                    wait(0.1);break; //#
+                            } 
+                            break;
+                        case 0x08:
+                            switch(r){
+                                case 0x01:
+                                    wait(0.1);break;//A
+                                case 0x02:
+                                    wait(0.1);break;//B
+                                case 0x04:
+                                    wait(0.1);break;//C
+                                case 0x08:
+                                    wait(0.1);break; //D
+                            } //end switch2
+                            break;
+                        default:
+                            wait(0.001);
+                            break;
+                    }//end switch1
+            }//end for
+         }//end while val
+         
+         int val2=1;
+                 val2=1;
+                 while(val2){
+                 for (int i=0; i<4;i++){
+                     r=1<<i;
+                     switch(c){//switch 1
+                        case 0x01:
+                            switch(r){
+                                case 0x01:
+                                    T2='1';lcd.printf("1\n");wait(0.5);lcd.cls();val2=0;break;//1
+                                case 0x02:
+                                    T2='4';lcd.printf("4\n");wait(0.5);lcd.cls();val2=0;break;//4
+                                case 0x04:
+                                    T2='7';lcd.printf("7\n");wait(0.5);lcd.cls();val2=0;break;//7
+                                case 0x08:
+                                    wait(0.1);break; //asterisco
+                            }        
+                            break;
+                        case 0x02:
+                            switch(r){
+                                case 0x01:
+                                    T2='2';lcd.printf("2\n");wait(0.5);lcd.cls();val2=0;break;//2
+                                case 0x02:
+                                    T2='5';lcd.printf("5\n");wait(0.5);lcd.cls();val2=0;break;//5
+                                case 0x04:
+                                    T2='8';lcd.printf("8\n");wait(0.5);lcd.cls();val2=0;break;//8
+                                case 0x08:
+                                    T2='0';lcd.printf("0\n");wait(0.5);lcd.cls();val2=0;break; //0
+                            }  
+                            break;
+                        case 0x04:
+                            switch(r){
+                                case 0x01:
+                                    T2='3';lcd.printf("3\n");wait(0.5);lcd.cls();val2=0;break;//3
+                                case 0x02:
+                                    T2='6';lcd.printf("6\n");wait(0.5);lcd.cls();val2=0;break;//6
+                                case 0x04:
+                                    T2='9';lcd.printf("9\n");wait(0.5);lcd.cls();val2=0;break;//9
+                                case 0x08:
+                                    wait(0.1);break; //#
+                            } 
+                            break;
+                        case 0x08:
+                            switch(r){
+                                case 0x01:
+                                    wait(0.1);break;//A
+                                case 0x02:
+                                    wait(0.1);break;//B
+                                case 0x04:
+                                    wait(0.1);break;//C
+                                case 0x08:
+                                    wait(0.1);break; //D
+                            } //end switch2
+                            break;
+                        default:
+                            wait(0.001);
+                            break;
+                    }//end switch1
+            }//end for
+         }//end while val 2
+         
+         int val3=1;
+                 val3=1;
+                 while(val3){
+                 for (int i=0; i<4;i++){
+                     r=1<<i;
+                     switch(c){//switch 1
+                        case 0x01:
+                            switch(r){
+                                case 0x01:
+                                    T3='1';lcd.printf("1\n");wait(0.5);lcd.cls();val3=0;break;//1
+                                case 0x02:
+                                    T3='4';lcd.printf("4\n");wait(0.5);lcd.cls();val3=0;break;//4
+                                case 0x04:
+                                    T3='7';lcd.printf("7\n");wait(0.5);lcd.cls();val3=0;break;//7
+                                case 0x08:
+                                    wait(0.1);break; //asterisco
+                            }        
+                            break;
+                        case 0x02:
+                            switch(r){
+                                case 0x01:
+                                    T3='2';lcd.printf("2\n");wait(0.5);lcd.cls();val3=0;break;//2
+                                case 0x02:
+                                    T3='5';lcd.printf("5\n");wait(0.5);lcd.cls();val3=0;break;//5
+                                case 0x04:
+                                    T3='8';lcd.printf("8\n");wait(0.5);lcd.cls();val3=0;break;//8
+                                case 0x08:
+                                    T3='0';lcd.printf("0\n");wait(0.5);lcd.cls();val3=0;break; //0
+                            }  
+                            break;
+                        case 0x04:
+                            switch(r){
+                                case 0x01:
+                                    T3='3';lcd.printf("3\n");wait(0.5);lcd.cls();val3=0;break;//3
+                                case 0x02:
+                                    T3='6';lcd.printf("6\n");wait(0.5);lcd.cls();val3=0;break;//6
+                                case 0x04:
+                                    T3='9';lcd.printf("9\n");wait(0.5);lcd.cls();val3=0;break;//9
+                                case 0x08:
+                                    wait(0.1);break; //#
+                            } 
+                            break;
+                        case 0x08:
+                            switch(r){
+                                case 0x01:
+                                    wait(0.1);break;//A
+                                case 0x02:
+                                    wait(0.1);break;//B
+                                case 0x04:
+                                    wait(0.1);break;//C
+                                case 0x08:
+                                    wait(0.1);break; //D
+                            } //end switch2
+                            break;
+                        default:
+                            wait(0.001);
+                            break;
+                    }//end switch1
+            }//end for
+         }//end while val 3
+                
+         for(int k=0;k<5;k++){  //adorno
+             lcd.printf("*******\n");wait(0.2);lcd.cls();
+             lcd.printf(" \n");wait(0.2);lcd.cls();
+             }
+        
+        lcd.printf(" %c %c %c\n", T1, T2, T3);wait(1);lcd.cls(); //mostrando contraseña
+           
+        //int c1=contra[0];int c2=contra[1];int c3=contra[2];     
+        if(T1==c1 && T2==c2 && T3==c3){
+            lcd.printf("O\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("SO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("ESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("CESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("CCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf(" ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("  ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("   ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("    ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("     ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("      ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("       ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("        ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("         ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("          ACCESO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("           ACCES\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("            ACCE\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("             ACC\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("              AC\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("               A\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf(" \n");wait(0.2);lcd.cls();            
+            motor=1;
+            wait(2);
+            motor=0;
+        }
+        else{
+            lcd.printf("O\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("DO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("ADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("GADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("EGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("NEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("ENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf(" DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("  DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("   DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("    DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("     DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("      DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("       DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("        DENEGADO\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("         DENEGAD\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("          DENEGA\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("           DENEG\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("            DENE\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("             DEN\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("              DE\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.001);lcd.cls();
+            lcd.printf("               D\n");wait(0.2);lcd.cls();
+            lcd.printf(" \n");wait(0.2);lcd.cls();
+            NVIC_SystemReset();
+        }
+        
+     }  //end while (1)
+}//end int