There are several electronic devices which require a security lock for their protection. This article describes a way to build an electronic lock with a four-digit password. A keypad, interfaced with 8051 microcontroller (AT89C51), is used to enter the password. The password and its status are displayed on an LCD screen.
A 4×3 matrix keypad and a 16×2 LCD have been used here. Keypad and LCD are very commonly used input & output devices, respectively. A four digit predefined password is specified in the microcontroller AT89C51‘s program. If the entered password from keypad matches with this password, then the lock opens and a message is displayed on LCD. Also an output pin is made high to be used for further purpose.
Project Source Code
###
//Program to make a simple code lock. The default password is 3907. #include<reg51.h> #define port P1 #define dataport P2 #define key P0 #define sec 100 sbit rs = port^0; sbit rw = port^1; sbit en = port^2; sbit col1=key^4; sbit col2=key^5; sbit col3=key^6; sbit row1=key^0; sbit row2=key^1; sbit row3=key^2; sbit row4=key^3; sbit lock_output=P0^7; int check=0; int digit[4]={0,0,0,0}; int dig_one=3; int dig_two=9; int dig_three=0; int dig_four=7; int i,count=0; void delay(unsigned int msec) //Time delay function { int i,j ; for(i=0;i<msec;i++) for(j=0;j<1275;j++); } void lcd_cmd(unsigned char item) //Function to send command to LCD { dataport = item; rs= 0; rw=0; en=1; delay(1); en=0; return; } void lcd_data(unsigned char item) // Function to send data to LCD { dataport = item; rs= 1; rw=0; en=1; delay(1); en=0; return; } void lcd_data_string(unsigned char *str) // Function to send string to LCD { int i=0; while(str[i]!='