基于单片机的电子密码锁毕业论文设计说明.docx
《基于单片机的电子密码锁毕业论文设计说明.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁毕业论文设计说明.docx(63页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁毕业论文设计说明
本科毕业设计(论文)
题目基于单片机的电子密码锁设计
院(系部)大学
专业名称电子信息工程
年级班级
学生
指导教师
2011年月日
摘要
本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机作为数据处理主控芯片。
电子密码锁的设计主要由四部分组成:
4×4矩阵键盘接口电路、以AT89S52芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。
另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。
电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。
同时该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅,办公室等场所的用锁要求,具有推广价值。
关键词单片机密码锁4*4矩阵键盘EEPROM存储芯片实用经济
Abstract
ThisprojectdesignedadigitalelectroniclockwhichusedaMCUasdataprocessandcontrolchip.Themainfunctionsdigitalelectroniclockareasfollows:
Thedesignoftheelectronicpasswordlockismainlymadeupoffourparts:
4×4matrixkeyboardinterfacecircuit,dataprocessingandcontrolcircuit,eeprommemorychipthatisusedtokeeppasswordwhenthelocklosespoweranddisplaycircuit.InadditionthesystemalsoconsistsofLEDlights,alarmbuzzers,single-chipresetcircuitandsoon..Thekeyquestionoftheelectroniclockdesigningistherealizationoffunctions,suchastheinputpassword,clearpassword,unlock,changepasswordandotherfunctions.Andthedesignedcipherlockischaracterizedbyitsreasonabledesigningmethods,simpleoperation,lowcostandpropertyofsafetyandpracticality.Besides,itworkswellasaresidencelockandhasgreatpotentialforcommercialdevelopment.
Keywords:
SCMCipherlock4*4matrixkeyboardEEPROMPracticaleconomy
1绪论1
1.1国外研究综述1
1.2选题的目的和意义2
1.3本论文的任务3
2电子密码锁总体设计4
2.1系统总体设计4
2.2单片机5
2.3密码存储芯片选择6
2.4键盘输入方案比较8
2.5显示方案比较10
3电子密码锁的硬件设计12
3.1系统结构框图12
3.2主控部分13
3.3显示部分13
3.4键盘输入部分14
3.5密码存储部分15
3.6电源部分16
3.7其它功能部分18
3.8电子密码锁的电路原理图21
4电子密码锁的软件组成22
4.1系统软件设计流程22
4.2KeiluVision2软件介绍23
4.3各主要部分的功能实现程序设计24
4.3.1初始化程序设计24
4.3.2按键处理程序设计27
4.3.3密码更改程序设计31
5系统仿真34
5.1系统仿真过程34
5.2仿真调试中遇到的问题及解决办法35
总结36
致37
参考文献38
附录39
1绪论
1.1国外研究综述
在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机械锁已不能满足人们的要求,于是电子锁应用而生。
以前由于电子器件所限,开发的电子密码锁种类不多,性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作虽简单但很不安全。
现在电子锁的技术可以说是时时的在进步,出现了很多性能强,安全可靠的新型电子锁。
如:
遥控式电子密码锁,卡式电子锁,生物特征电子锁等。
但是应用广泛的还是键盘式电子密码锁。
遥控式电子密码锁:
优点是传输信息量可以很大、速度极快、人眼识别不出来,又无法在光路径上用仪器捕获信号进行复制,因此性极高。
缺点是需要随身保管遥控器即钥匙,对于某些方面来说不是很实用。
卡式密码锁:
能够在卡中存储大量的个人信息,即容量非常的大,并且可以实现一卡多用。
但是卡式密码锁也有很大的缺陷,开锁用的卡很可能受到一些电子产品的磁干扰,出现“失效”;同时卡也很容易被丢失,丢失了卡就需要尽快的取消卡的授权,一面个人的重要信息丢失,这个过程也是相当麻烦的。
生物特征电子锁:
人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的。
但是生物特征电子锁需要大量的个人身体上的信息,这就使其处理上会变得复杂,这也确定了生物特征电子锁目前仅适用于极个别的行业。
键盘式电子锁:
主要依靠的是键盘输入密码验证,不需要携带专一的“钥匙”,只需要记住密码即可。
键盘式电子锁有采用数字电路控制的,但控制的准确性和灵活性比较的差;有以单片机为核心的键盘式电子锁,它的性能比较的稳定,而且性价比也比较的高,受到了广泛的关注。
尽管新式电子防盗锁层出不穷,但键盘式电子密码锁仍然“老树发新芽”,在市场上居于主流地位。
伴随着科学技术的发展,电子的应用技术的提高,又出现了一些带有微型处理器的智能电子锁,它除了具有电子密码锁的功能外,还引入了智能化管理的功能,从而使电子密码锁具有更高的安全性和可靠性。
目前发达国家大规模使用的智能门禁系统,就是一种使用多种更加安全,可靠方法来实现大门管理的新型电子密码锁。
发达国家的电子密码锁技术已经相当的成熟,智能化、集成化程度很高。
而我国的应用还不是很广泛,一般应用在一些高级的场所之中,例如银行的保险柜、保险箱、高级酒店等,家居应用很少。
我国的电子密码锁的技术也是比较落后的,不是很成熟。
开发的密码锁大多采用的是普通的数字电路设计生产的,与机械锁相比较的确存在着很多的优点,但智能化的程度不高,编码的组合很少。
1.2选题的目的和意义
在我们的日常生活中,经常会遇到一些地方需要进行防护,而这些地方的防护多是以使用各种各样的锁来进行的。
常见的大致有两个大的方面,一种是机械锁,一种是电子密码锁锁。
传统简单的机械锁一般是结构比较的简单,很容易遭到外部的破坏,而复杂的大型机械锁又比较的笨重,不适合大众的需要。
在科学技术不断发展的今天,电子密码锁已经受到了越来越多的关注。
电子密码锁具有性高,无灵活零件,不会磨损,寿命长,灵活性好等特点。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
但是电子密码锁也存在着缺陷1.价格比较的昂贵;2推广性不强。
现在采用单片机制作的电子锁就克服了这些缺陷。
单片机具有体积小、功能强,性价比高等特点,广泛应用于电子产品。
基于单片机的电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
本次选题的就是设计一种基于单片机控制的具有本机开锁和报警功能的电子密码锁,在电子密码锁的显示和键盘输入有方案的比较,使电子密码锁更加的实用经济,能够实际生活中得到广泛的应用。
用单片机制作的电子锁有以下的特点:
1.性好,采用的是多位密码输入。
2.破解保护,能够及时的锁定键盘报警。
3.界面简洁,密码操作也非常简单。
1.3本论文的任务
本设计的电子密码锁的实现是基于单片机的,任务及工作如下:
1、在Proteus软件环境中进行硬件电路图的设计。
2、在Keil软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。
此.hex文件是硬件电路运行实现的源代码来源。
3、把.hex文件加载到单片机芯片,然后在Proteus软件环境中运行硬件电路。
2电子密码锁总体设计
2.1系统总体设计
本设计主要由单片机、矩阵键盘、LED数码管显示和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
其设计原理框图如图2.1所示:
图2.1原理框图
单片机:
本部分的功能包括写入和读取各种控制命令及数据处理,同时还要对各执行单元进行控制。
单片机是整个系统的控制核心及数据处理核心。
键盘部分:
本部分由用户通过键盘输入各种信息送入到单片机进行处理。
显示部分:
本部分完成的是单片机处理后的数据和信息的显示以及系统提示信息的显示。
密码存储部分:
本部分完成存储原始密码和用户更改密码数据的功能。
其它部分:
本部分的目的是为了提高系统的可用性和实用性。
主要包括电源部分、复位部分、晶振部分、开锁部分和报警部分。
电源部分主要的功能是为单片机提供适当的工作电源,同时也为其它的部分提供电源。
复位部分功能是使单片机在出现故障时进行成功的复位。
晶振部分功能是给单片机提供时钟。
开锁部分主要是根据单片机数据处理的结果驱动继电器控制开锁的操作。
报警部分主要的功能就是在错误操作下实现报警提示。
2.2单片机选择
单片机的种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。
在多数的电子设计中,基于性价比的考虑,8位单片机为首选。
8位单片机中以MCS-51系列单片机及其兼容机所占的份额最大。
MCS-51的硬件结构决定了其指令系统不会发生变化。
因此在对不同公司的单片机进行选型时,只需要比较芯片部资源即可。
在以前的电子设计中,应用比较广泛的是AT89C51单片机,但是该单片机存在着致命的缺陷不支持ISP功能。
Atmel公司现在已停止了AT89C51的生产,而加上了ISP功能的AT89S51、AT89S52诞生了。
AT89S系列单片机在工艺上进行了改进,采用了0.35mm的新工艺,不但降低了成本,而且增加了功能,提升了单片机的性能,提高了市场竞争力。
AT89S系列单片机新增了许多功能,性能也有了较大的提升,但是价格仍旧与AT89C系列的价格相差不大。
新增的功能之中最具影响力的就是ISP在线编程功能,这个功能的优势在于,改写单片机Flash存储器的程序时不需要把芯片从工作环境中剥离,是一个强大易用的功能。
显然,AT89S系列单片机在性能上要比AT89C系列的单片机优良的多,而且价格也没有什么提高。
所以选择AT89S系列作为本系统的的主控部分。
而AT89S系列中的89S51和89S52在实际应用中最多,本设计中软件部分需要大量的程序编程,89S51的程序存储器太小,不能满足要求,因此选择AT89S系列的AT89S52作为本设计的主控部分。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89S52引脚图如图2.2所示:
图2.2AT89S52引脚图
AT89S52引脚功能说明如下:
VCC:
电源电压
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0部上拉电阻被激活。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动(吸收或输出电流)4个TTL逻辑门电平。
对P1端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(TTL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。
P1端口引脚的第二功能如表1所示
表1P1端口引脚的第二功能
端口引脚
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的部上拉发送1。
在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(TTL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。
如表2所示:
表2
端口引脚
第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.4
TO(定时/计数器0)
P3.1
TXD(串行输出口)
P3.5
T1(定时/计数器1)
P3.2
INTO(外中断0)
P3.6
WR(外部数据存储器写选通)
P3.3
INT1(外中断1)
P3.7
RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISRTO位缺省为RESET输出高电平打开状态。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将有两次有效的PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行部程序存储器的指令。
XTAL1:
振荡器反相放大器及部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
2.3密码存储芯片选择
本部分主要是论证密码存储芯片的选型。
存储器的类型按功能分只读存储器(Read-OnlyMemory,简称ROM)和随机存取存储器(RandomAccessMemory,简称RAM)。
随机存取存储器与只读存储器的根本区别在于:
随机存储器在正常工作状态时可随时向存储器里写入数据或从中读出数据,在存储器断电后信息全部丢失。
只读存储器又分为固定掩膜存储器和可编程存储器。
固定掩膜存储器在生产时就根据用户的要求把数据和程序固化其中,其中的容用户不可以再修改,只能读出。
而可编程存储器便于用户根据自己的需要来写入特定的信息,根据存储矩阵中存储单元电路的结构不同,可编程的ROM有PROM、EPROM和EEPROM等三种。
PROM的编程是由用户而不是生产厂家完成,增加了灵活性,但编程是一次性的,且可靠性较差,目前已很少使用。
EPROM作为一种可以多次擦除和重写的ROM,克服了掩膜式ROM和PROM只能一次性写入的缺点,满足了实际工作中需要多次修改程序或数据的可能,前提条件是存储矩阵中现有的程序或数据必须首先擦除。
EPROM的擦除和编程写入是采用专门的编程器设备完成的,并且擦除的周期比较的长。
电可擦除可编程只读存储器EEPROM也称E2PROM。
与EPROM擦除时把整个芯片的容全变成“1”不同,EEPROM的擦除可以按字节分别进行,且字节的编程和擦除都只需10ms,并且不需要将芯片从机器上拔下以及诸如用紫外线光源照射等特殊操作,可以在线进行擦除和编程写入。
因此根据设计的要求,采用的是EEPROM。
常见的EEPROM芯片有28256、AT24C系列,28256的EEPROM引脚比较多,功能比较的多,且容量太大,而本设计的存储器只是存储密码数据,不需要很多的功能和很大的容量,因而选用的是AT24C系列的EEPROM。
常用的AT24C系列如下表3所示:
表3AT24C系列EEPROM对比表
EEPROM型号
AT24C02
AT24C08
AT24C16
容量(bytes)
2K
8K
16K
页大小(bytes)
8
16
16
总页面数
32
64
128
地址位(bits)
8
8
8
本设计中存储的数据不多,因此选用AT24C02即可满足要求。
AT24C02是美国Atmel公司的低功耗CMOS型EEPROM,含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小、掉电情况下可以继续保存数据等特点。
AT24C02芯片作为系统的从器件,它与主器件之间的通信遵循I²C总线协议,I²C总线协议规定,任何将数据传送到总线的器件作为发送器。
任何从总线接受数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或者是接收器。
AT24C02的引脚如图2.3所示:
图2.3AT24C02的引脚
引脚的功能:
串行时钟(SCL):
用于产生器件所有数据发送或接收的时钟。
串行数据/地址(SDA):
用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线。
器件地址输入端(A0、A1和A2):
用于多个器件级联时设置器件地址,当有多个从器件连接在I²C总线上时,此端口用于选择不同的从器件。
本次设计中三个引脚全部接地。
写保护(WP):
如果WP管脚连接到VCC,所有的容都被写保护(只能读)。
当WP管脚连接地线或悬空,允许器件进行正常的读/写操作。
2.4键盘输入方案比较
键盘输入是现阶段电子设计中最常用、最实用的输入设备。
设计中常用的键盘输入方案有两种:
独立式键盘、矩阵式键盘。
独立式键盘
独立式按键是指直接用I/O口线构成的单个按键的电路。
每个独立式按键单独占有一根I/O口线,每个按键的工作状态都是独立的不会影响到其他的按键的工作状态。
独立式按键的电路如图2.4所示:
图2.4独立式按键电路原理图
通常独立式键盘的按键输入都采用低电平有效,上拉电阻保证了按键的断开,I/O口线有确定的高电平。
独立式按键电路配置灵活,软件结构简单,但是每个按键都需要独立的I/O口,如果按键的数量较多的时候,I/O就会造成极大的浪费。
矩阵式键盘
行列式键盘又叫矩阵式键盘。
用I/O口线组成行列结构,按键位于行列的交点位置上。
矩阵式键盘电路原理如图2.5所示:
图2.5矩阵式键盘电路原理图
本次设计中电子密码锁的键盘中,出去0-9的数字键外,还需要一些辅助的功能键,总体上来说按键的数量是相当的多的。
采用独立式按键的方案,会对单片机的I/O口造成很大的浪费;采用矩阵式的按键方案就比较的适用于本次设计。
2.5显示方案比较
设计中常用的输出显示设备有两种:
数码管和LCD
LCD显示方案
LCD是一种被动式的显示器,利用液晶能改变光线通过方向的特性,来达到显示的目的。
LCD显示清晰美观,具有功能低、抗干扰能力强的优点,广泛应用于仪器仪表、控制系统等。
液晶显示器的驱动方式由电极引线的选择方式确定,选择了液晶显示器之后便无法改变驱动的方式。
当LCD显示笔端上两个电极电压相位相同时,两电极之间的电位差为0,该字段就不显示;当两个电极电压的相位相反时,两电极之间的电位差为两倍的方波电压,该字段显示。
其原理电路如图2.6所示:
图2.6原理电路
数码管显示方案
七段数码管显示器是有8个发光二极管组成的(a,b,c,d,e,f,g),LED七段数码管的显示即相应的发光二极管导通或者是截断,不同的组合等到的字符显示不一样的。
数码管显示的数据容比较的直观,一个数码管可以显示一位,多个数码管就可以显示多位,且程序设计和外围电路设计都十分的简单。
数码管显示的每一位都需要有一个8位输出口控制,当需要较多的数码管显示的时候,单片机如果要直接控制各个数码管的显示是不可能的,因为没有足够的I/O口线进行控制。
通常采用串口发