(毕业论文设计范文)基于单片机的电子密码锁的设计

毕业设计(论文)

基于单片机的电子密码锁的设计

摘 要

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

该电子密码锁充分利用了51系统单片机软、硬件资源,引入了智能化分析功能,提高了系统的可靠性和安全性。本系统由单片机系统、矩阵键盘和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。另外,电子密码锁若与串行通信结合在一起将会成为宾馆、工厂、学校等需要进行统一管理的建筑群不可缺的商品。

机电一体化的电子密码锁,其功能大大超过弹子锁,且性能更稳定、更安全。其特点,首先保密性好,其次编码可变;其三误码输入保护;其四停电不掉码。由于自身的优势,电子密码锁会受到越来越多人们的欢迎,使用会越来越广泛,同时,也将会被社会所接受认可,并与弹子锁平分秋色。

关键词: AT89C2051 自动报警 电子密码锁

Design of Electronic Coded Lock Based on MCU

Abstract

This design is locks the design proposal based on monolithic integrated circuit’s password according to the request has given the hardware electric circuit and the software procedure which this monolithic integrated circuit password locks simultaneously has given monolithic integrated circuit model contents and so on choice hardware design software flow chart monolithic integrated circuit memory cell assignment assembly language source program and detailed annotation.

This electronic combination lock could use 51 system monolithic integrated circuit software and hardware resources fully, has introduced the intellectualized analysis function, enhanced system's reliability and the security, moreover, electronic combination lock, This system consists of single-chip microcomputer system, matrix keyboard, LED display and alarm system. System to complete the unlock, overtime alarm, lock, administrators decrypt, modify the user s password locks the basic functions.if with the serial communication unified will become the guesthouse, the factory, the school and so on to need together to carry on the commodity which the global administration the architectural complex could not lack.

Integration of machinery's electronic combination lock, its function surpasses the spring lock greatly, and the performance is stabler, is safer. Its characteristic, the secrecy is first good, next the code variables; Its three error code input protection; Its four power cut code. As a result of own superiority, the electronic combination lock will receive more and more people's welcome, the use will be getting more and more widespread, simultaneously, also will be accepted by the society the approval, and will share half and half with the spring lock.

key word:AT89C2051 Autoalarm Electron trick lock

目录

引言

第1章:绪论 

1.1 研究电子密码锁背景及意义

1.2 电子密码锁的现状与发展 

1.3 论文的主要工作及章节安排

1.4 本章小结 

第2章:电子密码锁系统方案的论证 

2.1 系统的组成 

2.2 方案的设计与论证 

2.3主要电路的方案设计与比较 

2.4 本章小结 

第3章:电子密码锁系统硬件设计 

3.1 单片机的选择

3.2 晶振复位电路的选择

3.3 驱动开锁电路的设计

3.4 报警电路的设计

3.5 键盘接口电路的设计

3.6 本章小结 

第4章:系统软件设计 

4.1 主程序模块的设计 

4.2 密码比较模块和报警模块的设计 

4.3 键盘扫描程序模块的设计 

4.4 密码修改模块的设计

4.5 本章小结  
结论与展望 
致谢 
参考文献  
附录A:电气原理图  
附录B:外文文献及其译文  
附录C:参考文献题录及摘要  
附录D:主要源程序 

III:基于单片机的电子密码锁设计插图及表格清单

图2-1 电子密码锁的系统框图  
图3-1 AT89C2051引脚配置  
图3-2 晶振电路原理图  
图3-3 复位电路原理图  
图3-4 开锁电路原理图  
图3-5 报警电路原理图  
图3-6 按键抖动波形  
图3-7 键盘电路原理图  
图4-1 密码锁程序框图  
图4-2 密码比较和报警模块流程图  
图4-3 软件消除抖动流程图  
图4-4 密码修改模块流程图  
表3-1 AT89C2051中P3口的功能 

引言

微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算机在其中扮演着十分重要的角色。单片机发展到今天,其种类繁多、性能各异。以单片机为核心的各类电子产品也层出不穷。本设计就是一个基于单片机的电子密码锁的设计系统。

在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

电子密码锁的诞生给人们的生活带来了极大的方便,也给人们的安全提供了保障。它主要由单片机,键盘电路,密码锁控制电路,LED显示电路以及晶振和复位电路组成。由于电子密码锁有这么多的作用。因此,研究电子密码锁及扩大其作用,有着非常显著的意义。

第1章:绪论

1.1 研究电子密码锁背景及意义

随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。

很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。采用单片机作为密码锁的控制电路,可以使密码锁具备很强的“智能”,实现如按键有效指示、输入错误指示、解码有效指示、控制开锁电平、定时中断、控制报警、密码修改等功能,可在意外泄露密码情况下及时修改密码。密码可以取8位十进制密码,共一亿组不重复,保密性强。使人们的生活有了更多的保障。因此,研究电子密码锁及扩大其生产和应用,有着非常重要的意义。

1.2 电子密码锁的现状与发展

目前,市场上出售的锁的种类各式各样,其中大部分是基于单片机技术设计的电子锁系统。它们一般由单片机、晶振电路、复位电路、报警电路及开锁电路组成。当今,电子密码锁应用场合不是很多,很多地方用的还是传统的机械锁。随着单片机技术以及数字集成电路技术的发展,使得现今的电子密码锁体积小,耗电省,维护方便,安全性高等优点。而且,现在技术日益提高,集成芯片也大量出现,所以价格便宜,有很大的市场前景。

本文讨论的基于单片机的电子密码锁系统。该设计应用的是目前极为广泛的51系列单片机,配套了外围设备,构成了一个可编程的修改密码、维护方便、性能稳定、功能强等优点。此套系统不仅能满足所需要而且还有很多功能可供开发,有着广泛的应用领域。

从上个世纪70年代以来,随着单片机和超大规模集成电路的发展,为电子密码锁的迅速发展奠定了物质基础。未来电子密码锁的发展方向必将是朝着安全性高、耗电量小、体积小、功能多、价格低等方向发展。

1.3 论文的主要工作及章节安排

论文主要围绕对电子密码锁系统的设计为主线展开,主要包括晶振复位电路设计、键盘电路设计、开锁电路设计以及报警电路设计等硬件电路的设计以及为实现其各项功能而编写的软件程序设计等。论文具体章节的安排如下:

第一章:阐述本课题的背景与意义,并对电子密码锁系统的现状与发展展开了叙述,以及按章节具体介绍了论文所需要完成的工作。

第二章:介绍了本套系统的组成,并讨论了本套电子密码锁系统的两种方案设计以及主要电路的方案设计与比较,从而从理论上得出了本套系统最合理的方案设计。

第三章:介绍了本套系统的各硬件模块设计,提出了几种基本硬件电路的设计。

第四章:介绍了电子密码锁系统各个软件模块的设计。

1.4 本章小结

本章首先讲述了本文的选题来源及研究意义,然后介绍了电子密码锁系统的发展过程及当前现状,其中叙述了电子密码锁的优点,最后根据论文需要研究的主要内容,对课题的来源与所要完成的工作做了进一步的交代。

第2章:电子密码锁系统方案的论证

在本次设计中,硬件电路是该套系统的重要组成部分,不仅芯片选择要慎重考虑,在其它很小的地方都要注意。本设计控制系统硬件电路的设计主要分为以下几个部分:AT89C2051单片机系统模块、按键电路模块、修改密码模块以及报警电路模块等。

2.1 系统的组成

根据系统的设计要求,需要利用单片机实现电子密码锁的功能。本设计由键盘电路、报警电路、开锁电路等构成系统,来实现电子密码的功能。其系统框图如图2-1所示:

毕业论文设计范文基于单片机的电子密码锁的设计

图2-1 电子密码锁的系统框图

本设计是利用键盘模块进行输入控制,将控制指令传送到单片机,通过单片机的数据处理,配合晶振、复位电路以及晶振电路来驱动密码锁开锁和报警电路报警,从而实现该电子密码锁的各项功能。

2.2 方案的设计与论证

首先需要充分分析在这个电子密码锁的设计中要完成的各项功能以及对相应的硬件进行选型。在这里,主要将是对所做的电子密码锁系统设计部分做详细的方案论证,以对整个电子密码锁系统有一个总体的认识。

题目要求设计一个基于单片机的电子密码锁系统,能够实现密码修改,密码比较以及智能报警等功能。设计本课题时构思了两种思想:一种是AT89C2051为核心的单片机控制方案;另一种是以745LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案过于简单,而且不能满足现在的安全需求。所以本设计采用前一种方案。该方案主要由单片机系统、键盘、报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。

2.3主要电路的方案设计与比较

根据系统的结构框图,设计时对其主要电路做了如下比较:

(1)报警电路

方案1:采用闪光报警

闪光报警过于简单,而且必须眼睛看到了才知道发生了意外情况。所以市场上的闪光报警装置已经越来越少了。

方案2:鸣音报警

小装置电器中,为了安全起见,鸣音报警电路应用是非常普遍的。它电路简单,并且是生音报警。只要再一定的范围内,不需要看见,就可以知道它是否报警了。

方案3:语音报警

语音报警是最好的一种,不仅能起到报警作用,还能直接给出警报种类的信息。语音报警虽然警报信息较直接,但硬件成本高,结构较复杂,软件量也增加。

相比这三种方案,最实用的是语音报警电路。

(2)键盘电路

方案1:独立式键盘

独立式按键指直接用I/O口线构成单个按键电路。每个独立式按键单独占用一位I/O口线。电路配置灵活,软件结构简单。但在按键数量较多时,I/O口线浪费较大。如果应用系统中的键较少时,就可以采用简单的键盘接口电路了。

方案2:矩阵式键盘

在按键比较多的时候,采用矩阵式键盘比独立式键盘要节省很多I/O口线。一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍。

为了节约口线,该系统选择矩阵式键盘。

至此,通过本章方案的选择,将所设计的电子密码锁的单片机控制系统的组成和整体方案及主要电路的方案确定下来,下面的章节将对本设计进行进一步的说明,并将之分为硬件部分和软件部分来详细说明。

2.4 本章小结 本章主要围绕电子密码锁这一整套系统为主线展开,首先讲述了电子密码锁系统的组成,然后讲述了整体方案的设计与论证,比较了两种整体方案的不同以及优缺点,以及介绍并比较了其中几种主要电路的方案设计。

第3章 电子密码锁系统硬件设计

在本次设计中,硬件电路是该套系统的重要组成部分,不仅芯片选择要慎重考虑,在其他很细小的地方都要注意。单片机控制系统硬件电路的设计主要分以下几个部分:AT89C2051单片机系统模块、晶振复位电路模块、蜂鸣器报警电路模块以及键盘电路模块等。

3.1 单片机的选择

根据系统的要求分析,该密码锁电路的I/O口线少于15个,所以可以选择质优价廉的AT89C2051,而且不需要外接程序存储器和数据存储器及其他扩展部件。

AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版与INTEL MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,它的主要性能有:

.和MCS-51产品兼容;

.2KB可重编程FLASH存储器(1000次); .2.7-6V电压范围;

.全静态工作:0HZ-24KHZ .2级程序存储器保密锁定 .128*8位内部RAM .15条可编程I/O线

.两个16位定时器/计数器 .6个中断源

.可编程串行通道

AT89C2051是一个有20个引脚的芯片,引脚配置如图3-1所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因

毕业论文设计范文基于单片机的电子密码锁的设计

AT89C2051:芯片的20个引脚功能为:

VCC:电源电压。

GND:接地。

RST:复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至

“1”。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡放大器的输出。

P1口:8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20MA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。

P3口:引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20MA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,功P3口同时也可为闪速存储器编程和编程校验接收控制信号。

毕业论文设计范文基于单片机的电子密码锁的设计

3.2 晶振复位电路的选择

晶振电路和复位电路不是单片机的内部电路,但它们却是单片机运行所必须的最基本的外加电路。在单片机应用系统中,外围电路往往要求提供时钟频率信号。时钟信号被干扰后将导致CPU的工作时序发生紊乱,使系统不得正常工作。所以单片机晶振电路在实际设计应用过程中,可以采取以下措施:

(1)晶振电路尽量靠近CPU,引线尽量短而粗。

(2)用地线包围振荡电路,晶体外壳接地。

(3)晶振电路电容要性能稳定,容量准确,且远离发热元件。

(4)印制板上大电流信号线,电源变压器要远离晶振信号的连线。

(5)对于外边时钟源电路,应对其芯片电源采取滤波措施。

总之,在满足系统功能的前提下,应尽量降低晶振频率,这对降低系统的电磁发射,提高系统的抗干扰性能极为有利。该系统的晶振电路如图3-2所示。

毕业论文设计范文基于单片机的电子密码锁的设计

图3-2 晶振电路原理图

在设计单片机的应用系统时,对单片机的复位状态和复位电路的设计至关重要。因为单片机应用系统工作时,会经常要求进入复位工作状态,因而要求复位电路必须能准确、可靠地工作。

大部分单片机的复位都是靠外部电路实现的,在晶振电路工作后,只要在单片机的RST引脚上出现24个振荡脉冲以上的高电平,单片机便实现初始化状态复位。

通常单片机复位操作有上电复位、信号复位、运行监视复位。运行监视有程序运行监视和电源监视。上电复位是单片机上电时的复位操作,保证单片机上电后立即进入规定的复位状态。信号复位时在单片机正常供电情况下,在复位引脚加以信号而产生的复位。根据不同情况,有按键操作复位、唤醒复位、控制复位等。系统运行监视复位是系统出现非正常情况下的复位。通常有电源监视复位和程序运行监视复位。电源监视复位是在电源下降到一定电平状态或电源未达到额定电平要求时的系统复位,程序运行监视复位则是程序运行失常时的系统复位。

在设计中采用的是上电复位电路上电时复位电路通过电容加到RST端上一个高电平复位信号,高电平持续时间取决于RC电路参数。为了保证系统能可靠地复位,RST端上高电平信号必须有足够长的时间。

上电复位要考虑VCC的上升时间和振荡器的起振时间,而振荡器的起振时间与振荡频率有关,如振荡频率为10MHZ,起振时间为1MS,振荡频率为1MHZ时,起振时间为10MS。因此RC电路参数的选择与系统振荡频率有关。

在实际运用中,为了保证复位电路可靠地工作,一般将RC电路接施密特电路后在接入单片机复位端,特别适合于应用系统现场干扰大,电压波动大的工作环境。该系统的复位电路如图3-3所示:

毕业论文设计范文基于单片机的电子密码锁的设计

10uF

10K

图3-3 复位电路原理图

3.3 驱动开锁电路的设计

在电子密码锁电路中,如何通过驱动电路实现开锁的目的是十分重要的。在该设计中,通过单片机送给开锁执行结构,电磁驱动电磁锁吸合,从而达到开锁的目的。当用户输入的密码正确而且是在规定的时间内输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁阀,达到开门的目的。

该开锁电路由电路驱动和开锁两极组成。由发光二极管,电阻和一级三极管组成驱动电路,其中一级三极管可以选用普通的小功率三极管如9014,9018都可以满足要求。发光二极管作为开锁的提示;有普通二极管,电容和二级三极管组成。其中普通二极管和电容是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。二级三极管选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且留有一定的余量。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。开锁信号由P3.5输出,通过三极管驱动,输送到电磁锁,若输入的密码正确,则电磁锁圈打开,反之,电磁锁关闭。本设计的电路原理图如图3-4所示:

毕业论文设计范文基于单片机的电子密码锁的设计

图3-4 开锁电路原理图

3.4 报警电路的设计

自动报警控制电路的功能是控制系统的智能报警装置。在单片机应用系统中,一般的工作状态可以通过指示灯或数码管显示来指示,供操作人员参考,了解系统的工作状况,但对于某些紧急状态,比如系统检测到的错误状态等,为了使操作人员不至于忽视,及时采取措施,往往还需要有某种更能引人注意,提起警觉的报警信号。这种报警信号通常有三种类型:一是闪光报警,因为闪动的指示灯更能提醒人们注意;二是鸣音报警,发出特定的音响,作用于人的听觉器官,易于引起和加强警觉;三是语音报警,不仅能起到报警作用,还能直接给出警报种类的信息。其中,前两种报警装置因硬件结构简单,软件编程方便,常常在单片机应用系统中使用;而语音报警虽然警报信息较直接,但硬件成本高,结构较复杂,软件量也增加。

闪光报警是最简单,也是最常用的一种报警方式。单片机应用系统中的闪光报警就是在控制指示灯的程序中加入定时程序,按一定的时间间隔来交替点灯与熄灭指示灯。闪光报警在硬件连接上非常简单,通常可以利用单片机的I/O口直接驱动发光二极管实现。

本设计采用的是鸣音报警。鸣音报警有两种方法:单频音报警和音乐声报警。实现单频音报警的接口电路比较简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3KHZ左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适合于在单片机系统中应用。压电式蜂鸣器,约需10MA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,如图6所示。在图6中,P3.4接三极管基极输入端,当P3.4输出高电平“1”时,三极管导通,蜂鸣器就通电而发音,当P3.4输出低电平“0”时,三极管截止,蜂鸣器停止发音。在实际应用系统中,经常将闪光报警和单音频报警结合起来使用,以便更好地引起操作人员的注意。单频音报警电路,简单实用,已能满足音响报警的一般需要,但是音调单调,而且采用压电鸣音元件,音量较小且不可调整;音乐声报警电路,与单片机系统连接,也很方便易行,而报警的音响又优美动听;在单片机应用系统中,要实现语音报警功能,首先在存储器中要有语音的数据块,然后根据系统测量结果,把在语音采集系统中获得的语音数据可控制、可重组的实时恢复,从而实现控制系统状态的实时语音报读或紧急状态的语音报警功能。但音乐声报警电路和语音报警电路比鸣音报警电路要复杂一些,为了使电路看起来更加简单大方些,该设计采用的是鸣音报警那个电路。本系统密码输入3次错误或有非正常开门情况发生时均启动自动报警装置。报警电路分为远程报警和现场报警两种。现场报警是从单片机的P3.4口线输出双频方波信号经三极管放大后,送到压电蜂鸣器,从而发出报警声。远程报警是用单片机控制电话机在无人操作的情况下,将事先在电话中已存入号码的座机或手机拨通,从而通知主人,实现报警的要求。本系统选用的是现场报警。其电路原理图如图3-5所示:

5V

毕业论文设计范文基于单片机的电子密码锁的设计

图3-5 报警电路原理图

3.5 键盘接口电路的设计

键盘是单片机系统中一个很重要的部件,是实现人机对话接口常用的器件。通过它人们可以向计算机输入数据、传送命令、控制CPU运行,以实现特定的目标。

键盘实际上就是一组按键开关,从本质上说,任何的按键开关都可以称为键盘,就使得两根导线导通,从而给单片机的相应的I/O口输入一个信号;而按键释放时,两根导线又恢复不导通状态,从而又给单片机相应的I/O口输入一个相反的信号。单片机的CPU就是根据这些输入的信号来判断是否有键按下,以及按下的是什么键,从而实现相应的功能。

键盘上实质上是一组按键按开关的组合。通常,按键所用的开关为机械式开关,利用机械触点的合、断作用工作。键盘电路的特点:一是随机性,系统操作人员对键盘的操作是随机的;二是抖动性,这是键盘的机械性决定的。根据这两个特点可以得出以下的接口设计原则。

(1) 键盘的电平与系统总线电平相兼容。

(2) 单片机要能有效地抑制键盘抖动。单片机对抖动的抑制大多数是由软件实现的。

(3) 单片机系统要能实现对键盘的有效控制。单片机系统键盘接口的目的是为了控制

键盘,而键盘电路不能影响总线。

所谓有效控制要由硬件和软件两方面提供保证。硬件提供的保证是确保键盘控制信号和键盘输入信号的正常转换,这首先要求接口电路具有相应的电气特性,其次还要求接口电路和键盘电路的逻辑和时序关系正确。软件保证是要求系统键盘操作和程序控制逻辑电路正确,并能够得到硬件电路的完全支持,同时也要求键盘控制程序有相应的容错能力,以防硬件电路发生错误操作而引起全系统错误。

在设计单片机系统电路时,抖动是需要消除的。在一般电路设计中,按键按下闭合后,应产生一串负的矩形脉冲。但由于在按动案件时总有一些抖动,因此在负脉冲的开始和末尾部位总要出现一些如图3-6所示的毛齿波。

毕业论文设计范文基于单片机的电子密码锁的设计

图3-6 按键抖动波形

毛齿波的长短与开关的机械特性有关,一般为5~10MS。除了抖动之外还有重键,既一个键按下之后紧接着又按下一键,或者两个键同时按下。这些需要采取一定的措施加以消除。

消除抖动的方法有两种,一种是用硬件电路来实现,可用RC滤波电路或双稳态触发器滤除抖动。另一种则是用软件延时的方法来解决。硬件消除抖动需要添加额外的电路,增加成本,而且如果按键较多,硬件消除抖动将使得电路变得复杂。因此,实际中常常采用软件消抖。

软件编程是通过延时等待信号稳定,等信号稳定后查询键码,其过程是在查询到有按键按下后延时一段时间(12~20MS),再查询一次看是否有按键按下,若第一次查询不到,则说明前一次查询结果为干扰或抖动,若这一次查询到有按键按下,则说明信号已经稳定,然后判断闭合按键的键码。当闭合按键的键码确定之后,再去查询按键是否释放,待按键释放后在进行处理,这样即可消除释放抖动的干扰。对于重键则以后一次查询结果为最终结果。

键盘电路分为独立式键盘和矩阵式键盘。独立式键盘按键的数量较少,并且各按键相互独立,每一个按键由一个单独的I/O口控制,一个按键改变的是一个相应的I/O口的输入电平,而不会对其他I/O口电平产生影响。这样,通过检测各I/O口电平变化,即可以很容易确定是否有键按下以及是何键按下。独立式键盘电路简单,配置灵活,但是因为每一个按键需要占用一个I/O口,所以,I/O口占用量很大,它只适合于按键数量少的情况使用。当然也可以用扩展I/O口的方法来构建独立式键盘,但一般只用扩展I/O口单独构成键盘的电路很少,往往同时还接有显示功能。这样电路就会比较复杂了。

在该设计中,选用的是矩阵式键盘。矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,按键设置在行列的交叉点上。例如用2*2的行、列结构可以构成4个键的键盘,4*4的行、列结构可构成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线,也使电路看起来变得更加简单。

矩阵式键盘电路的工作原理是按键设置在行、列线交叉点上,行、列线分别连接到按键开关的两端。当行线通过上拉电阻接+5V时,被钳位在高电平状态。

键盘中有无按键按下是由列线送入全扫描字,行线读入行线状态来判断的。其方法是把所有列线的I/O线均置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线被拉至低电平,从而使输入不全为1。

按键中哪一个键按下,是由列线逐列置低电平后,检查行输入状态而获知的。其方法是依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列,查下一列,直到查处行线状态不全为1的列,此列中与0电平行线相交的交叉点,就是按下的键。

键盘上每个键都有一个键值。键值赋值的最直接的办法是将行列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到给该列置0电平,读出各行状态为非全1状态,这时的行、列数据组合成键值。该密码锁中的键盘电路原理图如图3-7所示:

5V

毕业论文设计范文基于单片机的电子密码锁的设计

10K

图3-7 键盘电路原理图

键盘的工作方式有很多,有编程扫描工作方式、定时扫描工作方式、中断扫描工作

方式。单片机应用系统中,编程扫描工作方式是利用CPU在完成其他工作的空余,调

用键盘扫描子程序,在执行键功能程序时,CPU不再响应键输入要求。键盘扫描程序可

以实现以下几个功能。

(1) 识别键盘上有无键按下。

(2) 消除键的机械抖动。

(3) 求按下的键号。

编程扫描工作方式只有在CPU空闲时才调用键盘扫描子程序。因此,在应用系统

软件方案设计时,这种键盘扫描子程序的编程调用应能满足键盘扫描要求。

定时扫描工作方式是利用单片机内部定时器产生中断,CPU响应中断后对键盘进行

扫描,并在有键按下时转入键功能处理程序。定时扫描工作方式的键盘硬件电路与编程扫描工作方式相同。其本质是中断方式。

计算机应用系统工作时,并不经常需要输入,因此,无论是编程工作或定时工作,CPU经常处于空扫描状态。为了进一步提高CPU效率,可以采用中断扫描方式即只有在键盘有键按下时,才执行键盘扫描,执行该键功能程序。

键盘有键按下时,要逐行或逐列扫描,以判断是哪一个键按下。通常扫描方式有扫描法和反转法。扫描法是在判定有键按下后逐列(或行)置低电平,同时读入行(或列)状态出现非全1状态,这时在状态行,列交叉点的键就是所按下的键。扫描法的特点就是逐列(或行)扫描查询。这时,相应的行(或列)应有上拉电阻且接高电平。

扫描法要逐行(列)扫描查询,当所按下的键在最后行(列),则要经过多次扫描才能获得键值/键号。采用反转法时,只要经过两个步骤即可获得键值。(1)将D0~D3编程为列输入线,D7~D4编程为行输入线,并使I/O输出数据为0*H(即保证输出信号D7~D4为0000)。若有键按下,与门的输出端变为低电平,向CPU申请中断,表示键盘中有键按下。于此同时,D3~D0的数据输入到内存中某一单元(N)中存放。其中0位对应的是按下键的列位置。然后转第2步。(2)将第1步中的传送方向反转过来,即将D7~D4编程为输入线,D3~D0编程为输出线。使I/O口输出数据为N单元中的数(即D3~D0为按下键的位置),然后读入I/O口数据,并送入内存N+1单元存放,该数据的D7~D4位中0电平对应的位是按下键的行位置。最后,将N单元中D3~D0与N+1单元中D7~D4拼起来就是按下键的键值。

3.6 本章小结

本章主要介绍的是本设计的硬件结构设计,通过单片机相关的I/O口输入、输出来实现相应的控制功能。还具体介绍了单片机的选择、复位电路、晶振电路、键盘电路、开锁电路、报警电路等的设计。

第4章:系统软件设计

本系统软件包括主程序模块、键盘扫描模块、时钟中断模块、智能报警模块、修改密码模块及延时程序模块。

该系统软件工作原理为:上电复位后,初始化各端口,标志位和有关寄存器,接着从单片机中读入密码,然后开始检测键盘是否有输入,如没有就不断检测,如果有输入就转到相应处理程序。例如按了设置键,则P3.3输出低电平,等输入原密码指示LED亮,接着如果输入了正确的原密码并按了确定键,P3.7输出低电平,可以输入新密码指示LED亮,接着输入新密码按确定键,P3.3、P3.7输出高电平,等输入原密码指示LED熄灭、可以输入新密码指示LED熄灭,程序转为复位后。如果在设置状态,输入了错误的密码并按了确定键,P3.4不断输出高电平报警。上电复位后按数字键8次,或按了小于8次数字键,再按了确定键则比较密码是否对,如果不对,P3.5开锁信号输出口输出低电平,锁不开,这时还可再输入两次,如还不对则P3.4不断输出高电平报警。如果输入对了,P3.5开锁信号输出口输出高电平,锁打开4秒钟后,程序转为复位状态。

4.1 主程序模块的设计

该模块的功能包括定时器及数据缓冲区初始化、本机初始密码设置、键盘扫描模块调用等功能。主程序模块是整个软件程序的核心。其程序框图如图4-1所示:

毕业论文设计范文基于单片机的电子密码锁的设计

图4-1 密码锁程序框图

TREATFLAG EQU 00H

SECRETOK EQU 01H

ERRTIME EQU 6AH

NUMBERTIME EQU 6BH

LOCKONTIME EQU 6CH

MS10 EQU 6DH

SCODE EQU 6EH

SECRETCODE EQU 40H

INCODE EQU 30H

BEEPOUT EQU P3.2

LOCKON EQU P3.5

WARNINGOUT EQU P3.4

;*******************主程序**********************

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP TIME8SECOND

MAIN: MOV P1,#0FFH ;初始化端口,标志位,有关RAM MOV P3,#0FFH

MOV SP,#70H

MOV ERRTIME,#00H

MOV NUMBERTIME,#00H

CLR TREATFLAG

CLR LOCKON

CLR WARNINGOUT

SETB SECRETOK

MOV LOCKONTIME,#00H

MOV MS10,#00H

MOV R0,#30H

CLR3048: MOV @R0,#00H

INC R0

CJNE R0,#48H,CLR3048

MOV R0,#SECRETCODE ;将程序存储器中密码送入

RAM 40H-48H

MOV DPTR,#SECRETCODETAB

SECRETCODEINRAM: MOV A,#00H

MOVC A,@A+DPTR

MOV @R0,A

INC DPTR

INC R0

CJNE R0,#48H,SECRETCODEINRAM

START: LCALL KEY ;调按键判断子程序 MOV A,R4

JNB TREATFLAG,START

CJNE A,#0BH,NUMBERKEY ;键值不是确定转数字键 LCALL CHEK CODE ;键值是确定调密码比较 JB SECRETOK,NOSECRET ;输入值不是密码转处理子程序 LCALL YESSECRET ;输入值是密码转处理子程序 AJMP MAIN ;结束开锁转开头

NUMBERKEY: MOV A,NUMBERTIME ;数字键处理 ADD A,#30H ;每次数字键送入相应RAM MOV R1,A

MOV A,R4

MOV @R1,A

MOV A,NUMBERTIME

ADD A,#01H

MOV NUMBERTIME,A

CJNE A,#08H,START ;按8次数字键后转密码比较 LCALL CHEK CODE

JB SECRETOK,NOSECRET

LCALL YESSECRET

AJMP MAIN

4.2 密码比较模块和报警模块的设计

该模块的功能是将键盘输入的密码与设定的密码进行比较,若密码正确则开锁;若不正确,则密码输入次数计数单元计数如达不到3次,返回键盘扫描模块;若计数已达3次,则调用自动报警模块。自动报警模块采用延时的方法,使P3.4口线输出双频方波,控制蜂鸣器发声,达到现场报警的目的。其流程图如图4-2所示:

毕业论文设计范文基于单片机的电子密码锁的设计

图4-2 密码比较和报警模块流程图

NOSECRET: MOV NUMBERTIME,#00H

MOV A,ERRTIME ;可试3次

ADD A,#01H

MOV ERRTIME,A

CJNE A,#03H,CONTEST

WARNING: SETB WARNINGOUT ;3次都错不断报警 NOP

NOP

AJMP WARNING

CONTEST: MOV R0,#30H

CLR3038: MOV @R0,#00H

INC R0

CJNE R0,#38H,CLR3038

AJMP START

;***********************

CHEKCODE: MOV R0,#INCODE ;将输入密码地址赋R0 MOV R1,#SECRETCODE ;将密码地址赋R1

CONCHEKCODE: CLR C

MOV A,@R0

MOV SCODE,@R1

SUBB A,SCODE

JZ CONCOMPARE

SETB SECRETOK ;输入密码不正确置位标志位 RET

CLR SECRETOK

RET

CONCONCMP: INC R0

INC R1

AJMP CONCHEKCODE

;*************************

YESSECRET: MOV TMOD,#01H ;开T0中断每10毫秒中断一次 MOV TH0,#0ECH

MOV TL0,#78H

SETB EA

SETB ET0

SETB TR0

ONLOCK: MOV A,LOCKONTIME ;开锁4秒

SETB LOCKON

NOP

NOP

CJNE A,#11H,ONLOCK

CLR EA

CLR ET0

CLR LOCKON

LJMP MAIN

4.3 键盘扫描程序模块的设计

该模块具备判断键盘上有无键按下、去抖动影响、逐列扫描键盘以确定被按键的位置号及行列号、形成键值并将键值存入指定的数据缓冲区、判断闭合的键是否释放等功能。其程序框图如图4-3所示。

毕业论文设计范文基于单片机的电子密码锁的设计

图4-3 软件消除抖动流程图

KEY: LCALL KEYSCAN ;调键扫子程序

XRL A,#0FFH ;判断有无键落

JZ FCLEAR ;无键落转

CONSCAN: LCALL DELAY10 ;调延时10毫秒消键抖

ACALL KEYSCAN

XRL A,#0FFH

JZ FCLEAR

JB TREATFLAG,CONSCAN ;通过处理标志判断实现按一次不管

按的时间长短

SETB TREATFLAG

LCALL BEEP ;调响铃说明按键有效

RET

FCLEAR: CLR TREATFLAG

RET

;*****************

BEEP: MOV 6FH,#04FH ;输出音响信号一声

CONBEEP: CLR BEEPOUT

LCALL ONEKNOP

SETB BEEPOUT

DJNZ 6FH,CONBEEP

RET

;**************

;**************

ONEKNOP: MOV R7,#10H ;音响波形产生

GONOP1: MOV R6,#10H

GONOP: NOP

DJNZ R6,GONOP

DJNZ R7,GONOP1

RET

;**************扫描子程序*************

KEYSCAN: MOV R5,#00H ;键扫子程序 R5存行号 R6存列号 R4存

键值

MOV R6,#00H

CLR P1.1

ACALL READP1

SETB P1.1

CJNE A,#0FH,KEYNUMBER ;第一行有转求键值

MOV R5,#01H ;第一行无扫第二行

CLR P1.2

ACALL READP1

SETB P1.2

CJNE A,#0FH,KEYNUMBER ;第二行有转求键值

MOV R5,#02 ;第二行无转扫第三行

CLR P1.3

ACALL READP1

SETB P1.3

CJNE A,#0FH,KEYNUMBER ;第三行有转求键值

MOV A,#0FFH ;三行都没有

RET

;********************

READP1: MOV A,P1 ;读P1口得列值

ANL A,#0F0H

SWAP A

CJNE A,#07H,NO8

MOV R6,#03H

RET

NO8: CJNE A,#0BH,NO4

MOV R6,#02H

RET

NO4: CJNE A,#0DH,NO2

MOV R6,#01H

RET

NO2: CJNE A,#0EH,NO1

MOV R6,#00H

RET

NO1: MOV A,#0FH

RET

;*********************

KEYNUMBER: MOV A,R5 ;键值为行号乘4加列号

MOV B,#04H

MUL AB

ADD A,R6

MOV R4,A

RET

************延时子程序************

DELAY10: MOV 60H,#0AH ;延时10毫秒子程序

LL1: MOV 61H,#0F9H

LL0: NOP

NOP

DJNZ 61H,LL0

DJNZ 60H,LL1

RET

4.4 密码修改模块的设计

该模块的功能是修改设置密码。密码修改程序要求密码输入两次,程序将两次输入的密码比较一致时,即用此密码代替原来的密码,如果两次输入的密码不一致,则重复操作。这样就避免了修改密码的随机性。

毕业论文设计范文基于单片机的电子密码锁的设计

图4-4 密码修改模块流程图

SECRETCODETAB: DB 01H ;密码表可修改 DB 09H

DB 06H

DB 09H

DB 07H

DB 02H

DB 02H

DB 00H

END

4.5 本章小结

本章主要介绍的是本设计的软件结构设计,首先通过介绍本电子密码锁系统的主流程图,然后逐渐引出各功能子程序模块,具体有延时子程序、密码比较模块子程序、报警模块子程序、密码修改模块子程序等的设计。

结论与展望

该电子密码锁充分利用了51系统单片机软、硬件资源,引入了智能化分析功,提高了系统的可靠性和安全性,另外,电子密码锁若与串行通信结合在一起将会成为宾馆、工厂、学校等需要进行统一管理的建筑群不可或缺的商品。

机电一体化的电子密码锁,其功能大大超过弹子锁,且性能更稳定、更安全。其特点是:首先保密性好;其次编码可变;其三误码输入保护;其四停电不掉码;其五多种密码开锁方式,使用方便,没有单人开锁、二三人多种开锁方式。由于自身的优势,电子密码锁会受到越来越多人们的欢迎,使用会越来越广泛,同时,也将会被社会所接受认可,并与弹子锁平分秋色。

在本系统的设计过程中,通过查阅资料,我得到了很多启示。在现代社会中,人们在保密方面需要的是保密性强的东西。在锁的方面,传统的机械式锁已经过时,代替的是更为先进的电子密码锁,它不需要钥匙,只要自己不要忘了密码就行,解决了有时人们忘带钥匙或是钥匙丢了的烦恼。

在本设计中,选用的是AT89C2051。这是因为电子密码锁需要的存储空间少,用20个引脚的AT8C2051完全足够存储。而且它结构简单、造价低廉、效率很高,能减少硬件开销,节省成本,提高系统的性价比。由于AT89C2051只有15个I/O口,所以显示模块我就没设计,这是该设计最大的不足之处,在以后我会努力改善这方面。

在设计中,根据所查阅资料,可以得出一些结论。首先,产品要顺应时代的发展。随着科技的日新月异,电子产品的种类越来越多,性能越来越强,一些不能帮助人们生活的产品应该被慢慢用更好的产品锁取代。就像机械式锁一样,不能保证安全了就应该走下科技的舞台。其次,设计一件产品,要经过一个很艰辛的过程,认真查阅资料,分析资料。从所收集的资料中提取出有用的资料,以帮助完成设计。最后,要不懂就问。不要不懂装懂,设计过程本来就不是个简单的过程,一个人的力量也很小,所以要借助周围人的力量完成设计。

该课题设计的电子密码锁是一个很有市场潜力的产品。因为在现在只有在那些高级宾馆或者别墅的地方用点子密码锁,很多地方还是用老式的机械式锁,人们出行还得带着钥匙十分的不方便。而且一旦钥匙丢了,就更麻烦。还有现在的机械式锁也不安全,很多锁一撬就开了。人们迫切需要更加安全的工具来防范盗贼。电子密码锁小巧,美观,安全性强,是人们的理想之选。所以普及电子密码锁也只是时间上的问题。中国人口量大,家庭多,每家每户都有多个地方需要加锁,还有公共场所也有许多地方需要加锁。所以说,密码锁的市场很大,发展前景是十分光明的。最主要的一点就是电子密码锁成本低,所以价格也低,普通用户都能买得起。所以相信在不久的将来,电子密码锁一定会遍布世界每个角落。

致谢

花了很长的一段时间,终于完成了基于单片机的电子密码锁的设计。在这个过程中,我的指导老师江娟娟老师给了我很大的帮助,她知识丰富,为人和善。在我遇到不懂的问题的时候,她都及时的给予了我详细的解释,使我终于顺利的完成了本次毕业设计。在这里,我衷心的想要对老师说,谢谢您!

还有悉心帮助我的同学,在大学最后的一段时间,每个人都忙于做毕业设计,但每次在我问你们问题的时候,你们从没感到厌烦,而是耐心的帮我分析问题以及解决问题。我感谢你们的帮助,我会一生都记得的。

另外我要谢谢的是安徽工程科技学院的每一个老师,是你们让我度过了人生中最美好的时刻。还有电信055的所有同学,是你们让我体会到作为这个集体的一份子是多么骄傲。

总之,我会用感恩的心去感受这一切,并在以后也会用感恩的心去做一切事。

作者:

年 月 日

参考文献

[1]李广弟,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001

[2]求是科技,靳达.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003

[3]何立民.MCS-51 系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999

[4]胡汉才.单片机原理及其接口技术(第2版)[M].北京:清华大学出版社,2004

[5]沈红卫.基于单片机的智能系统设计与实现[M].北京:电子工业出版社,2005.1

[6]宋浩,田丰.单片机原理及应用[M]:北京:清华大学出版社;北京交通大学出版社,2005

[7]周航慈.单片机应用程序设计技术(修订版) [M].北京:北京航空航天大学出版社,2003

[8]王晓君,安国臣.MCS-51及兼容单片机原理与选型[M].北京:电子工业出版社,2003

[9]辛友顺,胡永生,薛小铃 .单片机应用系统设计与实现[M].福州:福建科学出版社,2005

[10]马家辰等.MCS-51单片机原理及接口技术[M].哈尔滨:哈尔滨工业大学出版社,2001

[11]王守中. 51单片机开发入门与典型事例[M]. 北京:人民邮电出版社,2007

[12]陈小忠、黄宁、赵小侠.单片机接口技术实用子程序.北京:人民邮电出版社,2005

[13]宁爱民.应用AT89C2051单片机设计电子密码锁[J].淮海工学院学报《自然科学报》,2003.02

[14]郭海英.基于单片机的电子安全密码锁的设计[J].现代电子技术,2005.13

[15]尹学锋.红外线遥控密码锁的研究[J].安防科技,2008.03

[16]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报[J].2002.01

[17]石文轩,宋薇.基于单片机MCS-51的只能密码锁设计[J].武汉工程职业技术学院学2004.04

[18]黄胜全,杜春风.新型密码锁的控制[J].东北电子学院学报,2004.02

[19]周文龙.基于单片机控制的电子密码锁的设计[J].天津:天津工业大学出版社,2009.03

[20] Zhou Gong Ming. AT89C2051 MCU-based anti-theft alarm system, electronic locks design[J]. Mianyang Teachers College of Physics and Electronics Engineering,2007.09

相关推荐