毕业设计电子密码锁基于AT89C51经典Word格式文档下载.docx
《毕业设计电子密码锁基于AT89C51经典Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《毕业设计电子密码锁基于AT89C51经典Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
6致谢………………………………………………………………18
7参考文献…………………………………………………………18
8附录………………………………………………………………19
1引言
目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。
但在使用中暴露了很多缺点:
一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。
据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。
二是钥匙一旦丢失,无论谁捡到都可以将锁打开。
三是机械锁的材料大多为黄铜,质地较软,容易损坏。
四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。
由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。
随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。
电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。
随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
2方案比较与论证
方案一:
采用数字电路控制。
其原理方框图如图1所示。
图1数字密码锁电路方案
采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有6个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;
若电路连续报警三次,电路将锁定键盘10秒,防止他人的非法操作。
电路由两大部分组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:
以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加温度显示、时间显示甚至添加遥控控制功能。
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
3系统模块电路的设计
3.1系统总框图
图2系统框图
3.2系统的模块电路设计
3.2.1单片机最小系统模块
AT89C51是一种低功耗,高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89SC51为众多嵌入式控制应用系统提供高灵活,超有效地解决方案。
AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3AT89C51管脚图
3.2.2时钟电路模块
采用专用时钟芯片DS1302,该芯片性能简介如下:
DS1302的结构及工作原理:
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×
8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
(1)引脚功能及结构
图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK始终是输入端。
图4DS1302的管脚图
(2)DS1302的控制字节
DS1302的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1指示操作单元的地址;
最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
图5DS1302的控制字节
(3)数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
(4)DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
图6日历,时间寄存器及其控制字
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;
另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
(5)DS1302与单片机连接如图7所示:
图7DS1302与单片机连接图
3.2.3键盘模块
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。
其原理如图8所示:
图8矩阵键盘
每条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条行线和M条列线,即可组成具有N*M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描法;
另一种是速度较快的线反转法。
对照图8所示的4*4键盘,说明线反转个工作原理。
首先辨别键盘中有无按键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
方法是:
向列线输出全扫描字00H,把全部列线置为低电平,然后将行线的电平状态读入累加器A中。
如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断哪个键被按下:
将P1.0~P1.3都置低,检测P1.4~P1.7是否有低的,若有,则证明有键按下,记下低的端口。
然后,将P1.4~P1.7置低,检测P1.0~P1.3是否有低的端口,如有,则证明端口与上次的一个为地的端口交叉位置的键被按下。
按键
键名
功能说明
0——9键
数字键
输入密码
*键
重设密码键
设定新密码
D键
确定键
比较密码
C键
清除键
使显示器清零
B键
开启键
开启键盘
A键
关闭键
关闭键盘
#键
调整键
调整时间
3.2.4显示模块
电子密码锁系统中,需要现实的信息较少,因此采用七段LED数码显示管作为显示器。
数据传输采用串行方式,有单片机串行数据口P3.0发送,在经过74HC164串行移位器把串行数据转换成8位并行数据,用以驱动七段LED数码显示管。
由于74HC164芯片中,没有数据锁存器,串行数据每到达一位,都会直接送到七段显示管中,造成所有数据都会经过其短线是数码管的每一个LED灯,是数据显示不稳定。
因此在74HC164串行移位寄存器和七段数码显示管之间,加入数据锁存器(74273芯片),以稳定数码显示管的数据显示。
在按下开启按键后,显示器处于开启状态,同理只有按下关闭键后显示器处于关闭状态,当需要对密码锁进行开锁时,按下键盘上的开锁键后利用键盘上的数字键0——9输入密码,每按下一个数字键后在显示器上显示一个“-”,输入六个数有六个“-”出现。
当密码输入完成时,按下确认键。
如果正确的话LED显示“111111”,单片机其中P2.0出现低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码错误,LED显示”000000”,单片机P2.0输出的是高电平,电子密码锁不能被打开。
在LED屏上时间出错时,可通过“#”键修改时间设定。
图9显示电路
用74LS247可以控制输出什么字型。
图1074LS247的逻辑功能表
图1174LS247控制位循环显示
3.2.5电源模块
为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。
电源电路图如图5所示。
图12供电电路
220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。
由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+<
V-IC14输出高电平,继电器的常闭触点和市电相连;
当市电断开,V+>
V-IC14输出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。
其电路图如下图6所示:
图13停电检测及电子开关切换电路
T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。
由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;
充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。
其电路图如图7所示:
图14蓄电池自动充电电路
3.2.6温度检测电路设计
采用一线总线式温度传感器DS18B20,该传感器性能如下:
(1)DS18B20的主要特性:
(a)适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
(b)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
(c)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
(d)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
(e)温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃
(f)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
(g)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
(h)测量结果直接输出数字温度信号,以"
一线总线"
串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力
(i)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
(2)DS18B20与单片机接口电路图如图15:
3.2.7开锁电路与报警电路设计
开锁电路
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;
灭,表示没有开锁。
电路图如3.3所示。
当P2.0口输出低电平时,二极管发光,表示开锁。
图16开锁电路
报警电路
报警模块由蜂鸣器和单片机组成。
选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要100mA驱动电流。
当89c51的P2.1口输出低电平时,蜂鸣器产生蜂音,
89c51输出高电平时,蜂鸣器不发声。
图17报警电路
4系统的软件设计
4.1软件设计思路
电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入状况,接下来确认密码的判断,做出开锁或报警处理。
当输入密码连续输入错误3次时,系统报警。
其中还有温度和时间显示。
多功能电子密码锁的基本要求:
1、通过键盘修改、输入密码。
2、连续三次输入密码错误后锁定键盘10秒,并给出提示。
3、具有日期时间设置(小时和分钟)、显示,环境温度显示功能。
4、220V供电下,设计系统所需电源,并考虑掉电后原始数据的保存。
4.2系统主流程图
图21报警流程图
5总结
在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。
毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。
通过这次毕业设计使我明白了自己原来知识还比较欠缺。
自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。
通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识。
在多人做项目的时候,队员的交流是非常重要的,是很关键的部分。
这次的毕业设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
刚开始的时候,大家就分配好了各自的任务,大家有的绘制原理图,进行仿真实验,有的积极查询相关资料,并且经常聚在一起讨论各个方案的可行性。
在毕业设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们成功的一项非常重要的保证。
不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。
最后终于做完了有种如释重负的感觉。
此外,还得出一个结论:
知识必须通过应用才能实现其价值!
有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。
良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。
在设计过程中,通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。
虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。
对我而言,知识上的收获重要,精神上的丰收更加可喜。
让我知道了学无止境的道理。
我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。
挫折是一份财富,经历是一份拥有。
6致谢
本论文虽然凝聚着自己的汗水,但却不是个人智慧的产品,没有导师的指引和帮助,没有父母和朋友的帮助和支持,我在大学的学术成长肯定会大打折扣。
当我打完毕业论文的最后一个字符,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚挚谢意。
我首先要感谢我的导师陈海燕老师,对我的构思以及论文的内容不厌其烦的进行多次指导和悉心指点,陈老师多次询问进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。
陈老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时三载,却给以终生受益无穷之道。
对陈老师的感激之情是无法用言语表达的,使我在完成论文的同时也深受启发和教育。
再次由衷感谢答辩组的各位老师对学生的指导和教诲,我也在努力的积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取使自己的人生对社会产生些许积极的价值。
参考文献
1、《MCS-51单片机原理及应用教程》刘迎春等清华大学出版社
2、《单片机外围电路设计》沙占友等电子工业出版社
3,《单片机原理机应用》李念强等机械工业出版社
8附录
主电路图
图20主电路图