基于单片机的电子密码锁设计论文说明

上传人:痛*** 文档编号:99478931 上传时间:2022-06-01 格式:DOC 页数:42 大小:343KB
返回 下载 相关 举报
基于单片机的电子密码锁设计论文说明_第1页
第1页 / 共42页
基于单片机的电子密码锁设计论文说明_第2页
第2页 / 共42页
基于单片机的电子密码锁设计论文说明_第3页
第3页 / 共42页
点击查看更多>>
资源描述
. . . . 2015届本科毕业设计基于单片机的电子密码锁设计院 (系) 名 称物理与电子信息学院专 业 名 称电子信息科学与技术学 生 姓 名学 号指 导 教 师完 成 时 间2015年5月13日41 / 42基于单片机的电子密码锁设计 物理与电子信息学院 电子信息科学与技术专业 摘要:随着人们防盗意识的日益加强,选用一把既方便又安全的锁,已经成为了一件越来越重要的事情。传统的机械锁结构比较简单,钥匙需随身携带,且一旦丢失安全性无法保证。因此,电子密码锁应运而生。电子密码锁是一种通过输入密码来控制电路或芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。该设计以AT89C51 单片机作为密码监控装置和控制核心,结合键盘电路、LCD显示电路、报警电路和开锁结构完成输入、存储、保存密码的功能。该设计具有性好、成本低、功耗低、操作简单、随机开锁成功率几乎为零、密码可变、误码输入保护、多次错误报警、断电记忆等优点。关键词:AT89C51;电子密码锁;报警The Design of Electronic Password-lockBased onSCMCollege of Physicsand Electronic Information Electronic information science and technologyAbstract:With thestrengthening ofpeoplesawarenessofsecurity, Choosing aconvenient andsecurelocks has becomeanincreasingly importantthing. Traditional mechanicallock structure is relatively simple and the key needs to carry around. Once lost it cant guaranteesafety. Therefore, electronic lockscame into being. Electronic password lock controls circuitorchipworkto controlthe mechanicalswitch lock and unlock through password. The design uses the AT89C51 micro- controllerascontrol coreandpasswordmonitoring device and combines with thekeyboard circuit,LCD display circult,alarmcircuit and lockstructureto complete the input,storage and save the password function.The design hasmany advantages, such as good confidentiality,low cost,low power consumption,simple operation, random unlockingsuccess rate is almost zero,thevariable password,error input protection,multipleerror alarming,power-off memoryand so on.Keyword: SCM; electronic password-lock; alarm目 录摘要11 引言52 设计方案与实现的目标52.1 选用单片机为核心控制52.2 设计所要实现的目标53 主要芯片介绍63.1 主控芯片AT89C5163.1.1 AT89C51芯片的功能63.1.2 AT89C51的引脚63.1.3 AT89C51芯片的部结构83.1.4 芯片擦除93.2 AT24C02存储芯片93.3 LCD1602接口信号说明104 系统硬件结构114.1 系统原理框图114.2 复位模块124.3 晶振模块134.4 键盘模块134.5 显示模块144.6 开锁模块144.7 密码存储模块154.8报警模块155 系统总电路图166 系统软件设计177 Proteus仿真217.1仿真过程217.2 仿真结果228 总结23参考文献23附录251 引言科技发展和生活水平提高的同时,安全问题也随之而来,失窃事件时有发生,那么如何更好的防盗呢?传统的机械锁通常具有机械结构复杂,密码数量少,安全性能差的缺点。为满足人们对锁的使用要求,增加其安全性,电子密码锁应运而生。电子密码锁是通过输入密码,控制电路工作,由电路控制机械结构开锁或关锁的电子产品。它具有性好、使用灵活、操作简单、寿命长的特点。该设计从经济实用角度出发,采用AT89C51单片机作为密码监控装置和控制核心,设计了一个电子密码锁系统。系统分为硬件和软件两个部分,硬件部分主要包括键盘模块、密码存储模块、开锁模块、报警模块、复位模块、晶振模块等;软件部分主要包括:初始化程序、LCD显示程序、键盘扫描程序、键盘功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。这种密码锁具有安全性高、成本低、功耗低、易操作等优点。2 设计方案与实现的目标2.1 选用单片机为核心控制由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几 个方面考虑:性能、存、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、性。除了以上一些要考虑的方面,还有一些最基本的比如:中断源的数量和优先级、工作温度围、有没有低电压检测功能、单片机有无时钟振荡器、有无上电复位功能等1。本设计采用AT89C51单片机为主控芯片,外接LCD1602显示器用于显示作用,结合外围电路,组成电子密码锁,系统能完成开锁、超次锁定、修改用户密码等基本的密码锁功能.除此之外,还具有掉电存储、声提示等功能。2.2 设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。当用户需要开锁时,先按键盘启动键之后按键盘的数字键09输入密码。输入6位数密码,然后按下确认键,校对密码的正确性,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;在输入密码时,发现前一位数字输入错误,可以按下删除键删除,然后继续输入正确密码。当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。3 主要芯片介绍3.1 主控芯片AT89C51AT89C51是一种带4K字节FLASH存(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。3.1.1AT89C51芯片的功能AT89C51 提供以下标准功能:4k 字节Flash 闪速存,128字节部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器与时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口与中断系统继续工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.1.2AT89C51的引脚VCC:供电电压GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入。P3口也可作为AT89C51的一些特殊功能口,如下所示: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(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存时,地址锁存允许的输出电平用于锁存地址的低位字节。/PSEN:外部程序存的选通信号。在由外部程序存取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存(0000H-FFFFH),不管是否有部程序存。注意加密方式1时,EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。At89c51芯片结构如图1所示。图1 AT89C51芯片引脚图3.1.3 AT89C51芯片的部结构中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。双时钟指针寄存器:为方便地访问部和外部数据存储器,提供了两个16位数据指针寄存储器:PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。在使用前初始化DPS。电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。存储器结构:MCS-51单片机核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89C51,假如接至Vcc(电源),程序首先执行从地址0000H0FFFH(4KB)部程序存储器,再执行地址为1000HFFFFH(60KB)的外部程序存储器。数据存储器:在AT89C51的具有128字节的部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。看门狗定时器(WDT):WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置。3.1.4 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2AT24C02存储芯片AT24C02是一个2K位串行CMOSE2PROM,部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。2AT24C02芯片结构如图2所示。图2AT24C02芯片引脚图管脚名称 功能A0、A1、A2 器件地址选择SDA 串行数据、地址SCL 串行时钟WP 写保护VCC +1.8V6.0V 工作电压VSS 地表1 AT24C02管脚名称与功能AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的3。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。3.3 LCD1602接口信号说明表2 LCD1602接口信号说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3V0液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极4 系统硬件结构4.1 系统原理框图该设计以AT89C51单片机为主控单元,AT24C02存储芯片为存储单元,矩阵键盘为主输入单元,LCD1602为显示单元,独立按键为模拟功能按键,蜂鸣器为报警装置以与开锁装置完成整个系统设计。系统原理框图如图3所示。AT89C51复位电路开锁电路显示电路报警电路密码存储电路键盘输入电路晶振电路图3 系统原理框图4.2 复位模块单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。当复位按键按下后电容C3通过R3放电,R2的作用在于限制按键按下瞬间电容C3的放电电流,避免产生火花,以保护按键触电位电路设计4-6。复位模块电路如图4所示。图4 复位模块电路图4.3晶振模块单片机XIAL1和XIAL2分别接20uF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。晶振模块电路如图5所示。图5 晶振模块电路图4.4键盘模块键盘输入模块作为AT89C51 单片机电子密码锁设计中关键的部分,主要形式为矩阵式键盘输入,由09 数字键、输入键、确定键、删除键组成。这种行列式矩阵键盘的单片机系统,通过构建M 条列线和N 条行线,组成具有MN 的键盘。若需要进入大门,首先按下输入键,输入6位数密码,然后按下确认键,校对密码的正确性,密码输入错误三次将自动报警;在输入密码时,发现前一位数字输入错误,可以按下删除键删除,然后继续输入正确密码。将AT89C51的并行口P1接44矩阵键盘,以P1.0-P1.3作为行线,以P1.4-P1.7作为列线7。其电路如图4所示。图4 矩阵键盘电路图4.5 显示模块系统显示主要由液晶显示器完成,系统加电后,锁被合上,这时通过观察显示器则知道锁是被合上的,需要输入密码才能进入。开锁时,通过键盘上数字键09 输入密码,每按一下显示器都会显示“*”,最多输入6位和显示6个“*”。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“CORRET CODE DOOR OPEN”,电子密码锁被打开;如果密码不正确,LCD显示屏会显示“CODE WRONG”,密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁的状态。其电路如图5所示。图5 显示模块电路图4.6开锁模块开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。只有用户操作键盘时,单片机的电源端才能得到3V电源,否则单片机处于节电工作方式8。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键09输入密码,最后按下确认键。当用户输入一密码后,单片机自动识码,如果识码不符,则报警。只有当识码正确,单片机才能控制电子锁的微型继电器吸台。当继电器吸台以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。开锁以后,单片机自动清除掉由用户输人的这个密码9。其电路如图6所示。图 6 开锁模块电路图4.7密码存储模块图中R4和R5为上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SDA (数据/地址)和SCL(移位脉冲)与AT89C51单片机传送数据10。其电路如图7所示。图7 密码存储模块电路图4.8报警模块该电路的作用是在密码输入错误的状态下,单片机送出信号使得蜂鸣器响。该电路较为简单,由一个电阻、PNP 三极管和蜂鸣器组成,如图所示。单片机的P3.0 引脚控制三极管的基极b,当P3.0 输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P3.0 输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音,进行报警11。其电路如图8所示。图 8 报警模块电路图5 系统总电路图该设计涉与到的主要器件有:主控芯片AT89C51单片机、LCD1602液晶显示器、AT24C02存储芯片、蜂鸣器等。主要电路有:44矩阵键盘模块、复位模块、报警模块、开锁模块、显示模块、密码存储模块以与晶振模块等。Proteus 环境下的系统总电路如图9所示。图9 系统总电路图6 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。主要程序设计流程图如图10-13所示。开始初始化键盘扫描启动程序键盘扫描键功能程序结束关闭程序NNYYYY Y图10 主程序流程图键功能程序键值09?键值开锁?键值清除?键值设置?键值确认?密码输入程序设置程序清除程序开锁程序确认程序YYYYYNNNN返回N图11 键盘功能流程图Y设置程序初始化按下设置键输旧密码确认程序所输入旧密码正确?输新密码确认程序设置成功输入次数加1次数3?报警程序NY返回确认程序再次输新密码两次新密码输入一样?NYNYYYY图12 密码设置流程图初始化按开锁键输入密码确认程序所输入密码正确?Y开锁程序输入次数加1次数3?报警程序NY开锁成功返回N图13 开锁程序流程图用汇编语言编写的开锁程序,见附录。7 Proteus仿真本设计使用了Proteus 软件进行仿真。优势在于:软硬件设计可同时进行。当硬件还没有制作出来时,利用该软件绘制出电路图,加载编译好的程序,先在电脑上进行连调仿真,发现硬件或软件上的设计错误。大大缩减了设计周期12。7.1仿真过程在Proteus ISIS 编辑窗口中单击元件列表上的“P”按钮,打开“Pick Device”对话框,添加元件。有些元件没有,可以用类似芯片代替,它们的功能是兼容的。如用AT89C51 代替AT89S51,用M24C16 代替AT24C16。绘制好密码锁电路图后,给单片机AT89C51 设置晶振频率为12MHz,加“*.HEX”文件。在编辑窗口下单击“运行”图标或在“Debug”菜单中选择“Execute”,可以看到仿真模拟的结果。7.2 仿真结果系统仿真结果如图14-17所示。图14 密码输入时的仿真结果图图15 密码正确时的仿真结果图图16 密码错误时的仿真结果图图17 修改密码时的仿真结果图8 总结本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,设计方法合理,简单易行,成本低,安全实用,符合日常用锁要求,具有一定推广价值。利用单片机灵活的编程设计与其控制的准确性,通过软件程序来控制整个系统实现电子密码锁的基本功能。该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。可在意外泄密的情况下随时修改密码。性强,灵活性高,特别适用于家庭、办公室、学生宿舍与宾馆等场所。参考文献1 戴文雯 采用AT89C51的电子密码锁的设计J. 航空航天大学学报, 2013,16(4): 31-35.2 任艳艳 基于AT89C51单片机多功能密码锁的研究J. 职业技术学院学报(第17 卷第5期), 2008, 17(5): 5-31.3 辉平, 周国雄 基于Proteus 的单片机系统设计与仿真实例M. 机械工业, 2009.4 贺敬凯, 德新, 管明祥 单片机系统设计、仿真与应用M. 电子科技大学,2011.5 石文轩, 宋薇 基于单片机MCS-51 的智能密码锁设计J. 工程职业技术学院报, 2004, 8(3) : 108-109.6 郭海英.基于单片机的电子安全密码锁的设计J.现代电子技术,2005, (13): 95-97.7 董继成.一种新型安全的单片码锁J.电子技术,2004, 31(3): 58-60.8 茂涛.一种电子密码锁的实现J.电脑,2004, (8).9 周文龙. 基于单片机控制的电子密码锁设计J. 大众商务, 2009, (3) : 108-109.10 董继成. 能防止多次试探密码的单片码锁J. 国外电子元件, 2004, (3): 19-21.11 吴汉清. 单片机做电子密码锁J. 无线电期, 2007,(5): 37-39.12 徐欣, 樊昀. 一种有单片机实现的多功能密码锁J. 计算机应用研究, 1998, 15(3): 113-115.附录: LED1 EQU 6FH BUFF EQU 6EH TIMERS1 EQU 6DH ;输入回车的次数 TIMERS2 EQU 6CH ;报警的次数 LED6 EQU 6AH ;密码缓冲区 PS1 EQU 69H PS2 EQU 78H PS3 EQU 67 PS4 EQU 66H PS5 EQU 65H PS6 EQU 64H PS7 EQU 63H PS8 EQU 62H ;AT24C02读取缓冲区 AT1 EQU 61H AT2 EQU 60H AT3 EQU 5FH AT4 EQU 5EH AT5 EQU 5DH AT6 EQU 5CH AT7 EQU 5BH AT8 EQU 5AH ;按键标志位 F_0 BIT 20HF_1 BIT 21H F_2 BIT 22H F_3 BIT 23H F_4 BIT 24HF_5 BIT 25HF_6 BIT 26HF_7 BIT 27HF_8 BIT 28HF_9 BIT 29H CH_STATE BIT 2AH ;系统更改的状态标志位,为1表示busy FLAG1 BIT 2BH ;功能键标志位,为1表示功能按键。 F_F1 BIT 2CH F_F2 BIT 2DH PSW_F BIT 2EH ;密码是否正确的标志位 ;口资源定义 SPK BIT P2.1WP BIT P3.5 SDA BIT P3.6 ;定义串口数据端 SCL BIT P3.7 ORG 0000H AJMP MAIN ORG 000BH ;AJMP TIMER0 ORG 001BH ;AJMP TIMER1 ORG 0030HMAIN:MOV SP, #70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H CLR F_0 ;清除标志位 CLR F_1 CLR F_2 CLR F_3 CLR F_4CLR F_5CLR F_6CLR F_7CLR F_8CLR F_9 CLR BUF_FULL CLR CH_STATE CLR FLAG1 CLR F_F1 CLR F_F2 CLR PSW_F MOV BUFF,#00H ;调用 LCALL INITPS ;初始化环境 LCALL INITA LCALL XSA ;调用默认显示 MOV TIMERS1,#00H NOP MOV PS1, #01H ;初始化密码111111 MOV PS2, #01H MOV PS3, #01H MOV PS4, #01H MOV PS5, #01H MOV PS6, #01H 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 ;判断按键功能。 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, TIMERSCLR CSUBB A, #03H JNZ PS_4MOV 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;*开门子程序 * 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 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 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;*各类子程序*CLR_BUF:MOV R7, #06H MOV R0, #6FH LOOP1:MOV A, #00H MOV R0, A DEC R0 DJNZ R7,LOOP1 RET;*初始化显示缓冲区以与其他缓冲区* INITPS:PUSH ACC PUSH PSW MOV R7, #06H MOV R1, #PS1 MOV A, #00HINIT_PS:MOV R1, A DEC R1 DJNZ R7, INIT_PS POP PSW POP ACC NOP RET INITAT:PUSH ACC PUSH PSW MOV R7,#06H MOV R1,#AT1 MOV A, #00HINIT_AT:MOV R1, A DEC R1 DJNZ R7, INIT_AT MOV TIMERS,#00H ;密码输入的次数清零。 POP PSW POP ACC RET;*检验密码正误* C_PSW:PUSH PSW PUSH ACC MOV R2,#06H MOV R0,#PS1 MOV R1,#AT1 C_P:CLR C MOV A,R0 SUBB A,R1 JNZ RETURN DEC R0 DEC R1 DJNZ R2,C_P NOP SETB PSW_F AJMP EXIT7 RETURN:CLR PSW_F EXIT7:NOP POP ACC POP PSW RET;锁定,鸣笛子程序 LOCK_1M:MOV R4,#3CH ;锁定1分钟 M1_LOOP:LCALL SEC DJNZ R4,M1_LOOP NOP RET WARN2S:PUSH PSW PUSH ACC MOV R5, #14H ;调用20次BP,报警2s WARN:LCALL BP DJNZ R5,WARN NOP POP ACC POP PSW NOP RET BP:CLR SPK ;鸣笛子程序LCALL T100MSDSETB SPK NOP RET ;* 显示子程序 * ;锁定状态显示。 XSA:PUSH ACC PUSH PSW MOV A, TIMERS1 MOV DPTR, #TAB MOVC A, A+DPTR MOV SBUF, A ;送已经输入密码的次数 JNB TI, $ CLR TI MOV SBUF, #0FEH ;送短线 JNB TI, $ CLR TI MOV SBUF, #0FEH ;送短线 JNB TI, $ CLR TI ;送F MOV SBUF, #78H JNB TI, $ CLR TI MOV SBUF, #78H JNB TI, $ CLR TI MOV SBUF, #11H JNB TI, $ CLR TI POP PSW POP ACC RET ;成功开锁状态显示 XSB:PUSH ACC PUSH PSW MOV A, TIMERS1 MOV DPTR, #TAB MOVC A, A+DPTR MOV SBUF, A JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #0FEH JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI MOV SBUF, #10H JNB TI, $ CLR TI POP PSW POP ACC RET ;密码输入与修改状态 XSC:PUSH ACC PUSH PSW LCALL KILLXS SETB RS1 ;切换到第三组寄存器。防止操作数读取错误。 MOV R6, TIMERS MOV A, R6 SUBB A, #01H JNC SC0 JZ SC1 SC0:MOV SBUF, #0FEH JNB TI, $ CLR TI SC1:MOV A, R6 SUBB A, #02H JNC SC11 JNZ SC2 SC11:MOV SBUF,#0FEH JNB TI, $ CLR TI SC2:MOV A, R6 SUBB A, #03H JNC SC22 JNZ SC3 SC22:MOV SBUF, #0FEH JNB TI, $ CLR TI SC3:MOV A, R6 SUBB A, #04H JNC SC33 JNZ SC4 SC33:MOV SBUF, #0FEH JNB TI, $ CLR TI SC4:MOV A, R6 SUBB A, #05H JNC SC44 JNZ SC5 SC44:MOV SBUF, #0FEH JNB TI, $ CLR TI SC5:MOV A, R6 SUBB A, #06H JNC SC55 JNZ SC6 SC55:MOV SBUF, #0FEH JNB TI, $ CLR TI SC6:MOV A, R6 SUBB A, #07H
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!