电子密码锁课程设计100703.docx
- 文档编号:11215387
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:16
- 大小:381.94KB
电子密码锁课程设计100703.docx
《电子密码锁课程设计100703.docx》由会员分享,可在线阅读,更多相关《电子密码锁课程设计100703.docx(16页珍藏版)》请在冰豆网上搜索。
电子密码锁课程设计100703
电子密码锁课程设计说明书
目录
第一部分设计任务要求……………………………………………2
第二部分设计项目简介……………………………………………2
第三部分系统功能设计描述………………………………………2
第四部分电路原理图………………………………………………4
第五部分程序框图…………………………………………………7
第六部分程序清单…………………………………………………7
第七部分设计总结…………………………………………………11
第八部分参考文献…………………………………………………12
电子密码锁课程设计
一、设计任务要求:
1、密码锁由4X4键盘和4位数码管组成
2、当输入密码时,只显示8,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟作为提示。
若密码不正确,则可以从新输入密码。
如连续三次输入错误,则禁止输入。
二、设计项目简介:
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁,特点如下:
1.保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
2.密码可变。
用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。
3.误码输入保护。
当输入密码多次错误时,报警系统自动启动。
4.电子密码锁操作简单易行,一学即会。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了的方案是:
用以AT89C51为核心的单片机控制。
三、系统功能设计描述:
1)电子密码锁的工作原理
电子密码锁是以MCS-51系列单片机AT89C51为核心,配以相应硬件电路,完成密码的识别和显示、驱动电磁执行器并检测其驱动电流值。
单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,如连续三次输入错误,则禁止输入.单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。
2)系统硬件组成
如图
(一)所示,系统采用单片机ATC89C51作为控制的核心,完成系统的控制操作。
单片机核心接受来自键盘扫面电路的道德键值,判断是数字键还是操作键,并送相应的处理程序。
单片机提供动态扫描电路的显示码和位选信号,使动态显示电路正常工作。
键盘扫面电路采用4*4键盘,编号0~9做为数字键“0~9”,编号14做为关锁操作功能键,编号15做为确定功能键。
编号13为修改密码键,编号12作为电子锁报警后的解锁键,编号11为清除显示屏键。
动态扫描电路采用4块LED数码管,利用人眼的延迟效应通过合理的软件设计使显示电路显示数字。
供电采用5V直流电压电源
3)矩阵键盘扫描工作原理
矩阵式键盘又成为行列式键盘,是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,如图(四)所示。
这种设计减少键盘与单片机I/O接线的数目。
只需要N个行线和M个列线就可以实现N*M个键的操作。
行扫描法识别键值的原理:
A.将第0行变为低电平,其余行为高电平,输出编码为1110.然后读取列的电平,判别第0行是否有键按下。
在第0行上若有键按下,则相应的列被拉低为低电平,则表示第0行和此列相交的位置上有键按下,进而判别哪一列有键按下。
若没有任一条列线为低电平,则说明0行上无键按下。
B.用此方法扫描第1行,第2行,第3行,判断是哪个键按下。
由此指出,按键的位置码比不等于按键的实际定义键值,因此还需要进行转换。
4)LED数码管动态显示原理
将所有的位选线并联在一起,由一个8位I/O口控制,实现各位的分时选通。
如图(五)所示。
5)电子密码锁系统硬件设计
1、键盘部分
如图(四)所示,采用行列式键盘,P1口作为与行列式键盘的接口。
低四位做为行选线,高四位作为列选线。
采用逐行扫描的方法完成。
2、LED动态显示部分
采用7SEG-MPX4-CC八段数码管,总共有四个八段数码管,共阴极的方法,未选信号为低电平有效。
数据接口与P2相连,P2.0~P2.7对应a~dp。
未选信号与P3相连,P3.0~P3.3对应4~1.
仿真电灯一端与P0.0相连,另一端与5V的直流电源相连。
6)电子密码锁系统软件设计
软件是系统的核心,控制硬件的工作。
对于单片机的开发,可以采用C语言,也可以采用汇编语言。
本次设计中,使用汇编语言。
从可读性来讲C语言相对要好一点。
从简洁性来说汇编要好一点。
四、电路原理图:
图
(一)系统硬件组成图
显示的数字
LED码
0
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
-
40H
图
(二)LED编码表
参考电路图:
图(三)总体电路图
图(四)键盘接口电路
图(五)LED显示接口电路
图(六)开锁显示等电路
五、程序框图:
图(七)程序框图
六、程序清单
RELEQU60H;赋初值
RELBUFEQU61H;赋初值
KEYNOEQU62H;赋初值
FKEYEQU20H.0;赋初值
F0_0EQU20H.1;赋初值
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#6FH;设置堆栈栈顶地址
ACALLCLEAN;调用子程序
START:
MOVR3,03H
SETBP3.1
ACALLDISPLAY
CLRFKEY
ACALLSCAN
JBFKEY,G1;条件转移指令
;若(FKEY)=1,则PC为PC+3+rel
;若(FKEY)=0,则PC为PC+3
SJMPSTART
G1:
ACALLSCAN;短调用指令
JBFKEY,G1
MOVA,KEYNO
CJNEA,#14,G2
AJMPG4
G2:
CJNEA,#15,ONE
ACALLCMP
JNBF0_0,G4
CLRP0.0
LCALLDELAY1
CLRF0_0
ACALLCLEAN
AJMPSTART
G3:
MOV43H,42H
MOV42H,41H
MOV41H,40H
MOV40H,KEYNO
AJMPSTART
G4:
SETBP0.0
ACALLCLEAN
AJMPSTART
CMP:
MOVREL,#00H
MOVR0,#40H
MOVR7,#4H
CMP1:
MOVDPTR,#PASS
MOVRELBUF,@R0
MOVA,REL
MOVCA,@A+DPTR
CJNEA,RELBUF,CMPOUT
INCREL
INCR0
DJNZR7,CMP1
SETBF0_0
CMPOUT:
MOVREL,#00H
ONE:
CLRP3.4;错误输入警告
ACALLDELAY1
SETBP3.4
DJNZR3,GETPW
CLPP3.1;三次错误输入报警
THERE:
AJMPTHERE
RET
;=====键盘输入程序=====
SCAN:
MOVR3,#0FEH
MOVR4,#0H
MOVR1,#4H
CLRPSW.5;PSW.5清零
L1:
MOVA,R3
MOVP1,A
MOVR5,#1
ACALLDELAY;调用DELAY子程序
MOVA,P1
ANLA,#0F0H;做“与”逻辑运算
MOVR2,#4
L2:
JBACC.4,N1
MOVKEYNO,R4
SETBPSW.5;PSW.5置“1”
N1:
INCR4
RRA;右循环
DJNZR2,L2
MOVA,R3
RLA;左循环
MOVR3,A
DJNZR1,L1
BACK:
JNBPSW.5,NO_KEY
SETBFKEY
AJMPSCANOUT
NO_KEY:
CLRFKEY
SCANOUT:
RET
CODESW:
MOVR0,#40H
MOVR1,#50H
MOVR7,#4
SW1:
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR;片外ROM指令
MOV@R1,A
INCR0;R0自加“1”
INCR1
DJNZR7,SW1
RET
;=====查表显示程序=====
DISPLAY:
ACALLCODESW
MOVA,#0FEH
MOVR5,#4
MOVR0,#50H
DIS1:
MOVP3,A
MOVP2,@R0
ACALLDELAY
INCR0
SETBC
RLCA
DJNZR5,DIS1
RET
;=====初始化程序=====
CLEAN:
MOV40H,#0AH
MOV41H,#0AH
MOV42H,#0AH
MOV43H,#0AH
RET;子程序返回指令,只用在子程序尾
;=====消除按键抖动程序=====
DELAY:
MOVR7,#19H
D1:
MOVR6,#64H
DJNZR6,$
DJNZR7,D1;循环指令消除按键抖动
RET
;=====显示延时程序=====
DELAY1:
MOVR7,#F5H
D11:
MOVR6,#E1H
D12:
DJNZR6,D12
DJNZR7,D11;循环指令显示延时
RET
PASS:
DB4,3,2,1
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DB40H,40H,40H,40H,86H,8EH
END
七、设计总结:
由于时间紧迫,所以整个设计做得比较快,难免有个别小错误。
通过这次的实践,自己不仅巩固了所学的知识,而且在设计过程中,学会了如何快速正确地画图、查手册等等,为以后的学习工作提供了很好的经验。
我相信,在以后的设计中,会避免很多不必要的工作,有能力设计出结构更紧凑,性能更稳定精确的设备。
同时,在设计过程中我清楚了设计的一般流程,首先把设计任务书认真读懂,搞清楚所要做的工作,及其需要实现的功能。
和本次任务需要解决的首要问题。
然后将各个功能划分成子模块,各项任务逐个实现。
在把任务搞明白以后,然后收集资料,查阅相关参考书籍的知识点。
然后分析明白,将别人的知识转为自己的知识,同时通过网络查询自己不懂得知识点。
下一步开始汇编程序,根据划分的子模块逐次编程,然后通过程序调用把子程序附加到主程序中去,进一步调试程序,通过显示的错误,进一步修改程序。
在程序调试成功后,绘制程序框图,根据需要实现的功能绘制。
接下来绘制电路图,运用PROTEL软件绘制电路图,对软件进一步学习。
在这个过程中首先选择所需要芯片,及其所用的管脚,和所用的LED数码管,和按键的连接。
接下来整理设计说明书,设计说明书保证所有内容全面的前提下,尽量保证格式一致。
通过查资料和搜集有关的文献,培养了自学能力和动手能力。
并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。
在以往的传统的学习模式下,我可能会记住很多的书本知识,我学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。
把握重点、攻克难关,学到用到、活学活用。
在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计已经完成,在软件设计中有些功能还尚未开发出来。
但在以后的工作中,我们会严格要求自己,追求完美。
在整个设计过程中尽量保证满足设计任务,但是仍然还是有一部分功能没有实现,如输入三次密码自锁。
希望老师能够谅解,我会在以后的学习中慢慢学会它的应用。
谢谢老师三周来对我们的精心指导,老师辛苦了,谢谢您,老师!
八、参考文献:
[1]胡汉才,单片机原理及其接口技术(第二版).北京:
清华大学出版社2004
[2]高海生.杨文焕.单片机应用技术大全.成都:
西安交通大学出版社,1996
[4]李秉操.张登举.傅寿英.徐飞.单片机接口技术及在工业控制中的应用.西安:
陕西电子编辑部,1991
备注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 课程设计 100703