六位电子密码锁毕业设计仿真截图.docx
《六位电子密码锁毕业设计仿真截图.docx》由会员分享,可在线阅读,更多相关《六位电子密码锁毕业设计仿真截图.docx(32页珍藏版)》请在冰豆网上搜索。
六位电子密码锁毕业设计仿真截图
XXXXXXXXXX
XXXX届毕业设计说明书
六位电子密码锁控制系统的设计
院、部:
xxxxxxxxxxxxxxx
学生姓名:
xxx
指导教师:
xxxx职称xxxxxx
专业:
xxxxxx
班级:
xxxxxxxxxx
完成时间:
2013.05.29
摘要
如今的生活中机械锁已经不能满足人们的要求了,这样电子密码锁就广泛的运用到了生活中,随着各式各样的密码锁诞生,对密码锁的要求也越来越高,所以密码锁在以后的生活中有着很大的发展空间。
本次设计中的密码锁采用的是以单片机为核心的电路,设计出来的安全性高、成本低、功耗低、易操作的电子密码锁。
电路中包括了键盘电路、显示电路、报警电路、开锁电路以及掉电存储电路。
其中键盘电路采用的是4*4矩阵型键盘,该键盘电路可以为单片机节省I/O口的使用。
为了更好的让用户知道输入的信息,在本设计中添加了显示电路。
显示电路使用的是使用了单片机的一个串行口,用74LS247驱动数码管发光显示数码,再使用74LS138控制选位信号就可以完成该系统的显示功能。
此显示模块方便而且简单。
在安全性能方面,本设计中设计出了报警电路,防止外人胡乱使用密码而产生的不良后果,在输入密码错误三次的时候,电路就会发出报警并且会锁定键盘。
这样就可以更好的防止用户以外的人胡乱操作密码锁而造成不必要的损失。
在设计中因为要考虑原件成本的问题,所以就用了发光二极管来代替密码锁开锁的功能,根据发光二极管的指示来判断密码锁是否开锁,在发光二极管灯亮的时候,密码锁就打开,发光二极管灯灭,则表示密码锁打开失败。
因为城市的供电一般很难保证百分百的稳定,所以考虑到停电时给用户带来很多的麻烦,所以本设计中用到了拥有掉电存储功能的电路,该电路中主要芯片为AT24CO2,其中包括了电源电路、电子开关自动切换电路、蓄电池自动充电电路。
这样就在停电的情况下密码锁电路依然保持器电路功能。
在本次设计中利用的是汇编语言,经过keil的编译,在protues中仿真,基本实现了以上的功能。
关键词:
单片机;4*4矩阵型键盘;报警电路;密码锁;开锁电路
ABSTRACT
Mechanicallocknowlifealreadycan'tsatisfypeople'srequest,sothatelectroniccombinationlockiswidelyusedtothelife,withthebirthofavarietyofcombinationlock,alsomoreandmorehightotherequirementofcombinationlock,sothecombinationlockinlaterlifehasverybigdevelopmentspace.
Thiscombinationlockisalsousedinthecircuitwithsingle-chipmicrocomputerasthecore,designedthehighsafety,lowcost,lowpowerconsumption,easytooperateelectroniccombinationlock.Includesthekeyboardcircuit,displaycircuit,alarmcircuit,lockcircuitandelectricstoragecircuit.ThekeyboardcircuitUSESis4*4matrixkeyboard,thekeyboardcircuitcansaveMCUI/Oporttouse.Inordertolettheuserknowtheinputinformation,addadisplaycircuitinthedesign.Displaycircuitusingaserialportistheuseofthesinglechipmicrocomputer,with74ls247drivedigitaltubelightemittingdisplaydigital,touse74ls138controlfunctionofasignalcanbecompletedthesystemdisplay.Thedisplaymoduleisconvenientandsimple.Inthefieldofsafetyperformance,wedesigninthedesignofthealarmcircuit,preventingoutsidersadverseconsequencesasaresultoftherandomusepassword,inputthewrongpasswordthreetimes,willsendoutalarmcircuitandwilllockthekeyboard.Soyoucanbetterpreventusersfromoutsidemishandledcombinationlockandcauseunnecessaryloss.Becausewanttoconsiderinthedesignofthecostoftheoriginal,sothelightemittingdiodewasusedinsteadofacombinationlockunlockfunction,accordingtothelightemittingdiodeistodeterminewhetheracombinationlock,atthetimeofledlights,combinationlockisopened,ledlights,combinationlockopenfailure.Becausethecity'spowersupply,generallyitisdifficulttoguaranteethestabilityofhundredof,soconsideringthepowerfailurecausedalotoftroubletotheuser,sothisdesignwasusedwithelectricalstoragefunctioncircuit,mainchipinthiscircuitforAT24CO2,includingthepowersupplycircuit,electronicautomaticswitch,batterychargingcircuitautomatically.Thusinthecaseofpowerfailurecombinationlockremainsdevicecircuitfunction.
Usingassemblylanguage,inthisdesignthroughthekeilcompiler,inprotuessimulation,basicallyachievedtheabovefunctions.
Keyword:
SCM;4*4matrixkeyboard;alarmcircuit;combinationlock;thelockcircuit
1方案论证
1.1设计要求
(1)本设计为了防止密码被窃取要求在输入密码时在LED屏幕上显示“-”号。
(2)设计开锁密码位六位密码的电子密码锁。
(3)能够LED显示在密码正确时显示“------”,密码错误时显示“000000”,输入密码时显示键入的数字。
(4)实现输入密码错误超过限定的三次电子密码锁定。
(5)4×4的矩阵键盘其中包括0-9的数字键和A-F的功能键
(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。
(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
1.2方案比较
方案一:
采用数字电路控制。
图1所示为原理方框图:
图1数字密码锁电路方框图
采用数字电路设计密码锁,采用此方案设计过程比较简单。
其核心控制由74LS112双JK触发器构成的数字逻辑电路,一共采用了9个输入键,9个键中有4个是有效的密码按键,其余的则是为干扰设计的按键,如果按下了干扰的按键,键盘输入电路就会自动清零,原先输入的密码报废,需要输入新的密码;对于用户输入密码的时间也有控制,如果用户输入密码的时间超过了40S的话,电路将会报警,电路如果连续报警三次的话,电路将会锁定键盘,并且五分钟内不能使用,以此来防止其他的人非法操作。
电路的组成分为两大部分:
密码锁电路和备用电源USP,设置备用电源则是为了停电做准备的,否则停电的时候用户将会用不了密码锁,这样会对用户造成很大的麻烦,所以才设置了备用电源。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:
本方案采用是以89S51为核心的单片机控制方案。
利用单片机的灵活性和丰富的I/0端口,以及其控制的准确性,实现密码锁的基本功能,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
其原理如图2所示。
图2单片机控制方案
方案三:
采用EDA技术设计六位电子密码锁,作为通用电子密码锁,主要由三个部分组成:
数字密码输入电路、密码锁控制电路和密码锁显示电路。
(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘译码电路等几个小的功能电路。
(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。
(3)密码显示电路主要是在液晶显示屏显示输入的数值。
EDA设计整个密码锁的总框图如图3所示:
图3EDA设计整个密码锁的总框图
1.3方案的选择
通过比较1.2中的三种方案,单片机这种方案比其它两种方案活动空间要大一些,不仅能实现密码锁的功能而且有着很大的发展空间,而且还可以对系统进行升级,所以我就采用了第二种方案。
本方案采用是以89S51为核心的单片机控制方案。
利用单片机的灵活性和丰富的I/0端口,以及其控制的准确性,实现密码锁的基本功能。
初步的设计构想如下:
输入密码采用的是矩阵键盘,包括了10个数字键和6个功能键。
用LED数码管显示所输入的密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
因为开锁显示比较麻烦,所以用发光二极管代替开锁电路,当发光二极管灯亮的时候则表示密码正确,并且开锁。
当密码输入错误次数超过三次的时候,系统会发出警报。
电源接通后,数码管显示为“000000”,设置初始密码为“123456”,在键盘上依次按下“123456”时便会开锁。
这样可以预防停电后再次来电时没有密码可以用,锁打不开的问题。
按“C”键,清除显示器为“000000”。
如果想要重新设置密码,则先输入密码然后再按“*”键。
输入密码完成后,按“D”键。
如果输入的密码和设置的密码相同,则开门。
否则显示器清0。
软件的设计包括了键盘值得扫描,LED显示程序,报警程序,开锁程序等等。
2硬件电路及功能模块设计
2.1AT89S51的芯片简介
80S51有40引脚双列直插式DIP和44引脚方形扁平式QFP共两种封装形式。
其双列直插式封装芯片逻辑符号参见图4。
输入/输出口线包括了P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7,四个8位的双向口线。
地址锁存控制信号ALE
在系统扩张时,ALE用于控制把P0口输出低8位的地址送入锁存器然后存起来,用来实现低位的地址和数据的分时传送。
除此之外由于ALE是以1/6晶振频率所固定的频率输出的是正脉冲,这样就可以作为外部定时脉冲或外部时钟的使用。
EA则是作为访问程序存储器控制信号。
当EA的号为低电平的时候,对ROM的操作是针对外部程序存储器的;而当EA的高电平的时候,对ROM的读取操作则是从内部存储器开始的,并且可以延续到外部程序存储器。
外部程序存储器读选通信号PSEN。
在低电平的时候读外部ROM时PSEN是有效的,用来实现外部的ROM的操作。
复位信号RST。
当输入的复位信号延续两个机器周期以上高电平为有效,用于王城单片机的复位操作。
外部接晶体引线的两个端口XTAL1和XTAL2。
如果使用芯片内部时钟时候,那么XTAL1和XTAL2用于外接石英晶体谐振和微调电容;如果使用的是外部时钟,那么这两个端口则用于接入外部时钟脉冲信号。
地线Vss
+5V电源Vcc图4AT89S51芯片图
2.2LED显示电路
LED显示电路是为了给使用者能够更好的操作而设计的。
该系统是采用的串行显示方式设计,使用了单片机的一个串行口,用74LS247驱动数码管发光显示数码,再使用74LS138控制选位信号,就可以完成该系统的显示功能,显示电路的电路,原理图如图5所示。
用P0.0~P0.3接在74LS247的A,B,C,D四个端口上,74LS247的输出口接LED的七段显示;而P0.4~P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。
通过程序实现数字和位的控制。
图5LED显示电路
2.3单片机最小系统与复位电路设计
最小系统就是单片机在发挥具体测控功能时所必须的组成部分。
其中包括了复位电路,震荡电路,输入以及输出设备,电源等。
我们简单的介绍一下复位电路,复位电路顾名思义就是产生复位信号,当复位信号送入RST后还要送入片内的触发器,由片内复位电路在每个机器周器的S5P2时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。
一般来说复位电路包括了上电自动复位和按键复位两种,本设计采用的是上电自动复位。
上电自动复位的原理:
RST引脚是复位信号的输入端,当高电平的复位信号持续两个机器周期以上的有效时间,则单片机就会上电自动复位。
上点自动复位时通过电容的充电来实现的,当接受上电的瞬间,RST端电位与Vcc相同,随着充电电流的减少,RST的电位则渐渐的下降,延续到复位信号无效。
按键复位在这里就不给出过多的介绍了,两种复位电路的原理都差不多。
按键复位电路用的是脉冲复位电路和电平复位电路两种。
图6所示为最小系统方框图:
图6最小系统方框图
2.4晶振电路
89S51内部有一个用于构成振荡器的高增益反相放大器,其中有XTAL2和XTAL1这两个引脚,这两个引脚分别是该放大器的输出端和输入端两个端口。
外部接的石英晶体和两个电容C3、C4接入放大的反馈电路时,就构成了一个自激振荡器。
振荡器如图7所示。
这个振荡电路对外接电容C3、C4虽然没有严格的大小要求,但是电容容量的大小则会的振荡频率的高低和振荡工作的稳定性以及起振的难易程度还有温度的稳定性产生轻微的影响。
如果使用的是石英晶体的话,我在此使用的是33pf的电容。
设计者当然也可以采用外部的时钟。
出现这种情况时,由外部而来的时钟脉冲则接到XTAL1端,也就是内部时钟发生器的输入端,XTAL2则处于悬空状态。
通过上面的整合,所以本设计采用图7的晶振电路:
图7晶振电路
2.5开锁机构
通过单片机送给开锁机构,电路则会驱动电磁锁吸合,开锁的目的就会达到。
密码锁开锁机构原理如图8所示:
图8密码锁开锁机构示意图
当用户输入的密码正确而且是在规定的时间内输入的话,单片机就会输出一个开门信号,将这个信号送到开锁驱动电路中区,然后便会驱动电磁锁,这样开锁的目的就会达到。
电路图如图9所示。
本次电路的设计中,考虑到需要节省材料,暂时就用发光二极管来代替电磁锁,发光二级管亮的时候,表示开锁;如果灭,表示锁没有打开。
图9密码锁开锁机构电路图
2.6按键电路的设计
此次设计采用的是行列式键盘,为了减少键盘与单片机接口的时候所占用的I/O线的数目,在按键数目较多的时候,通常会采用这种方法。
在键盘中按键数量比较多的时候,为了减少I/O口的过多占用,一般情况都会将按键排列成矩阵形式,如图10所示。
在矩阵式键盘中,每条垂直线和水平线在交叉处都是不直接连通的,都是通过一个按键连接起来的。
这样,一个端口(如P1口)就可以构成4*4=16个按键,这样会比直接将端口线用于键盘多出了一倍的空间,而且线的数量越多,区别就会越明显,如果再加上一条线就可以构成20的键盘了,而直接用端口线则只能多出一键(9键)。
由此可见,在需要键盘数量比较多的时候,采用矩阵法来做键盘是合理的。
扫描原理
把每个键都分成水平和垂直的两端接入,如果说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
键盘整体模框图如图10所示:
图10键盘整体模框图
表1里面给出了4*4矩阵键盘的键码,其中的键盘行列代码则表示的是键盘被按下去的时候出现的代码,低电平有效。
例如在按下第一个按键的时候,第一行的代码为0111,列的代码也为0111,这样我们设的第一个按键为0,那么0的键码就出来了,即为77H,以此类推。
表1键码表
键盘行列代码0111101111011110
01110(77H)1(B7H)2(D7H)3(E7H)
10114(7BH)5(BBH)A(DDH)7(EBH)
11018(7DH)9(BDH)A(DDH)B(EDH)
1110C(7EH)D(BEH)E(DEH)F(EEH)
2.7AT24C02存储单元的设计
掉电存储单元的设计就是为了在掉电的时候存储当前设定的。
AT24C02出产于ATMEL公司,该芯片为2KB字节掉电可擦除存储芯片,采用的是单片机通讯和两线串行的总线,最低的电压为2.5V,额定的电流为1mA,静态电流为10mA(5.5V),芯片内的资料可以在掉电的情况下存储四十年左右,而且采用的是DIP封装(8脚),使用比较方便。
其电路如图11所示。
图中的R1、R2则是上拉电阻,其作用是为了减少AT24C02的静态功耗,因为AT24C02的数据线和地址线是复用的,而且采用串口模式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
图11掉电存储电路原理图
2.8密码锁的电源电路的设计
为了防止停电造成的麻烦,所以准备了USP后备电源,它包括了城市的供电电路,停电时的检测电路,电子开关的切换电路,蓄电池和蓄电池充电电路组成。
220V的电压经过变压器变成12V的交流电压,然后流经桥式整流电路,再由7805稳压变成5V再送往切换电路,本电路的功耗相对来说比较小,所以就选用10w的小型的变压器。
电源电路图如图12所示:
图12市电供电电路
2.9电子开关切换电路
由R1,R2,R3,R4和IC14便组成了一个电压比较器,在一般的情况下,V+在市电断开的时候,V+>V-IC14输出的是低电平,由T3和T4组成的电路使继电器开启,其常开触点将电路和蓄电池连接起来,这样就可以实现电路的切换工作,保证了停电的时候密码锁还能正常的工作。
电子开关切换电路电路图如图13所示:
图13电子开关切换电路
2.10蓄电池自动充电电路
T1,T2构成了蓄电池的自动充电,这个电路它在电池充满后则会自动停止充电操作,当D1亮的时候电池则是在充电,D2的作用是工作指示。
R4,R5,T1则构成了电压检测电路,当蓄电池电压低的时候,T1,T2则导通,实现对蓄电池充电;充电完成后,则T1,T2截止,停止充电,同时D1将会熄灭,电路中C4起到的作用则是滤除电路产生的干扰信号。
蓄电池自动充电电路图如图14所示:
图14蓄电池自动充电电路图
2.11设计总框图
总电路包括了电源模块,键盘输入模块,显示模块,开锁模块,还有当密码输入错误时会锁定键盘并且报警的报警电路模块。
总体设计框图如图15所示:
图15总体设计框图
3程序设计
3.1模块介绍
该系统的软件设计分为以下几个模块:
(1)主程序模块
主程序主要完成初始化、设置中断向量、检查有无调用显示以及有无按键按下等等。
(2)掉电存储服务程序
在逐位密码比较的时候,则需要读取AT24C02的程序,将原来储存在芯片内的数据读到RAM中,输入的密码则和这个密码进行比较。
如果是修改密码的话,则将输入的密码保存在AT24C02中
(3)键盘的扫描以及识别子程序
键盘采用的是查询的方式,在主程序中,在没有按键按下的时候,单片机则按照原来的程序循环下去,如果检测到有按键按下,便立即转到按键锁按下的子程序,处理结束的时候就返回去。
(4)显示子程序
显示子程序包括五种状态分别为;开锁状态显示子程序、关闭状态显示子程序、密码输入错误后的提示子程序、密码输入及修改状态显示子程序。
密码在规定的时间范围内连续三次输入错误后的锁定状态显示子程序.
3.2程序流程图的设计
3.2.1主流程图
因设计主要是作用汇编语言来开发的51单片机项目程序,所以首先必须有一个可以在WindowsXP或Windowsvista操作系统下执行的汇编语言编译器,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。
设计主程序见附录1。
图16为主流程图流程:
图16主流程图
3.2.2键盘扫描子程序
键盘扫描开始前给键盘设置一个初始值,然后送入扫描初始值。
设C=1左边移动,然后检测C的值是否等于0,如果等于0就调用消除抖动子程序并且读取P1的值,如果A=0则调用显示子程序,如果A不等于0则继续读取P1的值。
在C不于0时则检查R5是否等于0,如果R5也不等于0则返回继续C左移,如果R5等于0设C=1右移扫描。
然后检测C是否等于O,如果C等于0则返回到设置初始值,如果C不等于0则送入扫描初始值。
程序详见附录1。
键盘扫描流程图如图17所示:
图17键盘扫描流程图
3.2.3LED显示子程序
LED显示模块在按键值的输入后,然后加上74LS138的扫描值送到P0口输出到LED的显示屏上就完成了显示模块的功能,程序参见附录1。
LED显示流程图如图18所示:
图18显示流程图
3.2.4密码比较和报警程序
开始比较第一位的密码是否正确,如果正确则比较下一位的密码,看是正确,如果正确则继续比较,如果六位密码都比较完了而且正确锁便打开了同时清零,如果其中有一位密码错误则清除显示并且记录错误次数,当错误次数达到三次的时候则报警。
程序参见附录1。
密