基于51单片机的电子密码锁设计.docx

上传人:b****7 文档编号:10918993 上传时间:2023-02-23 格式:DOCX 页数:20 大小:1,013.20KB
下载 相关 举报
基于51单片机的电子密码锁设计.docx_第1页
第1页 / 共20页
基于51单片机的电子密码锁设计.docx_第2页
第2页 / 共20页
基于51单片机的电子密码锁设计.docx_第3页
第3页 / 共20页
基于51单片机的电子密码锁设计.docx_第4页
第4页 / 共20页
基于51单片机的电子密码锁设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于51单片机的电子密码锁设计.docx

《基于51单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁设计.docx(20页珍藏版)》请在冰豆网上搜索。

基于51单片机的电子密码锁设计.docx

基于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输入键盘模块

完成键盘输入的功能,可由两种方式实现,分别是独立式按键和矩阵式键盘。

独立式按键是指直接用I/O口线构成的单个按键电路,每个独立式按键单独占有一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线的工作状态。

独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,在按键数量较多时,I/O口线浪费较大。

故在按键数量不多时,常采用这种按键电路。

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,行线和列线分别连接到按键开关的两端。

很明显,在按键数量较多的场合,矩阵式键盘和独立式按键相比,要节省很多的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,可采用两种供电方式。

采用+6V蓄电池经电阻分压后直接给单片机供电,电路简单。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1