ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:151.01KB ,
资源ID:2903149      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2903149.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子密码锁设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子密码锁设计.docx

1、电子密码锁设计单片机电子密码锁的设计一种能防止多次试探密码的基于单片机的密码锁设计方案,根据用户的条总体要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。很多行业的许多地方都需要密码锁,但普通密码锁的密码容易被多次试探而破译。本文给出了一种能防止多次试探密码的密码锁设计方法,从而有效地克服了上述缺点。硬件电路图所示是笔者设计的一种密码锁电路。该密码锁主要 是以下条特点:()总共可以设置位密码,每位的取值范围为。()用户可以自行设定和修改密码。()按每个密码键时都有声音提示。()若键入的位开锁密

2、码不完全正确,则报警秒钟,以提醒他人注意。()开锁密码连续错次要报警分钟,报警期间输入密码无效,以防窃贼多次试探密码。()键入的位开锁密码完全正确才能开锁,开锁时要有秒的提示音。()电磁锁的电磁线圈每次通电5秒,然后恢复初态。()密码键盘上只允许有个密码按键。锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的。 ()密码设定完毕后要有秒的提示音。()成本低,硬件和软件都很简洁可靠,易于批量生产。根据总体要求分析,该密码锁电路所需要的口线少于个,若设计得当,程序不会超过条指令,所以可选择质优价廉的或者,而且不需要外接程序存储器和数据存储器及其它扩展部件

3、,所以成本很经济。图1 电磁锁原理图在图所示电路中,口连接个密码按键,开锁 信号由2输出,报警和提示音由输出。是用于报警与声音提示的喇叭,K是继电器控制电磁线圈。软件设计图给出了该单片机密码锁电路的软件流程图。图中 以及、是程序中的标号,是为了理解程序而专门标在流程图的对应位置的,分析程序时可以仔细对照参考。 存储单元的分配该密码锁中存储单元的分配方案如下:依次存放位设定的密码,首位密码存放在单元;:指向密码地址;:已经键入密码的位数;:存放允许的错码次数与实际错码次数的差值;至:延时用;:错码标志位。对于存储单元的分配,由于程序比较短,而且占用的存储空间比较少,因此,在无特殊要求时,可以从单

4、元(其它地址也可以)开始存放主程序。(程序框图很清晰,简单明了,不过到输入错误次数大于3次后转向?)图2 电磁锁程序流程图 源程序下面是该电子密码锁的软件源程序代码: : , ,: , , , : , : , ,: , , ,: ,: , , , , : , , : : , , , , : , ,: ,: , , ,: , ,: : ,: ,: , , ,: ,: , ,应用说明若按键分别代表数码,按键代表数码。在没有键按下时,全是高电平,若某个键被按下,相应的口线就变为低电平。假如设定的密码是,当按键被按下时,变为低电平,端口其余口线为高电平,此时从端口读入的数值为,存到单元的密码值就是,也

5、就是。依此类推,存到至单元的密码值分别是、。开锁时必须先按,使从口读入的第一个密码值与单元存储的设定值相同,再顺序按、才能开锁。否则不能开锁,同时开始报警。实验任务 根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。 2电路原理图 图4.32.1 3系统板上硬件连线 (1) 把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上; (2) 把“音频放大模块”区域中

6、的SPK OUT端子接喇叭和; (3) 把“单片机系统”区域中的P2.0/A8P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上; (4) 把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上; (5) 把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上; 4程序设计内容 (1) 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。 (2) 密码的输入问题: 由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个

7、按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。 (3) 按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。 5C语言源程序#include unsigned char code ps=1,2,3,4,5;unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x

8、07,0x7f,0x6f,0x00,0x40;unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf9;bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsign

9、ed int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void)unsigned char i,j;P2=dispcodedigitcount;TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1)if(cmpflag=0)if(P3_6=0) /function keyfor(i=10;i0;i-)for(j=248;j0;j-);if(P3_6=0)if(hibitflag=0)fun

10、count+;if(funcount=pslen+2)funcount=0;cmpflag=1;P1=dispcodefuncount;elsesecond3=0;while(P3_6=0);if(P3_7=0) /digit keyfor(i=10;i0;i-)for(j=248;j0;j-);if(P3_7=0)if(hibitflag=0)digitcount+;if(digitcount=10)digitcount=0;P2=dispcodedigitcount;if(funcount=1)pslen=digitcount;templen=pslen;else if(funcount1

11、)psbuffuncount-2=digitcount;elsesecond3=0;while(P3_7=0);elsecmpflag=0;for(i=0;ipslen;i+)if(psi!=psbufi)hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;void t0(void) interrupt 1 using 0TH0=(65536-500)/256;TL0=(65536-500)%256;if(errorflag=1) & (rightflag=0)bb+;if(bb=800)bb=0;alarmflag=alar

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1