基于单片机的电子密码锁设计.docx
- 文档编号:11348010
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:49
- 大小:224.43KB
基于单片机的电子密码锁设计.docx
《基于单片机的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计.docx(49页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计
摘要
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁,电子密码锁具有安全性高、成本低、功耗低、易操作等优点。
本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S51作为主控芯片与数据存储器单元,结合外围的矩阵键盘输入、LCD液晶显示、报警、开锁等,用C语言编写的主控芯片控制程序与EEPROMAT24C02读写程序相结合,并用Keil软件进行编译,设计了一款可以多次更改密码,具有报警功能的电子密码控制系统。
这种密码锁的电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能。
密码长度可变、保密性强、灵活性高、应用日益广泛。
关键字:
密码锁;单片机;报警;LCD显示
DesignofElectricPasswordLockBasedonMCU
ABSTRACT
Inthedailylifeandthework,thewaytothehouse'sanddepartment'ssafeguard,unit'sdocumentfile,thefinancialreportingaswellassomeindividualmaterialpreservationalmostneedmanylocks.Ifweusetraditionmechanicalkeytoopen,thepeopleoftenmustcarrymanykeys,butitisnotextremelyconvenient.Ifthekeylost,thesecuritywilldeclinegreatly.Inthesafetyworkguarddomain,thelockwithsecuritywarningfunctionelectroniccombinationhavereplacedthetraditionalmechanicalcombinationlockgradually,theelectroniccombinationlockhavethehighlysecurity,thelowlycost,thelowlypowerwastage,easytooperateandsoonmerits.
Thisarticleisbasedontheeconomicalandpracticalpointofview,usestheUnitedStatesAtmelCorporationAT89S51microcontrollerasamasterchipandthedatamemoryunit,itcombineswiththeexternalmatrixkeyboardinput,LCDdigitaldisplay,alarm,unlockandsooncircuits,dominatesbytheCprogramminglanguagechipEEPROMofthecontrolproceduresandcarriesonthetranslationwithKeilsoftware,thepasswordcanbechangedmanytimes,theelectronicthepasswordcontrolalsohasthealarmingfunction.
Thispasswordlockcircuitdesignhasanti-testbuttoninput,intelligentcontrollock,unlock,alarmandchangethepasswordmultiplefunctions.Passwordlengthcanbechanged,greatsecurityandhighflexiblethanothers,itiswidelyused.
KeyWords:
Passwordlock;MCU;Alarm;LCDDisplay
引言1
第1章绪论2
1.1选题背景2
1.2设计目标2
1.3设计方案的选择2
第2章硬件系统设计4
2.1系统芯片介绍4
2.1.1单片机AT89S51功能介绍4
2.1.2存储芯片AT24C02介绍6
2.1.3I2C总线介绍7
2.1.4LCD1602显示器介绍8
2.2硬件电路设计9
2.2.1键盘输入电路10
2.2.2电源输入电路10
2.2.3掉电存储电路11
2.2.4复位电路11
2.2.5晶振电路12
2.2.6显示电路12
2.2.7报警电路13
2.2.8开锁电路13
第3章软件程序设计15
3.1主程序流程图15
3.2按键软件设计15
3.2.1按键功能程序流程图15
3.2.2按键功能子程序16
3.3密码设置软件设计17
3.3.1密码设置程序流程图17
3.3.2密码设置子程序18
3.4开锁软件设计19
3.4.1开锁程序流程图19
3.4.2开锁功能子程序19
第4章调试与实现21
4.1硬件调试21
4.2软件调试21
4.3Proteus仿真21
结论与展望23
致谢24
参考文献25
附录A密码锁电路原理图26
附录B一篇引用的外文文献及其译文27
附录C主要参考文献的题录及摘要32
附录D主要C语言源程序34
插图清单
图2-1AT89S51芯片引脚图4
图2-2AT24C02的芯片引脚图6
图2-3开始结束信号图8
图2-4电子密码锁原理框图10
图2-5键盘输入原理图10
图2-6电源输入电路原理图11
图2-7掉电存储电路原理图11
图2-8复位电路原理图12
图2-9晶振电路原理图12
图2-10显示电路原理图13
图2-11报警电路原理图13
图2-12密码锁开锁机构示意图14
图2-13开锁电路原理图14
图3-1主程序流程图15
图3-2按键功能流程图16
图3-3密码设置流程图17
图3-4开锁流程图19
图4-1Proteus仿真电路图22
插表清单
表2-1P3口管脚备选功能6
表2-2LCD1602接口信号说明9
表2-3LCD1602基本操作程序9
引言
在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工具,目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁——电子密码锁,提供了很大的发展空间。
从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和取款机,由于人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等缺点,再加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接受程度,键盘式电子密码锁是这类电子防盗产品的主流。
在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用也日趋重要。
电子密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。
本次毕业论文主要分为两大模块,一是硬件系统电路部分,另一个是用C语言编写的软件程序部分,基本能完成电子密码锁的开锁、修改密码、密码错误报警等主要功能,成本低,可靠性高,具有很好的市场应用价值。
第1章绪论
1.1选题背景
在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。
电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都已大大超过了机械类。
其特点如下:
1)保密性好,远远高于机械锁控制。
随机开锁成功率几乎为零。
2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。
3)误码输入保护,当输入密码多次错误时,报警系统自动启动。
4)无活动零件,不会磨损,寿命长。
5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
6)电子密码控制系统具有操作简单易行,一学即会的特点。
1.2设计目标
本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。
密码可以由用户自己修改设定,锁打开后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
1.3设计方案的选择
方案一:
采用数字电路控制方案
用以74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒,电路将报警20秒,若电路连续报警三次,电路将锁定键盘2分钟,防止他人的非法操作。
采用数字电路设计方案时设计虽然简单,但控制的准确性和灵活性差。
故不采用。
方案二:
采用单片机控制方案
由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。
一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD显示器用于显示作用。
当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9、A—F输入密码。
密码输完后按下确认键,如果密码输入正确则开锁,不正确时显示灯不亮,重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码,新密码要二次确认,两次新密码输入无异后按确认键使新密码将得到存储,密码修改成功。
明显可以看出方案二的控制灵活,准确性好,且保密性强还具有扩展功能,根据现实生活的需要此次设计采用方案二,即利用单片机AT89S51以及其外围接口电路完成电子密码锁的设计。
第2章硬件系统设计
2.1系统芯片介绍
2.1.1单片机AT89S51功能介绍
AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,AT89S51芯片引脚图如图2-1所示。
主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
管脚说明:
下面按其引脚功能分为四部分叙述这40条引脚的功能。
1、主电源引脚VSS和VSS
图2-1AT89S51芯片引脚图
VSS——(40脚)接+5V电压;
VSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚应接地;对SHMOS单片机,此引脚作为驱动端。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VSS引脚之间连接一个约10μF的电容,以保证可靠地复位。
VSS掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VSS主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):
当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。
③PSEN(29脚):
此脚的输出是外部程序存储器的读选通信号。
在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。
但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。
PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。
④EA/VPP(引脚):
当EA端保持高电平时,访问内部程序存储器,但在PS(程序计数器)值超过0FFFH(对851/8751/80S51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。
当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。
对于常用的8031来说,无内部程序存储器,所以EA脚须常接地,这样才能只选择外部程序存储器。
对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。
4.控制或与其它电源复用引脚RST/Vpd,ALE/PROG,PSEN和EA/Vpp。
RST/Vpd当振荡器运行时。
在此引脚上出现两个机器同期的高电平(由低到高跳变),将使单片机复位。
在VSS掉电期间,此引脚可接上备用电源,由Vpd向内部RAM提供备用电源,以保持内部RAM中的数据。
ALE/PROG正常操作时为ALE功能(允许地址钱存),提供把地址的低字节锁存到外部锁存器。
ALE引脚以不变的频率(振荡周期的1/6)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)八个LSTTL电路。
对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(PROG功能)。
PSEN外部程序存储器读选通信号输出端。
在从外部程序存储器取指令(或数据)期间;PSEN在每个机器周期内两次有效。
PSEN同样可以驱动八个LSTTL输入。
EA/VppEA为内部程序存储器和外部程序存储器选择端。
当EA为高电平时,访问内部程序存储器(PS值小于4K)。
当EA为低电平时,则访问外部程序存储器。
对于EPROM型单片机,在EPROM编程期间,此引脚上加21VEPROM编程电源(Vpp)。
5、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
①P0口(39脚至32脚):
是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
②P1口(1脚至8脚):
是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
P1口能驱动(吸收或输出电流)4个LS型的TTL负载。
对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2外部控制端。
对EPROM编程和程序验证时,它接收低8位地址。
③P2口(21脚至28脚):
是准双向8位I/O口。
在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
④P3口(10脚至17脚):
是准双向8位I/O口,在MSS-51中,这8个引脚还用于专门功能,是复用双功能口。
P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表所示。
值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
表2-1P3口管脚备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
2.1.2存储芯片AT24C02介绍
如图2-2为AT24C02的芯片引脚图。
图2-2AT24C02的芯片引脚图
特点:
低压和标准电压运行模式
–2.7(VCC=2.7Vto5.5V)
–1.8(VCC=1.8Vto5.5V)
内建128x8存储序列,2线制串行接口,双向数据传送协议,100kHz(1.8V,2.5V,2.7V)和400kHz(5V)兼容,写同步时钟(最大10ms),高可靠性,极限:
1M写时钟周期,数据保存:
100年,不断推进的芯片等级扩大了设备的可用温度范围。
AT24C02提供电可擦除的串行1024位存储或可编程只读存储器(EEPROM)128字(8位/字)。
芯片在低压的工业与商业应用中进行了最优化。
设备操作:
CLOCK和DATA变化:
SDA管脚通常外部要拉高。
SDA管脚上的数据只能在SCL低期间改变。
数据在SCL高期间改变定义为一个开始或停止信号。
开始状态:
在任何操作之前必须有一个开始信号----在SCL为高时SDA上产生一个下降沿。
停止状态:
SCL为高时SDA产生一个上升沿是停止信号,停止信号后将停止所有通信。
在一个读的序列之后,停止信号将让EEPROM进入备用电源模式。
2.1.3I2C总线介绍
I2C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
I2C总线的硬件结构:
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
为了避免总线信号的混乱,要求各设备连接到总线的输出端时必须是开漏输出或集电极开路输出。
设备上的串行数据线SDA接口电路应该是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。
而串行时钟线也应是双向的,作为控制总线数据传送的主机。
总线的运行(数据传输)由主机控制。
所谓主机是指启动数据的传送(发出启动信号)、发出时钟信号以及传送结束时发出停止信号的设备,通常主机都是微处理器。
被主机寻访的设备称为从机。
为了进行通讯,每个接到I2C总线的设备都有一个唯一的地址,以便于主机寻访。
主机和从机的数据传送,可以由主机发送数据到从机,也可以由从机发到主机。
凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。
总线的构成及信号类型:
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。
各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线在传送数据过程中共有三种类型信号,它们分别是:
开始信号、结束信号和应答信号。
开始信号:
SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:
SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:
接收数据的IC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 密码锁 设计