电子锁设计.docx
- 文档编号:10499149
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:67
- 大小:527.55KB
电子锁设计.docx
《电子锁设计.docx》由会员分享,可在线阅读,更多相关《电子锁设计.docx(67页珍藏版)》请在冰豆网上搜索。
电子锁设计
题目:
基于单片机的电子密码锁设计
毕业设计中文摘要
基于单片机的电子密码锁设计
摘要:
随着人们生活水平的不断提高,家庭防盗问题越来越受到人们的关注。
自古以来,所使用的机械锁,以其所具有的一定的安全性和其价格便宜的优越性,至今仍被继续使用,但由于现代生活中,人们对安全系数追求更高,所以迫切要求一种更安全的锁来取代传统机械锁。
本课题研究的基本内容:
设计一种安全便捷,而又实用的电子密码锁,该设计以51单片机为核心控制部件,4*4键盘作为唯一的输入设备,液晶屏作为唯一的输出设备,做到密码可修改,错误输入密码多次自动报警并控制不能再次输入密码。
关键字:
单片机密码锁安全
毕业设计外文摘要
Microcontroller-basedDesignofElectronicCode-locks
Abstract
Asthelevelofourdaily-lifeimproving,peopleispayingmoreandmoreattentiontothefamily-stealproblems.becauseofthesafetyinalimitextent,andalowprice,themechanicallockweuseinourdaily-lifesincetheancienttimes,hasbeenusedtillnow.butinnowadays,peopleisseekingahighermodulusofsafety,sowehavetodesignatypeoflockwhichwillbemoresafelocktotaketheplaceofmechanicallocks.
Thebasicelementsofthisresearchproject:
designingasafeandconvenient,butpracticalelectroniccodelock,thedesignof51singlechipcomputercontrolunit,4*4keyboardastheonlyinputdevice,LCDscreenastheonlyoutputdevice,sothatthepasswordcanbemodifiedmanytimeswrongpasswordautomaticalarmandcontrolcan’tenterthepasswordagain.
Keywords:
microcontrollercode-locksecurity
1引言………………………………………………………………………………1
1.1电子密码锁简介………………………………………………………………5
1.2密码锁发展趋势………………………………………………………………5
1.3本设计所需实现功能…………………………………………………………6
2密码锁主要元件
2.1控制核心51单片机……………………………………………………………7
2.2LCD1602显示器………………………………………………………………13
3系统硬件构成
3.1设计原理………………………………………………………………………15
3.2电路总体构成…………………………………………………………………15
3.3键盘输入部分…………………………………………………………………16
3.4晶振部分………………………………………………………………………17
3.5显示部分………………………………………………………………………18
3.7开锁部分………………………………………………………………………19
4软件实现
4.1主题程序流程…………………………………………………………………20
4.2按键功能流程…………………………………………………………………21
4.3密码设置流程…………………………………………………………………22
4.4开锁程序流程…………………………………………………………………23
结论…………………………………………………………………………………24
参考文献……………………………………………………………………………25
致谢…………………………………………………………………………………26
附录A………………………………………………………………………………27
1引言
1.1电子密码锁简介
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
其特点如下:
1)保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。
3)误码输入保护,当输入密码多次错误时,报警系统自动启动。
4)无活动零件,不会磨损,寿命长。
5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
6)电子密码锁操作简单易行,一学即会。
1.2电子密码锁的发展趋势
在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。
由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。
出于安全、方便等方面的需要许多电子密码锁已相继问世。
但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
可以看出组合使用电子信息是电子密码锁以后发展的趋势
1.3本设计所要实现的功能
本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。
密码可以由用户自己修改设定,锁打开后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2主要元器件介绍
2.1主控芯片AT89S51
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(InSystemProgrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80s51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
2.1.1AT89S51简介
图2-1AT89S51芯片引脚图
MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。
有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。
其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。
同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。
89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。
89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。
89SXX可以像下兼容89CXX等51系列芯片。
市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。
如果市场需要,Atmel当然也可以再恢复生产AT89C51。
AT89S51/LS51单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。
它与通用80C51系列单片机的指令系统和引脚兼容。
片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。
他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。
AT89S51/LS51具有如下特性:
--片内程序存储器含有4KB的Flash存储器,允许在线编程,檫写周期可达1000次;
--片内数据存储器内含128字节的RAM;
--I/O口具有32根可编程I/O线;
--具有两个16位I/O线;
--中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;
--串行口是一个全双工的串行通信口;
--具有两个数据指针DPTR0和DPTR1;
--低功耗节电模式有节电模式和掉电模式;
--包含3级程序锁定位;
--AT89S51的电源电压为4.0V-5.5V,AT89LS51的电源电压为2.7V-4.0V;
-振荡器频率0MHz-33MHz(AT89S51),0MHz-16MHz(AT89LS51);
--具有片内看门狗定时器;
--灵活的在线片内编程模式(字节和页编程模式);
--具有断电标志模式POF;
89S51相对于89C51增加的新功能包括:
--新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!
--ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离,是一个强大易用的功能。
--最高工作频率为33MHz,大家都知道89C51的极限工作频率是24MHz,就是说S51具有更高工作频率,从而具有了更快的计算速度。
--具有双工UART串行通道。
--内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
--双数据指示器。
--电源关闭标识。
--全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
--兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。
引脚排列及功能
AT89S51/LS具有PDIP,TQFP和PLCC三种封装形式。
PDIP封装的引脚排列如图所示。
引脚功能如下:
P0口——8位、开漏极、双向I/O口。
P0口可作为通用I/O口,但必须外接上拉电阻;作为输出口,每个引脚课吸收8个TTL的灌电流。
作为输入时,首先应将引脚置1。
P0口也可用作外部程序存储器和数据存储器是的低八位地址/数据总线的复用线。
在该模式下,P0口含有内部上拉电阻。
在Flash编程时,P0口接受代码数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻)。
--P1口——8位、双向I/O口、内部含有行拉电阻。
P1可作为普通I/O口。
输出缓冲器可驱动4个TTL负载;用作输入时,先交引脚置1,有片内上拉电阻将其抬到高电平。
P1口的引脚可由外部负载拉倒低电平,通过上拉电阻提供拉电流。
在Flash并行编程和校验时,P1口可输入低字节地址。
在串行编程和校验时,P1.0/MOSI,P1.6/OSI和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。
I/O具有内部拉电阻的8位双向I/O。
P2口用作输出口时,可驱动四个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。
若负载为低电平,则通过内部上拉电阻向外输出电流。
CPU访问外部16位地址的存储器时,P2口提供高8位的地址。
当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器内容。
在FLASH并行编程和校检时,P2口可输入高字节地址和某些控制信号。
--P3口——局有内部上拉电阻8位双向口。
P3口左忽出口时,输出缓冲器可吸收4个TTL的灌电流;用作输入口时,手先将引脚置1,有内部上拉电阻抬为高电平。
若外部负载是低电平,则通过内部上拉电阻向外输出电流。
在与FLASH并行编程和校检时,P3口可输入某些控制信号。
P3口除了通用I/O功能外,还有替代功能,如下表所示:
引脚符号说明
P3.0RXD串行口输入
P3.1TXD串行口输出
P3.2INT0外部中断0
P3.3INT1外部中断1
P3.4T0定时器的外部计数输入
P3.5T1定时器的外部计数输入
P3.6WR外部数据存储器的写选通
P3.7RD外部数据存储器的读选通
--ALE/PROG——地址锁存允许/编程脉冲信号端。
在CPU访问外部程序存储器或者外部数据存储器时,ALE提供一个地址锁存信号,将低8位地址锁存在骗外地址锁存中。
在与FLASH并行编程时,该引脚也是编程负脉冲的输入端。
在正常操作状态下,该引脚端口输出额定频率的脉冲,其频率为额定频率的1/6,可做外部定时或者其它引发信号。
应注意,CPU每次访问外部数据存储器时,都要丢失一个ALE脉冲。
如果需要,则通过将SFR(8EH)的第0位置1,可禁止ALE操作,但在使用MOVC或者MOVX指令时候,ALE仍有效。
也就是说,ALE的禁止位不影响对外部存储器的访问。
--PSEN——外部程序存储器读选通信号,低电平有效。
当AT89S51/LS51执行来自外部程序存储器指令代码时候,PSEN每个机器周期两次有效。
在访问外部数据存储器时候,则无效。
--EA/Vpp——外部程序存储器允许。
当EA接地时,CPU只执行外程序存储器的程序;当EA接VCC时,CPU首先执行片内程序存储器中的程序(0000H——0FFFH),然后自动转向执行片外程序存储器中的程序(1000H——FFFFH)。
如果程序锁定位LB1别编程(P),那么EA值将在复位时有片内锁存。
在与FLASH并行编程时,该引脚可介入12V的编程电压Vpp。
--XTAL1和XTAL2——XTAL1是片内振荡器反相放大器和时钟发生器的输入端,XTAL2是片内振荡器反相放大器的输出端。
--RST——复位输入段,高电平有效。
在振荡器稳定有效运行状态下,RST端维持两个机器周期的高电平,便可复位器件,当看门狗定时器溢出输出端时,该引脚将输出长达98个震荡周期的高电平。
--VCC—电源电压输入端。
--GND—电源地。
终端和中断寄存器
AT89S51/LS51含有6个中断源,5个中断矢量(中断服务程序入口地址),如图:
图中定时器0和定时器1的中断标志TF0和TF1是在每个机器周期的S5P2时刻设置(当溢出时)的,然后在下个机器周期由片内线路查询。
没个中断源都可单独地通过设定或清除特殊功能存储器IE中某一位来允许/禁止,IE内含一个中断总控制位EA,可允许/禁止所有中断。
IE各位功能如下:
IE地址=A8H复位值=0XX00000B
可以寻址位MSBLSB
位地址:
AFHAEHADHACHABHAAHA9HA8H
位符号:
EA——ESET1EX1ET0EX0
每位置1表示允许中断,每位清0表示禁止中断。
其中:
EA中断总控制位。
EA=0,禁止所有中断;EA=1,每个中断是否允许还取决于其它各中断的控制位。
ES串行口串行中断允许位。
ET1定时器1中断允许位。
EX1外部中断1中断允许位。
ET0定时器0中断允许位。
EX0外部中断0中断允许位。
2.2LCD1602显示器
现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。
2.2.1接口信号说明
1602型LCD的接口信号说明如表3-3所示:
表2-11602型LCD的接口信号说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
V0
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
2.2.2主要技术参数
1602型LCD的主要技术参数如下表所示:
表2-21602型LCD的主要技术参数
显示容量
16X2个字符
芯片工作电压
4.5~5.5V
工作电流
2.0mA(5.0V)
模块最佳工作电压
5.0V
字符尺寸
2.95X4.35(WXH)mm
2.2.3基本操作程序
读状态:
输入:
RS=L,RW=L,E=H输出:
D0~D7=状态字
读数据:
输入:
R=H,RW=H,E=H输出:
无
写指令:
输入:
RS=L,RW=L,D0~D7=指令码,E=高脉冲
输出:
D0~D7=数据
写数据:
输入:
RS=H,RW=L,D0~D7=数据,E=高脉冲输出:
无
2.2.41602字符表
1602液晶字符表,共由8位组成,即1602液晶模块总共可以显示128个字符,字符列表如图所示。
3系统硬件构成
3.1设计原理
本设计主要由单片机、矩阵键盘、液晶显示器等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
本系统共有两部分构成,即硬件部分与软件部分。
其中硬件部分由电源输入部分、键盘输入部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序等组成。
其原理框图如图4-1所示。
图3-1电子密码锁原理框图
3.2电路总体构成
在确定了选用什么型号的单片机后,就要确定
在外围电路,其外围电路包括
键盘输入部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602其原理图如图3-2所示:
图3-2电路原理图
3.3键盘输入部分
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。
键盘的每个按键功能在程序设计中设置。
其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3-3所示:
图3-3键盘输入原理图
3.4晶振部分
AT89S51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图4-4所示方式连接。
晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。
根据实际情况,本设计中采用12MHZ做为系统的外部晶振。
电容取值为20pF。
图3-4晶振电路原理图
3.5显示部分
为了提高密码锁的密码显示效果能力。
本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。
只有按下键盘上的开启按键后,显示器才处于开启状态。
同理只有按下关闭按键后显示器才处于关闭状态。
否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子锁 设计