基 于单片机的电子密码锁设计文档格式.docx

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

基 于单片机的电子密码锁设计文档格式.docx

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

基 于单片机的电子密码锁设计文档格式.docx

组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选,自得其所”。

可以看出组合使用电子信息是电子密码锁以后发展的趋势。

1.3本设计所要实现的目标

本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必须通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。

密码可以由用户自己修改设定,锁打开后才能修改密码。

修改密码之前必须再次输入密码,在输入新密码的时候需要二次确认,以防止错误操作。

 

2设计方案的选择

常用的设计方案有以下两种:

1:

用以74LS112双JK触发器构成的电子逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;

如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警二十秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。

采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。

故不采用。

2:

由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。

一般来说在选取单片机时从下面几个方面考虑:

性能,存储器,运行速度,I/O口,定时/计数器,串行接口,模拟电路功能,工作电压,功耗,封装形式,抗干扰性,保密性,除了以上的一些还有一些最基本的比如:

中断源的数量和优先极,工作温度范围,有没有低电压检测功能,单片机内有无时钟震荡器,有无上电复位功能等。

在开发过程中单片机还受到:

开发工具,编程器,开发成本,开发人员的适应性,技术支持和服务等等因素。

基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。

当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0——9输入密码。

密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;

当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。

新密码输入无误后按确认键使新密码得到存储,密码修改成功。

可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案。

3主要元器件介绍

3.1主控芯片AT89S52

AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4KBytesISP(In-systemprogrammable)的可反复檫写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

3.1.1AT89S52性能简介

AT89S52具有如下特点:

40个引脚,4kBytesFlash片内程序存储器,128bytes的随机数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先极2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟震荡器。

此外,AT89S52设计和配置了震荡频率可为0HZ并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结震荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP,TQFP和PLCC等三种封装形式,以适应不同产品的需求。

可以看出AT89S52提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM。

32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟。

同时,AT89S52可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式何在RAM中的内容,但震荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。

图3-1AT89S52芯片引脚图

3.1.2AT89S52引脚功能说明

PO口:

PO口是一个8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个内带一个上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。

做输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。

表3-1为P1第二功能。

表3-1P1口第二功能

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口,做输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。

在访问8位地址的外部数据存储器(如执行:

MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,)在整个访问期间不改变。

Flash编程或校验时,P2也接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

做输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表的3-2。

表3-2P3口的第二功能

RST:

复位输入。

当震荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。

WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟震荡频率的1/6输出的正脉冲信号,因此它可以对外输出时钟或用于定时目的,要注意的是:

当访问外部数据存储器时将跳过一个ALE脉冲。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位禁位后,只有一条MOVC和MOVC指令ALE才会被激活。

此外,该引脚位被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,高有两次有效的PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。

需要注意的是:

如果加密位LB1被编程,复位时内部回锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程电压Vpp.

XTAL1:

震荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

震荡器反相放大器的输出端。

3.2存储芯片AT24C02

AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×

8位存储空间,具有工作电压宽(2.5-5.5V),檫写次数多(大于10000次),写入速度快(小于10ms),抗干扰能力强,数据不易丢失,体积小等特点。

而且它是采用了12C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。

AT24C02中带有的片内地址寄存器。

每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。

所有字节均以单一操作方式读取。

为了降低总的写入时间,依次操作可写入多达8个字节的数据。

12C总线是一种用于IC器件之间连接的二线制总线。

它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。

AT24C02正是运用了12C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。

主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。

无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。

AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。

图3-2AT24C02的两种引脚图

图3-3AT24C02的电路接线图

图中AT24C02的1,2,3,脚是三条地址线,用于确定芯片的硬件地址,在AT89C52试验开发板上它们都接地,第8脚和第4脚分别为正,负电源。

第5脚SDA为串行数据输入/输出,数据通过这条双向12C总线串行传送,在AT89S52试验开发板上和单片机的P3.5连接。

第6脚SCL为串行时钟输入线,在AT89C52试验开发板上和单片机的P3.6连接,SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉,第7脚需要接地。

24C02中带有片内地址寄存器。

为降低总的写入时间,依次操作可写入多达8个字节的数据。

3.3LCD1602显示器

现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器了。

1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。

1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

3.3.1接口信号说明

1602型LCD的接口信号说明如表3-3所示:

表3-31602型LCD的接口信号说明

3.3.2主要技术参数

1602型LCD的主要技术参数如下表所示:

表3-41602型LCD的主要技术参数

3.3.3基本操作程序

读状态:

输入:

RS=L,RW=L,E=H输出:

D0-D7=状态字

读数据:

RS=H,RW=H,E=H输出:

写指令:

RS=L,RW=L,D0-D7=指令码,E=高脉冲输出:

D0-D7=数据

写数据:

RS=H,RW=L,D0-D7=数据,E=高脉冲输出:

3.4晶体震荡器

晶体震荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。

以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。

如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。

但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好的解决这个问题。

现在应用最广泛的是石英晶体震荡器。

石英晶体震荡器是一种高精度和高稳定度的震荡器,石英晶体震荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件,石英晶体震荡器广泛的应用在电视机,影碟机,录象机,无线通讯设备,电子钟表,单片机,数字仪器仪表等电子设备中。

为数据处理设备产生信号和为特定系统提供基准信号。

在单片机中为其提供时钟频率。

石英晶体震荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:

从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形,矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体,晶振。

其产品一般用金属外壳封装,也有用玻璃壳,陶瓷或塑料封装的,只要在晶体振了板极上施加交变电压,就会使晶片产生机械变形震动,此现象即所谓逆压电效应。

当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。

4系统硬件构成

4.1设计原理

本设计主要由单片机,矩阵键盘,液晶显示器和密码存储等部分组成。

其中矩阵键盘用于输入数字密码和进行各种功能的实现。

由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然可以用继电器的常开触点去控制电磁铁吸合线圈。

本系统共有两部分构成,即硬件部分和软件部分。

其中硬件部分由电源输入部分,键盘输入部分,密码存储部分,复位部分,晶振部分,显示部分,报警部分,开锁部分组成,软件部分对应的由主程序,初始化程序,LCD显示程序,键盘扫描程序,启动程序,关闭程序,建功能程序,密码设置程序,EEPROM读写程序和延时程序等组成。

其原理框图如图4-1所示。

图4-1电子密码锁原理框图

4.2电路总体构成

在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分,键盘输入部分,密码存储部分,复位部分,晶振部分,显示部分,报警部分,开锁部分组成,根据实际情况键盘输入部分选择4×

4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选用AT24C02芯片来完成。

其电路图如图4-2所示:

图4-2电路总体构成图

4.3电源输入部分

电源电路经桥式整流之后采用了7805三端集成稳压器,输出+5V电压给单片机、LCM1602、AT24C02和光电耦合器等一些外围元器件供电。

图中标记的+12V电压是给继电器和电磁锁供电的。

因为电磁锁启动时要求电流比较大,故用了较大功率的9V变压器,可以输出5A的电流。

J1为9V变压器输入插接口,通电之后,按下S1电源开关,经过由D1、D2、D3、D4组成的桥式全整流,把方向、大小都变化的交流电(10V左右)变成单一方向的直流电。

这个直流电是方向不变但大小有变化的脉动电压。

故需经电解电容C1、C2、C3、C4滤波,滤波后可除去快速变化的纹波成分,得到基本平滑的直流电。

该直流电即为7805的输入电压,经过稳压输出+5V左右的电压,D5为电源指示灯,R2为电源指示灯的限流电阻,起保护LED的作用。

图4-3电源输入电路原理图

4.4键盘输入部分

由于本设计所用到的按键数量较多而不适合用独立按键式键盘。

采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。

本设计中使用的这个4×

4键盘不但能完成密码的输入还能做特别功能键使用,比如清空显示功能等。

键盘的每个按键功能在程序设计中设置。

其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4-4所示:

图4-4键盘输入电路图

4.5密码存储部分

掉电密码存储单元的作用是在电源断开的时候,存储当前设定的信息。

AT24C02是ATMEL公司的4KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内资料可以在断电情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

其电路如图3-5所示。

由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次密码信息,系统就自动调用存储程序,将密码信息保存在芯片内;

当系统重新上电的时候,自动调用读存储器程序,将存储器内的密码等信息,读到缓存单元中,供主程序使用。

图4-5密码存储器电路图

4.6复位部分

上电复位要求接通电源后,单片机自动实现复位操作。

上电瞬间RST引脚获得高电平,随着电容C5的充电,RST引脚的高电平将逐渐下降。

RST引脚的高电平只要能保持足够的时间(两个机器周期),单片机就可以进行复位操作。

该电路的参数建立在晶振12MHZ时。

图4-6复位电路图

4.7晶振部分

AT89S52引脚XTAL1和XTAL2与晶体震荡器及电容C2,C1按图4-7所示方式连接。

晶振,电容C1/C2及片内与非门(作为反馈,放大元件)构成了电容三点式振荡器,震荡信号频率与震荡率及电容C1,C2的容量有关,但主要由晶振频率决定,范围在0-33MHZ之间,电容C1,C2取值范围在5-30pF之间。

根据实际情况,本设计中采用12MHZ作为系统的外部晶振。

电容取值为20pF.

图4-7晶振电路图

4.8显示部分

为了提高密码锁的密码显示效果能力。

本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。

只有按下键盘上的开启按键后,显示器才出狱开启状态。

同理只有按下关闭按键后显示器才处于关闭状态。

否则显示器将一直出狱初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*,当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT”,单片机其中P2.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。

通过LCD显示屏,可以清楚的判断出锁所处的状态。

图4-8LCM1602液晶显示器正反面图

4.9报警部分

图4-9报警电路原理图

蜂鸣器发声原理的电流通过电磁线圈,使其电磁线圈产生磁场来驱动震动发声的,因此需要一定的电流才能驱动它,单片机I/O输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。

S52增强型单片机通过一个三极管9012来放大驱动蜂鸣器原理图如图3-8所示。

蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R4后由单片机的P3.0引脚控制,当P3.0输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;

当P3.0输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。

因此我们可以通过程序控制P3.0脚的电平来使蜂鸣器发出声音和关闭。

报警指示灯提示是由一个红色发光二极管和限流电阻构成,如图3-8所示,当P3.2接低电平时,红色发光二极管点亮,送出“报警信号”。

4.10开锁部分

开锁控制电路的功能是当输入正确的密码后蒋锁打开。

系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。

用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。

只有用户操作键盘时,单片机的电源端才能得到3V电源,否则,单片机处于节电工作方式。

开锁步骤如下:

首先按下键盘上的开锁按键,然后利用键盘上的数字键0-9输入密码,最后按下确认键。

当用户输入一密码后,单片机自动识码,如果识码不符,则报警。

只有当识码正确,单片机才能控制电子锁内的微型继电器吸合。

当继电器吸合以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。

开锁以后,单片机自动清除掉由用户输入的这个密码。

5系统软件设计

本系统的软件是一个很重要的部分,在系统工作时发挥着巨大的作用。

软件设计包括主程序设计和子程序设计。

图5-1主程序流程图

主程序是整个软件的灵魂部分,是联系各个模块的纽带,通过它联系4*4矩阵式键盘模块、LCM1602液晶显示模块、AT24C02串行EEPROM掉电储存模块和一些外围辅助模块共同实现各个模块之间的功能,实现真正意义上的软件设计,最终结合硬件实现本系统的正常工作。

图5-2键功能流程图

按键功能执行程序是对通过按键扫描所得到的键值进行判断,进而执行键值所对应的功能程序。

该按键功能执行程序包括7个状态,分别是状态0(输入密码)、状态1(修改密

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

当前位置:首页 > 高中教育 > 高中教育

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

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