密码锁实习报告.docx
- 文档编号:297549
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:25
- 大小:554.65KB
密码锁实习报告.docx
《密码锁实习报告.docx》由会员分享,可在线阅读,更多相关《密码锁实习报告.docx(25页珍藏版)》请在冰点文库上搜索。
电子信息工程专业课程设计任务书
题目:
基于51单片机的电子密码锁设计
设计内容
设计制作和调试一个由8051MCU组成的密码锁系统。
通过这个过程学习熟悉键盘控制使用,掌握51系列单片机控制和测试方法。
设计以AT89C51单片机为核心,以4*4矩阵键盘做为系统的密码输入和调整密码,以发光二级管来代替磁力锁,完成基本要求,可以适当发挥进行扩展设计。
1)数码管显示:
六位密码;
2)键盘输入密码或密码修改;
设计步骤
一、总体方案设计
其中,采用51系列MCU构成典型电路。
可选用适当的芯片;可选用/不选用LED/键盘驱动芯片;建议扩口用74244、74373扩展。
二、硬件选型工作
三、硬件的设计和实现
1.选择计算机机型(采用51内核的单片机);
2.设计支持计算机工作的外围电路(EPROM、RAM、I/O端口、键盘、显示接口电路等);
3.接口电路;
4.其它相关电路的设计或方案(电源、通信等)
四、软件设计
1.分配系统资源,编写系统初始化和主程序模块;
2.编写相关子程序;
3.其它程序模块(显示与键盘等处理程序)。
五、编写课程设计说明书,绘制完整的系统电路图(A3幅面)。
课程设计说明书要求
1.课程设计说明书应采用学院统一印制的课程设计(论文)说明书封面,书写应认真,字迹工整,论文格式参考国家正式出版的书籍和论文编排。
2.论理正确、逻辑性强、文理通顾、层次分明、表达确切,并提出自己的见解和观点。
3.课程设计说明书应有目录、摘要、序言、主干内容(按章节编写)、主要结论和参考书,附录应包括程序清单、系统方框图和电路原理图。
4.课程设计说明书应包括按上述设计步骤进行设计的分析和思考内容和引用的相关知识。
5.要求打印B5纸,排版要求请向指导教师索取。
6.每组单独一个题目,每组上限5人。
时间安排
课程设计计划时间4周。
课程设计题目于15周下发。
课程设计完成后于18周四下午下班前送交电子信息办公室(实验楼三楼),届时指导教师安排短暂答辩。
辅导时间和地点
答疑请直接与指导教师联系。
目录
一、设计要求……………………………………1
二、设计目的……………………………………1
三、设计的具体实现……………………………1
1.系统概述…………………………………1
2.系统总体方案设计………………………2
3.硬件电路设计……………………………3
4.软件设计…………………………………8
四、结论与调试…………………………………13
五、心得与体会…………………………………14
六、附录…………………………………………15
1.元件清单…………………………………15
2.电路原理图………………………………16
3.源程序清单………………………………17
七、参考文献……………………………………22
电子密码锁课程设计报告
一、设计要求
1.可人工设定6位密码;
2.输入密码可在LED数码管上显示;
3.输入密码正确开锁,输入密码错误有报警提示;
4.三次输入密码机会;
二、设计目的
1.培养学生从文献和调查研究中获取知识的能力,提高学生从别人经验,从其他学科找到解决问题的新途径的悟性。
2.培养学生综合运用本专业基本理论、基本知识和基本技能的能力,使学生获得从事本专业工程技术工作的基本训练。
3.培养学生勇于探索,严谨推理,实事求是,用实践检验理论、全方位地考虑问题等科学技术人员应有的素质。
4.培养学生综合运用所学知识独立完成课题的工作能力,为毕业设计打好基础。
5.提高学生对工作认真负责、一丝不苟,对同学团结友爱、协作攻关,对新事物能潜心考察,勇于开拓,勇于实践的基本素质。
三、设计的具体实现
1.系统概述
从键盘输入一组密码,CPU把该密码和设置密码比较,对则将锁打开,错则要求重新输入,并记录错误次数,如果三次错误,则被强制锁定并报警。
用户开机后数码管显示6个“0”表示待机状态,初始密码为6个“123456”,按下确认件*可以开始输密码,数码管的第一位开始闪烁,输入一位密码后,闪烁的数码管后移一位,当输入错误时可按#退格取消输入。
每一位密码可以是键盘上0-9数字任意一个。
密码输入错误时蜂鸣器报警,同时红色发光二极管亮,密码错误三次将不能再输入,复位后回到待机状态。
密码输入正确后,绿色发光二极管亮,可以修改。
修改密码的显示界面和输入密码时相同。
输入新密码后按键确认键*回到待机状态。
数码管显示
单片机CPU8255A
矩阵按键
声光报警
2.系统总体方案设计
本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警功能。
(1)单片机系统:
此次课题采用一种是用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。
此次课题用单片机P0端口的P0.7—P0.5及P0.3—P0.0分别控制键盘的列线和行线;P1端口的P1.0—P1.3来输送显示的数据,用P1.4—P1.6来输送控制显示位数译码的数据。
电路中,P2.0接一个发光二极管,这是模拟电子密码锁的控制开启装置。
当输入正确的密码后,发光二级管就会被点亮,从而可模拟电子锁的开启。
(2)矩阵键盘接口电路:
此次课程设计采用4*3矩阵键盘,与P0端口的P0.7—P0.5及P0.3—P0.0相连,采用扫描法。
设有0——9十个数字密码、一个清除键“#”和一个确认键“*”。
开机显示000000,等待密码输入,输入6个密码,按确认键后,密码比较。
(3)LED显示:
此次课程设计6密码6显示器,按键后即显示,动态显示。
根据按键次数,第一位显示器显示第一次按的密码,第二位显示器显示第二次按的密码,第三位显示器显示第三次按的密码,依此第六位显示器显示第六次按的密码,按键完成后按确认键后,密码对则执行相关动作,不同则显示器清零,等待重新输入。
(4)报警系统:
此次课程设计,当按键三次错误后,系统报警,报警装置由一扬声器实现,从P2.1口输出脉冲,使扬声器鸣报警。
3.硬件电路设计
(1)键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
其原理如图3.1
图3.1矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图3.1所示的4×3键盘,说明逐行扫描查询的工作原理。
判断键盘有无按下:
1)先将行线P0.0-P0.3置1110,然后检查列线的状态,如果P0.5-P0.7为110,则“1”键被按下;如果P0.5-P0.7为101,则“2”键被按下;如果P0.5-P0.7为011,则“3”键被按下。
2)将行线P0.0-P0.3置1101,然后检查列线的状态,方法同1);
3)将行线P0.0-P0.3置1011,然后检查列线的状态,方法同1);
4)将行线P0.0-P0.3置0111,然后检查列线的状态,方法同1);
具体的功能设计如表3.1:
表3.1按键功能
按键
键名
功能说明
0-9键
数字键
输入密码
*键
确定键
比较密码
#键
清除键
使显示器清零
(2)LED显示电路
本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS47驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.2所示。
用P1.0—P1.3接74LS47的A,B,C,D四端口,74LS47的输出口接LED的七段显示;而P1.4—P1.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。
通过软件实现数字和位控制。
此次基于单片机的电子密码锁,我选用动态显示,通过与软件配合,每输入一个密码,进行显示一次扫描,6个密码输入完后,进行比较,密码正确则开锁,密码错误,可重新输入三次,三次后仍然错误,报警!
图3.2LED显示电路
用74LS47可以控制输出什么字型。
74LS47的逻辑功能表如表3.2所示:
表3.274LS47的逻辑功能表
用74LS138控制位循环显示,其逻辑功能表如表3.3:
C
B
A
Y1
Y2
Y0
Y3
Y4
Y5
Y6
Y7
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
表3.374LS138逻辑功能表
(3)开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
电路图如3.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图3.3开锁电路
(4)报警电路
输入密码与设定密码做比较,当输入密码与设定密码不同,返回再输入,当输入密码次数超过3次时,通过软件从AT89S51的P2.1输出脉冲,使扬声器鸣笛报警。
电路图如图3.4所示。
图3.4报警电路
4.软件设计
(1)软件设计思路
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H 中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
(2)各子程序设计
开始
清除原始显示
开始扫描
读入P0值并存入寄存器
按键值左移一位
C=0?
转移至按键处理子程序
取码指针加1
3列扫描完?
调用显示子程序
扫描值载入令C=1
扫描下一行
扫描值左移一位
C=1?
令P0.3=0
N
N
N
1)主程序流程图:
读入P0值
是“*”键?
是“#”键?
存储数字按键值
调用显示子程序
返回主程序重新开始扫描
2)按键处理子程序流程图:
输入数据与密码值比较
比较下一个码
码比较完?
控制电锁启动
延迟0.1s
返回主城需求重新开始扫描
3)比较子程序流程图:
显示第一位延迟3ms
显示第二位延迟3ms
显示第三位延迟3ms
显示第四位延迟3ms
显示第五位延迟3ms
显示第六位延迟3ms
返回主程序
4)显示子程序流程图:
5)密码比较及对错处理
密码输入完成之后,进行密码比较,即将设定密码单元的密码与输入密码的密码进行一一比较,如果相同,则密码正确,P2.0置高电平,如果密码错误,则显示器清零,重新等待输入密码,如果三次错,则P2.1输出脉冲,使接在P2.1的使扬声器鸣笛报警。
四、结论与调试
本次调试采用Protues软件仿真。
首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。
依次按下1,2,3,4,5,6后,LED显示如图4.1
图4.1LED显示
按下确定键后,二极管亮,表示密码正确开门。
如图4.2
图4.2密码正确开锁
五、心得与体会
这四周的课程设计,让我对单片机电路的理论有了初步的、系统的了解。
我了解到了单片机系统电路设计、软件系统编程的技巧。
这些知识不仅在课堂上有效,对以后的专业技术课的学习有很大的指导意义,而且在日常生活中更是有着现实意义。
对自己的动手能力是个很大的锻炼。
实践出真知,纵观古今,所有发明创造无一不是在实践中得到检验的。
没有足够的动手能力,就奢谈在未来的科研尤其是实验研究中有所成就。
在设计和制作中,我锻炼了自己动手技巧,提高了自己解决问题的能力。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整四个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在同学的帮助下,终于游逆而解。
非常感谢!
六、附录
1.元件清单
名称
型号
数量
51单片机
AT89S51
1个
3-8译码器芯片
74LS138
1个
数码管驱动芯片
74LS47
1个
七段数码管
LTS547R
6个
NPN型三极管
9012
1个
晶振
3225
1个
电容
CBB65
2个
电解电容
CD11
1个
电阻R1
2.2K
1个
电阻R2
0.22K
1个
电阻R3
1K
1个
电阻R4
0.47K
1个
排阻Rp
10K
1个
发光二级管
3014
1个
扬声器
1个
开关
13个
2.电路原理图
3.源程序清单
ORG0000H
START:
ORLP2,#FFH;清除P2中的数据
MOVR4,#06H
MOVR0,#30H
CLEAR:
MOV@R0,#00H;清除30H-35H单元的内容
INCR0
DJNZR4,CLEAR
L1:
MOVR3,#0F7H;扫描初值设定,令P0.3=0
MOVR1,#00H;键盘取码指针
L2:
MOVA,R3;开始扫描
MOVP0,A;将扫描初值输出到P0
MOVA,P0;读入P0的值,判断是否有按键
MOVR4,A;将检测的按键状态存入R4,以便后面判断是否已被放开
SETBC;令C=1
MOVR5,#03H;设置后面扫描键盘的列线
L3:
RLCA;将检测的按键信息左移
JNCKEYIN;判断是否C=0,若C=0,则转移到按键处理子程序
INCR1;C=1,表示没有按键,取码指针加1
DJNZR5,L3;判断键盘列是否已扫描完,没完就继续
CALLDISP;调用显示子程序
MOVA,R3;扫描值载入
SETBC;令C-1
RRCA;进行行扫描
MOVR3,A;按键信息存入R3
JCL2;C=1,P0.0没有被扫描
JMPL1;C=0,行扫描完毕
***按键处理子程序***
KEYIN:
MOVR7,#60;延迟30ms,消除抖动
D2:
MOVR6,#248
DJNZR6,$
DJNZR7,D2
D3:
MOVA,P0;读入P0的值
XRLA,R4;与上次读入值比较
JZD3
MOVA,R1;取码指针载入累加器
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVR7,A;按键码暂存于R7
XRLA,#0AH;看按键码是否为“*”
JZCOMP;是,就去比较密码
MOVA,R7;不是,再检测判断
XRLA,#0BH;看按键码是否为“#”
JZSTART;是,就返回清除显示
MOVA,R7;不是,按键为数字键
XCHA,30H
XCHA,31H
XCHA,32H
XCHA,33H
XCHA,34H
XCHA,35H
CALLDISP;调用显示子程序
JMPL1
***显示子程序***
DISP:
MOVA,35H
ADDA,#50H
MOVP1,A;D6数码管显示数据
CALLDELAY;延迟3ms
MOVA,34H
ADDA,#40H
MOVP1,A;D5数码管显示数据
CALLDELAY
MOVA,33H
ADDA,#30H
MOVP1,A;D4数码管显示数据
CALLDELAY
MOVA,32H
ADDA,#20H
MOVP1,A;D3数码管显示数据
CALLDELAY
MOVA,31H
ADDA,#10H
MOVP1,A;D2数码管显示数据
CALLDELAY
MOVA,30H
ADDA,#00H
MOVP1,A;D1数码管显示数据
CALLDELAY
RET
***比较子程序***
COMP:
MOVR0,#35H
MOVR2,#06H;比较六个码
MOVR7,#12
X4:
MOVA,R7
MOVDPTR,#TABLE;数据指针指到TABLE
MOVCA,@A+DPTR
XRLA,@R0;与显示值比较
JNZCUO;不同,跳转
DECR0;相同,比较下一个
INCR7
DJNZR2,X4
SETBP2.0;电子密码锁开启
MOVR2,#200
X6:
MOVR6,#248
DJNZR6,$
DJNZR2,X6
CUO:
MOVR5,#OOH;3次报警程序
MOVA,R5
CJNEA,#03H,X7
SETBP2.1
MOVR5,#00H
X7:
JMPSTART
;***显示器扫描延迟5ms子程序***
DELAY:
MOVR7,#10
D1:
MOVR6,#248
DJNZR6,$
DJNZR7,D1
RET
;***键盘码与密码值***
TABLE:
DB01H,02H,03H;键盘值
DB04H,05H,06H
DB07H,08H,09H
DB0AH,00H,0BH
DB05H,04H,03H,02H,01H,00H;密码值
END
七、参考文献
[1]《单片机原理及及应用》王迎旭
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码锁 实习 报告