当前位置:文档之家› 智能电子密码锁设计

智能电子密码锁设计

目录第1章概述 (1)第2章系统总体方案设计 (2)2.1系统总体设计框图 (2)2.2 初步设计思路 (2)第3章硬件电路设计 (4)3.1 LED数码管显示电路 (4)3.2 键盘电路设计 (6)3.3 开锁电路 (9)3.4报警电路 (10)3.5时钟电路 (10)第4章软件设计 (12)4.1软件设计思路 (12)4.2各子程序设计 (13)4.2.1 键盘扫描子程序 (13)4.2.2 LED显示子程序 (14)第5章系统调试 (17)第6章心得体会 (19)参考文献 (21)附录 (22)附录A:源程序清单 (22)附录B:硬件原理图 (29)电气与信息工程系课程设计评分表 (30)第1章概述随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,成为现代电子系统中最重要的智能化工具。

本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。

第2章系统总体方案设计2.1系统总体设计框图系统总体设计方案框图2.1:EEPROM 扩展电路、LED数码管显示电路、LED指示灯电路、蜂鸣器电路、继电器电路等。

2.2 初步设计思路根据设计要求,初步思路如下:1、系统的原始密码放在RAM区,在运行过程中可以实时更改系统密码。

.2、利用串行EEPROM存储芯片,可以随时读取新密码,且具有掉电保护功能。

3、人机交互通过键盘输入,系统根据键值做出相应的处理,完成具体的功能。

4、LED数码管通过驱动电路,显示相应的状态。

位选由P2口高四位产生,段码由P1口输入。

5、系统还扩展了LED指示灯、蜂鸣器、继电器等一些其本外围电路。

6、此系统共设计了3个基本功能键:密码设置键、确认键、复位键。

密码设置键:当用户需更改密码时,可通过此功能键方便地修改原先的旧密码。

确认键:当完成密码输入后,可按此功能键即可实现密码的比较和处理。

复位键:当密码三次输入错误时,系统进入死锁状态,可按此功能键跳出此状态。

第3章硬件电路设计3.1 LED数码管显示电路单片机应用系统中,通常都需要进行人-机对话。

这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示状态及各种运行结果,显示器、键盘电路都是用来实现人-机对话活动的人机通道,因此在单片机系统中有着广泛的应用。

数码管在系统中的主要作用是显示单片机的输出数据、状态等,因而,作为外围典型器件,数码管显示是反映系统输出和操作输入的有效器件。

数码管具备数字接口,可以方便地和单片机系统连接;数码管的体积小,重量轻,并且共耗低,是一种理想的显示单片机数据输出内容的器件,在单片机系统中有着重要的作用。

LED数码管的驱动是一个非常重要的问题由于单片机并行口不能直接驱动LED数码管,必须采用驱动电路或放大电路,使之产生足够大的电路,显示器才能高亮正常工作。

如果驱动能力差,显示器亮度就低,这样显示效果就会很差,达不到设计的需要。

在本系统中,采用了三极管放大电路驱动数码管显示。

LED显示器显示控制方法有两种,即动态显示和静态显示。

静态显示亮度一般比动态显示效果好,但本次设计中,采用了动态显示。

LED显示器有共阴和共阳两种接法,因此设计过程中要注意接法的区别。

下表为LED显示器扫描的字符编码。

本系统设计的显示电路是为了给使用者以提示而设置的。

本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.1所示。

用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。

通过软件实现数字和位控制。

图3.1 LED显示电路用74LS247可以控制输出什么字型。

74LS247的逻辑功能表如表3.1:表3.1 74LS247的逻辑功能表用74LS138控制位循环显示,其逻辑功能表如表3.2:3.2 键盘电路设计电子密码锁应用系统工作时应具备两种基本功能,一是密码设置功能,二是密码输入功能。

要实现这两种功能就必须通过键盘输入单元来完成。

在此系统设计中,键盘行列与单片机P2口连接,通过单片机程序实现对按键码的识别。

键盘上有好多键,每一个键对应一个键码,以便将键码转到相应的的键处理子程序,进一步实现数据输入和命令处理的功能,键识别的流程图如图3.2所示。

时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

其原理如图3.3图3.3 矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图3.2.2所示的4×4键盘,说明线反转个工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

具体的功能设计如表3.3:3.3 开锁电路在本次智能电子密码锁设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。

电路图如3.4所示。

当P2.0口输出低电平时,二极管发光,表示开锁。

图3.4 开锁电路3.4报警电路图3.5 报警电路报警模块由蜂鸣器和单片机组成。

选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。

蜂鸣器电路如图3.5所示。

当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。

3.5时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图3.6所示。

图3.6 时钟电路电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。

电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在2±0.1PF,一般晶振为12MHZ,电容取2PF。

石英晶体选择6MHZ或12MHZ,其结果只是机器周期不同,影响计数器计数初值。

第4章软件设计4.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。

当输入密码连续输入错误3次时,系统报警。

密码的设定,在此程序中密码是固定40H —45H中,假设预设的密码为"123456"共6位密码。

由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。

在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。

进入密码的判断比较处理状态并给出相应的处理过程。

根据模块划分原则,此系统可以将设计方案划分成以下几个模块:图4.1 模块划分4.2各子程序设计4.2.1 键盘扫描子程序键盘扫描流程图如图4.2。

L3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,ASETB CMOV R5,#04HL4: RLC AJNC KEYININC R1DJNZ R5,L4CALL DISPMOV A,R3SETB CRRC AMOV R3,AJC L3JMP L24.2.2 LED显示子程序LED显示数码管显示程序流程图如图4.3。

显示流程图LEDDISP:MOV R0,#45HDISP1: MOV A,@R0ADD A,#50HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#40HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#30HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#20HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#10HMOV P0,ACALL DELAYDEC R0MOV A,@R0ADD A,#00HMOV P0,ACALL DELAYRET第5章系统调试单片机应用系统的调试,包括硬件调试和软件调试,是一个很重要的步骤。

硬件调试和软件调试并不能完全分开,许多硬件错误事在软件调试过程中被发现和纠正的,一般方法是先排除明显的硬件故障,在进行软硬件综合调试。

源程序经过汇编后,生成的目标文件必须经过仿真调试,才能固化到应用系统的程序存储器EPROM中。

在下载程序前,应进行软件调试,以免错误的程序下载到实验板上,烧坏控制芯片,因此软件调试是必不可少的。

程序编译无误后,设置好仿真参数,就可以进行软件调试了。

程序执行可采用两种方法,即单步执行和全速执行。

总体调试最好采用前者方法,这样做有助于找到错误所在。

子程序内部或着延时程序可以采用后者方法,这样有助于节省调试时间。

相关主题