Basic Level     Skills: Not specified    
Author email
[email protected]
Author website


Project tested and working perfectly

Digital Code Lock with LCD and Keypad using AT89C2051

A Brief Description:
This project is written in C language. Its a simple project with efficient hacking prevention from Brute Force etc. The basic user lock is of 5 Digits and Master Lock is of 10 digits so its not easy for an intruder to break the lock unless you keep the code simple.
The input is taken from a 4x3 Keypad (please see the schematic for more information) and Display the user input on a 2x16 LCD. A pin is assigned as output for activating and deactivating the lock. For demonstration i have connected an LED to that pin.

User Side working:
The user has two options either he/she can use its own 5 digit code or use the default 5 digit code. If user has to do setup his own code, then he has to enter "12345" and press '#'. After this.. controller will ask for 10 Digit master password which is preprogrammed in the controller. Entering master lock, user can enter the new 5 digit code for the lock and press '#' to save it.

Using the Keypad:
Keypad has 12 keys (4x3) starting from 1,2,3,4,5,6,7,8,9,*,0,# (please see the schematic for layout). Numeric keys are used for entering numbers. '*' is used as the Cancel key and '#' is used as the Enter key.

Download File Information:
LCD.C - 4-Bit LCD Drivers
LCD.H - LCD function prototypes and other declerations
Lock.C - code for lock functioning
LOCK.H - lock function declerations
KEYPAD.C - Keypad drivers
KEYPAD.H - Function declerations
DELAY.C - Delay Functions
DELAY.H - Function Prototypes only
MAIN.C - Main function!
Digital Code Lock Schematic - PDF file of orcad schematic

If any problem Please post in the forum
Tags Digital Code LockDigital door lock projectdoor lock keypadprogrammable door lock8051 door lock project8051 digital lock

20.16 kB





17 Jul 2014: 10:32 AM
Sir iam unable to run the code in proteus....after displaying "Enter Lock Code : " it is not taking the input from keypad and is doing nothing.
help me.
thanku and regards.
21 Jul 2014: 05:20 AM
Geethika, can you post your problem in forum with proteus schematic?
28 Aug 2014: 16:38 PM
can you please tell me what type of lock activator i can use in place of led???
29 Aug 2014: 08:31 AM
please can you tell me which type of lock activator should i connect in place of LED? can i use selenoid lock actuator
30 Aug 2014: 16:11 PM
You can make use of Solenoid lock.
12 Sep 2014: 06:02 AM
Sir iam unable to run the code(lock.hex) in proteus....after displaying "Enter Lock Code : " it is not taking the input from keypad and is doing nothing.
help me.
16 Sep 2014: 06:03 AM
sorry but at89c2051 have <5kb flash. is it possible to install the lock.hex on this ic ? sorry for my bad english.
17 Sep 2014: 05:02 AM
@Vikshit, Check your keypad connections. Try swapping Rows and Columns. If you still face issue post in forum.

@breadman, hex file always have more size than the actual binary code as hex is in ascii. Programmer software converts hex to binary before loading. You should not have any issue installing hex file in IC.
17 Sep 2014: 05:49 AM
ok, thanks for explaining. what compiler are you using for compiling main.c ?
01 Oct 2014: 06:42 AM
Code is written for Keil.
06 Oct 2014: 10:20 AM
Thank you very much sir. The program was running very well on at89s51.
12 Nov 2014: 18:41 PM
the lcd is not showing the pasword i am entering plus is not doing anything after that
14 Nov 2014: 05:16 AM
@FARYAL, check your keypad connections. if you have any doubts please post in forum.
27 Dec 2014: 16:31 PM
can we use this code in AT89S52 instead of AT89C2051 ....
06 Jan 2015: 04:39 AM
@sufyan, Yes you can use AT89S52. Just keep the same port pins.
12 Feb 2015: 11:16 AM
sir plz send the source code to my e mail.plzzzz
13 Feb 2015: 04:45 AM
@haishbhat, please use the download button.
25 Mar 2015: 12:40 PM
sir i want abstract for digital code lock using at89c2089.
29 Mar 2015: 19:31 PM
@vinothkumar, I don't think it will be hard to write few words on the project as simple as a digital lock. Please do prepare an abstract and share it with us. We will add it to this project as your contribution.
09 Apr 2015: 01:40 AM
hello sir can u please help me i need proteus code for this digital code lock
vl u pls mail me
10 Apr 2015: 18:22 PM
@Srikar, code is provided in the zip file. there is no separate code for proteus. Post in forum for further questions.
26 Jul 2015: 01:40 AM
Should I just be burning the main.c function onto the microcontroller? What are the other files for?
24 Aug 2015: 02:34 AM
could you pleas help me to create this project for our final grading @ AT89C2051
27 Aug 2015: 07:16 AM
@krizza, Please download the project and build it. I have also provided hex file incase you do not have compiler.
22 Sep 2015: 08:14 AM
admin sir please send me the source code of password based door lock system...i m trying from 2 month. still not get success on it.
so please help me sir
29 Sep 2015: 21:53 PM
@tabrej, Click on the download file button to get the zip file containing code and schematic. Post in forum if you need any help.
(Required; Min length 5)
(Required; will not be displayed)


Tue Oct 06 2015, 08:22 AM
HI you looking for ideas or you have solution
Fri Oct 02 2015, 03:39 PM
poojitha: projects on wireless communication between two microcontrollers
Thu Oct 01 2015, 04:38 PM
hey! i wanted to simulate my circit using proteus. i have a sugar cube relay in my circuit....but i dont know which one is that in the device libraries of the software. any help? thankyou.
Tue Sep 29 2015, 09:40 PM
@Michal, that rocket is too heavy for itself and trust is not enough unless afterburners are fed with fuel properly.
Sat Sep 26 2015, 08:19 PM
Hello, its possible to make a amateur rocket with this engine, or something simillar, which be able to flight?
Thu Sep 24 2015, 10:38 AM
Ir Switch sir.
Wed Sep 23 2015, 01:10 AM
@engr1931 which project ?
Tue Sep 22 2015, 11:57 AM
Hello sir, is it ok to use 12.000MHz oscillator in IRswitch, because the requirement written in the post is 11.059MHz. And i use PIC1018 as an Ir receiver
Mon Sep 21 2015, 04:15 PM
Hello sir, your blog is kind of helpful for us especially students. May I know do you have the coding for decimal to binary using proteus 8. My mini project is about to convert decimal to binary just like a calculator. The output is LCD. A bit confusing is the decimal to binary coding on proteus 8. pls help thanks.
Sun Sep 20 2015, 09:08 PM
Have you searched our Embedded GSM Development and GSM and CDMA Discussion forums ?



Tue Oct 06 2015, 01:02 PM
Fri Oct 02 2015, 03:28 PM
Sat Sep 26 2015, 01:26 AM
Fri Sep 25 2015, 10:57 AM
Wed Sep 23 2015, 08:13 PM
Wed Sep 16 2015, 04:55 AM
Mon Sep 14 2015, 03:06 PM
Fri Sep 11 2015, 06:03 AM


Guests: 54, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 37698
Newest member: praveenraoms
Forum Activity
praveenraoms Avatar
Posted By praveenraoms
Tue Oct 06 2015, 01:06 PM
hi i want to know the code to access the geographi...
sachinmm Avatar
Posted By sachinmm
Wed Sep 30 2015, 08:54 AM
how to used polling method in this?? my code is co...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:39 PM
__irq is just compiler directive to wrap IRQ routi...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:36 PM
The comment does say the time values as per the th...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:33 PM
are you testing this on Proteus? or MplabX simulat...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:31 PM
[Topic moved to ARM Development Forum]
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:29 PM
start with reading datasheet. SPI interface on LPC...
ajay_bhargav Avatar
Posted By ajay_bhargav
Tue Sep 29 2015, 09:27 PM
I am not sure you've solved it or not but "USARTRe...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Sep 29 2015, 06:31 PM
i am confused in "__irq" it is uesd??sachin...
sachinmm Avatar
Posted By sachinmm
Tue Sep 29 2015, 11:11 AM
my I2C.c file=>>/*********************************...