密码锁的研究与设计.docx
- 文档编号:29934922
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:30
- 大小:346.66KB
密码锁的研究与设计.docx
《密码锁的研究与设计.docx》由会员分享,可在线阅读,更多相关《密码锁的研究与设计.docx(30页珍藏版)》请在冰豆网上搜索。
密码锁的研究与设计
2013--2014学年第2学期物电学院期末考试卷
《计算机控制技术》
学号:
************姓名:
张淑英班级:
电子信息工程一班
成绩:
评语:
(考试题目及要求)
密码锁的研究与设计
通过对计算机控制课程的学习,结合课程中对单片机知识的复习以及对计算机控制的基本原理的理解,完成了该设计。
该课程作业主要是对密码锁的研究与设计。
本控制器AT89C51单片机为核心键盘、显示电路,输出控制电路,告警提示电路等构成。
利用目前使用的微处理器AT89C51作为控制元件设计了一种电子密码锁。
其具有可设置多组密码、多次改写和保存密码的优点,克服了普通锁需要随身携带钥匙且易丢失、保密性差的缺点,在宾馆、办公大楼、仓库、保险柜和家庭普遍适用。
目 录
摘要
本论文详细地论述了以单片机为处理器的密码锁自动控制器的硬件、软件设计和系统编程的问题。
本控制器AT89C51单片机为核心键盘、显示电路,输出控制电路,告警提示电路等构成。
利用目前使用的微处理器AT89C51作为控制元件设计了一种电子密码锁。
其具有可设置多组密码、多次改写和保存密码的优点,克服了普通锁需要随身携带钥匙且易丢失、保密性差的缺点,在宾馆、办公大楼、仓库、保险柜和家庭普遍适用。
关键词:
AT89C51键盘液晶显示电子密码锁
一、课题背景及意义
随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开的扣件。
锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。
现代人类文明社会里,由于社会中各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自已的行为,“非礼不为”,虽无钥匙亦不会乱闯。
然而,那些毫无道德观念的盗贼却想方设法利用高科技手段撬门开锁,使广大居民防不胜防。
为什么会出现这种情况呢?
因为传统锁具都存在致命的弱点:
第一、锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;
第二、锁具制作工艺,技术落后,无法阻止技术手段的开启。
目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。
在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,有的惯偷甚至公开扬言:
“没有我打不开的锁。
”其实,不是他们多高明,而是一般锁具技术原理太过简单。
面对这一残酷的现状,新时代提出了锁具必须革命的迫切的要求。
因此,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计以AT89C51为主控芯片,带有一个密码输入键盘、外围时钟复位电路、电磁阀等实现电子锁的锁闭和打开。
该锁要求结构简单,成本低,安全性高,易于主人随时更新密码,在一定程度上具有较大的市场竞争力。
要求完成电子锁的控制系统的实物演示模型。
根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
测试结果表明,本系统各项功能已达到本设计的所有要求。
二、设计要求
(1)密码通过键盘输入,若密码正确,则将锁打开。
(2)报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
(3)密码清除功能:
当按下清除键时,清除前面输入的所有值,并清除所有显示。
(4)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
三、设计思路及设计方案
(一)设计方案选择
方案一:
采用数字电路控制。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
如图1.
图1.采用数字电路控制
方案二:
采用一种是用以AT89C51为核心的单片机控制方案。
选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。
其原理图2所示:
图2.以AT89C51为核心的单片机设计方案
通过比较以上两种方案,采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。
单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
(二)总体方案思路
本方案采用一种是用以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
输入密码用矩形键盘,包括数字键和功能键。
LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁。
输入密码错误次数超过3次,系统报警。
打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”确认键。
若密码与设定密码相同,则开门。
否则显示器清为“000000”。
硬件的设计主要包括键盘的输入,LED显示电路,开锁电路,报警电路。
软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
(三)系统硬件设计
1.键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成
4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
如图3所示。
图3.4*4键盘的工作原理
2.LED显示设计
本系统设计的显示电路是为了给使用者以提示而设置的。
本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能。
3.开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
当P2.0口输出低电平时,二极管发光,表示开锁。
4.报警电路
报警模块由蜂鸣器和单片机组成。
选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。
蜂鸣器电路如图3.4所示。
当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。
(四)软件设计
1.键盘的读取
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。
方法是:
依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
2.LED显示程序
图4LED显示程序流程图
3.密码比较和报警程序
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为"123456"共6位密码。
由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
流程图如下所示:
图5密码比较和报警程序流程图
四、程序调试
调试本程序需要用到KEILC51,及51开发板一块及其配套的下载烧录软件
(一)KEILC51简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
C51工具包的整体结构:
uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
(二)调试过程
首先打开KEILC51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。
然后用51开发板相匹配的烧录软件把HEX文件写入单片机。
图6keilc51调试介面
五、设计总结
通过这学期对计算机控制这门课程的学习,结合以前的单片机知识完成了该设计。
通过这次设计我懂得了实践是检验真理的唯一标准,当然也是检验学习成果的标准。
在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。
在做设计期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨大的收获,现将工作总结如下:
思想上,学会了用科学的精神去解决问题。
很多事情看起来是很简单的问题,但实际做起来去会发现有许多奥妙!
这是因为其中蕴含着许多科学的问题。
运用科学的方法去解决问题,这是我这次实训给我带来的思想上的改变。
学习上,使自已在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对电子元件有了进一步的认识。
电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。
计算机控制发展是自动化技术的热门研究课题,它们的发展与进步将是实施CIPS的保证。
CIPS利用计算机技术对整个企业的运作和过程进行综合管理和控制,它包括市场营销、生产计划调度、原料选择、产品分配、成本管理,以及工艺过程的控制、优化和管理的全过程。
分布式控制系统,先进过程控制以及网络技术,数据库技术是实现CIPS的重要基础。
可以预计,通过广大学者与工程技术人员的努力,今后我国会在过程工业的计算机粲成过程系统中取得更多的进展与成果。
参考文献
[1]李朝青.单片机原理及接口技术.北京:
北京航空航天大学出版社,1998
[2]李全利.单片机原理及接口技术.高等教育出版社,2003
[3]何宏主编.单片机原理与接口技术.北京:
国防工业出版社.2006.07
[4]杨将新,李华军,刘到骏等.单片机程序设计及应用.电子工业出版社,2006
[5]黄智伟.全国大学生电子设计竞赛训练教程[M].北京:
电子工业出版社,2005
附录
本设计的程序:
hc0equ4ah;延时缓存区
hc1equ4bh
hc2equ4ch
hc3equ4dh
hc4equ4eh
xs_0equ50h;显示缓存区
xs_1equ51h
xs_2equ52h
xs_3equ53h
xs_4equ54h
xs_5equ55h
xs_6equ56h
xs_7equ57h
xs_8equ58h
xs_9equ59h
ps1equ5ah;设置密码缓存区
ps2equ5bh
ps3equ5ch
ps4equ5dh
mmbzequ5fh;密码输入次数
at1equ60h;输入密码缓存区
at2equ61h
at3equ62h
at4equ63h;初始化
org00h
ajmpmain1
org30h
main1:
movps1,#00h
movps2,#00h
movps3,#00h
movps4,#00h
movat1,#00h
movat2,#00h
movat3,#00h
movat4,#00h
main:
movxs_0,#1fh;显示0的摩斯值
movxs_1,#0fh;显示1的摩斯值
movxs_2,#07h;显示2的摩斯值
movxs_3,#03h;显示3的摩斯值
movxs_4,#01h;显示4的摩斯值
movxs_5,#00h;显示5的摩斯值
movxs_6,#10h;显示6的摩斯值
movxs_7,#18h;显示7的摩斯值
movxs_8,#1ch;显示8的摩斯值
movxs_9,#1eh;显示9的摩斯值
clrp3.0;RXD置0
mova,#00h;密码缓存
movr2,#04h;四位密码
movr1,#00h
movr0,#ps1
movr7,#05h;摩斯次数,由于数字为5次
clrp2.7
start:
movp0,#0ffh
movp1,#0ffh
setbp2.4;按键位
jbp2.4,start;2.4为1转start
lcalldelay500ms
jbp2.4,start
ok:
;嘀的音
clrp0.0
lcalldelay500ms
jnbp2.4,daa;是否去嗒音
cun:
;
setbp0.2
setbp0.0
rla
adda,r1;存入一位摩斯码
djnzr7,yanshi;是否够五位摩斯码
ajmpxianshi
yanshi:
;输入一位摩斯码停顿1t
lcalldelay500ms
jbp2.4,main
ajmpok
daa:
;嗒的音
lcalldelay500ms
jbp2.4,stop
setbp0.0
clrp0.2
lcalldelay500ms
setbp0.2
jnbp2.4,stop
movr1,#01h
ajmpcun
stop:
;摩斯输入错误
clrp0.4
lcalldelay2s
setbp0.4
ajmpmain
cunchu:
mov@r0,a
incr0
mova,#00h
movr1,#00h
movr7,#05h
djnzr2,yanshi
clrp0.6
lcalldelay2s
setbp0.6
ajmpshuru
xianshi:
cjnea,xs_0,next1;够五位摩斯码显示0
movp1,#0c0h
clrp3.2;报警器
lcalldelay1s
setbp3.2;报警器
movp1,#0ffh
ajmpcunchu
next1:
cjnea,xs_1,next2;够五位摩斯码显示1
movp1,#0f9h
clrp3.2
lcalldelay1s
setbp3.2
movp0,#0ffh
ajmpcunchu
next2:
cjnea,xs_2,next3;够五位摩斯码显示2
movp1,#0a4h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next3:
cjnea,xs_3,next4;够五位摩斯码显示3
movp1,#0b0h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next4:
cjnea,xs_4,next5;够五位摩斯码显示4
movp1,#99h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next5:
cjnea,xs_5,next6;够五位摩斯码显示5
movp1,#92h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next6:
cjnea,xs_6,next7;够五位摩斯码显示6
movp1,#7dh
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next7:
cjnea,xs_7,next8;够五位摩斯码显示7
movp1,#0f8h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next8:
cjnea,xs_8,next9;够五位摩斯码显示8
movp1,#080h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
next9:
cjnea,xs_9,cw;够五位摩斯码显示9
movp1,#90h
clrp3.2
lcalldelay1s
setbp3.2
movp1,#0ffh
ajmpcunchu
cw:
clrp3.2
clrp0.4
lcalldelay5s
clrp0.4
setbp3.2
ajmpmain1
shuru:
;开门复位
movmmbz,#03;错误密码次数
movat1,#00h
movat2,#00h
movat3,#00h
movat4,#00h
shuru2:
clrp0.6
mova,#00h;密码缓存
movr2,#04h;四位密码
movr1,#00h
movr0,#at1
movr7,#05h
start1:
jbp2.4,start1
lcalldelay500ms
jbp2.4,start1
ok1:
;滴音
setbp3.0;开门后再按键1t
setbp0.6
clrp0.0
lcalldelay500ms
jnbp2.4,daaa
cun1:
setbp0.2
setbp0.0
rla
adda,r1
djnzr7,yanshi1
ajmpxianshi1
yanshi1:
;每个摩斯码之间延时1t
lcalldelay500ms
jbp2.4,stop1
ajmpok1
daaa:
;嗒音
lcalldelay500ms
jbp2.4,stop1
setbp0.0
clrp0.2
lcalldelay500ms
setbp0.2
jnbp2.4,stop1
movr1,#01h
ajmpcun1
stop1:
;摩斯码错误处理
clrp0.4
lcalldelay2s
setbp0.4
ajmpshuru2
cunchu2:
mov@r0,a
incr0
mova,#00h
movr1,#00h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码锁 研究 设计