1 / 5
文档名称:

电子密码锁.doc

格式:doc   大小:37KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

电子密码锁.doc

上传人:wxc6688 2021/1/20 文件大小:37 KB

下载得到文件列表

电子密码锁.doc

文档介绍

文档介绍:#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
uchar passward[3][7]={{0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb},{0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb},{0xeb,0xeb,0xeb,0xeb,0xeb,0xeb,0xeb}}; //存放密码,包括更改密码时输入值
uchar code figue[]={0x00,0x01,0x02,0x03,0x04,0x05,0x07}; //控制哪个数码管显示,内容为数码管片选信号
uint i,k=0; //定义全局变量,k存放输入密码错误次数,利用i的数值判断密码是否正确
uchar key;
uint s;
sbit led=P3^2;
sbit fmq=P3^3;
void delay(uint x) //延时x毫秒
{
uint j;
while(x--)
for(j=0;j<120;j++);
}
uchar keyscan() //键盘扫描,返回值为按键代号
{
uchar scode,kcode,l;
while(1)
{
P1=0xf0;
if((P1&0xf0)!=0xf0) //判断是否有键输入
{
delay(10);
if((P1&0xf0)!=0xf0) //再次判断是否有键输入
{
scode=0xfe;
for(l=0;l<4;l++) //判断输入键位置
{
P1=scode;
if((P1&0xf0)!=0xf0)
{
kcode=P1;
fmq=0;
delay(300); //输入一个有效键后,延时150毫秒,防止将该键重复读入
fmq=1;
return(kcode);
break;
}
else
{
P1=0x0e;
scode=_crol_(scode,1);
}
}
}
}
}
}
void input(uint x) //输入函数,用x控制输入量为新密码还是要验证的密码
{
uchar t;
while(1) //用i控制输入的为密码的第几位,最后用i区分输入的为密码还是功能键
{
P2=figue[i-1]; //控制数码管,让其常亮
t=keyscan();
if(t==0xee) //输入为delete键
{
if(i>1)
i--;
}
else if(t==0xed) //输入为enter键
{
P2=0x07;
break;
}
else if(t==0xde) //输入为取消键
i=0;
else if(t==0x7e) //输入为lock