版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
知识不仅是指课本的内容,还涉及社会经验、文明文化、时代精神等整体要素,才有竞争力,知识是新时代的资本,五六十年代人靠勤劳可以成事;今天的香港要抢知识,要以知识取胜基于单片机的电子密码锁设计摘要在平常的生活和工作中住宅与部门的安全防范、单位的文献档案、财务报表以及一些个人资料的保存多以加锁的办法来解决若使用传统的机械式钥匙开锁人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣在安全技术防范领域具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁电子密码锁具有安全性高、成本低、功耗低、易操作等优点本文从经济实用的角度出发采用美国Atmel公司的单片机AT89S51作为主控芯片与数据存储器单元结合外围的矩阵键盘输入、LCD液晶显示、报警、开锁等用C语言编写的主控芯片控制程序与EEPROMAT24C02读写程序相结合并用Keil软件进行编译设计了一款可以多次更改密码具有报警功能的电子密码控制系统这种密码锁的电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能密码长度可变、保密性强、灵活性高、应用日益广泛关键词密码锁单片机报警LCD显示DesignofElectricPasswordLockBasedonMCUABSTRACTInthedailylifeandtheworkthewaytothehouse'sanddepartment'ssafeguardunit'sdocumentfilethefinancialreportingaswellassomeindividualmaterialpreservationalmostneedmanylocks.Ifweusetraditionmechanicalkeytoopenthepeopleoftenmustcarrymanykeysbutitisnotextremelyconvenient.Ifthekeylostthesecuritywilldeclinegreatly.Inthesafetyworkguarddomainthelockwithsecuritywarningfunctionelectroniccombinationhavereplacedthetraditionalmechanicalcombinationlockgraduallytheelectroniccombinationlockhavethehighlysecuritythelowlycostthelowlypowerwastageeasytooperateandsoonmerits.ThisarticleisbasedontheeconomicalandpracticalpointofviewusestheUnitedStatesAtmelCorporationAT89S51microcontrollerasamasterchipandthedatamemoryunititcombineswiththeexternalmatrixkeyboardinputLCDdigitaldisplayalarmunlockandsooncircuitsdominatesbytheCprogramminglanguagechipEEPROMofthecontrolproceduresandcarriesonthetranslationwithKeilsoftwarethepasswordcanbechangedmanytimestheelectronicthepasswordcontrolalsohasthealarmingfunction.Thispasswordlockcircuitdesignhasanti-testbuttoninputintelligentcontrollockunlockalarmandchangethepasswordmultiplefunctions.Passwordlengthcanbechangedgreatsecurityandhighflexiblethanothersitiswidelyused.KeyWords:Passwordlock;MCU;Alarm;LCDDisplay目录摘要第一章绪论1.1电子密码锁简介........................................................................11.2电子密码锁的发展趋势...............................................................11.3本设计所要实现的目的...............................................................21.4设计方案简介...........................................................................2第二章重要元器件介绍2.1主控芯片AT89S51.....................................................................32.1存储芯片AT24C02.....................................................................62.3LCD1602显示器........................................................................72.4晶体振荡器..............................................................................8第三章硬件系统构成3.1设计原理.................................................................................103.2电路总体构成...........................................................................103.3电源输入电路...........................................................................113.4键盘输入电路...........................................................................123.5密码存储电路...........................................................................123.6复位电路.................................................................................133.7晶振电路.................................................................................143.8显示电路.................................................................................143.9报警电路.................................................................................153.10开锁电路..............................................................................15第四章软件系统设计4.1主程序流程图...........................................................................174.2按键软件设计...........................................................................184.3密码设立软件设计.....................................................................194.4开锁软件设计...........................................................................20第五章调试与实现5.1硬件调试.................................................................................215.2软件调试.................................................................................215.3Pruteus仿真...........................................................................22结论与展望致谢参考文献附录第一章绪论1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作从而控制机械开关的闭合完毕开锁、闭锁任务的电子产品它的种类很多有简易的电路产品也有基于芯片的性价比较高的产品现在应用较广的电子密码锁是以芯片为核心通过编程来实现的其性能和安全性已大大超过了机械锁其特点如下:1)保密性好编码量多远远大于弹子锁随机开锁成功率几乎为零2)密码可变用户可以随时更改密码防止密码被盗同时也可以避免因人员的更替而使锁的密级下降3)误码输入保护当输入密码多次错误时报警系统自动启动4)无活动零件不会磨损寿命长5)使用灵活性好不像机械锁必须佩带钥匙才干开锁6)电子密码锁操作简朴易行一学即会1.2电子密码锁的发展趋势平常生活和工作中住宅与部门的安全防范、单位的文献档案、财务报表以及一些个人资料的保存多以加锁的办法来解决目前门锁重要用弹子锁其钥匙容易丢失;保险箱重要用机械密码锁其结构较为复杂制造精度规定高成本高且易出现故障人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣针对这些锁具给人们带来的不便若使用机械式钥匙开锁为满足人们对锁的使用规定增长其安全性用密码代替钥匙的密码锁应运而生由于电子器件所限以前开发的电子密码锁其种类不多保密性差最基本的就是只依靠最简朴的模拟电子开关来实现的制作简朴但很不安全在后为多是基于EDA来实现的其电路结构复杂电子元件繁多也有使用早先的20引角的2051系列单片机来实现的但密码简朴易破解随着电子元件的进一步发展电子密码锁也出现了很多的种类功能日益强大使用更加方便安全保密性更强由以前的单密码输入发展到现在的密码加感应元件实现了真真的电子加密用户只有密码或电子钥匙中的同样是打不开锁的随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁出于安全、方便等方面的需要许多电子密码锁已相继问世但这类产品的特点是针对特定有效卡、指纹或声音有效且不能实现远程控制只能合用于保密规定高且供个人使用的箱、柜、房间等由于数字、字符、图形图像、人体生物特性和时间等要素均可成为钥匙的电子信息组合使用这些信息可以使电子防盗锁获得高度的保密性如防范森严的金库需要使用复合信息密码的电子防盗锁组合使用信息也可以使电子防盗锁获得无穷扩展的也许使产品多样化对用户而言是"千挑百选、自得其所"可以看出组合使用电子信息是电子密码锁以后发展的趋势1.3本设计所要实现的目的本设计采用单片机为主控芯片结合外围电路组成电子密码锁用户想要打开锁必先通过提供的键盘输入对的的密码才干将锁打开密码输入错误有提醒为了提高安全性当密码输入错误三次将报警密码可以有用户自己修改设定锁打开后才干修改密码修改密码之前必须再次输入就的密码在输入新密码的时候要二次确认以防止误操作1.4设计方案简介采用以单片机为核心的控制方案由于单片机种类繁多各种型号都有其一定的应用环境因此在选用时要多加比较合理选择以期获得最佳的性价比一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运营速度、I/O口、定期/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性除了以上的一些的尚有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素基于以上因素本设计选用单片机AT89S51作为本设计的核心元件运用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性实现基本的密码锁功能在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制外接AT24C02芯片用于密码的存储外接LCD1602显示器用于显示作用当用户需要开锁时先按键盘开锁键之后按键盘的数字键0-9输入密码密码输完后按下确认键假如密码输入对的则开锁不对的显示密码错误重新输入密码当三次密码错误则发出报警;当用户需要修改密码时先按下键盘设立键后输入本来的密码只有当输入的原密码对的后才干设立新密码新密码输入无误后按确认键使新密码将得到存储密码修改成功第二章重要元器件2.1主控芯片AT89S51单片机AT89S51功能介绍AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FalshProgrammableandErasableReadOnlyMemory)的低电压高性能CMOS8位微解决器俗称单片机该器件采用ATMEL高密度非易失存储器制造技术制造与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89S51是一种高效微控制器为很多嵌入式控制系统提供了一种灵活性高且价廉的方案AT89S51芯片引脚图如图2-1所示重要特性:·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保存时间:2023·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定期器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:下面按其引脚功能分为四部分叙述这40条引脚的功能1、主电源引脚VSS和VSSAT89S51芯片引脚图VSS--(40脚)接+5V电压;VSS--(20脚)接地2、外接晶体引脚XTAL1和XTAL2XTAL1(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/VpdALE/PROGPSEN和EA/VppRST/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、8032P1.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.2存储芯片AT24C02如图2-2为AT24C02的芯片引脚图图2-2AT24C02的芯片引脚图特点:低压和标准电压运营模式-2.7(VCC=2.7Vto5.5V)-1.8(VCC=1.8Vto5.5V)内建128x8存储序列2线制串行接口双向数据传送协议100kHz(1.8V2.5V2.7V)和400kHz(5V)兼容写同步时钟(最大10ms)高可靠性极限:1M写时钟周期数据保存:12023不断推动的芯片等级扩大了设备的可用温度范围AT24C02提供电可擦除的串行1024位存储或可编程只读存储器(EEPROM)128字(8位/字)芯片在低压的工业与商业应用中进行了最优化设备操作:CLOCK和DATA变化:SDA管脚通常外部要拉高SDA管脚上的数据只能在SCL低期间改变数据在SCL高期间改变定义为一个开始或停止信号开始状态:在任何操作之前必须有一个开始信号----在SCL为高时SDA上产生一个下降沿停止状态:SCL为高时SDA产生一个上升沿是停止信号停止信号后将停止所有通信在一个读的序列之后停止信号将让EEPROM进入备用电源模式2.3LCD16022显示器液晶显示模块已作为很多电子产品的通过器件如在计算器、万用表、电子表及很多家用电子产品中都可以看到显示的重要是数字、专用符号和图形1602型LCD显示模块具有体积小功耗低显示内容丰富等特点1602型LCD可以显示2行16个字符有8位数据总线D0-D7和RSR/WEN三个控制端口工作电压为5V并且具有字符对比度调节和背光功能接口信号说明:1602型LCD的接口信号说明如表2-2所示表2-2LCD1602接口信号说明编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
1602型LCD重要技术参数:显示容量:16×2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm1602型LCD基本操作程序如下表所示:表2-3LCD1602基本操作程序读状态
输入
RS=LR/W=HE=H
输出
D0-D7=状态字
写指令
输入
RS=LR/W=LD0-D7=指令码E=高脉冲
输出
无
读数据
输入
RS=HR/W=HE=H
输出
D0-D7=数据
写数据
输入
RS=HR/W=LD0-D7=数据E=高脉冲
输出
无
2.4晶体振荡器晶体振荡器简称晶振其作用在于产生原始的时钟频率这个频率通过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率以声卡为例要实现对模拟信号44.1kHz或48kHz的采样频率发生器就必须提供一个44.1kHz或48kHz的时钟频率假如需要对这两种音频同时支持的话声卡就需要有两颗晶振但是现在的娱乐级声卡为了减少成本通常都采用SCR将输出的采样频率固定在48kHz但是SRC会对音质带来损害并且现在的娱乐级声卡都没有很好地解决这个问题现在应用最广泛的是石英晶体振荡器石英晶体振荡器是一种高精度和高稳定度的振荡器石英晶体振荡器也称石英晶体谐振器它用来稳定频率和选择频率是一种可以取代LC谐振回路的晶体谐振元件石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中为数据解决设备产生时钟信号和为特定系统提供基准信号在单片机中为其提供时钟频率石英晶体振荡器是运用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件它的基本构成大体是:从一块石英晶体上按一定方位角切下薄片(简称为晶片它可以是正方形、矩形或圆形等)在它的两个相应面上涂敷银层作为电极在每个电极上各焊一根引线接到管脚上再加上封装外壳就构成了石英晶体谐振器简称为石英晶体或晶体、晶振其产品一般用金属外壳封装也有用玻璃壳、陶瓷或塑料封装的只要在晶体振子板极上施加交变电压就会使晶片产生机械变形振动此现象即所谓逆压电效应当外加电压频率等于晶体谐振器的固有频率时就会发生压电谐振从而导致机械变形的振幅忽然增大第三章硬件系统设计3.1设计原理本设计重要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩阵键盘用于输入数字密码和进行各种功能的实现由用户通过连接单片机的矩阵键盘输入密码后通过单片机对用户输入的密码与自己保存的密码进行对比从而判断密码是否对的然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可当然也可以用继电器的常开触点去控制电磁铁吸合线圈本系统共有两部分构成即硬件部分与软件部分其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成软件部分相应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设立程序、EEPROM读写程序和延时程序等组成图3-1电子密码锁原理框图3.2电路总体构成在拟定了选用什么型号的单片机后就要拟定在外围电路其外围电路涉及电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成根据实际情况键盘输入部分选择4*4矩阵键盘显示部分选择字符型液晶显示LCD1602密码存储部分选用AT24C02芯片来完毕其原理图如图3-2所示:图3-2电路总体结构图3.3电源输入电路密码锁重要控制部分电源需要用5V直流电源供电其电路如图3-3所示而5V电源输入时往往伴有杂波所以加一个2.2uF的电容滤波这样输出的电压一般能满足规定图3-3电源输入电路原理图3.4键盘输入电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘采用的是矩阵式按键键盘它由行线和列线组成也称行列式键盘按键位于行列的交叉点上密码锁的密码由键盘输入完毕与独立式按键键盘相比要节省很多I/O口本设计中使用的这个4*4键盘不仅能完毕密码的输入还能作特别功能键使用比如清空显示功能等键盘的每个按键功能在程序设计中设立其大体功能(看键盘按键上的标记)及与单片机引脚接法如图3-4所示:图3-4键盘输入原理图3.5密码存储电路AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片采用两线串行的总线和单片机通讯电压最低可以到2.5V额定电流为1mA静态电流10Ua(5.5V)芯片内的资料可以在断电的情况下保存40年以上并且采用8脚的DIP封装使用方便其电路如图3-5所示图中1、2、3脚是三条地址线用于拟定芯片的硬件地址在AT89S51上它们都能接地第5脚和第8脚分别为正、负电源AT24C02中带有片内地址寄存器每写入或读出一个数据字节后该地址寄存器自动加1以实现对下一个储存单元的读写所有字节均以单一操作方式读取3.6复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个拟定的初始状态并从这个状态开始工作例如复位后PC=0000H使单片机从第-个单元取指令无论是在单片机刚开始接上电源时还是断电后或者发生故障后都要复位在复位期间(即RST为高电平期间)P0口为高组态P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效地址锁存信号ALE也为高电平根据实际情况选择如图2-8所示的复位电路该电路在最简朴的复位电路下增长了手动复位按键在接通电源瞬间电容C1上的电压很小复位下拉电阻上的电压接近电源电压即RST为高电平在电容充电的过程中RST端电压逐渐下降当RST端的电压小于某一数值后CPU脱离复位状态由于电容C1足够大可以保证RST高电平有效时间大于24个振荡周期CPU可以可靠复位增长手动复位按键是为了避免死机时无法可靠复位当复位按键按下后电容C1通过R5放电当电容C1放电结束后RST端的电位由R11与R15分压比决定由于R11<<R15因此RST为高电平CPU处在复位状态松手后电容C1充电RST端电位下降CPU脱离复位状态R11的作用在于限制按键按下瞬间电容C1的放电电流避免产生火花以保护按键触电图3-6复位电路原理图3.7晶振电路AT89C51引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图3-7所示方式连接晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器振荡信号频率与晶振频率及电容C1、C2的容量有关但重要由晶振频率决定范围在0~33MHz之间电容C2、C3取值范围在5~30pF之间根据实际情况本设计中采用12MHZ做系统的外部晶振电容取值为20pF图3-7晶振电路原理图3.8显示电路为了提高密码锁的密码显示效果能力本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完毕只有按下键盘上的启动按键后显示器才处在启动状态同理只有按下关闭按键后显示器才处在关闭状态否则显示器将一直处在初始状态当需要对密码锁进行开锁时按下键盘上的开锁按键后运用键盘上的数字键0-9输入密码每按下一个数字键后在显示器上显示一个*输入多少位就显示多少个*当密码输入完毕时按下确认键假如输入的密码对的的话LCD子显示"RIGHT"单片机其中P2.0引角会输出低电平使三极管T2导通电磁铁吸合电子密码锁被打开假如密码不对的LCD显示屏会显示"ERROR"P2.0输出的是高电平电子密码锁不能被打开通过LCD显示屏可以清楚的判断出密码锁所处的状态其显示部分引脚接口如图3-8所示:图3-8显示电路原理图3.9报警电路报警部分由陶瓷压电发声装置及外围电路组成加电后不发声当有键按下时"叮"声每按一下发声一次密码对的时不发声直接开锁当密码输入错误时单片机的P2.1引脚为低电平三极管T3导喇叭发出噪鸣声报警如图3-9所示:图3-9报警电路原理图3.10开锁电路通过单片机开锁执行机构电路驱动电磁锁吸合从而达成开锁的目的其原理如图3-10所示图3-10密码锁开锁机构示意图当用户输入的密码对的时单片机便输出开门信号送到开锁驱动电路然后驱动电磁锁达成开门的目的其实际电路如图3-11所示电路由驱动和开锁两级组成由D1、R12、Q1组成驱动电路其中Q1可以选择普通的小功率三极管如8050、9018都可以满足规定D1是开锁指示灯;由D2、C5组成开锁其中D2、C5是为了消除电磁锁也许产生的反向高电压以及也许产生的电磁干扰电磁锁的选用要视情况而定但是吸合力要足够且有一定的余量在设计中暂时用发光二极管代替电磁锁发光管亮表达开锁;灭表达没有开锁 图3-11开锁电路原理图第四章软件程序设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设立程序、EEPROM读写程序和延时程序等组成4.1主程序流程图如图4-1为主程序流程图开始接上电源程序进行初始化设立然后在键盘上输入密码此系统进行键盘扫描密码对的开锁成功密码错误3次犯错报警选择是否修改密码若要修改密码先输入旧密码密码对的后设立新密码错误时报警需要两次确认新密码确认后密码修改成功否则结束最终返回然后启动程序进行保护再次在键盘上输入密码系统进行扫描假如和之前同样则执行相同程序如不是则执行另一种程序图4-1主程序流程图4.2按键软件设计如图4-2按键功能流程图在按键当中有与输入、开锁、清除、设立、确认的程序相相应的按键并按顺序与输入的数相比较当输入对的时进入密码程序错误时进行清除输入两次新密码对的时可进行重新设立密码最后确认程序图4-2按键功能流程图4.3密码设立软件设计如图4-3为密码设立流程图开始按下设立键输入旧密码假如错误累计三次进行报警程序假如输入对的可以修改密码确认后再次输入新密码假如两次输入同样则输入成功假如两次输入的新密码不同样则修改密码失败重新返回设立新密码图4-3密码设立流程图4.4开锁软件设计如图4-4开锁流程图开始时按开锁键输入密码假如输入对的则开锁成功假如输入错误累计达成三次则执行报警程序图4-4开锁流程图第五章调试与实现5.1硬件调试单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、硬件联调才干发现但一般是先排除系统中比较明显的硬件故障后才和软件一起联调常见的硬件故障:(1)逻辑错误硬件的逻辑错误是由于设计错误和焊接过程中的工艺错误而导致的涉及错线、开路、短路等其中最常见的是短路故障(2)元器件错误元器件错误的因素有器件损坏或性能不符合规定电解电容、二极管的极性接反或集成块装反等(3)可靠性差应用系统可靠性差的因素很多如内部和外部的干扰、电压纹波系数过大、器件负载过重等均会导致系统的可靠性差此外走线和布置的不合理也会导致系统可靠性差(4)电源故障电源故障涉及:电压值不符合设计规定、电源功率局限性、负载能力差、纹波太重等硬件调试办法脱机调试是在加电前先用万用表等工具按图纸仔细核对线路是否对的并对元器件的安装、型号、规格等进行仔细检查特别焊接时有无走线之间互相短路等5.2软件调试程序在KEILC51上调试采用模块程序设计技术则逐个模块调好后再进行系统程序总调对于模块结构程序.要一个个子程序分别调试调试时一定要符合入口条件和出口条件调试可用单步运营和断点运营方式通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态检测程序执行结果是否符合设计规定有无循环错误、有无机器码错误以及转移地址的错误同时还可以发现系统中存在的硬件设计错误和软件算法错误各程序模块通过后则可以把相关功能块连在一起进行总调这个阶段若有故障可以考虑各子程序运营时是否破坏了现场缓冲单元、工作寄存器是否发生冲突标志位的建立和清除是否有误堆栈区是否有溢出输入设备的状态是否正常等等若用者系统是在开发机的监控程序下运营时还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突单步和断点调试后还应进行连续调试用以拟定定期精度、CPU的实时响应等问题当所有调试和修改完毕后将程序固化到AT89S51中进行整机调试各功能实现则调试完毕5.3Proteus仿真在硬件和软件都能实现的条件下运用Proteus进行仿真通过不断的调试与改正最后终于实现了密码锁的功能Proteus仿真结果如图4-1所示当连好各个模块电路的导线后导入芯片程序运营该密码锁仿真电路通过按键可以进行密码锁的开锁修改密码错误密码3次以上报警的操作LCD显示屏显示相应的操作现象密码对的可以开锁进而可以修改密码密码错误三次以上由喇叭发出报警声假如系统出现错误还可以通过复位电路进行复位总之在原有的理论基础上通过Proteus可以成功的进行密码锁基本操作的仿真实现了相关的功能结论与展望以上为毕业期间所作的毕业论文---基于单片机的电子密码锁设计它通过多次修改和整理可以满足设计的基本规定输入密码时如三次输入错误则进行报警在输入时LCD显示为"*"在修改密码时则显示数字次设计还具有防盗功能如对密码控制系统进行破坏有报警功能通过对该课题的研究加深对所学知识的理解提高对课外知识的学习能力增强知识的应用能力提高解决实际问题的能力培养自我创新意识积累实践经验为以后的发展打下基础也为以后我们自己在这方面的发展打下基础并可以在这方面培养自己的爱好在设计中我们必须一方面熟悉和掌握单片机的结构及工作原理单片机的接口技术及相关外围芯片的外特性控制方法以单片机核心的电路设计的基本方法和技术了解表关电路参数的计算方法单片机不是完毕某一个逻辑功能的芯片而是把一个计算机系统集成到一个芯片上概括的讲:一块芯片就成了一台计算机它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件同时学习使用单片机了解计算机原理与结构的最佳选择目前单片机渗透到我们生活的各个领域几乎很难找到哪个领域没有单片机的踪迹导航装置飞机上各种仪表的控制计算机的网络通讯与数据传输工业自动化过程的实时控制和数据解决广泛使用的各种智能IC卡民用豪华轿车的安全保障系统录像机、摄像机、全自动洗衣机的控制以及程控玩具、电子宠物等等这些都离不开单片机更不用说自动控制领域的机器人、智能仪表、医疗器械了因此单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师随着单片机的广泛应用将大大促进各领域的技术更新向自动化、小型化、智能化方向迈进而对于我们来说我们这代人的目的和任务是把这些高科技产品更升一个层次毕业设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对学生实际工作能力的具体训练和考察过程随着科学技术发展的日新日异单片机已经成为当今计算机应用中空前活跃的领域在生活中可以说得是无处不在因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的通过这次毕业设计无论从选题到定稿从理论到实践都使我学到了很多东西它不仅可以巩固了以前所学过的知识并且学到了很多在书本上所没有学到过的知识同时也明白了理论与实践相结合的重要性只有理论知识是远远不够的只有把所学的理论知识与实践相结合起来从理论中得出结论才干真正为社会服务从而提高自己的实际动手能力和独立思考的能力致谢四年的大学生活不知不觉中就要结束了在这段难忘的生活中有许多美好的回忆在毕业论文设计之中我的老师和我的同学都不吝的指导我我需要感谢的人太多太多一方面要感谢我的学校感谢在这四年中让我领悟到诚实做人踏实做事扎实做学问的深刻道理让我从一个懵懂得高中生变成一个成熟的大学生另一方面我要感谢的是我的导师生芳老师虽然生老师平日里工作繁多但在我做毕业设计的每个阶段都给予我悉心的指导和帮助关心我们每个阶段所做的工作当然还要感谢寝室的兄弟们在我完毕论文的过程中给予我的帮助和鼓励也是他们陪我度过了这四年的生活感谢能有这段美好的记忆现在即将挥别我的学校、老师、同学尚有我四年的大学生活虽然依依不舍但是对未来的路我充满了信心最后感谢在大学期间结识我和我结识的所有人有你们的陪同才有我大学生活的绚丽多彩作者: 2023年5月9日参考文献[1]童诗白华成英.模拟电子技术基础[第四版].高等教育出版社2023[2]阎石.数字电子技术基础[第五版].高等教育出版社.1998.11[3]张毅刚.单片机原理及应用.高等教育出版社.2023[4]楼苗然李光飞.单片机课程设计指导.北京航空航天大学出版社2023[5]蔡朝洋.单片机控制实习与专题制作.北京航空航天大学出版社2023[6]陈连坤.单片机原理及接口技术.北京交通大学出版社2023[7]李学海.标准8051单片机基础教程.北京航空航天大学出版2023[8]何立民.单片机高级教程.北京航空航天大学出版社2023[9]周立功.单片机实验与实践教程.北京航空航天大学出版社2023[10]江志红.51单片机技术与应用系统开发.清华大学出版社2023[11]祖龙起.一种新型可编程密码锁.大连轻工业学院学报2023(01);[12]李明喜.新型电子密码锁的设计.机电产品开发与创新2023(03)[13]王宽仁.可靠安全的智能密码锁.电子技术应用.2023年第2期[14]董继成.一种新型安全的单片机密码锁.电子技术2023(03)[15]任艳艳.基于AT89C51单片机多功能密码锁的研究.重庆职业技术学院学报.2023.5[16]周鑫何建新刘琥.基于单片机的电子密码锁控制电路设计.成都信息工程学院学报.2023(08)[17]王金国.采用单片机的电子密码锁控制电路.山东煤炭科技2023(3):30-33.[18]宁爱民.应用AT89C2051单片机设计电子密码锁.淮海工学院学报20236附录程序清单:显示缓冲区LED1EQU6FHBUFFEQU6EHTIMERS1EQU6DH;输入回车的次数TIMERS2EQU6CH;报警的次数LED6EQU6AH密码缓冲区PS1EQU69HPS2EQU78HPS3EQU67HPS4EQU66HPS5EQU65HPS6EQU64HPS7EQU63HPS8EQU62HAT24C02读取缓冲区AT1EQU61HAT2EQU60HAT3EQU5FHAT4EQU5EHAT5EQU5DHAT6EQU5CHAT7EQU5BHAT8EQU5AH按键标志位F_0BIT20HF_1BIT21HF_2BIT22HF_3BIT23HF_4BIT24HF_5BIT25HF_6BIT26HF_7BIT27HF_8BIT28HF_9BIT29HCH_STATEBIT2AH;系统更改的状态标志位为1表达busyFLAG1BIT2BH;功能键标志位为1表达功能按键F_F1BIT2CHF_F2BIT2DHPSW_FBIT2EH;密码是否对的的标志位口资源定义SPKBITP2.1WPBITP3.5SDABITP3.6;定义串口数据端SCLBITP3.7ORG0000HAJMPMAINORG000BH;AJMPTIMER0ORG001BH;AJMPTIMER1ORG0030HMAIN:MOVSP#70HMOVTMOD#11HMOVTH0#3CHMOVTL0#0B0HMOVTH1#3CHMOVTL1#0B0HCLRF_0;清除标志位CLRF_1CLRF_2CLRF_3CLRF_4CLRF_5CLRF_6CLRF_7CLRF_8CLRF_9CLRBUF_FULLCLRCH_STATECLRFLAG1CLRF_F1CLRF_F2CLRPSW_FMOVBUFF#00H;调用LCALLINITPS;初始化环境LCALLINITATLCALLXSA;调用默认显示MOVTIMERS1#00HNOPMOVPS1#11H;初始化密码830620MOVPS2#0AHMOVPS3#02HMOVPS4#13HMOVPS5#0BHMOVPS6#02HSTART:NOP;程序开始LCALLCH_KEY;检查键盘AJMPSTART;返回CH_KEY:LCALLKS;检查有没有按键按下JNZLK1AJMPCH_KEYLK1:LCALLT12MSACALLKSJNZLK2RETLK2:NOPLCALLSBIE;按键辨认子程序MOVBUFFA;送缓冲区以辨认是数字键还是功能键?LCALLCH_KF;判断按键功能JBFLAG1KEY_FUN;标志为1则为功能键***********数字按键输入并且存放到缓冲区内等待比较******************KEY_DIG:NOP;设一标志辨别输入是否满;SETBTR0INCTIMERS;输入数字的位数MOVATIMERSCLRCSUBBA#01HJNZPS_2MOVPS1BUFF;依照顺序存放密码AJMPNEXTPS_2:MOVATIMERSSUBBA#02HCLRCJNZPS_3MOVPS2BUFFAJMPNEXTPS_3:MOVATIMERSCLRCSUBBA#03HJNZPS_4MOVPS3BUFFAJMPNEXTPS_4:MOVATIMERSCLRCSUBBA#04JNZPS_5MOVPS4BUFFAJMPNEXTPS_5:MOVATIMERSCLRCSUBBA#05JNZPS_6MOVPS5BUFFAJMPNEXTPS_6:MOVATIMERSCLRCSUBBA#06HJNZCH_KEYMOVPS6BUFFNEXT:LCALLXSCMOVR7TIMERS;比较输入的次数CJNER7#06HFULLFULL:JCNEXT9SETBBUF_FULLMOVTIMERS#06HCLRL3NOPCLRP2.1LCALLT100MSDSETBP2.1NOPAJMPCH_KEYNEXT9:CLRP2.1;密码输入一位鸣叫一声CLRL3LCALLT100MSD;延时100msSETBL3SETBP2.1AJMPCH_KEY***************开门子程序******************************************CL:NOPSETBL3MOVBUFF#00H;消密码缓冲MOVTIMERS#00HLCALLINITPS;消除AT缓冲调电存储后一定要加上LCALLXSCLCALLBPLCALLBPLCALLT100MSDLCALLBPCLRFLAG1AJMPCH_KEYFU4:NOPLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPLCALLT100MSDLCALLBPCLRFLAG1AJMPCH_KEYFU3:NOPLCALLBPLCALLT100MSDLCALLBPLCALLKILLXS;关闭显示CLRFLAG1AJMPCH_KEYFU1:NOPLCALLXSCJBF_F1NEXT_F1CLRL1LCALLBPSETBF_F1AJMPCH_KEYNEXT_F1:SETBL1LCALLBPCLRF_F1;LCALLCH_STATE;查看现在的状态以防误按;SETBTR1;报警限制暂时不开;INCF_F1CLRFLAG1AJMPCH_KEYFU2:NOPJBF_F2NEXT_F2CLRL2LCALLBPSETBF_F2AJMPCH_KEYNEXT_F2:SETBL2LCALLBPCLRF_F2CLRFLAG1AJMPCH_KEY**************各类子程序********************************注意清楚缓冲区时AT1...AT8不应在初始化中执行以防两缓冲区都为0相同开锁********************************************************CLR_BUF:MOVR7#06HMOVR0#6FHLOOP1:MOVA#00HMOV@R0ADECR0DJNZR7LOOP1RET*************初始化显示缓冲区以及其他缓冲区**************INITPS:PUSHACCPUSHPSWMOVR7#06HMOVR1#PS1MOVA#00HINIT_PS:MOV@R1ADECR1DJNZR7INIT_PSPOPPSWPOPACCNOPRETINITAT:PUSHACCPUSHPSWMOVR7#06HMOVR1#AT1MOVA#00HINIT_AT:MOV@R1ADECR1DJNZR7INIT_ATMOVTIMERS#00H;密码输入的次数清零POPPSWPOPACCRET****************检查密码正误******************************C_PSW:PUSHPSWPUSHACCMOVR2#06HMOVR0#PS1MOVR1#AT1C_P:CLRCMOVA@R0SUBBA@R1JNZRETURNDECR0DECR1DJNZR2C_PNOPSETBPSW_FAJMPEXIT7RETURN:CLRPSW_FEXIT7:NOPPOPACCPOPPSWRET***************************锁定鸣笛程序**********************LOCK_1M:MOVR4#3CH;锁定1分钟M1_LOOP:LCALLSECDJNZR4M1_LOOPNOPRETWARN2S:PUSHPSWPUSHACCMOVR5#14H;调用20次BP报警2sWARN:LCALLBPDJNZR5WARNNOPPOPACCPOPPSWNOPRETBP:CLRSPK;鸣笛子程序LCALLT100MSDSETBSPKNOPRET********************************显示子程序***********************************锁定状态显示XSA:PUSHACCPUSHPSWMOVATIMERS1MOVDPTR#TABMOVCA@A+DPTRMOVSBUFA;送已经输入密码的次数JNBTI$CLRTIMOVSBUF#0FEH;送短线JNBTI$CLRTIMOVSBUF#0FEH;送短线JNBTI$CLRTI;送FMOVSBUF#78HJNBTI$CLRTIMOVSBUF#78HJNBTI$CLRTIMOVSBUF#11HJNBTI$CLRTIPOPPSWPOPACCRET成功开锁状态显示XSB:PUSHACCPUSHPSWMOVATIMERS1MOVDPTR#TABMOVCA@A+DPTRMOVSBUFAJNBTI$CLRTIMOVSBUF#0FEHJNBTI$CLRTIMOVSBUF#0FEHJNBTI$CLRTIMOVSBUF#10HJNBTI$CLRTIMOVSBUF#10HJNBTI$CLRTIMOVSBUF#10HJNBTI$CLRTIPOPPSWPOPACCRET密码输入及修改状态XSC:PUSHACCPUSHPSWLCALLKILLXSSETBRS1;切换到第三组寄存器防止操作数读取错误MOVR6TIMERSMOVAR6SUBBA#01HJNCSC0JZSC1SC0:MOVSBUF#0FEHJNBTI$CLRTISC1:MOVAR6SUBBA#02HJNCSC11JNZSC2SC11:MOVSBUF#0FEHJNBTI$CLRTISC2:MOVAR6SUBBA#03HJNCSC22JNZSC3SC22:MOVSBUF#0FEHJNBTI$CLRTISC3:MOVAR6SUBBA#04HJNCSC33JNZSC4SC33:MOVSBUF#0FEHJNBTI$CLRTISC4:MOVAR6SUBBA#05HJNCSC44JNZSC5SC44:MOVSBUF#0FEHJNBTI$CLRTISC5:MOVAR6SUBBA#06HJNCSC55JNZSC6SC55:MOVSBUF#0FEHJNBTI$CLRTISC6:MOVAR6SUBBA#07HJNCSC66JNZEXIT_CSC66:MOVSBUF#0FEHJNBTI$CLRTINOPNOPEXIT_C:NOPCLRRS1POPPSWPOPACCNOPRET密码输入错误的提醒XSD:PUSHACCPUSHPSW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 向党和人民保证的决心书
- 网络小额贷款合同格式
- 个人住房借款合同模板
- 向子女承诺的戒酒保证
- 简单定点采购合同范本
- 专业大理石采购安装合作协议
- 房屋买卖合同贷款的房产评估
- 设备安装与质量控制合同
- 货物买卖合同模板
- 海运物流服务合同
- 《精装修成品保护》课件
- 2024年房地产开发商与装修公司装修合同
- 2024年畜牧业经营管理教案:转型与升级
- 专利实施独占合同范例
- 浙江省绍兴市建功中学教育集团2024-2025学年八年级上学期10月份学科素养竞赛语文试卷
- 北洋政府的统治与军阀割据 统编版八年级历史上册
- 2024护理个人年终总结
- 2024 ESC慢性冠脉综合征指南解读(全)
- 【单元练】(必考题)高中物理必修3第十三章【电磁感应与电磁波初步】习题(答案解析)
- 二年级排球教案
- 人文与历史知识考试题库500题(含答案)
评论
0/150
提交评论