Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
8 views

Codebackup

Uploaded by

giongan342
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Codebackup

Uploaded by

giongan342
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 15

#include <REG51.

h>
#include <string.h>

sbit checkup = P0^3;


sbit checkdown = P0^4;
sbit rs = P0^5;
sbit rw = P0^6;
sbit en = P0^7;
sbit hangA = P1^3;
sbit hangB = P1^2;
sbit hangC = P1^1;
sbit hangD = P1^0;
sbit cot1 = P1^4;
sbit cot2 = P1^5;
sbit cot3 = P1^6;
sbit Buzzer1 = P1^7;
sbit Buzzer2 = P0^2;
sbit In1 = P3^5;
sbit In2 = P3^6;
sbit En1 = P3^7;

#define lcd_data P2

unsigned int lannhan, m;


unsigned char demlan;
unsigned char pass[10], id[20];
unsigned char test;

void setup1();
void delay(unsigned int count);
unsigned char keypad();
void lcd_char(unsigned char da_ta);
void lcd_cmd(unsigned char da_ta);
void lcd_display(unsigned char *s);
void lcd_init();
void clear();
void opendoor();
void ISR_ex0(void);
void ISR_ex1(void);
void ISR_sc();

void main()
{
setup1();
while (1)
{
lcd_cmd(0x80);
lcd_display("Enter password");
lcd_cmd(0xc0);

for(lannhan = 1; lannhan <=5; lannhan++){


test = 1;
while(test == 1) test = keypad();

if(test == '#'){
if(lannhan == 1){
lannhan = 0;
}

if(lannhan > 1){


lannhan = lannhan - 2;
lcd_cmd(0x10);
lcd_char(' ');
lcd_cmd(0x10);
}

}else{
if(lannhan != 5){
lcd_char('*');
pass[lannhan - 1] = test;
}
if(lannhan == 5){
if(test != '*') lannhan = 4;
}
}

}
pass[5] = '\0';
lcd_cmd(0x01);
lcd_cmd(0x80);
if(0 == strcmp("1611",pass) ){
opendoor();
}else{
demlan++;
lcd_display("Wrong password!");
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
delay(100);
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
lcd_cmd(0xc0);
lcd_display("Wrong ");
lcd_char(demlan);
lcd_display(" time");
}
clear();
if(demlan == '3'){
delay(2000);
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("Lock door");
Buzzer1 = 1;
delay(200);
Buzzer1 = 0;
delay(200);
Buzzer1 = 1;
delay(200);
Buzzer1 = 0;
delay(200);
Buzzer1 = 1;
delay(200);
Buzzer1 = 0;
while(checkup);
delay(5);
while(checkup);
delay(5);
while(checkup);
delay(5);
while(checkup);
delay(5);
}

delay(1000);
lcd_cmd(0x01);
}
}

//Function

void setup1(){
In1 = In2 = En1 = 0;
Buzzer1 = 0;
IT0 = IT1 = 1;
TMOD = 0x20;
TH1 = TL1=0xfd;
SCON = 0x50;
TR1 = 1;
IE = 0x95;
m = 0;
lcd_init();
demlan = '0';
}

void clear(){
unsigned int j;
for(j=0; j<10; j++){
pass[j] = '\0';
}
}

void delay(unsigned int count){


while(count){
unsigned int i = 113;
while(i>0) i--;
count--;
}
}
unsigned char keypad(){
cot1 = cot2 = cot3 = 1;

hangA = 0;
hangB = hangC = hangD =1;
if(cot1==0){
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
return '1';
} else if(cot2==0) {
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
return '2';
} else if(cot3==0) {
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
return '3';
}

hangB = 0;
hangA = hangC = hangD =1;
if(cot1==0){
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
return '4';
} else if(cot2==0) {
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
return '5';
} else if(cot3==0) {
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
return '6';
}

hangC = 0;
hangA = hangB = hangD =1;
if(cot1==0){
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
return '7';
} else if(cot2==0) {
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
return '8';
} else if(cot3==0) {
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
return '9';
}

hangD = 0;
hangA = hangB = hangC =1;
if(cot1==0){
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
while(cot1==0);
delay(5);
return '*';
} else if(cot2==0) {
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
while(cot2==0);
delay(5);
return '0';
} else if(cot3==0) {
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
while(cot3==0);
delay(5);
return '#';
}
return 1;
}

void lcd_char(unsigned char da_ta){


lcd_data = da_ta;
rs = 1;
rw = 0;
en = 1;
delay(10);
en = 0;
}

void lcd_cmd(unsigned char da_ta){


lcd_data = da_ta;
rs = 0;
rw = 0;
en = 1;
delay(10);
en = 0;
}
void lcd_display(unsigned char *s){
while(*s){
lcd_char(*s++);
}
}

void lcd_init(){
lcd_cmd(0x38);
lcd_cmd(0x0e);
lcd_cmd(0x01);
lcd_cmd(0x06);
lcd_cmd(0x0c);
lcd_cmd(0x80);
}

void opendoor(){
demlan = '0';
lcd_display("Door is opened");
Buzzer1 = 1;
delay(500);
Buzzer1 = 0;
En1 = 1;
In1 = 1;
In2 = 0;
while(checkup);
delay(5);
while(checkup);
delay(5);
while(checkup);
delay(5);
while(checkup);
delay(5);
while(checkup);
delay(5);
In1 = In2 = En1 = 0;
}

void ISR_ex0(void) interrupt 0


{
lcd_cmd(0x01);
opendoor();
delay(2000);
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("Enter password");
lcd_cmd(0xc0);
demlan = '0';
lannhan = 1;
}

void ISR_ex1(void) interrupt 2


{
lcd_cmd(0x01);
lcd_display("Door is closing");
En1 = 1;
In1 = 0;
In2 = 1;
while(checkdown);
delay(5);
while(checkdown);
delay(5);
while(checkdown);
delay(5);
while(checkdown);
delay(5);
while(checkdown);
delay(5);
In1 = In2 = En1 = 0;
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("Enter password");
lcd_cmd(0xc0);
demlan = '0';
}

void ISR_sc() interrupt 4


{
if(RI==1 && m ==0){
id[m] = SBUF; //Received data is stored into the
a variable123456789102
RI = 0;
for(m=1; m<12; m++) {
while(RI==0);
id[m] = SBUF;
RI=0;
}
id[12] = '\0';
lcd_cmd(0x01);
lcd_cmd(0x80);
if(0 == strcmp(id, "123456789101")){ //test value
123456789102
demlan = '0';
lcd_display("Door is opened");
lcd_cmd(0xc0);
lcd_display("Van An");
m = 0;
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
delay(100);
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
En1 = 1;
In1 = 1;
In2 = 0;
while(checkup);
In1 = In2 = En1 = 0;
}else{
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("Wrong RFID");
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
delay(100);
Buzzer1 = 1;
delay(100);
Buzzer1 = 0;
lcd_cmd(0xc0);
lcd_display("Outsider");
m = 0;
delay(2000);
}
lcd_cmd(0x01);
lcd_cmd(0x80);
lcd_display("Enter password");
lcd_cmd(0xc0);
demlan = '0';
lannhan = 1;
RI = 0;
delay(50);
RI = 0;
}else TI = 0;
}

You might also like