智能电子密码锁设计.docx
《智能电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《智能电子密码锁设计.docx(26页珍藏版)》请在冰豆网上搜索。
智能电子密码锁设计
XXXX大学
毕业设计
课程名称单片机原理与应用
课题名称智能电子密码锁设计
专业班级
学号
姓名
指导教师
20年月日
课程设计任务书
设计内容与设计要求
设计内容:
1、密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
2、密码的输入:
采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键。
在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。
然后进入密码的判断比较处理状态并给出相应的处理过程。
3、按键禁止功能:
初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。
设计要求:
1、设计方案要合理、正确;
2、系统硬件设计及焊接制作;
3、系统软件设计及调试;
4、系统联调;
5、写出设计报告。
主要设计条件
1、MCS-51单片机实验操作台1台;
2、PC机及单片机调试软件;
3、单片机应用系统板1套;
4、制作工具1套;
5、系统设计所需的元器件。
说明书格式
1.封面
2.课程设计任务书
3.目录
4.系统总体方案设计
5.系统硬件设计
6.软件设计(包括流程图)
7.系统的安装调试说明
8、总结
9、参考文献
10、附录(源程序清单及硬件原理图等);
11、课程设计成绩评分表。
进度安排
设计时间为两周
第一周
星期一、上午:
布置课题任务,讲课及课题介绍
下午:
借阅有关资料,总体方案讨论
星期二、确定总体设计方案
星期三、硬件模块方案设计
星期四、软件模块方案设计
星期五、设计及调试
第二周
星期一、设计及调试
星期二、设计及调试
星期三、总调
星期四、写说明书
星期五、上午:
写说明书,整理资料
下午:
交设计资料,答辩
参考文献
[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002
[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001
[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001
[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002
[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
第1章概述-------------------------------1
1.1设计任务----------------------------------------------------------------------1
1.2设计要求----------------------------------------------------------------------1
1.3主要设计条件----------------------------------------------------------------1
第2章系统总体方案设计------------------4
2.1单片机系统---------------------------------------------4
2.1矩阵键盘-----------------------------------------------4
2.3LED显示-----------------------------------------------4
2.4报警系统-----------------------------------------------4
第3章硬件电路设计----------------------5
3.1键盘电路设计-------------------------------------------5
3.2LED显示电路设计---------------------------------------7
3.3报警电路设计-------------------------------------------8
第4章软件设计---------------------------9
4.1软件总体设计------------------------------------------10
4.2各子程序的设计----------------------------------------12
第5章调试总结---------------------------16
附录-------------------------------------17
附录A源程序清单-------------------------------------------17
附录B硬件原理图-------------------------------------------22
参考文献----------------------------------23
第1章概述
1.1选题背景
在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。
1.2电子密码控制简介
电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都已大大超过了机械类。
其特点如下:
1)保密性好,编码量多,远远大于机械控制。
随机开锁成功率几乎为零。
2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。
3)误码输入保护,当输入密码多次错误时,报警系统自动启动。
4)无活动零件,不会磨损,寿命长。
5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
6)电子密码控制系统具有操作简单易行,一学即会的特点。
1.3电子密码控制的发展趋势
由于电子器件所限,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,后来便是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引脚的2051系列单片机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了更为真正的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码控制系统。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为电子信息,组合使用这些信息能够使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。
组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。
可以看出组合使用电子信息是电子密码控制系统今后发展的趋势。
老师布置下这各课题时,其任务要求条件如下:
1.1设计内容:
(1)密码的设定,此密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2)密码的输入:
采用两个按键来完成密码的输入,其中一个按键为功能键,另一个按键为数字键,在密码都已经输入完毕并且确认功能键之后,才能完成密码的输入过程。
然后进入密码的判断比较处理状态并给出相应的处理过程。
(3)按键禁止功能:
初始化时,允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态是在3次密码输入不正确的情况下发生的。
1.2设计要求:
(1)设计方案要合理、正确;
(2)系统硬件设计及焊接制作;
(3)系统软件设计及调试;
(4)系统联调。
1.3主要设计条件:
(1)MCS-51单片机实验操作台1台;
(2)PC机及单片机调试软件;
(3)单片机应用系统板1套;
(4)制作工具1套;
(5)系统设计所需的元器件。
基于以上,我的此次课程设计以单片机为核心,完成电子密码锁的设计。
第2章系统总体方案设计
此次课程设计基于单片机控制的电子密码锁,接到课题后,根据老师布置的任务和相关要求,结合主要设计条件,我设计了如下方案,其总体方案设计如下:
本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警功能。
2.1单片机系统:
此次课题采用一种是用以80C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。
此次课题用单片机P1口与键盘相连,做输入口,P0口与显示器相连,做显示,P2口做显示器扫描。
2.2矩阵键盘接口电路:
此次课程设计采用4*4矩阵键盘,与P1口相连,采用扫描法。
设有0——9十个数字密码,和一个确认键。
开机显示000000,等待密码输入,输入6个密码,按确认键后,密码比较。
2.3LED显示:
此次课程设计6密码6显示器,按键后即显示,动态显示。
P0口送示数据,P2口显示扫描,根据按键次数,第一位显示器显示第一次按的密码,第二位显示器显示第二次按的密码,第三位显示器显示第三次按的密码,依此第六位显示器显示第六次按的密码,按键完成后按确认键后,密码对则执行相关动作,不同则显示器清零,等待重新输入。
2.4报警系统:
此次课程设计,当按键三次错误后,系统报警,报警装置由一扬声器实现,从P3.0口输出脉冲,使扬声器鸣报警。
第3章硬件电路设计
3.1键盘电路设计
矩阵式键盘电路图3-1:
图3-1矩阵式键盘电路图
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,图1-1中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
3.1.3矩阵式键盘的识别方法:
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下:
(1)先将行线p1.7-p1.4置0111,然后检测列线的状态。
如果p1.3-p1.0为0111,则k0被按下;如果p1.3-p1.0为1011,则k1被按下;如果p1.3-p1.0为1101,则k2被按下;如果p1.3-p1.0为1110,则k3被按下;
(2)将行线p1.7-p1.4置1011,然后检测列线的状态,方法同
(1);
(3)将行线p1.7-p1.4置1101,然后检测列线的状态,方法同
(1);
(4)将行线p1.7-p1.4置1110,然后检测列线的状态,方法同
(1).
3.2LED显示电路设计
3.2.1LED显示电路图:
图3-2LED动态显示电路
3.2.2LED显示原理:
LED就是lightemittingdiode,发光二极管的英文缩写,简称LED。
它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
显示器显示接口按驱动方式可分为静态显示和动态显示,静态显示时,除变更显示数据期间外,各显示器均处于通电状态,每个显示器的通电占空比为100%,静态显示的优点是显示稳定,亮度高,缺点是占用硬件电路多;动态显示的优点是节省硬件电路,缺点是占用软件扫描时占用CPU时间多。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环点亮各位显示器,这样虽然在任一时刻只有一显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。
为了实现LED显示器的动态扫描,除了要给显示器的输入之外,还有对显示器选择位的控制,这就是通常所说的段控和位控。
因此,多位LED显示器接口电路需要有两个输出口,其中一个用于8条段控线,另一个用于输出位控线,位控线的数目等于显示器的位数。
为了方便编写程序,通常在内部RAM中设置显示缓冲区,存放显示的数字或字符,显示缓冲区单元个数与LED显示器位数相同。
此次基于单片机的电子密码锁,我选用动态显示,通过与软件配合,每输入一个密码,进行显示一次,扫描,6个密码输入完后,进行比较,密码正确则开锁,密码错误,可重新输入三次,三次后仍然错误,报警!
3.3报警电路设计
3.3.1报警电路图:
图3-3报警电路
3.3.2报警电路原理:
输入密码与设定密码做比较,当输入密码与设定密码不同,返回再输入,当输入密码次数超过3次时,通过软件从80C51的P3.0输出脉冲,使扬声器鸣笛报警。
相关软件见(附件)
第4章软件设计
4.1软件总体设计
软件的设计主要包括:
密码的固定、键盘识别判断、密码显示、密码比较、密码对处理、错报警。
软件设计总流程图如下:
图4-1软件设计总流程图
4.2各子程序的设计
4.2.1密码的固定:
将密码固定在程序存储器ROM中,设定6位密码,密码固定在ROM的20H到25H六个单元中。
4.2.2键盘的扫描识别判断:
用矩阵式键盘,扫描法对键盘进行识别判断,具体流程图如下:
图4-2键盘扫描流程图
以上是第一行的扫描,接着MOVP1,#10111111,扫描第二行,判断K4、K5、K6、K7;再MOVP1,#11011111,扫描第三行,判断k8、K9、KA、KB;接着MOVP1,#11101111,扫描第四行,判断kC、KD、KE、KF;并进行相关显示。
如果无键按下,则循环扫描。
4.2.3密码显示:
采用LED动态显示,由单片机P0口进行输出显示,P2口扫描,具体显示程序设计流程图如下:
图4-3显示流程图
4.2.4密码设置流程图
如图5-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误,累计三次错误,进行报警程序。
如输入正确,可以改密码,确认后再次输入更改后密码,如两次输入一样,则更改成功。
图4-4密码设置流程图
4.2.5开锁流程图
如图5-4为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。
如果输入错误累计达到三次,则执行报警程序。
图4-5开锁流程图
4.2.4密码比较及对错处理:
密码输入完成之后,进行密码比较,即将设定密码单元20H—25H的密码与输入密码26H—31H的密码进行一一比较,如果相同,则密码正确,P3.2置高电平,如果密码错误,则显示器清零,重新等待输入密码,如果三次错,则P3.0输出脉冲,使接在P3.0的使扬声器鸣笛报警。
第5章调试总结
单片机系统进行软件盒硬件调试成功后最后一步是进行硬件的连接和物制作,我们的硬件是在试验台上进行的,虽然与设计的电路不太相同,不过可以适当修改源程序,以适应实验台的要求。
4.3.1根据实验台情况和设计要求连接电路图。
4.3.2在连接的电路上,进行模块测试,就是用简单的程序进行调试以确定电路连接正确。
4.3.3将修改后的程序下载到单片机里,可以用伟福仿真系统,进行单步和断点调试。
4.3.4将运行结果和实验现象与预定值进行比较,再适当修改程序以达到要求。
心得体会
回顾起此次单片机课程设计,让我感慨很多,从理论到实践,在整整两个星期的日子里,可以说是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多书本上所没有学到过的知识。
两周以来,整日埋头于电路程序的设计,分析,绘制,仿真。
其实一开始真不知道该从何入手,短短几天内,在同学的帮助之下,开始在脑海里有了大致的模块,面对电脑搜索资料,查找相关的资料,分析电路,根据自己的目的有效地编制程序,对比之下有进一步的完善,在形成电路大致模块下又进一步尽可能的减小成本,知道最终电路以自己最理想的形式出现。
在本次设计的过程中,我发现很多的问题,单片机课程设计的重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉得写好一个程序不是一件简单的事情。
通过这次实习,我真正学到了不少东西,真正体会到了理论联系实际的重要性。
课堂教学考虑到大多数同学的需求,主要强调基本知识,基本理论,基本方法,基本技能。
而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。
当然也要感谢2位老师。
附录
附录A.源程序清单:
ORG0030H
Main:
MOVDPTR,#0CFA3H;初始化
MOVA,#80H
MOVX@DPTR,A
mov20H,#1H;设定固化密码
MOV21H,#2H
MOV22H,#3H
MOV23H,#4H
MOV24H,#5H
MOV25H,#6H
MOV51H,#0
MOVR3,#0
LOOP1:
MOVP1,#01111111B;键盘扫描
JNBP1.5,K0;判断知否按下
JNBP1.4,K1
JNBP1.3,K2
JNBP1.2,K3
JNBP1.1,K4
JNBP1.0,K5
LOOP2:
MOVP1,#10111111B
JNBP1.5,K6
JNBP1.4,K7
JNBP1.3,K8
JNBP1.2,K9
JNBP1.1,KA
JNBP1.0,KB
SJMPLOOP1
K0:
MOVA,#0;按下,显示
SJMPDISP
K1:
MOVA,#1
SJMPDISP
K2:
MOVA,#2
SJMPDISP
K3:
MOVA,#3
SJMPDISP
K4:
MOVA,#4
SJMPDISP
K5:
MOVA,#5
SJMPDISP
K6:
MOVA,#6
SJMPDISP
K7:
MOVA,#7
SJMPDISP
K8:
MOVA,#8
SJMPDISP
K9:
MOVA,#9
SJMPDISP
KA:
MOVA,#10
SJMPCOMP
KB:
MOVA,#8
SJMPLOOP1
K12:
MOVA,#0
SJMPLOOP1
K13:
MOVA,#1
SJMPLOOP1
K14:
MOVA,#4
SJMPLOOP1
K15:
MOVA,#7
SJMPLOOP1
DISP:
MOVR4,A;密码显示程序
MOVA,R3
ADDA,#26H
MOVR1,A
MOVA,R4
MOV@R1,A
MOVR0,#50
MOVDPTR,#TABLE
DI1:
SETBCY
MOVR1,#26H
MOVR2,#0FEH
MOVR5,#6
DI0:
MOVA,@R1
MOVCA,@A+DPTR
MOVDPTR,#0CFA1H
MOVX@DPTR,A
MOVA,R2
MOVDPTR,#0CFA2H
MOVX@DPTR,A
RLCA
MOVR2,A
INCR1
ACALLDLY10MS
MOVA,#0FFH
;MOVDPTR,#0CFA2H
MOVX@DPTR,A
DJNZR5,DI0
DJNZR0,DI1
INCR3
MOVA,R3
CJNEA,#6,DI2
LJMPLOOP1
DI2:
LJMPLOOP1
DLY10MS:
MOVR7,#5;延时10MS程序
D1:
MOVR6,#248
DJNZR6,$
DJNZR7,D1
RET
COMP:
MOVA,26H;密码比较
CJNEA,20H,CUO;密码是否错
MOVA,27H
CJNEA,21H,CUO
MOVA,28H
CJNEA,22H,CUO
MOVA,29H
CJNEA,23H,CUO
MOVA,2AH
CJNEA,24H,CUO
MOVA,2BH
CJNEA,25H,CUO
MOVDPTR,#0CFA1H
CLRACC.2;密码对,PA口置低电平
MOVX@DPTR,A
SJMP$
CUO:
INC51H;按错密码次数
MOVA,51H
CJNEA,#3,C1
SJMPALARM
C1:
MOV26H,#0H;密码错,显示清零
MOV27H,#0H
MOV28H,#0H
MOV29H,#0H
MOV2AH,#0H
MOV2BH,#0H
MOVR3,#0
LJMPLOOP1
ALARM:
;三次密码错误,报警
MOVDPTR,#0CFA1H
CPLACC.0
MOVX@DPTR,A
ACALLDLY10MS
SJMPALARM
TABLE:
DB3FH,06H,5BH,4FH;显示表
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,5EH,79H,71H
END
附录B.硬件原理图:
图6-1硬件原理图
电气信息学院课程设计评分表
项目
评价
设计方案的合理性与创造性
硬件制作或软件编程完成情况*
硬件制作测试或软件调试结果*
设计说明书质量
设计图纸质量
答辩汇报的条理性和独特见解
答辩中对所提问题的回答情况
完成任务情况
独立工作能力
组织纪律性(出勤率)
综合评分
指导教师签名:
________________