pasword
Dependencies: Keypadlatest TextLCD
main.cpp@0:819b4e0e0ae6, 2017-11-16 (annotated)
- Committer:
- mijimy
- Date:
- Thu Nov 16 04:41:13 2017 +0000
- Revision:
- 0:819b4e0e0ae6
password keypad lcd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |