資源簡(jiǎn)介
LCD顯示密碼鎖,仿真加程序,89c51+1602

代碼片段和文件信息
//LCD顯示電子密碼鎖
//作者:鮑光兵
//合肥學(xué)院
//僅供參考和相互交流學(xué)習(xí)
/*主要具有如下功能:
#?)?設(shè)置6位密碼,密碼通過(guò)鍵盤(pán)輸入,若密碼正確,則將鎖打開(kāi),初始化密碼為(111111)。
(2)?密碼可以由用戶(hù)自己修改設(shè)定(支持6位密碼),鎖打開(kāi)后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),以防止誤操作。
(3)?報(bào)警、鎖定鍵盤(pán)功能。密碼輸入錯(cuò)誤數(shù)碼顯示器會(huì)出現(xiàn)錯(cuò)誤提示,若密碼輸入錯(cuò)誤次數(shù)超過(guò)3次,蜂鳴器報(bào)警并且鎖定鍵盤(pán)。
電子密碼鎖的設(shè)計(jì)主要4×4矩陣鍵盤(pán)接口電路、密碼鎖的控制電路。
(1)?密碼輸入功能:按下一個(gè)數(shù)字鍵,一個(gè)“-”就顯示在最左邊的液晶屏上,同時(shí)將先前輸入的所有“-”向右移動(dòng)一位。
(2)?密碼清除功能:當(dāng)按下清除鍵時(shí),清除前面輸入的一個(gè)值,并可以清除所有顯示。
(3)?密碼更改功能:將輸入的值作為新的密碼。
(4)?開(kāi)鎖功能:當(dāng)按下開(kāi)鎖鍵,系統(tǒng)將輸入與密碼進(jìn)行檢查核對(duì),如果正確鎖打開(kāi),否則不打開(kāi)?/
/*****************************************/
#include?
#include?
#define?ulong?unsigned?long
#define?uint?unsigned?int
#define?uchar?unsigned?char
/*****************************************/
uchar?tempnumflagsum=0r;
/****************************************/
uchar?code?table1[]=“??welcome!(^_^)“;
uchar?code?table2[]=“0123456789ABCDEF“;
uchar?code?table3[]=“******“;
uchar?code?table4[]=“code?is?wrong!“;
uchar?code?table5[]=“you?are?right!“;
uchar?code?table6[]=“the?second?time!“;
uchar?code?table7[]=“the?last?time!“;
uchar?code?table8[]=“Input?new?code:“;
uchar?code?table9[]=“Modify?right!!!“;
uchar?code?table10[]=“password:“;
uchar?code?table11[]=“TEL:13956040525“;
uchar?code?table12[]=“??calling....“;
uchar?code?table13[]=“??????“;
uchar?code?table14[]=“Input?again:“;
uchar?code?table15[]=“Modify?error!!!“;
uchar??init_pswd[6]={111111};//初始化密碼
uchar??pswd[6]={0};
sbit?lcdrs=P2^4;
sbit?lcdrw=P2^5;
sbit?lcden=P2^6;
sbit?beep=P2^0;
/*****************************************子函數(shù)聲明*/
void?delay(uint?z);
void?init();//初始化子函數(shù)
void?write_com(uchar?com);//寫(xiě)指令子函數(shù)
void?write_data(uchar?dat1);//寫(xiě)數(shù)據(jù)子函數(shù)
void?keyscan();
void?mima();
void?mima1();
void?delete();
/************************************************液晶驅(qū)動(dòng)*/
void?init()
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void?write_com(uchar?com)
?{
lcdrs=0;
lcdrw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
?}
void?write_data(uchar?dat1)
{
lcdrs=1;
lcdrw=0;
P0=dat1;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/****************************************延遲函數(shù)*/
void?delay(uint?z)
{
uint?xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*******************************************鍵盤(pán)編碼*/
void?keyscan()
{
P3=0x7f;
temp=P3;
temp=temp&0x0f;
while(temp!=0x0f)
{
delay(5);
temp=P3;
temp=temp&0x0f;
while(temp!=0x0f)
{
temp=P3;
switch(temp)
{
case?0x7e:num=0;flag=1;
break;
case?0x7d:num=1;flag=1;
break;
case?0x7b:num=2;flag=1;
break;
case?0x77:num=3;flag=1;
break;
}
while(temp!=0x0f)
{
temp=P3;
temp=temp&0x0f;
}
}
}
P3=0xbf;
temp=P3;
temp=temp&0x0f;
while(temp!=0x0f)
{
delay(5);
temp=P3;
temp=temp&0x0f;
while(temp!=0x0f)
{
temp=P3;
switc
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????18687??2009-08-15?21:13??電子密碼鎖\mimasuo
?????文件??????10083??2009-08-15?21:24??電子密碼鎖\mimasuo.c
?????文件???????5645??2009-08-15?21:13??電子密碼鎖\mimasuo.hex
?????文件??????32930??2009-08-15?21:13??電子密碼鎖\mimasuo.LST
?????文件??????24279??2009-08-15?21:13??電子密碼鎖\mimasuo.M51
?????文件??????21919??2009-08-15?21:13??電子密碼鎖\mimasuo.OBJ
?????文件???????1294??2009-08-15?18:53??電子密碼鎖\mimasuo.Opt
?????文件????????882??2009-08-15?21:12??電子密碼鎖\mimasuo.plg
?????文件???????2063??2009-08-15?00:16??電子密碼鎖\mimasuo.Uv2
?????文件???????5115??2002-04-16?15:32??電子密碼鎖\STARTUP.A51
?????文件??????11766??2009-08-15?21:13??電子密碼鎖\STARTUP.lst
?????文件????????830??2009-08-15?21:13??電子密碼鎖\STARTUP.obj
?????文件??????82604??2009-08-15?21:06??密碼鎖\Last?Loaded?密碼鎖.DBK
?????文件??????82604??2009-09-22?00:54??密碼鎖\密碼鎖.DSN
?????文件??????13257??2009-12-29?23:28??密碼鎖\密碼鎖.DS_
?????文件????????653??2009-12-29?23:29??密碼鎖\密碼鎖.PWI
?????目錄??????????0??2009-09-06?19:03??電子密碼鎖
?????目錄??????????0??2009-12-29?23:29??密碼鎖
-----------?---------??----------?-----??----
???????????????314611????????????????????18
評(píng)論
共有 條評(píng)論