精品毕设基于AT89S51单片机的电子密码锁的设计.docx
《精品毕设基于AT89S51单片机的电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《精品毕设基于AT89S51单片机的电子密码锁的设计.docx(37页珍藏版)》请在冰豆网上搜索。
![精品毕设基于AT89S51单片机的电子密码锁的设计.docx](https://file1.bdocx.com/fileroot1/2022-12/11/cfd22950-6d3f-42b8-9bb9-598a4df3fde4/cfd22950-6d3f-42b8-9bb9-598a4df3fde41.gif)
精品毕设基于AT89S51单片机的电子密码锁的设计
毕业论文说明书
课题:
基于AT89S51单片机的电子密码锁的设计
专业电气工程及其自动化
学生姓名唐加松
班级D电气111
学号1120603118
指导教师吴帆
专业系主任顾春雷
发放日期2015年1月7日
基于AT89S51单片机的电子密码锁的设计
摘要:
从古至今,锁都是人民财产安全乃至生命安全的一种重要保证。
随着人类历史的发展和人们对财产和人生安全越来越重视,多种多样的多功能的锁具也陆续出现,人们使用的锁具也由原来的机械锁逐渐发展为功能更多,安全性能更好的电子式密码锁。
本论文以AT89S51单片机芯片为核心器件,结合4*4矩阵按键电路、报警指示电路LCD数码管显示电路和开锁机构,利用单片机灵活的编程设计和丰富的I/O端口的特性,及其控制的准确性通过软件程序来运行整个系统实现电子密码锁的基本功能,其主要具有如下功能:
★密码输入错误三次,蜂鸣器将报警提示
★密码通过键盘输入,若密码正确,则将锁打开
★用户可以自由设定密码
本文设计的密码锁具有功耗低、安全性高、操作简单等优点。
关键词:
AT89S51;电子密码锁;LCD
Abstract:
Sincetheancienttime,lockisakindofsecurity,guaranteeingpeople’spropertysafetyevenlifesafety.Withthedevelopmentofhumanhistoryandmoreattentionpaidtopropertysafetyandlifesafety,variousmulti-functionallockscanbeseenintheworld.Traditionalmechanicallockspeopleuseinlifearegraduallyreplacedbyelectroniccombinationlockcharacterizedwithbettersafetyperformanceandmorefunctions.
BasedontheAT89S51single-chipmicrocomputerasthecoredevice,combiningwiththekeycircuit,LCDdigitaltubedisplaycircuit,analarmcircuitandunlockingmechanism,designthewholesystemtoachievethebasicfunctionsofelectroniccipherlockbyitsflexibleprogramming,richI/Oport,andaccuracybasingonthesoftwareprogram.Withthefollowingfunctions:
★Ifthepasswordiserror,thebuzzerwillalarm
★Inputpasswordthroughthekeyboard,ifthepasswordiscorrect,lockwillopen
★Userscanfreelysetthepassword
Thelockhassomefeaturessimpletowork,likeareasonabledesignmethods,lowcostandsecurity,italsohassomepromotionvalue.
Keywords:
AT89S51;Cipherlock;LCD
1.绪论
1.1研究背景和意义
在如今生活中,安全防盗问题已成为一个社会问题,而锁就是防盗的重要且普遍常用的工具。
目前国内大部分地方和人使用的仍还是传统的机械锁,现实生活中伪劣假冒的机械锁互开率非常的高,另外,即使机械锁质量很好,但通过急开锁,甚至于可以在不损坏锁的条件下将锁直接打开。
机械锁的这些缺点为一种新型高端的锁的出现——电子密码锁,提供了很大发展的空间。
在科学技术不断发展的世界里,电子密码防盗锁作为防盗管家的作用也显得日益重要。
电子密码锁是包含了很多技术。
其中就有计算机技术、电子技术、单片机技术,数字密码技术。
具的优点有安全性高,性能好,使用方便简单。
根据本设计的要求,通过密码的输入来控制电路或是芯片的正常工作,达到控制机械开关的闭合的效果,完成开锁、闭锁等功能。
电子密码锁的种类非常多,有的电路产品比较简易,也有芯片的性价比比较高的产品。
现在应用较广的数字密码锁是以单片机芯片为核心,通过编写程序来实现运行的。
其性能和安全性已经遥遥领先了机械锁。
目前,和发达的西方社会国家比较而言,中国的电子密码锁技术在一定程度上相对落后。
在发达国家里,电子密码锁的种类非常齐全,技术也较先进,且广泛应用于各种领域。
比如,在军事,航空领域的应用。
我国,电子密码锁技术仍相当于国际上七十年代的密码锁水平。
上世纪80年代以来,随着电子集成电路的出现与发展,特别是单片机的问世,电子密码锁又一次得到了非常快的发展。
与构造简单且笨重的传统机械锁比较来说,电子密码锁具有体积小,可靠性高以及性能稳定等诸多优点。
但是就现在而言,电子密码锁的价格相对较高且需要有电源提供动力,使得其在中国使用还未普及,各种条件的限制使得电子密码锁暂时很难得到广泛推广。
尽管电子密码锁还存在着一些小问题,但是有的是传统钥匙锁替代不了的优点。
比如其安全性高、方便易用、能够智能报警。
且随着电子信息技术的发展和各种电子器件的价格的不断变少,电子密码锁也会往低成本、多功能的方向发展与进步。
就今天而言,在一些发达国家,电子密码锁种类很多,电子密码锁技术相对先进的已被应用于多种智能门禁系统中,通过多种更加可靠,更加安全的技术实现对门进行管理。
我国电子密码锁尚处于世界上70年代左右的整体水平,电子密码锁的成本还很高,市场上仍以按键电子锁为主,卡片钥和按键式匙式电子锁已引进了国际比较先进的水平,国内已经有几个厂生产供应市场。
但国内自主研制开发的电子密码锁,还尚未形成市场结构,应用还不够广泛。
国内的很多企业引进了世界上相对先进的技术,发展前景非常乐观。
希望通过我们自己不断的努力,使电子密码锁在我国也能得到广泛应用和发展壮大。
也希望为电子密码锁的发展推波助澜。
1.2系统设计目的
本设计利用单片机及外围电路实现数据采集和控制来完成一些实际功能。
让同学对整体电路设计和理解能力有深层次的理解与认识,了解单片机系统设计步骤,以及电路板的实际制作和调试应用能力。
同时综合应用数字电路、单片机和微机原理等课程知识,也为同类产品的进一步研究奠定理论和实践基础。
1.3系统设计内容
本设计是基于单片机AT89S51的电子密码锁的,则设计内容有以下几点:
1.在protues软件环境中设计系统的硬件电路图。
2.在KEIL软件环境中进行系统的软件编程,对程序源文件进行编译与调试,最后生成hex文件,这个hex文件是硬件电路实现运行的源程序代码。
3.把hex文件下载到单片机AT89S51芯片,在protues软件环境中运行硬件电路。
2.基于单片机的电子密码锁的总体设计。
2基于单片机电子密码锁的总体设计
2.1系统方案选择
2.1.1采用数字电路控制
采用以双JK触发器74LS112构成的数字式逻辑电路作为密码锁的控制的模块,共设定了9个用户输入按键,其中有效的密码按键只有4个,其余的均是干扰按键,若按下干扰键,键盘输入电路则自动清零,原先输入的密码失效,需要重新进行输入;如果用户输入密码的时间大于30秒(一般情况下,用户不会多于30秒,若用户觉得不便,还可以修改)报警电路将会报警10秒,若电路连续报警三次,键盘将会被锁1分钟,防止他人的非法操作。
采用的方案是数字电路设计优点就是设计简单但控制的准确性和灵活性以及性价比差。
相对于单片机而言并没有巨大的优势,故不采用此方案。
2.1.2采用一种是用以AT89S51为核心的单片机控制方案
因为市场上单片机种类很多,每种型号单片机的应用环境都有局限性,因此在选用单片机时要多加比较,合理选择,来获得最优性价比的单片机型号。
一般来说在选取单片机时考虑必要的几个方面:
模拟电路功能、性能、存储器、运行速度、定时/计数器、I/O口、工作电压、串行接口、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:
中断源优先级和数量、工作温度的范围、有没有检测低电压功能、单片机内有没有具备时钟振荡器、上电复位功能有没有等。
影响单片机开发的因素有很多。
比如有:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
考虑以上的因素后,本设计采用单片机AT89S51作为本设计的核心元件,利用单片机丰富的I/O端口和灵活的编程设计,以及它控制的准确性等优点,实现基本的密码锁功能。
在单片机外接输入键盘作为外围电路用于密码的输入和修改,删除等一些功能的控制,以及外接芯片AT24C02用于存储密码,显示器则采用外接LCD1602用于显示。
当用户需要用开锁功能时,先按电源键之后按键盘的数字键0-9输入密码。
输完密码后则按下确认键,如果密码输入正确则开锁,不正确显示密码错误并记错一次。
然后再次重新输入密码,当密码输入错误次数达到三次时则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后,按改密码的按键,进入密码修改界面才能修改新密码。
新密码输入无误后按确认键使新密码将得到存储,密码修改成功。
密码遗忘后,按格式化按键。
则返回为原始密码。
可以看出此方案控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要本次设计采用此方案来实现密码锁的设计。
达到输入,修改,清除密码等一系列功能。
2.2基于单片机电子密码锁总体设计实现方案
本设计系统主要由单片机AT89S51芯片、4*4矩阵键盘、LCD显示模块、掉电存储模块、报警机构和开锁机构组成。
如图2.1.1所示。
图2.1.1系统总体设计结构图
时钟电路给单片机提供晶振频率,复位电路不但使单片机上电复位,还能在使用过程中通过需要通过按键再次手动复位,矩阵键盘提供按键的输入,LCD模块显示信息,掉电存储负责密码的存储,开锁机构和报警机构分别负责开锁和报警功能。
本设计中,单片机选用AT89S51,LCD显示模块选用LCD1602液晶显示器,串行存储器选用电可擦除存储器AT24C02,开锁机构用发光二极管代替,报警机构则选用蜂鸣器。
3.基于单片机电子密码锁的硬件设计
3.1单片机接口分配
集成了RAM、ROM、CPU定时器/计数器和多种I/O端口功能部件在单片机AT89S51芯片上,相当于一台微型计算机的基本结构与功能,按功能可以把它分成八个重要的单元:
数据存储器(RAM)、微处理器(CPU)、程序存储器(ROM/EPROM)、定时器/计数器及中断系统,特殊功能寄存器(SFR)、I/O口、串行口。
在本系统中,是这样使用单片机的各个接口的:
P0口接LCD1602的8位双向数据端D0~D7相接与上拉电阻相接,P1口作为4*4矩阵键盘的接口,P2口的P2.5~P2.7端口和LCD1602的4~6引脚相接,P2.1和P2.0接串行存储器AT24C02,P3口接报警电路和开锁电路的接口。
3.2单片机最小系统
3.2.1复位电路
(1)复位方式
单片机在启动运行时,第一项任务一般都需要进行复位。
复位是指通过一种方式,让单片机芯片内寄存器值变回初始值。
在程序运行错误或者错误操作让单片机进入死锁状态时,使用复位按钮可以重新启动。
当MCS-5l系列单片机的复位引脚RST(RESET)出现2个机器周期以上的高电平时,复位操作由单片机执行。
若RST持续为高电平,单片机就处于循环复位的状态。
根据应用的要求,复位操作通常包括两种形式:
上电复位和开关复位。
图3.2.1即为手动(开关)复位电路。
图3.2.1手动复位电路
(2)复位后的状态
a、复位后PC值为0000H,程序由0000H开始执行在复位后。
b、SP值为07H,07H在堆栈底部,一般需要重新进行设置SP值。
c、P0~P3口值为FFH。
P0~P3口作为输入口时,必须先写入高电平。
单片机在复位后,已使P0~P3口每一端线为高电平“1”,为它作为输入口做好准备。
(3)WDT溢出会使该引脚输出高电平“1”,所以本设计采用图3.2.2的手动复位电路。
图3.2.2本设计手动复位电路
3.2.2时钟电路
AT89S51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图3.2.2所示方式连接。
构成了电容三点式振荡器由晶振、电容C2/C3及片内与非门(作为反馈、放大元件),振荡信号频率与晶振频率已及电容C1、C2的自身容量相关,最主要是由晶振频率决定,范围一般在0~33MHz之间,电容C2、C3取值范围一般在5~30pF之间。
根据实际应用情况,本设计中采用晶振为12MHZ做系统的外部晶振。
电容量取为22pF。
图3.2.2时钟电路
3.3显示模块硬件设计
在所有单片机设计的系统中,常用的显示器有单个发光二极管、八段LED显示器、屏幕显示器(CRT)、液晶显示器(LCD)等。
液晶显示器有着重量轻,超薄型,功耗低,体积小等许多其余显示器比不了的优点,在低功耗系统得到了广泛的应用。
基于设计所要实现的功能和节约成本等实际因素,故采用LCD1602显示器作为本次设计的显示器。
LCD1602液晶显示器目前广泛应用于字符型显示模块。
由字符型液晶显示屏,控制驱动主电路HD44780,扩展驱动电路HD44100,少量阻,容元器件构成装配在PCB板上而成。
一般的技术参数有:
LCD1602的显示容量为16x2个字符(可以显示2行,每行显示16个字符),芯片正常工作电压为4.5~5.5V,具有80字节的RAM,标准的接口特性,工作电流为2.0mA(5.0V),模块最佳工作电压是5.0V,以及低功耗,长寿命,可靠性高。
LCD1602具有16个引脚,如表3-1所示。
在LCD1602的有关设计中,主要是通过编写程序控制芯片的4、5、6引脚来实现数据或者指令的写入和执行,再通过数据或者指令的写入和执行来实现LCD1602的显示功能。
表3.3.1是LCD1602的16个引脚和引脚对应功能。
表3.3.1LCD1602引脚说明
引脚号
引脚名
功能
1
VSS
电源地
2
VCC
+5V逻辑电源
3
VEE
对比调整电压
4
RS
寄存器选择1:
数据;0:
指令
5
R/W
读写操作选择1:
读;0:
写
6
E
使能信号,1:
读取信息,1→0:
执行命令
7
DB0
数据总线(LSB)
8
DB1
数据总线
9
DB2
数据总线
10
DB3
数据总线
11
DB4
数据总线
12
DB5
数据总线
13
DB6
数据总线
14
DB7
数据总线(MSB)
15
A
背光+5V
16
K
LCD背光电源负极
由于LCD正常的工作必须有足够大的电流,因此在实际应用中为了保证显示器能够正常工作,需要在数据端口接一上拉电阻。
图3.3.2中RP1同时作为P0口的上拉电阻。
图3.3.1LCD模块仿真图
3.4存储模块硬件设计
串行E²PROM是在应用在各种串行器件里比较多的器件,它与并行E²PROM比较而言,有数据传送速度低,但是容量比较小,体积较小,重量轻,所含引脚也少。
因此适用于存放非挥发数据,速度要求不高,引脚较少的单片机使用。
AT24C02存储芯片是Atmel公司的低功耗CMOS型E²PROM,存储的空间有256*8位,可擦除多次(大于1000次)、工作电压范围宽(2.5~5.5V)、写入速度非常快(小于10ms)、数据不会轻易丢失、体积小,重量轻等特点。
AT24C02的总线数据传送协议通过I²C传送的。
地址输入端A0,A1,A2把8个24C02器件与总线相连。
AT24C02有一个16字节页写缓冲器,该器件通过I²C总线的接口来工作,因为它有一个专门用于写保护的功能。
对于系统只用一片AT24C02来说,没必要分辨不同的地址,必要条件是WP保护的功能是正常的,只需要将WP与CPU相连的连线断开并保持高电平,然后测试系统的数据读写功能是否正常即可,而且这对软件的抗干扰技术也非常的重要。
图3.4.1是AT24C02的引脚排列图。
其引脚功能如下
A0~A2:
器件地址输入端口。
这次设计中,A0~A2都当接与地相接,所以其值都为零。
当这些引脚悬空时,默认值也为零。
Vcc:
+1.8~6.0V工作电压的区间。
Vss:
地或着电源的负极。
图3.4.1AT24C02引脚图
SCL:
串行时钟输入端口。
主要用来产生数据接收与发送的时钟的。
SDA:
串行数据I/O端。
用于输出或输入串行的数据。
这个引脚为漏极开路端口。
需要外部接上拉电阻拉高其电平。
WP:
写保护端。
该端口提供了硬件数据保护。
把WP与地相接时,芯片可以执行一般读写的操作。
当WP与高电平相接,对芯片执行的是写保护。
3.5单片机AT89S51介绍
除了具有在系统可编程的特点外,AT89S51和AT89C51性能大致相同,也有一些改进。
AT89S51是一种性能好,功耗低的单片机,共有40个引脚,其中有32个外部双向输入/输出(I/O)端口,2个16位定时计数器且可编程,全双工串行通信口也有2个,包括了2个外中断口,AT89S51单片机不仅能按照常规方法进行编程,也能进行在线编程。
图3.5.1是它的引脚图。
图3.5.1AT89S51引脚图
各个引脚的功能介绍如下:
A.主电源引脚(2条)
(1)VCC(40脚):
接外部电源高电平。
(2)GND(20脚):
接地。
不同型号单片机接对应电压电源,常用为+5V,低压+3.3V。
B.输入/输出(I/O)引脚(32条)
(1)P0口(32脚~39脚):
P0口为一个双向I/O端口,每个引脚最多可接收8TTL门电流。
当P1口的管脚第一次为高电平时,则为高阻输入。
P0口可以作为外部程序数据存储器,默认为数据/地址的第八位。
(2)P1口(1脚~8脚):
P1口是8位双向I/O口且由内部提供上拉电阻,P1口缓冲器最大能承受为4TTL门电流的输出电流。
当P1口管脚为高电平时,被内部上拉为高,可用作输入,P1口为低电平时,则将会输出电流,是由于内部上拉引起。
在FLASH编程和校验的过程里,P1口作为第八位地址接收口。
(3)P2口(21脚~28脚):
P2口是一个包含内部上拉电阻的8位双向I/O端口,P2口缓冲器可接收4个TTL门电流的输出电流,当P2口为高电平时,其管脚被内部上拉电阻自行拉高,且作为输入口用。
当它作为输入时,P2口的管脚由外部进行拉低,将输出电流由内部上拉所导致。
P2口当用作读取外部数据和外部程序存储器时,P2口输出地址的高八位地址。
在得出地址为“1”时,它用内部上拉的优点,对外部八位地址数据存储器进行读写,特殊功能寄存器为P2口输出的内容。
P2口在FLASH编程和校验的时候接收的是高八位地址与控制信号。
(4)P3口(10脚~17脚):
P3口管脚是双向I/O口带上拉电阻,可接收输出电流为4个TTL门电流。
当P3口写入“1”后,它被内部上拉为“1”,并用于输入。
作为输入,由于外部下拉为低电平P3口便能输出电流(ILL),这是由于上拉的缘故。
AT89S51的一些特殊功能口为P3口,P3口管脚备选功能如下表所示:
表2-1P3口第二功能
引脚
第2功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
/INT0(外部中断0请求输入端,低电平有效)
P3.3
/INT1(外部中断1请求输入端,低电平有效)
P3.4
T0(定时器/计数器0计数脉冲输入端)
P3.5
T1(定时器/计数器1计数脉冲输入端)
P3.6
/WR(外部数据存储器写选通信号输出端,低电平有效)
P3.7
/RD(外部数据存储器读选通信号输出端,低电平有效)
C.控制引脚(4条)
(1)RST(Rest,9脚):
复位信号输入端。
在单片机运行过程里,在此引脚加持续时间大于2个机器周期的高电平,复位操作便可完成,也就是说单片机开始执行程序是从0000H程序存储单元。
(2)ALE/PROG(30脚):
当访问外部存储器,地址锁存器允许的状态输出电平是用来锁地址字节。
在FLASH进行编程时,输入编程脉冲从此引脚。
一般,ALE端输出不变的频率周期的正脉冲信号,振荡器频率是它的6倍。
可用作对外部输出的脉冲信号或用于定时等功能。
要注意的是:
当作为外部数据存储器时,要跳过一个ALE脉冲信号。
想要禁止ALE的输出可以在地址SFR8EH上置0。
此时,在执行MOVX,MOVC指令是ALE才能有用。
该引脚会被略微的拉高。
外部执行状态ALE禁止了微处理器,置位将会无效。
(3)/PSEN(29脚):
片外程序存储器(ROM)选通线。
当访问外部程序存储器时,每个机器周期会有两次/PSEN有效。
在访问外部数据存储器期间,就没有两次有效的/PSEN信号。
(4)/EA/VPP(31脚):
片内外程序存储器(ROM)选择控制端口。
当/EA保持低电平0时,单片机对外部程序存储器(0000H-FFFFH)进行访问,不管是否有内部程序存储器。
在加密方式为1时,/EA将内部锁定为RESET;当/EA端保持高电平1时,单片机就只能只访问内部程序存储器。
D.外接晶体引脚(2条)
XTAL1(19脚):
内部时钟工作电路的输入或作为反向振荡放大器的输入端口
XTAL2(18脚):
作为反向振荡器的输出口。
3.6报警模块的设计
在很多单片机系统中,除了显示器件经常还有发声器件,最常见的发声器件是蜂鸣器。
蜂鸣器一般用于要求不高的声音报警及按键操作提示音等场合。
报警模块由蜂鸣器及外围电路组成,加电后不会发声,当密码输入错误达到三次时,单片机的P3.3引脚为低电平时,三极管Q1导通执行蜂鸣器子程序发出警笛报警。
虽然蜂鸣器的控制和LED的控制对于单片机而言是一样的,但在外围硬件电路上有所不同,因为蜂鸣器是一个感性负载,一般不建议用单片机I/O口直接对它进行操作,所以最好加个驱动晶体管,在要求高的场合加反向保护二极管。
如图3.6.1所示
3.6.1PROTUES仿真报警模块部分
3.7开锁模块的设计
以继电器的动作来模拟锁的开或关。
同样,为了增强驱动能力,特别添加了PNP三极管以放大电流,当P3.1口为低电平时,三极管导通,此时继电器动作(锁开),灯亮;二极管具有续流作用并以保护器件安全。
如图3.7.1示
图3.7.1ROTUES仿真开锁模块部分
3.8矩阵键盘模块设计
矩阵键盘又叫做行列式键盘。
行列式键盘的较简单是硬件结构,一般由列输出口和行输出口构成行列式键盘,按键就设置在