#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="Input Password:";
uchar code table1[]=" Input Error! ";
uchar code table2[]="You are welcome!";
uchar code table3[]="****** ";
uint yuanmima[6]={0x38,0x38,0x38,0x38,0x38,0x38};
uint inputmima[7];
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcden=P2^2;
sbit ledred=P2^4;
sbit ledgreen=P2^3;
sbit dianji=P2^5;
uint x,num,temp,keyscan();
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void write_com(uchar com)
{
lcdrs=0;
lcdrw=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcden=0;
lcdrs=1;
lcdrw=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
write_com(0x38);
delay(5);
write_com(0x01);
delay(5);
write_com(0x06);
delay(5);
write_com(0x0d);//0x0d 显示光标
delay(5);
}
void main()
{
uint a=0,b=0,d=0,q=0,input;
delay(5);
init();
ledred=0;
dianji=1;
ledgreen=1;
write_com(0x80);
for(x=0;x<16;x++)
{
write_data(table[x]);
delay(5);
}
write_com(0x80+0x44);
while(1)
{
if(keyscan()!=0)
{input=keyscan();
inputmima[a]=input;
a++;
write_com(0x80+0x44+b);
write_data(keyscan());
delay(500);
write_com(0x80+0x44+b);
write_data(0x2A);
num=0;
b++;
if(b>7)
{ write_com(0x80);
for(x=0;x<16;x++)
{ write_data(table1[x]);
delay(5);
}
delay(500);
break;
}
else if(input==0x23&&b<=7)
{ if(b<=6)
{ write_com(0x80);
for(x=0;x<16;x++)
{ write_data(table1[x]);
delay(5);
}
delay(500);
break;
}
if(b==7)
{ while(q<=5)
{ if(inputmima[q]==yuanmima[q])
{ d++;
}
q++;
}
if(d==6)
{
ledgreen=0;
dianji=0;
write_com(0x80);
for(x=0;x<16;x++)
{
write_data(table2[x]);
delay(5);
}
write_com(0x80+0x44);
for(x=0;x<7;x++)
{
write_data(table3[x]);
delay(5);
}
delay(5);
dianji=0;
ledgreen=0;
delay(5000);
dianji=1;
ledgreen=1;
delay(5);
break;
}
else
{
write_com(0x80);
for(x=0;x<16;x++)
{
write_data(table1[x]);
delay(5);
}
delay(500);
break;
}
}
}
else if(input==0x2A)
{
break;
}
}
}
}
uint keyscan()
{
P1=0xfe;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0) //确认是否按下
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
if(temp==0xee)
{
num=0x32;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xde)
{
num=0x31;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xbe)
{
num=0x30;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
else
{
num=0;
break;
}
while(temp!=0xf0) //松手检测
{
temp=P1;
temp=temp&0xf0;
delay(10);
}
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0) //确认是否按下
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
if(temp==0xed)
{
num=0x35;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xdd)
{
num=0x34;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xbd)
{
num=0x33;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
else
{
num=0;
break;
}
while(temp!=0xf0) //松手检测
{
temp=P1;
temp=temp&0xf0;
delay(10);
}
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0) //确认是否按下
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
if(temp==0xeb)
{
num=0x38;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xdb)
{
num=0x37;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xbb)
{
num=0x36;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
else
{
num=0;
break;
}
while(temp!=0xf0) //松手检测
{
temp=P1;
temp=temp&0xf0;
delay(10);
}
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0) //确认是否按下
{
delay(5);
temp=P1;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P1;
if(temp==0xe7)
{
num=0x2A;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xd7)
{
num=0x23;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
if(temp==0xb7)
{
num=0x39;
ledgreen=0;
delay(500);
ledgreen=1;
break;
}
else
{
num=0;
break;
}
while(temp!=0xf0) //松手检测
{
temp=P1;
temp=temp&0xf0;
delay(10);
}
}
}
return num;
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于51单片机密码电子锁+protues仿真电路图
共86个文件
pwi:14个
dsn:14个
dbk:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 18 下载量 120 浏览量
2021-08-05
16:44:13
上传
评论 6
收藏 810KB ZIP 举报
温馨提示
基于51单片机密码电子锁+protues仿真电路图(keil完整源项目+源c代码+proteus源仿真电路图)
资源推荐
资源详情
资源评论
收起资源包目录
基于51单片机密码电子锁+protues仿.zip (86个子文件)
密码电子锁
liuweishumadianzisuo.plg 168B
Last Loaded liuweishumadianzisuo.DBK 178KB
dianzisuo.uvopt 54KB
shiyanlcd.PWI 768B
dianzisuo1.PWI 768B
dianzisuo.plg 157B
shiyan3.DSN 157KB
dianzisuo1.DSN 154KB
Last Loaded dianzisuo.DBK 159KB
Last Loaded mimadianzisuo.DBK 150KB
liuweishumadianzisuo.lnp 57B
liuweishumadianzisuo 10KB
shiyan2.PWI 768B
dianzisuo.uvproj 13KB
liuweishumadianzisuo_uvproj.bak 0B
liuweishumadianzisuo_uvopt.bak 54KB
Last Loaded shiyan2.DBK 96KB
shiyan2.DSN 96KB
dianzisuo.lnp 35B
liuweishumadianzisuo.DSN 178KB
shiyanlcd.DSN 132KB
shiyan3.PWI 911B
liuweishumadianzisuo.M51 15KB
mimadianzisuo.PWI 768B
Last Loaded dianzisuo1.DBK 154KB
dianzisuo.M51 17KB
dianzisuo.PWI 768B
dianzisuo.OBJ 15KB
liuweishumadianzisuo.PWI 768B
dianzisuo1.pdsprj.Lenovo-PC.zerui.workspace 328B
dianzisuo_uvproj.bak 0B
dianzisuo 12KB
liuweishumadianzisuo.LST 10KB
dianzisuo.LST 31KB
dianzisuo.c 5KB
Last Loaded shiyanlcd.DBK 132KB
Last Loaded shiyan3.DBK 157KB
dianzisuo.hex 4KB
dianzisuo.DSN 159KB
liuweishumadianzisuo.uvopt 54KB
liuweishumadianzisuo.OBJ 13KB
mimadianzisuo.DSN 150KB
dianzisuo_uvopt.bak 54KB
基于51单片机密码电子锁+protues仿
密码电子锁
liuweishumadianzisuo.plg 168B
Last Loaded liuweishumadianzisuo.DBK 178KB
dianzisuo.uvopt 54KB
shiyanlcd.PWI 768B
dianzisuo1.PWI 768B
dianzisuo.plg 157B
shiyan3.DSN 157KB
dianzisuo1.DSN 154KB
Last Loaded dianzisuo.DBK 159KB
Last Loaded mimadianzisuo.DBK 150KB
liuweishumadianzisuo.lnp 57B
liuweishumadianzisuo 10KB
shiyan2.PWI 768B
dianzisuo.uvproj 13KB
liuweishumadianzisuo_uvproj.bak 0B
liuweishumadianzisuo_uvopt.bak 54KB
Last Loaded shiyan2.DBK 96KB
shiyan2.DSN 96KB
dianzisuo.lnp 35B
liuweishumadianzisuo.DSN 178KB
shiyanlcd.DSN 132KB
shiyan3.PWI 911B
liuweishumadianzisuo.M51 15KB
mimadianzisuo.PWI 768B
Last Loaded dianzisuo1.DBK 154KB
dianzisuo.M51 17KB
dianzisuo.PWI 768B
dianzisuo.OBJ 15KB
liuweishumadianzisuo.PWI 768B
dianzisuo1.pdsprj.Lenovo-PC.zerui.workspace 328B
dianzisuo_uvproj.bak 0B
dianzisuo 12KB
liuweishumadianzisuo.LST 10KB
dianzisuo.LST 31KB
dianzisuo.c 5KB
Last Loaded shiyanlcd.DBK 132KB
Last Loaded shiyan3.DBK 157KB
dianzisuo.hex 4KB
dianzisuo.DSN 159KB
liuweishumadianzisuo.uvopt 54KB
liuweishumadianzisuo.OBJ 13KB
mimadianzisuo.DSN 150KB
dianzisuo_uvopt.bak 54KB
共 86 条
- 1
孤寒者
- 粉丝: 10w+
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页