0% found this document useful (0 votes)
72 views

Password Circuit Breaker Code

This document contains the code for an Arduino-based password protected lock system. It defines pins for an LCD display, keypad, buzzer and relay. Functions are included to initialize the LCD, check the keypad input, and compare the entered password to the stored password. The main loop prompts the user to enter a 4 digit password, checks each digit, and either unlocks the relay if correct or sounds the buzzer if incorrect after 3 tries.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

Password Circuit Breaker Code

This document contains the code for an Arduino-based password protected lock system. It defines pins for an LCD display, keypad, buzzer and relay. Functions are included to initialize the LCD, check the keypad input, and compare the entered password to the stored password. The main loop prompts the user to enter a 4 digit password, checks each digit, and either unlocks the relay if correct or sounds the buzzer if incorrect after 3 tries.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

/* Code copyright to “Circuits Bazaar” for Educational purposes .

you can’t use it for commercial


purpose */

#include<reg51.h>

#define port P1

#define dataport P2

#define key P3

#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 buzzer=P1^3;

sbit lock_output=P1^4;

sbit wrong_pass= P1^5;

sbit relay = P1^6;


int check=0;

int digit[4]={0,0,0,0};

int dig_one=4;

int dig_two=4;

int dig_three=3;

int dig_four=0;

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]!='\0')

lcd_data(str[i]);

i++;

//delay(10);

return;
}

void lcd(unsigned char str[10]) // Function to send string to LCD

lcd_cmd(0x38);

lcd_cmd(0x0e);

lcd_data_string(str);

void ans()

if(check>3)

lcd_cmd(0x01);

lcd_cmd(0x82);

lcd_data_string(" LOCK OPEN");

lock_output=1;

wrong_pass=0;

relay=~relay;

else

lcd_cmd(0x01);

lcd_cmd(0x81);
lcd_data_string("WRONG PASSWORD");

lock_output=0;

wrong_pass=1;

count++;

delay(750);

void code_check() // Function to check password

if(i<=3 )

switch((i+1))

case 1: {

if(dig_one==digit[0])

check=check+1;

break;

case 2: {

if(dig_two==digit[1])
{

check=check+1;

break;

case 3: {

if(dig_three==digit[2])

check=check+1;

break;

case 4: {

if(dig_four==digit[3])

check=check+1;

break;

if(i==3)

{
ans();

void display(int a) //Display function

switch(a)

case 1:{

lcd_data('1');

delay(30);

digit[i]=1;

code_check();

break;

case 2:{

lcd_data('2');

delay(30);

digit[i]=2;

code_check();

break;

case 3:{

lcd_data('3');
delay(30);

digit[i]=3;

code_check();

break;

case 4:{

lcd_data('4');

delay(30);

digit[i]=4;

code_check();

break;

case 5:{

lcd_data('5');

delay(30);

digit[i]=5;

code_check();

break;

case 6:{

lcd_data('6');

delay(30);

digit[i]=6;

code_check();

break;
}

case 7:{

lcd_data('7');

delay(30);

digit[i]=7;

code_check();

break;

case 8:{

lcd_data('8');

delay(30);

digit[i]=8;

code_check();

break;

case 9:{

lcd_data('9');

delay(30);

digit[i]=9;

code_check();

break;

case 0:{

lcd_data('0');

delay(30);
digit[i]=0;

code_check();

break;

void check_col1()

row1=row2=row3=row4=1;

row1=0;

if(col1==0)

display(1);

row1=1;

row2=0;

if(col1==0)

display(4);

row2=1;

row3=0;

if(col1==0)

display(7);

row3=1;

row4=0;

if(col1==0)

{
row4=1;

void check_col2()

row1=row2=row3=row4=1;

row1=0;

if(col2==0)

display(2);

row1=1;

row2=0;

if(col2==0)

display(5);

row2=1;

row3=0;

if(col2==0)

display(8);

row3=1;

row4=0;

if(col2==0)

display(0);

row4=1;

}
void check_col3()

row1=row2=row3=row4=1;

row1=0;

if(col3==0)

display(3);

row1=1;

row2=0;

if(col3==0)

display(6);

row2=1;

row3=0;

if(col3==0)

display(9);

row3=1;

row4=0;

if(col3==0)

row4=1;

void main()

{
lock_output=wrong_pass =0;

buzzer=1;

lcd_cmd(0x01);

col1=col2=col3=1;

relay=0;

lcd_cmd(0x38);

lcd_cmd(0x0C);

lcd_cmd(0x83);

lcd("WELCOME");

delay(500);

while(1)

lcd_cmd(0x01); //Clear LCD screen

lock_output=0;

wrong_pass=0;

lcd_cmd(0x81); // Set cursor on position first of first line

lcd("ENTER PASSWORD");

check=0;

row1=row2=row3=row4=0;

while(col1==1 && col2==1 && col3==1);

for(i=0;i<4;i++)

delay(100);
lcd_cmd(0xc4+i);

row1=row2=row3=row4=0;

while(col1==1 && col2==1 && col3==1);

row1=row2=row3=row4=0;

if(col1==0)

check_col1();

else

if(col2==0)

check_col2();

else

if(col3==0)

check_col3();

if(count==4)

lcd_cmd(0x01);

lcd_cmd(0x86);

lcd("SORRY");

lcd_cmd(0xc1);

lcd("NO MORE TRIALS");

buzzer=0;

while(1);

You might also like