《电子密码锁设计方案.doc》由会员分享,可在线阅读,更多相关《电子密码锁设计方案.doc(55页珍藏版)》请在三一办公上搜索。
1、电子密码锁设计方案第一章 总体设计方案一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 1.1 系统结构 本系统是用以AT89C51为核心的单片机控制,主要是由单片机系统、矩阵键盘、LCD显示和报警系统组成。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、
2、声光提示甚至添加遥控控制功能。1.2 系统组成本系统由单片机系统、矩阵键盘、LCD显示、密码存储、复位电路、晶振电路、开锁部分和报警系统组成。系统能完成开锁、超时报警、修改用户密码基本的密码锁的功能。矩阵键盘主要判断键盘上有无键按下、去抖动影响、逐列扫描键盘以确定被按键的位置号即行列号、形成键值并将键值存入指定的数据缓冲区中、判断闭合的键是否释放等功能。密码修改部分要求密码要输入两次,程序将两次输入的密码比较一致时,即用此密码代替原先的密码,如果两次输入的密码不一致,则重复操作。这样就避免了修改密码的随机性。自动报警部分是三次输入的密码不一致就会发生报警信息,这样能有效的避免一些不法分子的行为
3、,保护自身的利益。显示部分主要是采用LCD显示,是一种数字显示技术。与传统的阴极射线管(CRT)相比,LCD占用空间小,低功耗,低辐射,无闪烁,降低视觉疲劳。不足:与同大小的CRT相比,价格更加昂贵。1.3 设计方案选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警20秒,若电路连续报警三次,电路将锁定键
4、盘2分钟,防止他人的非法操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。方案二:采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开
5、发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键09输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入
6、无误后按确认键使新密码将得到存储,密码修改成功。通过比较以上两种方案,单片机方案有较大的活动空间,控制灵活准确性好且保密性强不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案作为此次设计的方案。第二章 硬件系统设计2.1 单片机AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可
7、擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2.1 AT89C51引脚图2.2 设计原理电源电路及UPS矩阵键盘控制 89C51 单片机复位电路延时报警控制电路密码存储电路开锁控制电路晶振电路显示电路图2.2 总体设计框图本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输
8、入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、
9、EEPROM读写程序和延时程序等组成。其原理框图如图2.2所示。2.3 电路总体构成由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。基于以上因素本设计选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4*4矩阵键盘,显示部分选择字符型液晶显示LCD1602,密码存储部分选
10、用AT24C02芯片来完成,密码输入正确则开锁成功,密码三次输入错误就会报警;当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键使新密码将得到存储,密码修改成功。其原理图如图2.3所示:图2.3 设计总体电路图2.4电源部分2.4.1直流稳压电源电路在电子电路中,通常都需要电压稳定的直流电源供电。直流电源部分为系统各部分提供稳定、可靠的直流电源。它由变压,整流,滤波,稳压四个部分组成。1、电源变压器。由于各种电子设备要求直流稳压电源提供不同幅值的直流电压,而市电提供的交流电压一般为220V(或380V),因此需要利用变压器先
11、将市电的电压变换成所需要的交流电压,再将变换后的交流电压整流、滤波和稳压,最后获得所需要的直流电压。2、整流电路。整流电路是利用具有单向导电性的整流器件(如整流二极管、晶闸管),将大小、方向变化的正弦交流电变换成单向脉动的直流电。这种单向脉动直流电压含有很大的纹波成分,一般不能实用。3、滤波电路。滤波电路的主要任务是将整流后的单向脉动直流电压中的纹波成分尽可能滤除掉,使其变成平滑的直流电。滤波电路通常由电容、电感等储能元件组成。4、稳压电路。它能在电网电压和负载电流的变化时,保持输出直流电压的稳定。它是直流稳压电源的重要组成部分,决定着直流电源的重要性能指标2.4.2密码锁电源电路图2.4 电
12、源输入电路原理图密码锁主控制部分电源需要用5V直流电源供电,其电路如图2.4所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和
13、负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。2.5 键盘输入矩阵式键盘的结构与工作原理:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图2.5所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。图2.5 键盘输入原理图矩阵
14、式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所述。矩阵式键盘的按键识别方法:确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如图2.5所示键盘,介绍过程如下。判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状
15、态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。下面给出一个具体的例子:如图2.5所示。89C51单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。列线P1.0-P1.3分别接有4个上拉电阻到正
16、电源+5V,并把列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。4根行线和4根列线形成16个相交点。检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出:P1.7 1 1 1 0P1.6 1 1 0 1P1.5 1 0 1 1P1.4 0 1 1 1在每组行输出时读取P1.0-P1.3,若全为“1”
17、,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值为了保证键每闭合一次CPU仅作一次处理,必须却除键释放时的抖动。2.6密码存储部分2.6.1 AT24C02AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT
18、24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。图2.6(a)AT24C02管脚图2.6.2密码存储电路图2.6(b)中AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89C51试验开发板上它们都接地,第8脚和第4脚分别为正
19、、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,在AT89C51试验开发板上和单片机的P3.7连接。第6脚SCL为串行时钟输入线,在AT89C51试验开发板上和单片机的P3.6连接。SDA和SCL都需要和正电源间各接一个5.1K的电阻上拉。第7脚需要接地。图2.6(b)密码存储电路原理图AT24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。2.7复位部分2.7.1 复位电路的介绍复位操作有上电自动复位和按键手动复位两种
20、方式:1、上电自动复位上电自动复位时在加电瞬间电容通过充电来实现的,其电路如图2.7a所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。关于参数的选定,在振荡稳定后应保证复位高电平持续时间(即正脉冲宽度)大于2个机器周期。当采用的晶体频率为6MHZ时,可取C为22F,R为K;当采用晶体为12MHZ时,可取C为10F,R为8.2K.如果上述电路复位不仅要使点单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻、电容参考值应作少许调整。对于COMS型的89C51,由于
21、在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外界电容减至1F。2、手动复位所谓手动复位,是指通过接通以按钮开关,使单片机进入复位状态。系统上电运行以后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位组合,其电路如图2.7所示。 图2.7(a )上电复位 图2.7(b )按键电平复位复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值进行实验。2.7.2复位电路此次设计主要采用按键电平复位,单片机复位是使CP
22、U和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。在复位期间(即RST为高电平期间),P0口为高组态,P1P3口输出高电平;外部程序存储器读选通信号PSEN无效。地址锁存信号ALE也为高电平。根据实际情况选择如图4-6所示的复位电路。该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻R上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状
23、态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。增加手动复位按键是为了避免死机时无法可靠复位。当复位按键按下后电容C1通过R5放电。当电容C1放电结束后,RST端的电位由R5与R6分压比决定。由于R53?报警程序NYNY返回确认程序再次输新密码两次新密码输入相同?NY图3.3 密码修改流程图3.4 密码比较判断模块初始化按开锁键输入密码确认程序所输入密码正确?Y开锁成功开锁程序输入次数加1次数3?报警程序返回NYN该模块的功能是将键盘输入的密码与设定的密码进行比较,如果密码正确则开锁;若不正确,则密码输入次数计数单元计数如达不到3次,返回键盘扫描模块
24、;若计数已达3次,则调用自动报警模块。图3.4 密码判断流程3.5自动报警模块该模块采用软件延时的方法, 改变单片机P2.1引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音,达到现场报警的目的另外,改变P2.1输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。SND:SETB P2.1 ;P2.1输出高电平,启动蜂鸣器鸣叫MOV R7,#1EH ;延时30msDL:MOV R6,#0F9HDL1:DJNZ R6,DL1;小循坏延时1msDJNZ R7,DLCLR P2.1 ;P2.1输出低电平,停止蜂鸣器鸣叫RET第四章 总结总结与致谢应分开与体会在大学学习的这段
25、期间内,知识是通过一门门独立的课程传授给我们的。而实际问题能够顺利的得到解决,不但需要多方面的知识,而且还需要对这些知识综合地加以运用。所以此次毕业设计既是学习的过程,也是实践的过程,不仅对所学的知识加以了巩固和延伸。也让我学会慎密、全面的考虑问题,抓住主要矛盾加以解决的思维方法和围绕问题多方设法以求得解决的顽强意志。大学生活使我从一个懵懂无知的少年变成了可以勇敢面对人生的强者,无论是在思想上还是在专业课的学习上,电子电气系的老师和同学们给予了我极大的帮助,在这里我要对老师们无私的关怀和帮助表示衷心的感谢!对帮助过我的同学们表示真挚的感谢! 参考文献1 石文轩,宋薇.基于单片机MCS一51的智
26、能密码锁设计M.武汉工程职业技术学院学报,2004,(01);2 祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002,(01);3 叶启明.单片机制作的新型安全密码锁J.家庭电子,2005,(10);4 郭海英.基于单片机的电子安全密码锁的设计M.现代电子技术,2005,(13);5 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004,(03);6 董继成.一种新型安全的单片机密码锁J.电子技术,2004,(03);7 祖龙起,刘仁杰,孙乃凌.一种新颖的电子密码锁J.电子世界,2001,(10);8 李明喜.新型电子密码锁的设计J.机电产品开发与创新,2004,(0
27、3);9 杨茂涛.一种电子密码锁的实现J.福建电脑,2004,(08);10 瞿贵荣.实用电子密码锁J.家庭电子,2000,(07);11 ATmega.ATmega8L-8AC,2006,(01);12 Wireless World,1998,vol、84,No、1509,p69;13 王千.实用电子电路大全M,电子工业出版社,2001,p101;14 何立民.单片机应用技术选编M,北京:北京航空大学出版社,1998;15 李华.MCS-51系列单片机使用接口技术M,北京航空航天大学出版社,1993;16 彭为.单片机典型系统设计实例精讲M,北京:电子工业出版社,2006;17 潘永雄.新编
28、单片机原理与应用M,西安:西安电子科技大学出版社,2003;18 童诗白,华成英.模拟电子技术基础M,北京:高等教育出版社,2000;19 阎石主.数字电子技术基础M,北京:高等教育出版社,1998;20 李朝青.单片机原理及接口技术 M,北京:北京航空航天大学出版社,2005;21 李瀚荪.电路分析基础M,北京:高等教育出版社1991;22 周润景,袁伟亭,景晓松。Prtoeus在MCS-51&ARM7系统中的应用百例M,北京:电子工业出版社,2006;附录 电子密码锁程序清单S1OK *;显示缓冲区;LED1 EQU 6FHBUFF EQU 6EHTIMERS1 EQU 6DH ;输入回车
29、的次数TIMERS2 EQU 6CH ;报警的次数TIMERS EQU 6BH ;输入数字的位数;LED6 EQU 6AH;密码缓冲区PS1 EQU 69HPS2 EQU 68HPS3 EQU 67HPS4 EQU 66HPS5 EQU 65HPS6 EQU 64H;AT24C02读取缓冲区AT1 EQU 63HAT2 EQU 62HAT3 EQU 61HAT4 EQU 60HAT5 EQU 5FHAT6 EQU 5EH;按键标志位F_1 BIT 20HF_2 BIT 21HF_3 BIT 22HF_4 BIT 23HBUF_FULL BIT 24H ;密码已经够六位的标志位,为1表示满CH_
30、STATE BIT 25H ;系统更改的状态标志位,为1表示busyFLAG1 BIT 26H ;功能键标志位,为1表示功能按键。F_F1 BIT 27HF_F2 BIT 28HPSW_F BIT 29H ;密码是否正确的标志位;口资源定义SPK BIT P2.1JDQ BIT P2.3SDA BIT P2.4 ;定义串口数据端SCL BIT P2.5;发光二极管灯L1 BIT P1.0L2 BIT P1.1L3 BIT P1.2;ORG 0000HAJMP MAINORG 000BH;AJMP TIMER0ORG 001BH;AJMP TIMER1ORG 0030HMAIN:MOV SP,
31、#70HMOV TMOD, #11HMOV TH0, #3CHMOV TL0, #0B0HMOV TH1, #3CHMOV TL1, #0B0HCLR F_1 ;清除标志位CLR F_2CLR F_3CLR F_4CLR BUF_FULLCLR CH_STATECLR FLAG1CLR F_F1CLR F_F2CLR PSW_FMOV BUFF,#00H ;调用LCALL INITPS ;初始化环境LCALL INITATLCALL XSA ;调用默认显示MOV TIMERS1,#00HNOPMOV PS1, #11H ;初始化密码830620MOV PS2, #0AHMOV PS3, #02
32、HMOV PS4, #13HMOV PS5, #0BHMOV PS6, #02HSTART:NOP ;程序开始LCALL CH_KEY ;检查键盘AJMP START ;返回CH_KEY:LCALL KS ;检查有没有按键按下JNZ LK1AJMP CH_KEYLK1:LCALL T12MSACALL KSJNZ LK2RETLK2:NOPLCALL SBIE ;按键识别子程序MOV BUFF, A ;送缓冲区以识别是数字键还是功能键?LCALL CH_KF ;判断按键功能。JB FLAG1 ,KEY_FUN ;标志为1,则为功能键;*数字按键输入并且存放到缓冲区内等待比较*G:NOP ;设一
33、标志,辨别输入是否满;SETB TR0INC TIMERS ;输入数字的位数MOV A, TIMERSCLR CSUBB A, #01HJNZ PS_2MOV PS1, BUFF ;依照顺序存放密码AJMP NEXTPS_2:MOV A, TIMERSSUBB A, #02HCLR CJNZ PS_3MOV PS2, BUFFAJMP NEXTPS_3:MOV A, TIMERSCLR CSUBB A, #03HJNZ PS_4MOV PS3, BUFFAJMP NEXTPS_4:MOV A, TIMERSCLR CSUBB A, #04JNZ PS_5MOV PS4, BUFFAJMP NE
34、XTPS_5:MOV A, TIMERSCLR CSUBB A, #05JNZ PS_6MOV PS5, BUFFAJMP NEXTPS_6:MOV A, TIMERSCLR CSUBB A, #06HJNZ CH_KEYMOV PS6, BUFFNEXT:LCALL XSCMOV R7, TIMERS ;比较输入的次数。CJNE R7, #06H ,FULLFULL:JC NEXT9SETB BUF_FULLMOV TIMERS,#06HCLR L3NOPCLR P2.1LCALL T100MSDSETB P2.1NOPAJMP CH_KEYNEXT9:CLR P2.1 ;密码输入一位,鸣叫
35、一声。CLR L3LCALL T100MSD ;延时100msSETB L3SETB P2.1AJMP CH_KEY;*功能按键比较并且跳转*KEY_FUN:CLR FLAG1CLR CMOV A, BUFFSUBB A, #03H ;按键CL跳转JNZ EN_CAJMP CLEN_C:CLR CMOV A, BUFF ;按键EN跳转SUBB A, #00HJNZ F1_CAJMP ENF1_C:CLR CMOV A, BUFFSUBB A, #1BHJNZ F2_CAJMP FU1F2_C:CLR CMOV A, BUFFSUBB A, #1AHJNZ F3_CAJMP FU2F3_C:CLR CMOV A, BUFFSUBB A, #19HJNZ F4_CAJMP FU3F4_C:CLR CMOV A, BUFFSUBB A, #18HJZ FU4EXIT8:NOPLJMP CH_KEY; *开门子程序 *CL:NOPSETB L3MOV BUFF, #00H ;消密码缓冲MOV TIMERS,#00HLCALL INITPS ;消除AT