Ticker and LCD

Dependencies:   TextLCD mbed

Fork of 4_1bueno by Israel Hernández Orozco

41prueba.cpp

Committer:
hdzoisrael
Date:
2018-09-26
Revision:
0:df5d1a705b6d

File content as of revision 0:df5d1a705b6d:

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