基于89c51电子密码锁设计_第1页
基于89c51电子密码锁设计_第2页
基于89c51电子密码锁设计_第3页
基于89c51电子密码锁设计_第4页
基于89c51电子密码锁设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1设计任务 2 2总体方案设计32. 1硬件组成32.2方案论证72.3总体方案73硬件电路设计83. 1晶振电路8 3. 2复位电路93. 3显不电路10 4系统设计13 4.1主程序设计13154. 2键盘子程序图14 4.3密码设置软件设计4. 4开锁软件设计16 5调试175.1硬件调试18 5.2软件调试18 6总结18 参考文献19 附录1:系统原理图24 附录2:程序清单 251设计任务根据所学课程单片机微型计算机原理,应用及接口技术设计一个基于 89c51的电子密码锁设计,程序语言自行选择。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开 关的闭合,完成开

2、锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品, 也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核 心,通过编程来实现的。其性能和安全性己大大超过了机械锁。日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一 些个人资料的保存多以加锁的办法来解决。目前门锁主耍用弹子锁,其钥匙容易 丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高, 且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即 大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们 对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运

3、而生。由于电子 器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依 靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于 来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051 系列单片机来实现的,但密码简单,易破解。随着电子元件的进-步发展,电子 密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强, 由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密, 用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们 对保密性需求的提高出现丫越来越多的电子密码锁。出于安全、方便等方面的需 要许多电子

4、密码锁己相继问世。但这类产品的特点是针对特定奋效卡、指纹或声 音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、 房间等。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙 的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森 严的金库,需要使用复合信息密码的电子防盗锁,组合使用信息也能够使电子防 盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。 其特点如下:1)保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降。3

5、)误码输入保护,当输入密码多次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。2总体方案设计2. 1硬件组成1.蜂鸣器:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机, 打印机,复印机,报警器,电子玩具,汽车电子设备,电话机,定时器等电子产 品屮做发声器件。蜂鸣器实物图如图2.1所示阁2. 1蜂鸣器实物阁2. 4*4键盘:此次实验屮键盘系统采用的是行列式非编码键盘,这种键盘屮,没根行线和列线 的交叉处都接有一个按键,每当某个按键被按下时与这个按键相连的行线和列线 就会接通,否则处于断开状态。这种4*4行列式键

6、盘只需要4条行线和4条列线, 共需要8条1/0端口线。在pl. ol. 7 口都为低电平时pl. (tp1. 3置高电平, 同时检测p1.0p1.3是否都为高电平,若不都为高电平则说明有键按下。因为当 有键按下时,相应的端口接通都为低电平。此时将行列高低电平互换,再检测p1.o1.7,判断是哪个键按下。键盘实物图如图2. 2所示s5 s6 s7noon10ooo s13 s14 s15«>6图2. 2键盘实物图3. lcd显不器:lm016l液晶模块采用hd44780控制器,hd44780只有简单而功能较强的指令集, 可以实现字符移动,闪烁等功能,lm016l与单片机mcu通讯

7、可采用8位或4位 并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(ir)和数 据寄存器(dr)忙标志(bf),显示数ram (ddram),字符发生器roma (cgorom) 字符发生器ram (cgram),地址计数器ram (ac)。ir用于寄存指令码,只能写入 不能读出,dr用于寄存数据,数据由内部操作自动写入ddram和cgram,或者暂 存从ddram和cgram读出的数据,bf为1时,液晶模块处于内部模式,不响应 外部操作指令和接受数据,ddtam用来存储显示的字符,能存储80个字符码,cgrom由8位字符码生成5*7点阵字符160屮和5*10点阵字符32种.

8、8位字 符编码和字符的对应关系,可以查看参考文献(30)中的表4. cgram是为用 户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或 者4个5*10点阵字符,ac可以存储ddram和cgram的地址,如果地址码随指令 写入ir,则ir自动把地址码装入ac,同时选择ddram或cgram但愿,lm016l液晶模块的引脚功能图如图2. 3所示:1cd1 從 图2. 3液晶模块的引脚功能图 4.单片机at89c51这是针对工业控制而推山的单片计算机,其最大特点是价格低廉、体积小、重量轻,适合于嵌入式的应用。其功能强大,性价比高,能很好满足此次设计的要求。 其管脚分布图如图2

9、. 4所示p «07pi.123fip «233*p 1ab i417pi.4匚s:j6plaspi.y34p trvbb »扇3ir3tc:fl12pd01031(txd)p3111irwr?r)p3.241 22flp33isp3.4142t<t1>p3l:isp3.1 a25rr17z4xial2 c23xtal 115z2gno21p2.t2.0p2.4p2 2 p2 1 rs.ovccpclo adoj 1 ad i)f0.3 | ao3) p0.4 1ao4) p0.5 1ad5)f*0.7 f ao7) e aj vpp ate/prog

10、 pstna9)as*at89c51图2. 4单片机引脚图管脚说明:vcc:供电电压。gnd:接地。p0 口: p0 口为一个8位漏级开路双向i/o 口,每脚可吸收8ttl门电流。 当p1门的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存 储器,它可以被定义为数据/地址的第八位。p1 口: p1 口是一个内部提供上拉电阻的8位双向i/o 口,p1 口缓冲器能接收输 出4ttl门电流。p1 口管脚写入1后,被内部上拉为高,可用作输入,p1 口被外 部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。p2 n: p2 口为一个内部上拉电阻的8位双向i/o 口,p2 口缓冲器可接收

11、,输出 4个ttl门电流,当p2 口被写“1”吋,其管脚被内部上拉电阻拉高,且作为输 入。并因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由于内部 上拉的缘故。p2门当用于外部程序存储器或16位地址外部数据存储器进行存取 时,p2 口输出地址的高八位。在给出地址“1”吋,它利用内部上拉优势,当对 外部八位地址数据存储器进行读写时,p2 口输出其特殊功能寄存器的内容。p3 口: p3 口管脚是8个带内部上拉电阻的双向i/o 口,可接收输出4个ttl 门电流。当p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,p3门将输出电流(ill)这是由于

12、上拉的缘故。p3 口也可作为at89c51的一些特殊功能口,如下所示:p3. 0 rxd (串行输入口)p3. 1 txd (串行输出口)p3.2 /into (外部中断0)p3. 3 /int1 (外部中断1)p3.4 t0 (记吋器0外部输入)p3.5 t1 (记时器1外部输入)p3. 6 /wr (外部数据存储器写选通)p3. 7 /rd (外部数据存储器读选通)p3门同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件吋,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字节。在flash编程

13、期间,此引脚用于输入编程脉冲。在平时,ale端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外 部输出的脉冲或用于定吋0的。然而要注意的是:每当用作外部数据存储器时, 将跳过一个ale脉冲。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信 号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(ooooh-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将

14、内部锁定为reset;当 /ea端保持高电平时,此间内部程序存储器。xtal1:反向振荡放大器的输入及内部吋钟工作电路的输入。xtal2:来自反向振荡器的输出。2.2方案论证由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比 较,合理选择,以期获得最佳的性价比。一般来说在选取单片机吋从下面几个方 面考虑:性能、存储器、运行速度、i/o 口、定时/计数器、串行接口、模拟电 路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还 有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检 测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程

15、屮单片机 还受到:开发工具、编程器、开发成本、开发人员的适疲性、技术支持和服务等 等因素。基于以上因素木设计选用单片机at89s51作为木设计的核心元件,利用 单片机灵活的编程设计和丰富的1/0端口,及其控制的准确性,实现基本的密码 锁功能。2.3总体方案在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接 at24c02芯片用于密码的存储,外接lcd1602显示器用于显示作用。当用户需要 开锁时,先按键盘开锁键之后按键盘的数字键0 9输入密码。密码输完后按下 确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次 密码错误则发出报警;当用户需要修改密码时,先按k

16、键盘设置键后输入原来的 密码,只奋当输入的原密码正确后才能设置新密码。新密码输入无误后按确认键 使新密码将得到存储,密码修改成功。总结构图如图2. 5所示图2.5总结构图3硬件电路设计3.1晶振电路at89c51引脚xtal1和xtal2与晶体振荡器及电容c2、c1按图3_7所示方式连 接。晶振、电容c2/c3及片内与非门(作为反馈、放大元件)构成了电容三点 式振荡器,振荡信号频率与晶振频率及电容cl、c2的容量有关,但主要由晶振 频率决定,范围在033mhz之间,电容c2、c3取值范围在530pf之间。根据 实际情况,本设计中采用12mhz做系统的外部晶振。电容取值为20pf。晶振电 路原理

17、图如图3.1所示oktext>20pf<text>x?crystal<text>图3. 1晶振屯路股理图3.2复位电路单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从 这个状态开始工作,例如复位后pc = 0000ii,使单片机从第一个单元取指令。 无论是在单片机刚开始接上电源吋,还是断电后或者发生故障后都要复位。在复 位期间(即rst为高电平期间),p0 口为高组态,p1p3 口输出高电平;外部程 序存储器读选通信号psen无效。地址锁存信号ale也为高电平。根据实际情况 选择如图3. 2所示的复位电路。该电路在最简单的复位电路下增加了手

18、动复位按 键,在接通电源瞬间,电容c1上的电压很小,复位k拉电阻上的电压接近电源 电压,即rst为高电平,在电容充电的过程中rst端电压逐渐下降,当rst端的 电压小于某一数值后,cpu脱离复位状态,由于电容c1足够大,可以保证rst 高电平有效时间大于24个振荡周期,cpu能够可靠复位。增加手动复位按键是 为了避免死机时无法可靠复位。当复位按键按下后电容c1通过r5放电。当电容 c1放电结束后,rst端的电位由r11与r15分压比决定。由于r11r15因此rst 为高电平,cpu处于复位状态,松手后,电容c1充电,rst端电位下降,cpu脱 离复位状态。r11的作用在于限制按键按下瞬间电容c

19、1的放电电流,避免产生火花,以保护按键触电。复位电路原理图如3. 2所示3.3显不电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器lcd 1602 取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状 态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初 始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数 字键0 9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就 显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话,lcd 子显示“right”,单片机其屮p2.0引角会输出低电平,使三极管t

20、2导通,电磁 铁吸合,电子密码锁被打开,如果密码不正确,lcd显示屏会显示“error”,p2. 0 输出的是高电平,电子密码锁不能被打开。通过lcd显示屏,可以清楚的判断出 密码锁所处的状态。显示电路原理图如3. 3所示u?19>xtal118xtal2rst2s.31psenaleeap1.0 p1.1 p12 p13 p1 4 p1.5poo/adopo.1/ad1po2/ad2p0.3/ad3po.4zad4po.5yad5p0.6/ad6po.7/ad7p2.0/a8r2.1/a9r2.2/a10r2.3/a11r2.4za12r2.5/a13r2.6/a14p2.7/a15p

21、3xvrxdp3.1ftxdr3_2/1nt0r3.3nntir3.4/t0-tern图3. 3显示电路原理图3.4键盘输入电路由于木设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式 按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上, 密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多i/o 口。 本设计屮使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用, 比如清空显示功能等。键盘的每个按键功能在程序设计中设置。其大体功能(看 键盘按键上的标记)及与单片机引脚接法如图3-4所示:图3. 4键盘输入原理图3.5报警电路报警部分由陶瓷压电发

22、声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确吋,不发声直接开锁,当密码输入错 误时,单片机的p2. 1引脚为低电平,三极管t3导喇叭发出噪鸣声报警。报警电 路图如图3. 5所示图3. 5报警电路原理图4系统设计4.1主程序没计主程序流程:开始接上电源,程序进行初始化设置,然后在键盘上输入密码, 此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否 修改密码,若要修改密码,先输入旧密码,密码正确后设置新密码,错误时报警, 需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。然后)5动程 序,进行保护,再次在键盘上输入密码,系统

23、进行扫描,如果和之前一样,则执 行相同程序,如不是,则执行另一种程序。主程序流程图如图4.1所示不丌锁图4.1主程序流程图4.2键盘子程序图按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对 应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时 进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。键盘 程序流程图如图4. 2所示返冋图4.2按键功能流程图4.3密码设置软件设计密码设置流程图如4. 3所示,开始按下设置键,输入旧密码,如果错误累计三次, 进行报警程序。如果输入正确,可以修改密码,确认后再次输入新密码,如果两 次输入一样,则输入成

24、功。如果两次输入的新密码不一样,则修改密码失败, 重新返回设置新密码。图4. 3密码设置流程图4.4开锁软件设计开锁流程图,开始吋按开锁键,输入密码,如果输入正确,则幵锁成功。如果输 入错误累计达到三次,则执行报警程序。其开锁流程图如图4. 4所示开锐图4. 4开锁流程图5调试报螯程序返回5.1硬件调试单片机应用系统的硬件调试和软件调试是分不开的.许多硬件故障只有通过软、 硬件联调才能发现,但一般是先排除系统中比较明显的硬件故障后才和软件一起 联调。(1) 元器件错误元器件错误的原因有器件损坏或性能不符合要求,电解电容、二极管的极性接 反或集成块装反等。(2) 可靠性差应用系统可靠性差的原因很

25、多,如内部和外部的干扰、电压纹波系数过大、 器件负载过重等均会造成系统的可靠性差。另外,走线和布置的不合理也会造成 系统可靠性差。(3) 电源故障电源故障包括:电压值不符合设计要求、电源功率不足、负载能力差、纹波太重 等。硬件调试办法:脱机调试是在加电前,先用万用表等工具,按图纸仔细核对线路是否正确,并 对元器件的安装、型号、规格等进行仔细检查,特别是有无走线之间相互短路等。5.2软件调试程序在keil c51上调试,采用模块程序设计技术,则逐个模块调好后再进行系统 程序总调。对于模块结构程序.要一个个子程序分别调试。调试时,一定要符合入口条 件和出口条件,调试可用单步运行和断点运行方式,通过

26、检查用者系统的cpu现 场情况、ram的内容和i/o 口的状态,检测程序执行结果是否符合设计耍求,有 无循环错误、有无机器码错误以及转移地址的错误,同时,还可以发现系统中存在 的硬件设计错误和软件算法错误。6总结通过对该课题的研宄,加深对所学知识的理解,提高对课外知识的学习力,增强知识的应用能力,提高解决实际问题的能力,培养自我创新意识。积累实践 经验,为以后的发展打下基础,也为以后我们自己在这方面的发展打下 基础,并能够在这方面培养自己的兴趣。在设计中我们必须首先熟悉和掌握单片机的结构及工作原理,单片机的接口 技术及相关外围芯片的外特性,控制方法。以单片机核心的电路设计的基本方法 和技术了解

27、表关电路参数的计算方法。单片机不是完成某一个逻辑功能的芯片, 而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算 机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 同时,学习使用单片机了解计算机原理与结构的最佳选择。目前单片机渗透到 我们生活的各个领域,儿乎很难找到哪个领域没有单片机的踪迹。导航装置, 飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时 控制和数据处理,广泛使用的各种锊能1c卡,民用豪华轿车的安全保障系统, 录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都 离不开单片机。更不用说自动控制领域的机器

28、人、智能仪表、医疗器械了。因此, 单片机的学习、幵发与应用将造就一批计算机应用与智能化控制的科学家、工程 师。随着单片机的广泛应用,将大大促进各领域的技术更新,向自动化、小型化、 裨能化方向迈进。而对于我们来说,我们这代人的目标和任务是把这些高科技产 品更升一个层次。参考文献11:张迎新.单片微型计算机原理,应用及接口技术.北京:国防工业出版社 2:伟福lab6000系列单片机仿真实验系统使用说明书 【3】:阎石.数字电子技术基础.北京:高等教育出版社。附录1:系统原理图ilm016ls 2 5u s5b8aaa&sw1inpr1710kr110kc1ih20pfc220pfsvsta

29、lu11918cjr2 n r3 h r4 n r5 h r6 h r7 n 10k i i 10k i i 10k i i ick i i 10k i i ick1=1-.>or810r22_31xtal1xtal2rstpsgnaleha1 .01 . 11 221/«1 .51 .61 .7 p1p1p1p1p1p1p1p1at89c51pogaoopo.i/aoip0.2/ao2p0.3/ao3p0.4.-aq4p0.5/ad5p0.6/ao6p0.7zao7p2 0.'a8 p2.1/a9 p2.2/a1o p2.3/a11 p2.4/a12 pwa13 p2

30、.0/a14 p2.7/a15p3 o.axo p3.1/txo p3.的画 pa.aintt p3.4/i0 p3 sat p3.6wr p3.7.rd393337363534333210_n14jt16r910kr1010klr1810kr11 ii r1210kls1r13n r1510k i 10kflag1bit2biif_f1bit2chf_f2bit2dhpsw_fbit2eh口资源定义密码是否正确的标志位附录2:程序淸单显示缓冲区led1equ6fiibuffeql'6ehtimers1equ6dh;输入回车的次数timers2equ6ch:报警的次数lrd6equ6a

31、h密码缓冲区ps1eql69hps2eql'78hps3equ67hps4equ66hps5equ6511ps6eql64hps7eql'63hps8equ62hat24c02读取缓冲区atiequ6111at2eql60hat3eql'5fhat4equ5ehat5equsdhat6equ5ciiat7eql5bhat8eql'5ah按键标志位f_0bit20hf_1bit2111f_2bit22hf_3bit23hf_4bit24hf_5bit25hf_6bit2611f_7bit27hf_8bit28hf9bit29hch state bit 2ah;系统

32、更改的状态标志位,为1表示busy;功能键标志位,为1表不功能按键spkbitp2. 1wpbitp3. 5sdabitp3. 6sclbitp3. 7org0000hajmpmainorgooobh;ajmpttmeroorg001bii:ajmptimer1org0030hmain:movsp,#70hmovtmod,#11hmovtiio,#3chmovtlo,#0b0hmovth1,#3chmovtl1,#0b0hclrf_0clrf_1clre_2clrf_3clrf_4clrf_5clrf_6clre_7clrf_8clrf_9clrbuf_fullclrcilstateclrel

33、ag1clrf_f1clrf_f2clrpsw_fmovbuff, #0011;清除标志位:调用;定义串ui数据端lcalllcall 1n1tps;初始化环境lcall initatxsa;调用默认显示mov ttmers1,#ooh nopmov psi, #11h mov ps2, #oah mov ps3, #02h mov ps4, #13h;初始化密码830620movps5, #obhmovps6, #02hstart:nop:程序开始lcallch_kry;检杏键盘ajmpstart:返回ch_key:lcallks;检查有没有按键按下jnzlk1ajmpch_krylk1:l

34、callt12msacallksjnzlk2retlk2:noplcallsbie:按键识别子程序movbuff,a;送缓冲区以识别是数字键还是功能键?lcallcii_kf:判断按键功能。jbelag1,key.fun :标志为1,则为功能键本*数字按键输入并且存放到缓冲区内等待比较* key_dig:nop;设一标志,辨别输入是否满;setbtroinctimers:输入数字的位数mova,timersclrcsubba,#01hjnzps_2movpsi,buffj 衣照顺序存放密码ajmpnextps_2:mov a, timerssubba,#02hclrcjnzps_3movps2

35、,buffajmp nextps_3:mova,timersclrcsubba,#0311jnzps_4movps3,buffajmpnextps_4:mova,timersclrcsubba,#04jnzps_5movps4, buffajmpnextps_5:mova,timersclrcsubba,#05jnzps_6movps5, buffajmpnextps_6:mova,timersclrcsubba,#06hjnzch_keymovps6, bl'eenext:lcallxscmovr7, timers;比较输入的次数。cjnrr7,#06h,fullfull:jcnex

36、t9setbbuf_fullmovtimers, #06hclrl3nopclrp2. 1lcallt100msdsetbp2. 1nopajmpch_krynext9:clrp2. 1;密码输入一位,鸣叫一声。clrl3lcallt100msd:延时100mssetbl3setbp2. 1ajmpcii_key氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺:个cl:nopsetbl3movbuff, #00h;消密码缓冲movtimers, #0011lcall1n1tps;消除at缓冲,调电存储后一定要加上lcallxsclcallbplcallbplcall t100msd lcall bp clr f

37、lag1 ajmp ch_kryfu4:noplcall bp lcall t1oomsd lcall bp lcall t1oomsd lcall bp lcall t1oomsd lcall bp lcall t1oomsd lcall bp clr elag1 ajmp ch_keyfu3:noplcall bp lcall t1oomsd lcall bplcall killxs ;关闭显示 clr flag1 ajmp cilkeyfu1:noplcall xscjb f_f1, next_f1 clr li lcall bp setb f_f1 ajmp ch_key:查看现在的状

38、态以防误按 ;报警限制暂时不开nrxt_f1:srtb li lcall bp clr e_e1 ;lcall ch_state ;setb tri ;tnc f_f1 clr flag1 ajmp ch_keyfu2:nopjb f_f2, next_f2clrl2lcallbpsetbf_f2ajmpch_krynext_f2:setbl2lcallbpclrf_f2clrflag1ajmpch_kry/v> | t* 7 1 i 、 xz z z z z z z z z z z z z z z z z z z z z z z z z z z z-i 二火 * i jy i f 一f

39、 戸注意清楚缓冲区时ati. at8不应在初始化中执行,以防两缓冲区都为0,相同开锁 、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,、1,z、xtx ztx ztx xtx tx tx zt tx ztx >tx ?x ztxztx >tx >tx >tx ?x >tx >tx >tx >tx >tx ?x tx >tx >tx >tx >tx tx >tx >tx ?x tx >tclr_buf:m0vr7,#06hmovr0,

40、#6fhloop1:mova, #00hmovr0, adecr0djnzr7,l00p1ret*林林林林林林初始化显不缓冲区以及其他缓冲区*林林林林林林本initps:pushaccpushpswmovr7,#06hmovrl, #ps1mova, #00hinit_ps:movr1, adecr1djnzr7, init_pspoppswpopaccnopretinitat:pushaccpushpswmovr7, #06hmovr1,#at1mova, #00hinit_at:movr1, adecr1djnzr7, init_atmovtimers, ttooh;密码输入的次数清零。p

41、oppswpop accret氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺cpsw:pushpswpushaccmovr2, #06hmovr0,#ps1movr1,#at1c_p:clrcmova, r0subba, r1jnzreturndecrodecr1djnzr2,c pnopsetbpsw_fajmpexit7return:clrpsw_fexit7:n0ppopaccpoppswret氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺氺lock_1m:mov r4, #3ch;锁定 1

42、分钟m1_loop:lcall secdjnz r4, m1_loopnopretwarn2s:pushpswpushaccmovr5, #14hwarn:lcallbpdjnzr5, warnnoppopaccpoppswnopretbp:clr spklcallt100msdsetbspk;调用20次bp,报警2s;鸣笛子程序nopreti、!、i、y、y、y、y、y、y、y、y、y、y、y、y、y、y、氺氺氺氺氺氺氺氺氺氺氺氺氺lz £z lz lz lz lz lz lz lz lz lz lz lz £z1% 1% 1% 1% 1% 1% 1% 1% 1% 1%

43、1% 1%t锁定状态显示。xsa:push acc:送己经输入密码的次数:送短线:送短线:送!7push psw mov a, ttmers1 mov dptr, #tab movc a, a+dptr mov sbuf, a jnb ti, $clr ttmov sbuf, #ofeii jnb ti, $clr timov sbuf, #ofeh jnb tt, $clr timov sbuf, #78h jnb ti, $clr timov sbuf, #78h jnb ti, $clr timov sbuf, #11h jnb ti, $clr tt pop psw pop acc r

44、et成功开锁状态显示 xsb:push accpush pswmov a, timers1 mov dptr, #tab movc a, a+dptr mov sbuf, a jnb ti, $clr timov sbuf, #ofeh jnb ti, $clr ttmov sbue, #oeeh jnb ti, $clr timov sbuf, #1oh jnb ti, $clr timov sblf, #1oh jnb ti, $clr ttmov sbuf, #1011 jnb ti, $clr ti pop psw pop acc ret密码输入及修改状态xsc:push acc pu

45、sh psw lcall killxssetb rsi ;切换到第三组寄存器。防止操作数读取错误。mov r6, timersmov a, r6subb a, #01hjnc scojz scisco:mov sbuf, #ofeh jnb ti, $clr tisci:mov a,r6subb a,#0211jnc sc11 jnz sc2sc11:mov sbuf, sofehjnb tt, $clr tisc2:mov a,r6subb a,#03hjnc sc22 jnz sc3sc22: mov sbuf, sofeiijnb ti, $clr tisc3:m0v a,r6subb

46、a,#04hjnc sc33 jnz sc4sc33:m0v sbuf, #ofehjnb tt, $clr tisc4:mov a,r6subb a,#05hjnc sc44 jnz sc5sc44: mov sbuf, sofeiijnb tl, $clr tisc5:mov a,r6subb a,#06hjnc sc55 jnz sc6sc55:mov sbuf, #ofehjnb ti, $clr ttsc6:mov a,r6subb a,#07hjnc sc66 jnz exit_csc66:mov sbuf, #ofehjnb ti, $clr tinopnopextt_c:nop

47、clr rsi pop psw pop acc nop ret密码输入错误的提示 xsd:push accpush psw mov sbuf, #98h jnb ti, $clr timov sblf, #79h jnb ti, $clr ttmovsbue,#11hjnbti, $clrtimovsbuf,#79hjnbti, $clrtimovsbuf,#79hjnbti, $clrttmovsbuf,#3811jnb ti, $ clr ti pop psw pop acc ret锁定状态显示xse:push accpushpswmovsbuf,#ofehjnbti, $clrtimov

48、sbl'f,#54hjnbti, $clrttmovsbuf,#3911jnbti, $clrtimovsbuf,#11hjnbtt, $clrtimovsble,#3dhjnbti, $clrtimovsbuf,#ofehjnbti, $clrtipoppswpopaccretxsf:pusiiaccpushpswmovsbl'f,#98hjnbti, $clrttmovsbue,#38hjnbti, $clrtimovsbuf,#39hjnbti, $clrtimovsbuf,#39hjnbti, $clrttmovsbuf,#31)11jnbti, $clrtimovsb

49、uf,#98hjnb tt, $ clr ti pop psw pop acc retkti丄xs:push acc push pswmovr7,#06hloop_xs:movsbl'f, #0ffhjnbti, $clrttdjnzr7,loop xsnoppoppswpopaccrettab: db 11h, 0d7h, 3211, 9211, 0d4h, 9811, 18h, od1h, 1oh, 9011 , offh4、4、tx tx z1x24c02读写程序林料料料*k£x>t >t zt >t >t >t >t >t >tat_radr:pushpswpushaccmovro, #at1cpu首地址movr6, #06h8字节movr5, #08h8位movr7, #00h24c02首地址lcall

温馨提示

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

评论

0/150

提交评论