毕业设计电子密码锁(基于AT89C51).doc_第1页
毕业设计电子密码锁(基于AT89C51).doc_第2页
毕业设计电子密码锁(基于AT89C51).doc_第3页
毕业设计电子密码锁(基于AT89C51).doc_第4页
毕业设计电子密码锁(基于AT89C51).doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(2011届)专科毕业设计(论文)资料题 目 名 称:基于单片机的电子密码锁设计 学 院(部):电气与信息工程学院 专 业:应用电子技术 学 生 姓 名:李渊 班 级:电子0821学号08395202102指导教师姓名:周维龙 职称 讲师 职称 最终评定成绩: 湖南工业大学教务处 (2011届)专科毕业设计(论文)基于单片机的电子密码锁设计学 院(部):电气与信息工程学院 专 业:应用电子技术 学 生 姓 名:李渊 班 级: 电子0821 学号08395202102指导教师姓名:周维龙 职称 讲师 职称 最终评定成绩 2011 年 6月摘要本次设计使用AT89C51实现一基于单片机的电子密码锁。本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超次锁定、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有温度显示、时间显示等功能,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间。随着人们对安全的重视和科技的发展,许多电子智能锁已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。关键词: 单片机AT89C51 LED显示 矩阵键盘 自动报警目录1摘要12方案的比较与论证23系统模块电路的设计43.1系统总框图43.2系统的模块电路设计4 3.2.1单片机的最小系统模块.4 3.2.2波形产生模块.5 3.2.3键盘模块.8 3.2.4显示模块.9 3.2.5电源模块11 3.2.6温度检测模块设计13 3.2.7开锁电路和报警电路模块144系统的软件设计15 4.1软件设计思路.15 4.2系统主流程图.155总结166致谢187参考文献188附录192方案比较与论证方案一:采用数字电路控制。其原理方框图如图1所示。图1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有6个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;若电路连续报警三次,电路将锁定键盘10秒,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。方案二:以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加温度显示、时间显示甚至添加遥控控制功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。3系统模块电路的设计31 系统总框图密码输入电路显示电路单片机密码检测电路时钟电路报警电路数据锁存电路温度传感器开锁电路 图2系统框图32系统的模块电路设计321 单片机最小系统模块AT89C51是一种低功耗,高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89SC51为众多嵌入式控制应用系统提供高灵活,超有效地解决方案。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3 AT89C51管脚图 322时钟电路模块采用专用时钟芯片DS1302,该芯片性能简介如下:DS1302的结构及工作原理 :DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 (1) 引脚功能及结构 图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 图4 DS1302的管脚图(2) DS1302的控制字节 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 图5 DS1302的控制字节(3) 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 (4) DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。 图6 日历,时间寄存器及其控制字此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 (5) DS1302与单片机连接如图7所示:图7 DS1302与单片机连接图323键盘模块使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样的方法。其原理如图8所示:图8 矩阵键盘每条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条行线和M条列线,即可组成具有N*M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描法;另一种是速度较快的线反转法。对照图8所示的4*4键盘,说明线反转个工作原理。首先辨别键盘中有无按键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向列线输出全扫描字00H,把全部列线置为低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断哪个键被按下:将P1.0P1.3都置低,检测P1.4P1.7是否有低的,若有,则证明有键按下,记下低的端口。然后,将P1.4P1.7置低,检测P1.0P1.3是否有低的端口,如有,则证明端口与上次的一个为地的端口交叉位置的键被按下。按键键名功能说明09键数字键输入密码*键重设密码键设定新密码D键确定键比较密码C键清除键使显示器清零B键开启键开启键盘A键关闭键关闭键盘#键调整键调整时间324显示模块电子密码锁系统中,需要现实的信息较少,因此采用七段LED数码显示管作为显示器。数据传输采用串行方式,有单片机串行数据口P3.0发送,在经过74HC164串行移位器把串行数据转换成8位并行数据,用以驱动七段LED数码显示管。由于74HC164芯片中,没有数据锁存器,串行数据每到达一位,都会直接送到七段显示管中,造成所有数据都会经过其短线是数码管的每一个LED灯,是数据显示不稳定。因此在74HC164串行移位寄存器和七段数码显示管之间,加入数据锁存器(74273芯片),以稳定数码显示管的数据显示。在按下开启按键后,显示器处于开启状态,同理只有按下关闭键后显示器处于关闭状态,当需要对密码锁进行开锁时,按下键盘上的开锁键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个“-”,输入六个数有六个“-”出现。当密码输入完成时,按下确认键。如果正确的话LED显示“111111”,单片机其中P2.0出现低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码错误,LED显示”000000”,单片机P2.0输出的是高电平,电子密码锁不能被打开。在LED屏上时间出错时,可通过“#”键修改时间设定。图9显示电路。 32.5电源模块 为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。电源电路图如图5所示。图12供电电路220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+V- IC14输出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下图6所示:图13 停电检测及电子开关切换电路T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如图7所示:图14 蓄电池自动充电电路 3.2.6 温度检测电路设计采用一线总线式温度传感器DS18B20,该传感器性能如下:(1) DS18B20的主要特性:(a)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电(b)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯(c)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温(d)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内(e)温范围55125,在-10+85时精度为0.5(f)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温(g)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快(h)测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力(i)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。(2)DS18B20与单片机接口电路图如图15:3.2.7开锁电路与报警电路设计开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.3所示。当P2.0口输出低电平时,二极管发光,表示开锁。图16 开锁电路报警电路 报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时需要100mA驱动电流。当89c51的P2.1口输出低电平时,蜂鸣器产生蜂音,89c51输出高电平时,蜂鸣器不发声。 图17 报警电路4 系统的软件设计41 软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入状况,接下来确认密码的判断,做出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。其中还有温度和时间显示。 多功能电子密码锁的基本要求:1、通过键盘修改、输入密码。2、连续三次输入密码错误后锁定键盘10秒,并给出提示。3、具有日期时间设置(小时和分钟)、显示,环境温度显示功能。4、220V供电下,设计系统所需电源,并考虑掉电后原始数据的保存。4.2系统主流程图 开始初始化有键按下?调用显示启动定时识别按键按键数=6?超时?比较密码开门开始自动清除3次?报警NNYYYYNN按下*启动定时输入密码存入缓冲再输入一次比较密码调用LED调用显示按%退出Y重新输入N图18 主程序流程图图19 修改密码流程图 图21报警流程图 5 总结在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识。在多人做项目的时候,队员的交流是非常重要的,是很关键的部分。这次的毕业设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。刚开始的时候,大家就分配好了各自的任务,大家有的绘制原理图,进行仿真实验,有的积极查询相关资料,并且经常聚在一起讨论各个方案的可行性。在毕业设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。 在设计过程中,通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。6 致谢本论文虽然凝聚着自己的汗水,但却不是个人智慧的产品,没有父母和朋友的帮助和支持,我在大学的学术成长肯定会大打折扣。当我打完毕业论文的最后一个字符,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚挚谢意。我首先要感谢我的导师周维龙老师,对我的构思以及论文的内容不厌其烦的进行多次指导和悉心指点,周老师多次询问进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。周老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时三载,却给以终生受益无穷之道。对周老师的感激之情是无法用言语表达的,使我在完成论文的同时也深受启发和教育。再次由衷感谢答辩组的各位老师对学生的指导和教诲,我也在努力的积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取使自己的人生对社会产生些许积极的价值学生签名:李渊 日 期:2011年6月 参考文献1MCS-51单片机原理及应用教程 刘迎春等 清华大学出版社2单片机外围电路设计 沙占友等 电子工业出版社3单片机原理机应用 李念强等 机械工业出版社5单片机应用技术教程 张洪润 北京:清华大学出版社,19976单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 7单片机原理及及应用王迎旭编 机械工业出版社 2001附录1主电路图 图20主电路图 附录2LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;输入回车的次数 TIMERS2 EQU 6CH ;报警的次数 TIMERS EQU 6BH ;输入数字的位数 ;LED6 EQU 6AH ;密码缓冲区 PS1 EQU 69H PS2 EQU 68H PS3 EQU 67H PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H ;AT24C02读取缓冲区 AT1 EQU 63H AT2 EQU 62H AT3 EQU 61H AT4 EQU 60H AT5 EQU 5FH AT6 EQU 5EH ;按键标志位 F_1 BIT 20H F_2 BIT 21H F_3 BIT 22H F_4 BIT 23H BUF_FULL BIT 24H ;密码已经够六位的标志位,为1表示满 CH_STATE BIT 25H ;系统更改的状态标志位,为1表示busy FLAG1 BIT 26H ;功能键标志位,为1表示功能按键。 F_F1 BIT 27H F_F2 BIT 28H PSW_F BIT 29H ;密码是否正确的标志位 ;口资源定义 SPK BIT P2.1 JDQ BIT P2.3 SDA BIT P2.4 ;定义串口数据端 SCL BIT P2.5 ;发光二极管灯 L1 BIT P1.0 L2 BIT P1.1 L3 BIT P1.2 ; ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030H MAIN:MOV SP, #70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_1 ;清除标志位 CLR F_2 CLR F_3 CLR F_4 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITAT LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #11H ;初始化密码830620 MOV PS2, #0AH MOV PS3, #02H MOV PS4, #13H MOV PS5, #0BH MOV PS6, #02H START:NOP ;程序开始 LCALL CH_KEY ;检查键盘 AJMP START ;返回 CH_KEY:LCALL KS ;检查有没有按键按下 JNZ LK1 AJMP CH_KEY LK1: LCALL T12MS ACALL KS JNZ LK2 RET LK2: NOP LCALL SBIE ;按键识别子程序 MOV BUFF, A ;送缓冲区以识别是数字键还是功能键? LCALL CH_KF ;判断按键功能。 JB FLAG1 ,KEY_FUN ;标志为1,则为功能键;*数字按键输入并且存放到缓冲区内等待比较*KEY_DIG:NOP ;设一标志,辨别输入是否满 ;SETB TR0 INC TIMERS ;输入数字的位数 MOV A, TIMERS CLR C SUBB A, #01H JNZ PS_2 MOV PS1, BUFF ;依照顺序存放密码 AJMP NEXT PS_2:MOV A, TIMERS SUBB A, #02H CLR C JNZ PS_3 MOV PS2, BUFF AJMP NEXT PS_3:MOV A, TIMERS CLR C SUBB A, #03H JNZ PS_4 MOV PS3, BUFF AJMP NEXT PS_4:MOV A, TIMERS CLR C SUBB A, #04 JNZ PS_5 MOV PS4, BUFF AJMP NEXT PS_5:MOV A, TIMERS CLR C SUBB A, #05 JNZ PS_6 MOV PS5, BUFF AJMP NEXT PS_6:MOV A, TIMERS CLR C SUBB A, #06H JNZ CH_KEY MOV PS6, BUFF NEXT:LCALL XSC MOV R7, TIMERS ;比较输入的次数。 CJNE R7, #06H ,FULL FULL:JC NEXT9 SETB BUF_FULL MOV TIMERS,#06H CLR L3 NOP CLR P2.1 LCALL T100MSD SETB P2.1 NOP AJMP CH_KEY NEXT9:CLR P2.1 ;密码输入一位,鸣叫一声。 CLR L3 LCALL T100MSD ;延时100ms SETB L3 SETB P2.1 AJMP CH_KEY;*功能按键比较并且跳转*KEY_FUN: CLR FLAG1 CLR C MOV A, BUFF SUBB A, #03H ;按键CL跳转 JNZ EN_C AJMP CL EN_C:CLR C MOV A, BUFF ;按键EN跳转 SUBB A, #00H JNZ F1_C AJMP EN F1_C:CLR C MOV A, BUFF SUBB A, #1BH JNZ F2_C AJMP FU1 F2_C:CLR C MOV A, BUFF SUBB A, #1AH JNZ F3_C AJMP FU2 F3_C:CLR C MOV A, BUFF SUBB A, #19H JNZ F4_C AJMP FU3 F4_C:CLR C MOV A, BUFF SUBB A, #18H JZ FU4 EXIT8:NOP LJMP CH_KEY;*开门子程序 * CL:NOP SETB L3 MOV BUFF, #00H ;消密码缓冲 MOV TIMERS,#00H LCALL INITPS ;消除AT缓冲,加调电存储后一定要加上 LCALL XSC LCALL BP LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU4:NOP LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP LCALL T100MSD LCALL BP CLR FLAG1 AJMP CH_KEY FU3:NOP LCALL BP LCALL T100MSD LCALL BP LCALL KILLXS ;关闭显示 CLR FLAG1 AJMP CH_KEY FU1:NOP LCALL XSC JB F_F1, NEXT_F1 CLR L1 LCALL BP SETB F_F1 AJMP CH_KEYNEXT_F1:SETB L1 LCALL BP CLR F_F1 ;LCALL CH_STATE ;查看现在的状态以防误按 ;SETB TR1 ;报警限制暂时不开 ;INC F_F1 CLR FLAG1 AJMP CH_KEY FU2:NOP JB F_F2, NEXT_F2 CLR L2 LCALL BP SETB F_F2 AJMP CH_KEYNEXT_F2:SETB L2 LCALL BP CLR F_F2 CLR FLAG1 AJMP CH_KEY;*按键的功能描述* EN:NOP JB BUF_FULL, GOON AJMP EXIT GOON:CLR BUF_FULL JB F_F2, AT_WRON ;F2按键标志,若为1,则调用修改密码子程序。 LCALL AT_RADE LCALL C_PSW ;比较密码子程序 JB PSW_F,OPEN ;密码比较正确,则调用开锁子程序 LCALL XSD INC TIMERS2 MOV R7,TIMERS2 ;密码错误,调入输入密码输入次数,准备锁定键盘 CJNE R7,#03H,D0 D0:JC NEXT1 ;错误次数小3次 LCALL XSE ;锁定5分钟 LCALL WARN2S LCALL LOCK_1M NEXT1:LCALL WARN2S ;报警2分钟 LCALL XSA EXIT:LCALL INITPS MOV BUFF, #00H CLR FLAG1 MOV TIMERS, #00H AJMP CH_KEY ;跳出 AT_WRON:LCALL AT_WR LCALL XSF LCALL BP LCALL T100MSD LCALL BP LCALL T500MSD LCALL KILLXS LCALL T500MSD LCALL XSF LCALL T500MSD LCALL KILLXS LCALL T500MSD LCALL XSF LCALL T500MSD NOP NOP LCALL XSA AJMP EXIT OPEN:MOV A, TIMERS1 CJNE A, #09H,CLT1 CLT1:JC GOON1 MOV TIMERS1,#00H GOON1:INC TIMERS1 ;输入回车的次数 MOV TIMERS2,#00H SETB L3 CLR PSW_F LCALL XSB CLR JDQ ;开门 LCALL BP LCALL BP LCALL BP LCALL BP LCALL SEC LCALL SEC LCALL SE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论