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
[Pending Approval]
(Required; Min length 5)
(Required; will not be displayed)


Sat Jul 25 2015, 10:37 PM
What does the cross means? The ones from pin 7,8,9,10 of the LCD?
Fri Jul 24 2015, 09:53 AM
Thu Jul 23 2015, 01:42 PM
hi Ajay
Mon Jul 20 2015, 04:38 AM
@Rohit Biradar, I am glad my tutorial helped
Thu Jul 16 2015, 06:19 PM
Rohit Biradar
Thanks a lot publisher of this tutorial. Everybody tells about the nibble sending methods and the command set for 4-wire lcd interface. You are the first to tell me about the most important part that is resetting the lcd. This thing got me all day. Now I can sleep in peace. Thanks once again. Million thanks.
Thu Jul 16 2015, 12:24 PM
my project is related to control the door in dam. by keil program how can i control the same.
Thu Jul 16 2015, 09:12 AM
plzzz giveme more details about this project.if i want to type any words then how it will be happen bcoz no more letters are on remote.suggest about it
Sat Jul 11 2015, 09:55 AM
Abhijit Deshmukh
Wed Jul 01 2015, 05:14 PM
i am making a project of connecting 4 8051's using a can bus for which i am using mcp2515 and mcp2551.but before making it i want to ensure it works by simulating it on proteus though the two ic's mentioned above dont seem to have models in proteus so is there anyone who can help me with that
Tue Jun 30 2015, 05:24 PM
@sachinmm The 8051 timer can't do 1 second. It can do 50ms so count 20 times



Fri Jul 24 2015, 07:59 AM
Thu Jul 23 2015, 10:47 PM
Thu Jul 16 2015, 03:56 PM
Mon Jul 13 2015, 01:21 PM
Sat Jul 11 2015, 04:10 AM
Fri Jul 03 2015, 08:33 AM
Thu Jun 25 2015, 11:42 AM
Thu Jun 25 2015, 05:56 AM


Guests: 40, Members: 0 ...

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

Members: 37677
Newest member: Tanvir.
Forum Activity
Mc_Comet32 Avatar
Posted By Mc_Comet32
Sun Jul 26 2015, 05:49 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Jul 23 2015, 08:14 PM
Try this link.Basically find the tacho output pin...
seoulmak Avatar
Posted By seoulmak
Mon Jul 20 2015, 03:44 PM
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:42 AM
Ok then, check if you did not mention "LCD_ClearSc...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:41 AM
I am assuming you're talking about the small CPU f...
ajay_bhargav Avatar
Posted By ajay_bhargav
Mon Jul 20 2015, 04:36 AM
Amit Kumar Das Avatar
Posted By Amit Kumar Das
Sun Jul 19 2015, 04:17 AM
Yes they are fine. I have included everything. Una...
seoulmak Avatar
Posted By seoulmak
Fri Jul 17 2015, 08:41 AM
yes, but i need more information to connect the f...
balvant Avatar
Posted By balvant
Thu Jul 16 2015, 04:07 PM
ExperimenterUK Avatar
Posted By ExperimenterUK
Wed Jul 15 2015, 05:42 PM
Is this a project listed on this site ?