电子技术实验报告密码锁设计(3)

2019-05-17 19:58

确认正确密码时,开锁正常,计时清零正常,5秒内输入错误密码或者超时输入且不管密码正确与否,均报警,按键失灵,成功进入自锁,当在开锁状态键按下,密码重置键按下后,密码重置,自锁解除,开锁成功。

七、结论与心得

本次设计的电子密码锁以STC89C51为核心,用LED灯、自锁开关、贴片开关、蜂鸣器以及直流电源来表现实验效果,通过四位密码锁实现对密码锁的控制。通过对硬件的仿真及软件测试,实现了设计功能的要求。

在这次设计中还有几个问题未解决,第一,密码锁必须保持不断电,才能保证设入密码的正常保存和修改;第二,密码锁的密码重置键为隐藏按键,设计中位置的摆放问题,保证其隐蔽性问题。

在后期成品制作过程中,解决断电问题,利用IC总线技术,比如加个24C02之类的芯片,将用户信息放到24C02里面,这样断电之后,用户信息不丢失,密码可以长久保存。解决密码重置键问题可以选择,密码的双重性,通过设置双重密码,一重密码解锁和修改密码,在进入自锁之后,利用另一重密码进行解除自锁。

在设计本系统的过程中,小组各成员热情投入,相互配合,不仅学到了很多的知识,也培养了良好的团队精神。总之,课程设计是一个很好的平台,通过本次设计,我们小组各成员都受益匪浅。

八、参考文献

[01] 何宏主编 《单片机原理与接口技术》 北京,国防工业出版社 2006.07

[02] 杨西明 朱骐主编 《单片机编程与应用入门》 北京,机械工业出版社 2004.06 [03] 先锋工作室编著《单片机程序设计实例》 北京,清华大学出版社 2003.01 [04] 谢宜仁主编 《单片机实用技术问答》北京,人民邮电出版社 2003.02 [05] 梁丽 《电子密码锁的计算机仿真设计》 《计算机仿真》 2005 [06] 房小翠 王金凤编著 《单片机实用系统设计技术》. 北京,国防工业出版社 1999.06 [07] 郭天祥编著 《51单片机C语言教程》 北京,电子工业出版社 2010.3

附件:程序设计

程序设计如下: #include

#define uint unsigned int void delay(uint);

sbit ledr=P2^0;//红色LED控制端 sbit ledg=P2^1;//绿色LED控制端 sbit bj=P2^2;//蜂鸣器控制端 sbit key1=P2^3;//密码重置键 sbit key2=P2^4;//开锁状态键 sbit keyr=P2^5;//密码确认键 uint nn,num; void main()

{TMOD=0x01;//设定工作方式 TH0=(65536-45872)/256;

TL0=(65536-54872)%6;//装初值,用于5秒计时 while(1) {

if(key1==0&&key2==1) {delay(5);

if(key1==0&&key2==1) {nn=P1; bj=0;

delay(30); bj=1;

delay(30); bj=0;

delay(30); bj=1;

delay(30); ledr=0; delay(100); ledr=1; delay(100); ledr=0; delay(100); ledr=1;

while(!key1&&!key2); }

}//按下密码重置键设定密码,红色LED闪烁

if (key2==1&&keyr==0&&P1==nn)//检测在正确输入密码时或输入后,中断关闭,计时清0 {delay(5); //为下一次输入做准备 if (key2==1&&keyr==0&&P1==nn) {EA=0;num=0;} }

if (key2==0)//开锁状态键被按下,此时为开锁状态,密码扫描及确认开始 {delay(5); if (key2==0) {EA=1;//开总中断

ET0=1;//开定时器中断 TR0=1;//启动定时器中断 ledr=1; ledg=1;

bj=1;//报警解锁模块初始状态 if(key1==0) {delay(5); if(key1==0)

{num=0; nn=P1;

bj=0;

delay(30); bj=1;

delay(30); bj=0;

delay(30); bj=1;

delay(30); ledr=0; delay(100); ledr=1; delay(100); ledr=0; delay(100); ledr=1;

while(!key1); } }

if(P1==nn&&num<100&&keyr==0)//检测5秒之内密码是否被正确输入,正确则开锁 {ledr=1; ledg=0; bj=1; num=0; }

if(num>100)//5秒超时,系统自锁,报警启动 {ledg=1; ledr=0; bj=0;}

if(P1!=nn&&keyr==0&&num<100)//检测5秒之内是否输入错误密码,错误则自锁 {ledg=1; ledr=0; bj=0; } }}}}

void delay(uint x)//延时函数 {uint y,z;

for(y=x;y>0;y--) for(z=110;z>0;z--);}

void t0() interrupt 1 //定时器中断函数 {TH0=(65536-45872)/256; //重装数值 TL0=(65536-54872)%6;

num++; //5毫秒,num+1,当num记到100时,计满5秒,自动清零 }


电子技术实验报告密码锁设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:C语言填空题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: