单片机电子密码锁设计Word文档下载推荐.docx
- 文档编号:19915466
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:21
- 大小:206.92KB
单片机电子密码锁设计Word文档下载推荐.docx
《单片机电子密码锁设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机电子密码锁设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
图2.1系统总体设计方案
本方案采用一种是用以89C52为核心的单片机控制的方案利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性实现基本的密码锁功能。
初步设计思路如下:
1.输入密码用矩阵键盘,包括数字键和功能键。
2.LED数码管显示输入密码的位数,每输入一位就多显示一个“0”
3.用发光二级管代替开锁电路,相对应的二极管发光表示开锁。
4.密码输入3次都错了,系统报警。
5.打开电源后,显示器不显示。
设原始密码为“1357”,只要输入此密码,按B”。
6.可以实现删除本次输入的数字,按“A”键,即可删除刚输入错误的一位数据。
7.输入密码,再按“B”键。
若密码与设定密码相同,则打开门。
即显示灯亮,否则显示器不显示。
8.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第3章系统硬件设计
3.1单片机的选择
本次课程设计我采用的时AT89C52单片机,其管脚配置图如下
图3.1AT89C52的管脚配置图
在设计电路中,我将单片机的P0和P2口分别作为LED管的段码和位码的输入,P1口作为几个控制功能按钮的接口,P3口接有蜂鸣器电路,XTAL1和XTAL2作为时钟电路的接口,从上述管脚说明来看,可以知道AT89C52提供了外部扩展功能所需的相关管脚,因此可实现许多功能。
3.2键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。
其原理如图3.2
3.2矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×
M个按键的键盘。
在这种行列式矩阵键盘非键盘编号的单片机系统中,键盘处理程序首先执行等待按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;
另一种是速度较快的线反转法。
对照3.1所示的4×
4键盘,说明线反转的工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向行线输出全扫面字OOH,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1.
判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。
依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;
如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
具体的功能设计如表3.1:
按键
键名
功能说明
1—9键
数字键
输入密码
B键
确定键
比较密码
A键
清除键
清除刚输入的那位
表3.1按键功能
3.3LED显示电路
单片机应用系统中,通常都需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
LED显示器的驱动是一个非常重要的问题,由图3-1可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。
由于单片机的并行口不能直接驱动LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。
如果驱动电路能力差,即负载能力不够,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏。
LED显示器的显示控制方式分为静态显示和动态显示两种,若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可,而且一般只需考虑段的驱动;
动态显示则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。
本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,在本次设计中我选择了4位的数码显示管。
其连线如图所示。
图3.3LED显示电路
3.4开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;
灭,表示没有开锁,亮,表示锁开了。
电路图如3.3所示。
当P1.0口输出低电平时,二极管发光,表示开锁。
图3.4开锁电路
3.5错误提示电路
在操作过程中如果输入的密码错误,按下确认键后将被提示,通过管脚P1.7控制。
其电路图如图3.5所示
图3.5报警电路
3.6蜂鸣器电路的设计
设计要求定时(闹钟)时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。
压电式蜂鸣器(H)工作时约需10mA的驱动电流,并设计一个相应的驱动及控制电路,电路设计如图4-5所示。
蜂鸣器(H)作为三极管VT的集电极负载,当VT制止时,蜂鸣器不发声。
R是限流电阻。
蜂鸣器电路与单片机的接口:
VT的基极接到单片机P3口的P3.7管脚,P3.7管脚作为输出口来使用。
当P3.7=0时,VT导通时,使蜂鸣器的两个管脚间获得将近5V的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音;
当P3.7=1时,VT截止,蜂鸣器的两管脚间的直流电压接近于0V,蜂鸣器不发声。
蜂鸣器报警时间的长短,通过软件编程控制,在主程序中有相应的部分。
蜂鸣器的电路原理图如下图3.4所示:
第4章软件设计
4.1软件设计思路
进行应用软件设计时可采用模块化结构设计,其优点是:
每个模块的程序结构简单,任务明确,易于编写、调试和修改;
程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,便于功能扩充和版本升级;
对于使用频繁的子程序可以建立子程序库,便于多个模块调用;
便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;
或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
4.2各子程序设计
4.2.1键盘扫描
键盘扫描流程图如图4.2.1
4.2.2LED显示
LED显示流程图如图4.2.2
图4.2.2 LED显示流程图
4.2.3密码比较和报警程序
密码比较和报警流程图如4.2.3
图4.2.3密码比较和报警流程
第5章系统的安装调试说明
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,3,5,7后,LED显示如图5.1
图5.1LED显示
按下确定键后,二极管亮,表示密码正确开门。
如图5.2
图5.2密码正确开门
第6章总结
两周的单片机已经告已段段落,这是一次难得的检验,既锻炼了自己,又提高自己得理论水平,所以我一开始我就十分认真,积极地对待这次课程设计。
单片机是一门实践性很强的学科,能充分地运用于实践中去,因而直接关系到我们以后找工作,关系到我们的将来。
这次的课题是智能密码锁设计,主要设计到的芯片主要是89C51。
虽然我们学过单片机,理论知识掌握的还算好,但总感觉不知道单片机到底有什么用。
通过这次设计让我有了较深的体会,单片机的用处还是很广的,不但用起来方便,而且其功能也是很强大的。
单片机可以实现很多我们想要实现的功能,使复杂的电路简单化,使难以实现的事情变为现实等等。
我隐约可以看到单片机在这个社会有着举足轻重的地位,并且还有着无穷大的潜能。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。
回顾起此次单片机课程设计,感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说是苦多于甜,但是可以学到很多很多的东西,同时,不仅可以巩固以前学过的知识,而且还学到了很多在书本上没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次做的,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,以前对所学的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好……通过这次课程设计之后,以前不理解的知识点现在基本上都掌握了。
与此同时,我们也深刻领略到细节的重要性,细节决定成败,实在是很深刻。
有一点小问题,都不会出正确的结果。
经过一次次的查错,纠错,让我们深深体会到了做设计科研,必须具备严谨的科学作风。
对我们以后从事的工作也有巨大的帮助。
总而言之,这次课程设计终于顺利完成了,在进行设计的过程中遇到了很多编程问题,在此特别感谢汪超等老师的耐心讲解和细心的指导。
使我们在设计的过程中,少走了许多弯路,同时也领略了老师的许多新理念。
单片机课程设计重在一个思维的改变,而不是仅仅的一个程序的设计。
参考文献
[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002
[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001
[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001
[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002
[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
附录
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVR3,#0
A1:
SETBP3.0
SETBP3.1
SETBP3.2
SETBP3.3
MOVR0,#40H
MOVDPTR,#TAB;
将表头放入DPTR
LCALLKEY;
调用键盘扫描程序
;
查表后将键值送入ACC
CJNEA,#0BH,LOOP
AJMPCMP
LOOP:
INCR0
MOV@R0,A
D5:
MOVP0,#0C0H
CLRP3.0
LCALLKEY
CJNEA,#0BH,D1
D1:
CJNEA,#0AH,D2
AJMPA1
D2:
D8:
CLRP3.1
CJNEA,#0BH,D3
D3:
CJNEA,#0AH,D4
DECR0
AJMPD5
D4:
D11:
CLRP3.2
SETBP3.3
CJNEA,#0BH,D6
D6:
CJNEA,#0AH,D7
AJMPD8
D7:
MOVP0,#0C0H
CLRP3.3
D12:
LCALLKEY
CJNEA,#0BH,D9
D9:
CJNEA,#0AH,D10
AJMPD11
D10:
AJMPD12
KEY:
LCALLKS;
调用检测按键子程序
JNZK1;
有键按下继续
LCALLDELAY2;
无键按调用延时去抖
AJMPKEY;
返回继续检测按键
K1:
LCALLDELAY2
有键按下延时去抖动
再调用检测按键程序
JNZK2;
确认有按下进行下一步
AJMPKEY;
无键按下返回继续检测
K2:
MOVR2,#0FEH;
将扫描值送入R2暂存
MOVR4,#00H;
将第一列值送入R4暂存
K3:
MOVP2,R2;
将R2的值送入P1口
L6:
JBP2.4,L1;
P1.0等于1跳转到L1
MOVA,#00H;
将第一行值送入ACC
AJMPLK;
跳转到键值处理程序
L1:
JBP2.5,L2;
P1.1等于1跳转到L2
MOVA,#04H;
将第二行的行值送入ACC
跳转到键值理程序进行键值处理
L2:
JBP2.6,L3;
P1.2等于1跳转到L3
MOVA,#08H;
将第三行的行值送入ACC
跳转到键值处理程
L3:
JBP2.7,NEXT;
P1.3等于1跳转到NEXT处
MOVA,#0cH;
将第四行的行值送入ACC
LK:
ADDA,R4;
行值与列值相加后的键值送入A
PUSHACC;
将A中的值送入堆栈暂存
K4:
调用延时去抖动程序
调用按键检测程序
JNZK4;
按键没有松开继续返回检测
POPACC;
将堆栈的值送入ACC
RET
NEXT:
INCR4;
将列值加一
MOVA,R2;
将R2的值送入A
JNBACC.7,KEY;
扫描完至KEY处进行下一扫描
RLA;
扫描未完将A中的值右移一位进行下一列的扫描
MOVR2,A;
将ACC的值送入R2暂存
AJMPK3;
跳转到K3继续
KS:
MOVP2,#0FH;
将P1口高四位置0低四位值1
MOVA,P2;
读P1口
XRLA,#0FH;
将A中的值与A中的值相异或
RET;
子程序返回
DELAY2:
40ms延时去抖动子程序
MOVR5,#08H
L7:
MOVR6,#0FAH
L8:
DJNZR6,L8
DJNZR5,L7
DELAY:
MOVR5,#50
DLY1:
MOVR6,#100
DLY2:
MOVR7,#100
DJNZR7,$
DJNZR6,DLY2
DJNZR5,DLY1
CMP:
CJNE@R0,#7H,NEQ
CJNE@R0,#5H,NEQ
CJNE@R0,#3H,NEQ
CJNE@R0,#1H,NEQ
AJMPSEQ
NEQ:
INCR3
CJNER3,#3,A2
CLRP3.7
LCALLDELAY
SETBP3.7
AJMPMAIN
A2:
CLRP1.7
SETBP1.7
SEQ:
SETBP3.0
CLRP1.0
SETBP1.0
TAB:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,88H,83H
DB0C6H,0A1H,86H,8EH
END
原理图
电气信息学院课程设计评分表
项目
评价
优
良
中
及格
差
设计方案合理性与创造性(10%)
开发板焊接及其调试完成情况*(10%)
硬件设计或软件编程完成情况(20%)
硬件测试或软件调试结果*(10%)
设计说明书质量(20%)
答辩情况(10%)
完成任务情况(10%)
独立工作能力(10%)
出勤情况(10%)
综合评分
指导教师签名:
________________
日期:
________________
注:
表中标*号项目是硬件制作或软件编程类课题必填内容;
此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:
封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 密码锁 设计