基于Proteus环境的电子密码锁设计Word文档下载推荐.docx
- 文档编号:14777990
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:12
- 大小:73.01KB
基于Proteus环境的电子密码锁设计Word文档下载推荐.docx
《基于Proteus环境的电子密码锁设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Proteus环境的电子密码锁设计Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
键盘的每个按键功能在程序设计中设置。
其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3-2所示:
图3-2
3、复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;
外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
根据实际情况选择如图3-3所示的复位电路。
该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。
增加手动复位按键是为了避免死机时无法可靠复位。
当复位按键按下后电容C1通过R5放电。
当电容C1放电结束后,RST端的电位由R11与R15分压比决定。
由于R11<
<
R15因此RST为高电平,CPU处于复位状态,松手后,电容C1充电,RST端电位下降,CPU脱离复位状态。
R11的作用在于限制按键按下瞬间电容C1的放电电流,避免产生火花,以保护按键触电。
图3-3复位电路原理图
4、晶振电路
AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图3.4所示方式连接。
晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间。
根据实际情况,本设计中采用12MHZ做系统的外部晶振。
电容取值为33pF。
图3-4晶振电路原理图
5、报警电路
报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P3.1引脚为低电平,三极管T3导喇叭发出噪鸣声报警。
如图
3-5所示:
图3-5报警电路原理图
四、实验步骤
1.熟悉Proteus软件环境;
2.熟悉89C52硬件环境;
3.编写相应处理器程序代码;
4.基于Proteus环境进行仿真测试。
五、程序代码
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharsmg[16];
//数码管段显示;
ucharcodepassword[]={1,9,8,8,0,8,1,4};
charnum,k,x;
voiddisplay();
voidkey_scan();
//voidcorrect();
//密码正确数码管显示“open”
//voiderror();
//密码错误数码管显示“error”
intFlag;
//与密码初值比较,正确则置‘1’
sbitfmq=P3^1;
//蜂鸣器输入端
sbitled=P3^0;
//密码正确,灯亮
//主函数
voidmain()
{
k=0;
led=0;
fmq=1;
x=0;
while
(1)
{
key_scan();
display();
}
}
//延时函数
voiddelay(uinti)//延时函数
{
uintj;
while(i--)
{
for(j=0;
j<
120;
j++);
voidbeep()//蜂鸣器函数;
uinti;
for(i=0;
i<
5;
i++)//蜂鸣器响五次
fmq=0;
delay(300);
P2=0xff;
P0=0x00;
}
//扫描函数
voidkey_scan()
uchartemp;
P1=0xf0;
temp=P1;
if(temp!
=0xf0)
delay(25);
P1=0xf0;
temp=P1;
if(temp!
{
P1=0xfe;
switch(temp)
case(0xee):
P0=0x40;
smg[x++]=num;
num=0;
k++;
delay(200);
break;
case(0xde):
num=1;
case(0xbe):
num=2;
case(0x7e):
num=3;
}
P1=0xfd;
case(0xed):
num=4;
case(0xdd):
num=5;
case(0xbd):
num=6;
case(0x7d):
num=7;
}
P1=0xfb;
case(0xeb):
num=8;
case(0xdb):
num=9;
case(0xbb):
if((Flag==1)&
(k==8))
{
led=1;
//correct();
delay(1000);
led=0;
k=0;
}
else
beep();
//error();
}break;
case(0x7b):
k--;
Flag=1;
x--;
num=smg[x];
break;
//显示函数
voiddisplay()
if(k==1)
P2=0x7f;
if(password[0]==num)
Flag=1;
else
Flag=0;
while(k==2)
P2=0x3f;
if(password[1]==num)
Flag=1&
Flag;
}
else
{
Flag=0;
key_scan();
while(k==3)
P2=0x1f;
if(password[2]==num)
while(k==4)
P2=0X0f;
if(password[3]==num)
while(k==5)
P2=0x07;
if(password[4]==num)
while(k==6)
P2=0X03;
if(password[5]==num)
while(k==7)
P2=0x01;
if(password[6]==num)
while(k>
=8)
P2=0X00;
k=8;
if(password[7]==num)
Flag=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Proteus 环境 电子 密码锁 设计