We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
#include <REGX51.H>#include "string.H" //for strcmp
#define keypad P1#define LCD_dat P2
sbit rs =P3^0;sbit en =P3^1;
sbit device =P3^2; // electric bilb
void dely(unsigned int dly);void lcd_cmd(unsigned char ch);void lcd_data(unsigned char ch);void lcd_str(unsigned char *str);char get_keypad_key(void);
void main(void){ char KeyVal =0; unsigned int KeyCnt =0; unsigned int CmpPassword =0; char DefaultPassword[5]="6666"; char EnteredPassword[5]; device = 0; lcd_cmd(0x38); lcd_cmd(0x0C); lcd_cmd(0x06); lcd_cmd(0x01); while(1) { lcd_cmd(0x80); lcd_str("Enter Password: "); KeyVal = get_keypad_key(); if(KeyVal != 0) { EnteredPassword[KeyCnt] = KeyVal; lcd_cmd(0xc0+KeyCnt); lcd_data('*'); KeyCnt = KeyCnt + 1; } if(KeyCnt == 4) { lcd_cmd(0x01); KeyCnt =0; //6666 CmpPassword = strcmp(DefaultPassword,EnteredPassword); if(CmpPassword == 0) { device = ~device; // switching on & off lcd_cmd(0x80); lcd_str("Correct Password"); dely(500); } else { lcd_cmd(0x80); lcd_str("Wrong Password"); dely(500); } } }}
char get_keypad_key(void){ char key_val =0; keypad = 0xFE; //ROW1 =0 if(keypad == 0xee) // button 1 { key_val = '1'; } if(keypad == 0xde) // button 2 { key_val = '2'; } if(keypad == 0xbe) // button 3 { key_val = '3'; } keypad = 0xFD; //ROW2 =0 if(keypad == 0xED) // button 4 { key_val = '4'; } if(keypad == 0xDD) // button 5 { key_val = '5'; } if(keypad == 0xBD) // button 6 { key_val = '6'; } keypad = 0xFB; //ROW3 =0 if(keypad == 0xEB) // button 7 { key_val = '7'; } if(keypad == 0xDB) // button 8 { key_val = '8'; } if(keypad == 0xBB) // button 9 { key_val = '9'; } keypad = 0xF7; //ROW3 =0 if(keypad == 0xE7) // button * { key_val = '*'; } if(keypad == 0xD7) // button 0 { key_val = '0'; } if(keypad == 0xB7) // button # { key_val = '#'; } return key_val;}
void lcd_str(unsigned char *str){ unsigned int loop =0; for(loop =0; str[loop]!= '\0'; loop++) { lcd_data(str[loop]); }}void lcd_data(unsigned char ch){ LCD_dat = ch; rs = 1; // data en = 1; dely(10); en = 0;}
void lcd_cmd(unsigned char ch){ LCD_dat = ch; rs = 0; // cmd en = 1; dely(10); en = 0;}void dely(unsigned int dly){ unsigned int loop =0; unsigned int delay_gen =0; for(loop =0; loop < dly; loop++) for(delay_gen =0; delay_gen < 1000; delay_gen++); /* delay */}
You need to show the full build output - you can copy & paste the text from the 'Build Output' window.