基于51单片机的电子密码锁设计.docx
《基于51单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁设计.docx(17页珍藏版)》请在冰豆网上搜索。
基于51单片机的电子密码锁设计
第1章绪论
1.1电子锁的发展状况
随着科技的发展,传统的机械锁被破解的概率越来越高了,新型的盗贼也学会了与时俱进,通过各种技术方法和手段即会在短时间内开启结构复杂的机械锁,会不留痕迹的登堂入室,给失主和警方留下各种不易解惑的疑团。
由此我们想到,要是在机械锁的基础上再装上一把电子锁,就彻底杜绝了单一机械锁易被开启的弊端,从而极大提高门锁的安全防范性能。
当今世界,电子锁发展已经到了非常高的境界,由于电子元件特别是单片机应用在最近几年得到空前发展,电子锁无论是在功能还是在稳定性方面都有了较大的提高,在保密性方面已经做到了密码识别、指纹识别、人声识别等。
就整体形势而言,电子锁在国外发展比较早,所以应用也比较广泛,主要用于家庭门锁,银行公司等的财务保险柜锁和政府机关及高级宾馆等重要场合的智能控制门锁等。
在国内这方面发展也较快,不管自己开发或是引进都有,在重要场合应用也比较多。
由于电子锁价钱较普通机械锁贵,在国内早几年应用较少,现在越来越普及到平常化,未来的发展趋势也会是越来越大众化。
由于电子锁的功能和安全性是普通机械锁锁无法比拟的,它存在非常广阔的发展前景。
就目前而言,各类电子锁已相继问世,其中包括电子密码锁,指纹识别电子锁,IC卡识别电子锁、人声识别电子锁等。
1.2设计电子密码锁的意义及相关技术指标
当前虽然许多智能锁(如指纹辨别、人声识别、IC卡识别等)已相继问世,但这类产品是针对特定指纹、声音或有效卡,只能用于保密要求高且仅供个人使用的箱、柜、房间等。
另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。
而电子密码锁具有安全性能高、成本低、低功耗、操作简单等优点,经济好用,易于推广和普及。
本次单片机课程设计内容为设计一个电子密码锁,技术指标如下:
输入正确密码开锁指示灯亮,否则开锁指示灯灭;应包含0-9和设置、输入,删除12个键的键盘;输入密码可由数码管显示;连续3次密码输入错误,则控制蜂鸣器发声报警。
第2章总体设计及方案论证
为完成电子密码锁的功能设计,需要通过不同的模块来共同实现。
设计思路及总体设计如图
图2.1主程序流程图
在电源供电下,单片机通过控制各个模块共同构成一个电子密码锁,3×4键盘作为人机交互的界面使用,加上复位电路的作用是在程序运行出错或陷入死循环时能从头开始执行程序。
2.1单片机模块
AT89系列单片机是美国Atmel公司的8位Flash单片机产品,分为低档型、标准型和高档型三大类。
低档型以AT89C2051为代表,标准型以AT89C51为代表,高档型以AT89S8252为代表。
本设计选用标准型单片机AT89C51作为主控元件使得设计具有先进性的同时又降低了成本。
2.2输入键盘模块
完成键盘输入的功能,可由两种方式实现,分别是独立式按键和矩阵式键盘。
2.2.1独立式按键
独立式按键是指直接用I/O口线构成的单个按键电路,每个独立式按键单独占有一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线的工作状态。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大。
故在按键数量不多时,常采用这种按键电路。
2.2.2矩阵式键盘
矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,行线和列线分别连接到按键开关的两端。
很明显,在按键数量较多的场合,矩阵式键盘和独立式按键相比,要节省很多的I/O口线。
本设计需要用到12个按键,数量较多,且单片机I/O口资源有限,综合以上两种方案,选用3
4矩阵式键盘作为输入电路为宜。
2.3数码管显示模块
LED显示器有静态显示和动态显示两种显示方式。
2.3.1LED静态显示方式
所谓静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止,并且显示器的各位可同时显示。
静态显示时,较小的驱动电流就能得到较高的显示亮度。
静态显示方式的缺点是N位静态显示器要求有N
8根的I/O口线,占用I/O口线资源较多。
2.3.2LED动态显示方式
所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。
相比于静态显示方式而言,8位LED动态显示电路只需要两个8位I/O口,充分利用了I/O口资源。
电子密码锁的显示电路设计需要用到8位数码管来显示密码,为节约I/O口资源,显示电路应采用LED动态显示方式。
2.4电源模块
AT89C51单片机供电电压为+5V,可采用两种供电方式。
2.4.1蓄电池供电
采用+6V蓄电池经电阻分压后直接给单片机供电,电路简单。
2.4.2双路电源供电
220V交流市电经降压,整流,集成稳压芯片稳压为+5V后给直接给单片机供电,当停电后,采用蓄电池供电。
利用一个单反相器实现两种供电电路的自动切换。
本设计为电子密码锁的设计,需要用到UPS(不间断电源),故采用双路电源供电为宜。
2.5开锁电路模块
输入密码正确时,单片机输出信号作为开关信号,控制电磁铁动作,来完成开锁功能。
输入密码错误时,则不响应。
2.6报警电路模块
输入密码错误时,单片机输出信号作为开关信号,通过开启报警电路来控制蜂鸣器报警。
2.7最优方案
综上,最优方案为选用AT89C51单片机作为主控元件,采用双路电源自动切换供电方案,数码管显示采用动态显示方式,以矩阵式键盘作为人机交互的界面,加上开锁和报警电路及相应的软件,构成一个安全可靠的电子密码锁。
第3章硬件电路设计
3.1输入键盘
图3.1键盘电路
本设计采用矩阵式键盘,连接方式如图3.1所示:
键盘的工作过程:
第一步是CPU检测键盘上是否有按键按下,具体方法是:
将列线送入全扫描字,读入行线的状态来判断,即所有的列线置成低电平,然后将行线电平的状态读入累加器A中,如果有按键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。
第二步是识别哪一个按键按下,如果列输入状态不全为“1”则按下的键必在此列,而且是该列与“0”电平的交点上的那个键。
为求取编码,在逐列扫描时,可用计数器记录下当前扫描列的列号,检测到第几行有按键按下时,就用该行的首键码加列号得到当前按键的编码。
本设计采用的是查询方式,这种方式是直接在主程序中插入键盘的子程序,主程序每执行一次则键盘子程序被执行一次,对进行检测一次,如果没有按键按下,则跳过按键识别,直接执行主程序,如果有按键按下,则通过键盘扫描子程序识别按键,得到按键的编码,然后根据编码值进行相应的处理,处理完后再回到主程序执行。
3.2显示数码管
硬件连接电路如图所示:
图3.2显示电路
如图3.1所示为数码管的控制及显示电路,数码管为共阳极数码管,通过段选和位选实现动态显示方式,即通过软件用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余晖效应,给人的印象就是一组稳定的显示数据。
3.3开锁电路
图3.3开锁电路
如图3.3所示为开锁控制电路,当输入密码与原设置密码相同时,P3.2引脚输出高电平,三极管UNLOCK导通,电磁铁动作开锁,同时开锁指示灯亮。
输入密码不正确时,电磁铁不动作,且开锁指示灯灭。
3.4报警电路
图3.4报警电路
如图3.4所示为报警控制电路,当输入密码错误时,单片机内部响应中断信号,使P3.3引脚输出高电平,这时,三极管UNLOCK作为报警控制开关导通,电源给蜂鸣器供电,控制蜂鸣器发声报警。
3.5电源电路
图3.5电源电路
采用双路电源自动切换工作方式,正常情况下,交流市电220V经降压变压器降压,整流电桥整流,稳压芯片LM7805稳压后变为+5V直流电源给单片机供电。
当出现停电的情况时,3点处的电势变为低电势,经单反相器后控制NPN1三极管导通,启动蓄电池或干电池电源并经分压后供电,从而保证单片机的不间断供电。
3.6复位电路
图3.6复位电路
采用按键电平复位,按下键后,通过R3和R4形成回路,使RESET端产生高电平。
按键的时间决定了复位时间。
3.7振荡电路
图3.7振荡电路
如图3.7所示,晶体振荡器采用12MHZ,通过两个30pF的电容与单片机连接,为单片机工作提供准确稳定的时钟脉冲。
第4章软件设计
4.1主程序流程图及程序
图4.1主程序流程图
主程序如下:
ORG0000H
SJMPSTART
ORG000BH
SJMPINT
START:
MOVSP,#70H
CLRP3.0
CLRP3.1
CLRP3.2
CLRP3.3
MOVTMOD,#01H
MOVTL0,#00H
MOVTH0,#00H
SETBTR0
SETBET0
SETBEA
MOVR2,#0FFH
MOV3AH,#03H
MOVR3,#06H
PASSWORD:
MOVR4,#08H
MOVR0,#40H
MOVA,#07H
MOV@R0,A
INCR0
INCA
DJNZR4,PASSWORD
MOVR0,#30H
DETPW:
MOVR4,#08H
AGAIN:
ACALLINPUT
MOVA,R7
CJNER7,#0BH,IN
ACALLCHPSW
AJMPGETPW
IN:
MOV@R0,A
CLRP3.3
ACALLDELAY
SETBP3.3
COMP:
MOVR4,#08H
MOVR0,#30H
AGAI:
MOV50H,@R0
ADDR0,#010H
MOVA,@R0
SUBBR0,#010H
CJNEA,50H,ONCEMORE
INCR0
DJNZR4,AGAI
CLPP3.0
HERE:
AJMPHERE
ONCEMORE:
CLRP3.4
ACALLDELAY
SETBP3.4
DJNZR3,GETPW
CPLP3.1
THERE:
AJMPTHERE
END
4.2延时子程序
DELAY:
MOVR5,#30H
DELAY1:
MOVA,#0FFH
LOOP:
DECA
JNZLOOP
DJNZR5,DELAY1
RET
4.3修改密码子程序
CHPSW:
MOVR0,#40H
ANOTHER:
ACALLINPUT
MOVA,R7
MOV@R0,A
INCR0
CLRP3.3
ACALLDELAY
SETBP3.3
DJNZR4,ANOTHER
RET
4.4扫描键盘输入子程序
INPUT:
MOVR6,#02H
MOVR1,#40H
LOP:
ACALLDELAY
MOVP1,#0FFH
CPLP1.6
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,INKEY
MOVP1,#0FH
CPLP1.5
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,INKEY
MOVP1,#0FFH
CLRP1.4
MOVA,P1
ANLA,#0FH
CJNEA,#0FH,INKEY
SJMPLOP
INKEY:
MOV@R1,P1
INCR1
DJNZR6,LOP
DECR1
MOVA,@R1
DECR1
CJNEA,40H,INPUT
RET
4.5中断及报警子程序
INT:
PUSHACC
MOVTMOD,#01H
MOVTL0,#00H
MOVTH0,#00H
SETBTR0
SETBET0
SETBEA
DJNZR2,CONT
CONTINUE:
DJNZ3AH,CONT
CLRP3.2
STOP:
AJMPSTOP
CONT:
POPACC
RET
4.6显示子程序
LOOP2:
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.1
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
CLRP2.0
INCR7
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
MOVP0,@R7
MOVCR5,#LP
MOVCA,@A+@R5
MOV@R7,A
INCR7
CLRP2.0
ACALLDELAY
MOVP0,#0FFH
MOVR2,#0FFH
LP:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,35H,42H
第5章设计总结
本次设计的电子密码锁采用AT89C51作为主控元件,加之附加电路及相应软件,通过软硬件结合的方式来实现。
此电子密码锁共有有8位密码,每一位包含0-9共10个数字,经计算,三次机会随机开启密码锁的概率为一千万分之三,也即333万个人开锁只有一个人能打开,概率小到几乎为零,安全可靠。
将本密码锁安装在现有的防盗门上,与防盗门的机械锁联动锁闭,同时如果条件允许或者是需要用在保护贵重物品的场合,也可以在防盗门上加装一个摄像头,在密码锁报警的同时开启摄像头,就会将非法开锁人员的面孔尽收眼底。
这样做会给日后收集证据提供有效的图像信息,能更好的起到安全防范的作用。
总之,电子密码锁还有很大的发展空间。
参考文献
[1]梅丽风,王艳秋.单片机原理及接口技术[M].北京市:
清华大学出版社、北京交通大学出版社,2009.2.
[2]宋浩,田丰.单片机原理及应用[M].北京市:
清华大学出版社、北京交通大学出版社,2004.12.
[3]张云、周明辉.基于AT89S51的多功能电子密码锁设计[J].电子设计工程,Vol.18,2010,10.
[4]张晓光.用PIC16F877A单片机制作的4位密码电子锁[J].电子世界,2010,05.
[5]邱玉娟.用串行ROM和AT89C51实现电子密码锁[J].电脑知识与技术,2005,04.
附录Ⅰ
附图1总电路图
附录Ⅱ
附表1:
器件清单
器件
名称
数量
标号
参数
定值
电阻
25
R1,R3,R4,R5,R6,R7,R8,R9,
R10,R11,R12,R13,R14,R15,
R16,R17,R18,R19,R20,R21,
R22,R23,R24,R25,R26
1k,200Ω,1k,2k,2k,2k,2k,470Ω,
470Ω,470Ω,470Ω,470Ω,470Ω,470Ω,
470Ω,1k,1k,1k,1k,1k,
1k,1k,1k,1k,1k
滑动
变阻器
1
R2
10k
二极管
3
D1,D2,D3
1N4002
发光
二极管
1
D4
2EF302
单片机
1
AT89C51
AT89C51
集成
稳压器
1
LM7805
LM7805
LED
数码管
8
LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7,
CH-N005
三极管
11
NPN1,NPN2,NPN3,LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7,
NPN
整流桥
1
BRIDGE
AC-DC
蓄电池
1
BATTERY
6V
反相器
1
U1
M74HCT132B1R
按键
1
S1
SW-PB
电容
5
C1,C2,C3,C4,C5
30pF,30pF,100uF,100uF,22uF
晶体
振荡器
1
CRYSTAL
12MHZ
键盘
按键
12
0,1,2,3,4,5,6,7,8,9,UNLOCK,MODIFY
SW-PB
蜂鸣器
1
BUZZER
MPB14A
变压器
1
TRANS1
S8—F7