基于单片机的电子密码锁设计及实现项目可行性研究报告Word文档格式.docx
《基于单片机的电子密码锁设计及实现项目可行性研究报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计及实现项目可行性研究报告Word文档格式.docx(62页珍藏版)》请在冰豆网上搜索。
有以单片机为核心的键盘式电子锁,它的性能比较的稳定,而且性价比也比较的高,受到了广泛的关注。
尽管新式电子防盗锁层出不穷,但键盘式电子密码锁仍然“老树发新芽”,在市场上居于主流地位。
伴随着科学技术的发展,电子的应用技术的提高,又出现了一些带有微型处理器的智能电子锁,它除了具有电子密码锁的功能外,还引入了智能化管理的功能,从而使电子密码锁具有更高的安全性和可靠性。
目前发达国家大规模使用的智能门禁系统,就是一种使用多种更加安全,可靠方法来实现大门管理的新型电子密码锁。
发达国家的电子密码锁技术已经相当的成熟,智能化、集成化程度很高。
而我国的应用还不是很广泛,一般应用在一些高级的场所之中,例如银行的保险柜、保险箱、高级酒店等,家居应用很少。
我国的电子密码锁的技术也是比较落后的,不是很成熟。
开发的密码锁大多采用的是普通的数字电路设计生产的,与机械锁相比较的确存在着很多的优点,但智能化的程度不高,编码的组合很少。
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位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
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
总页面数
32
64
128
地址位(bits)
本设计中存储的数据不多,因此选用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口线进行控制。
通常采用串口发送数据,然后用串行输入并行输出的移位寄存器来驱动数码显示器。
实际应用中,简单的可以使用三极管来驱动,但是本设计为了使显示更加的稳定,采用的是74HC164串行移位寄存器来驱动。
本次设计,显示的东西不需要很复杂,信息也较少,用数码管显示完全可以满足要求,而使用LCD显示成本可能会比较的高,所以采用数码管显示。
3电子密码锁的硬件设计
本部分主要介绍基于AT89S52单片机的电子密码锁的硬件设计。
系统的硬件部分由键盘输入部分、密码存储部分、显示部分、电源输入部分、复位部分、晶振部分、报警部分、开锁部分组成。
3.1系统结构框图
系统以AT89S52单片机作为数据和控制部分;
以矩阵键盘输入作为键盘输入部分的方式;
数码管显示作为数据输出显示部分;
由继电器控制电磁阀动作的开锁电路作为开锁部分;
蜂鸣器作为报警部分,系统的硬件结构框图如图3.1所示:
图3.1系统的硬件结构图
3.2主控部分
本次设计中,选用Ateml公司的51系列单片机AT89S52芯片作为电子密码锁的数据处理及操作控制芯片。
只有单片机芯片是无法完成数据处理及控制功能的,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。
本次设计,由AT89S52单片机连同附加电路构成的单片机最小系统作为主控。
电路图如图3.2所示:
图3.2最小系统
3.3显示部分
电子密码锁采用数码管进行显示,经过单片机处理过的数据信息都由数码管进行显示。
单片机数据传输采用串行方式,数据通过单片机的串行数据口P3.0(RXD)进行发送,接着应用74HC164串行移位寄存器把串行的数据转换成8位的并行数据,驱动LED数码管。
74HC164芯片中,没有数据锁存器,使串行数据每到达一位,直接就被送到数码管中,造成数据显示不稳定。
为了使数据显示稳定,在移位寄存器和数码管之间加入数据锁存器,来稳定数码管的数据显示。
显示部分如图3.3所示:
图3.3显示部分电路图
3.4键盘输入部分
在电子密码锁中各种信息的输入都是通过键盘输入部分完成的。
把单个按键按照4*4组成键盘,四条行线连接到单片机的P1.0-P1.3四条I/O口线上,四条列线连接到单片机的P1.4-P1.7四条I/O口线上,运行的时候,单片机通过控制P1口得高低电平,然后根据变化进行判断。
单片机向行线输入高电平,向列线输入低电平,按键未被按下之前保持电平给定不变,按键按下,行线的高电平变成低电平。
同样对列线进行判定,即可判断所输入的信息。
键盘部分的电路连接如图3.4所示:
图3.4键盘部分电路图
3.5密码存储部分
在电子密码锁中,存入的密码是需要永久的保存的。
在设计中采用了在掉电的情况下依然能够保存数据的EEPROM存储芯片24C02存储密码。
设计的密码锁因为只需要存储6位密码,数据量很小,所以24C02的地址选择端口直接接地,时钟输入端口(SCK)和数据输入端口(SDA)和单片机的相连即可。
电路连接如图3.5所示:
图3.5密码存储部分电路图
3.6电源部分
密码锁主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。
其主要原理是把交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。
由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。
降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。
由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作