pasword

Dependencies:   Keypadlatest TextLCD

Committer:
mijimy
Date:
Thu Nov 16 04:41:13 2017 +0000
Revision:
0:819b4e0e0ae6
password keypad lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mijimy 0:819b4e0e0ae6 1
mijimy 0:819b4e0e0ae6 2 #include "mbed.h"
mijimy 0:819b4e0e0ae6 3 #include "Keypad.h"
mijimy 0:819b4e0e0ae6 4 #include "TextLCD.h"
mijimy 0:819b4e0e0ae6 5 #include "string.h"
mijimy 0:819b4e0e0ae6 6 TextLCD display(D8, D9, D4, D5, D6, D7); // rs, e, d4-d7
mijimy 0:819b4e0e0ae6 7
mijimy 0:819b4e0e0ae6 8 char kpdLayout[4][4] = {{'1' ,'2' ,'3' ,'A'}, //row0
mijimy 0:819b4e0e0ae6 9 {'4' ,'5' ,'6' ,'B'}, //row1
mijimy 0:819b4e0e0ae6 10 {'7' ,'8' ,'9' ,'C'}, //row2
mijimy 0:819b4e0e0ae6 11 {'*' ,'0' ,'#' ,'D'}}; //row3
mijimy 0:819b4e0e0ae6 12
mijimy 0:819b4e0e0ae6 13 Keypad kpad(PB_14, PB_15, PB_1, PB_2, PB_11, PB_12, PA_11, PA_12);
mijimy 0:819b4e0e0ae6 14 char password[20];
mijimy 0:819b4e0e0ae6 15 const char code1[]="12345678";
mijimy 0:819b4e0e0ae6 16 int main() {
mijimy 0:819b4e0e0ae6 17 char key;
mijimy 0:819b4e0e0ae6 18 int released = 1,count=0;
mijimy 0:819b4e0e0ae6 19 display.locate(0,0);
mijimy 0:819b4e0e0ae6 20 display.printf("insert password");
mijimy 0:819b4e0e0ae6 21 while(1){
mijimy 0:819b4e0e0ae6 22 key = kpad.ReadKey(); //read the current key pressed
mijimy 0:819b4e0e0ae6 23 if(key == '\0')
mijimy 0:819b4e0e0ae6 24 released = 1; //set the flag when all keys are released
mijimy 0:819b4e0e0ae6 25 if((key != '\0') && (released == 1))
mijimy 0:819b4e0e0ae6 26 { //if a key is pressed AND previous key was released
mijimy 0:819b4e0e0ae6 27 if(key!='#')
mijimy 0:819b4e0e0ae6 28 { password[count]=key; // add pasword
mijimy 0:819b4e0e0ae6 29 password[count+1]='\0'; // put end of password
mijimy 0:819b4e0e0ae6 30 count++; //counter
mijimy 0:819b4e0e0ae6 31 if(count>8) //max count
mijimy 0:819b4e0e0ae6 32 count=0;
mijimy 0:819b4e0e0ae6 33 display.cls();
mijimy 0:819b4e0e0ae6 34 display.locate(0,0);
mijimy 0:819b4e0e0ae6 35 display.printf("insert password");
mijimy 0:819b4e0e0ae6 36 display.locate(2,1);
mijimy 0:819b4e0e0ae6 37 display.printf("pass:%s",password);
mijimy 0:819b4e0e0ae6 38 }
mijimy 0:819b4e0e0ae6 39 else if(key=='#')
mijimy 0:819b4e0e0ae6 40 { bool accept=1;
mijimy 0:819b4e0e0ae6 41 for(int i=0;password[i]!='\0';i++)
mijimy 0:819b4e0e0ae6 42 { if(password[i]!=code1[i])
mijimy 0:819b4e0e0ae6 43 { accept=0;
mijimy 0:819b4e0e0ae6 44 break;
mijimy 0:819b4e0e0ae6 45 }
mijimy 0:819b4e0e0ae6 46 }
mijimy 0:819b4e0e0ae6 47 display.cls();
mijimy 0:819b4e0e0ae6 48 if(accept==0)
mijimy 0:819b4e0e0ae6 49 { display.locate(0,0);
mijimy 0:819b4e0e0ae6 50 display.printf("wrong password ");
mijimy 0:819b4e0e0ae6 51 }
mijimy 0:819b4e0e0ae6 52 else
mijimy 0:819b4e0e0ae6 53 { display.locate(0,0);
mijimy 0:819b4e0e0ae6 54 display.printf("accept password");
mijimy 0:819b4e0e0ae6 55 }
mijimy 0:819b4e0e0ae6 56 count=0; // reset password counter
mijimy 0:819b4e0e0ae6 57 }
mijimy 0:819b4e0e0ae6 58
mijimy 0:819b4e0e0ae6 59
mijimy 0:819b4e0e0ae6 60
mijimy 0:819b4e0e0ae6 61 released = 0; //clear the flag to indicate that key is still pressed
mijimy 0:819b4e0e0ae6 62 }
mijimy 0:819b4e0e0ae6 63 }
mijimy 0:819b4e0e0ae6 64 }