基于51单片机的电子密码锁的设计课程设计报告(23页).doc

上传人:1595****071 文档编号:37052311 上传时间:2022-08-29 格式:DOC 页数:22 大小:368.50KB
返回 下载 相关 举报
基于51单片机的电子密码锁的设计课程设计报告(23页).doc_第1页
第1页 / 共22页
基于51单片机的电子密码锁的设计课程设计报告(23页).doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《基于51单片机的电子密码锁的设计课程设计报告(23页).doc》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁的设计课程设计报告(23页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-基于51单片机的电子密码锁的设计课程设计报告-第 18 页西安文理学院机械电子工程系专业课程设计报告专业班级 2011级测控技术与仪器1班 课 程 单片机课程设计 题 目 基于51单片机的电子密码锁的设计 学 号 0703110121 学生姓名 党晓英 指导教师 陈琦 2014年 5月西安文理学院物理与机械电子工程学院课程设计任务书学生姓名党晓英专业班级2011级测控技术与仪器1班学 号0703110121指导教师陈琦职 称讲师教研室C0409课 程单片机课程设计题 目基于51单片机的电子密码锁的设计任务与要求设计任务:以51单片机为核心,设计带有密码输入键盘、电磁阀等部件的单片机应用系统,

2、实现电子锁的锁闭和打开。设计要求:1、完成系统的硬件电路设计与软件设计;2、采用汇编或C语言编程;3、采用Proteus、KeilC等软件实现系统的仿真调试。4、论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。开始日期 2014年 5月12日 完成日期 2014年5月25日 2014年 5 月 28日基于51单片机的电子密码锁的设计摘要:在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。具有防盗报警等功能的电子密码锁代替密码量

3、少、安全性差的机械式密码锁已是必然趋势。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。本系统由AT89C51单片机系统(主要是AT89C51单片机最小系统)、44矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确显示password o

4、k! 密码错误显示password error!超过三次输入错误自动锁定。由P1口控制矩阵键盘含有0-9数字键和A-F功能键。)。除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。 关键词: AT89C51;LCD1602;电子密码锁;44矩阵键盘 目录1.设计目的11.1、课题背景和意义11.2、电子密码发展趋势12.总体设计方案12.1、设计目标22.2、课题方案的选定23系统的硬件组成和原理23.1、单片机AT89C51的简介23.2、系统的硬件组成33.2.1、最小系统的设计33.2.2、芯片擦除43.2.3、开锁机构53.2.4、键盘设计53.2.

5、5、显示电路的设计63.3、系统设计总图74.系统软件设计84.1、系统软件方框图84.2、键盘扫描及识别子程序84.3、密码设置子程序105.系统调试105.1、程序调试105.2、电路仿真调试12总结14致谢14参考文献15附录 电路总图16附录 程序清单171.设计目的1.1、课题背景和意义伴随着现在电子技术和科学技术的快速发展,随着单片机性能不断完善,性能价格比也随着显著提高,技术日趋完善。由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因此在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。本设计利用单片机及附加电子元器件实现数据采集和控制算法,

6、来完成某一实际功能,检验并提高大学生对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。随着科技水平的提高和人们安全意识的加强,对安全和个人的隐私的要求也就越来越高。机械锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。伴随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入

7、一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。1.2、电子密码发展趋势现在,电子密码锁使用于各个领域,尤其在国民建设,和军事领域具有突出贡献。现在的密码锁内的信息包括了数字、字符、图形图像、人体生物特征和时间等,对电子锁的要求也越来越高。电子技术必是各国发展的优先技术。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性

8、,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。2.总体设计方案2.1、设计目标(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。(2)设计开锁密码位六位密码的电子密码锁。(3)能够LCD显示在密码正确时显示PASSWORD OK,密码错误时显示PASSWORD ERRO输入密码时显示INPUT PASSWORD。 (4)实现输入密码错误超过限定的三次电子密码锁定。(5)44的矩阵键盘其中包括0-9的数字键和A-F的功能键(6)本

9、产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作 。2.2、课题方案的选定采用一种是用以AT89C51为核心的单片机控制方案。选用单片机AT89C51 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。 3系统的硬件组成和原理3.1、单片机AT89C51的简介 AT89C51是美国ATMEL公司生产的低功耗,高

10、性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 􀁹 与MCS-51 兼容 􀁹 4K字节可编程闪烁存储器 􀁹 寿命:1000写/擦循环 􀁹 数据保留时间:10年 􀁹 全静态

11、工作:0Hz-24Hz 􀁹 三级程序存储器锁定 􀁹 128*8位内部RAM 􀁹 32可编程I/O线 􀁹 两个16位定时器/计数器 􀁹 5个中断源 􀁹 可编程串行通道 􀁹 低功耗的闲置和掉电模式 􀁹 片内振荡器和时钟电路 图3.1单片机引脚图3.2、系统的硬件组成3.2.1、最小系统的设计 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据

12、应用的要求,复位操作通常有两种基本形式:上电复位和开关复位。图3.3即为手动(开关)复位电路。 图3.2手动复位电路a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。c、P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。 AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电

13、路参见下图。外接石英晶体(或陶瓷谐振器)及电容Cl、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容Cl、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用陶瓷谐振器建议选择40pF10F。用户也可以采用外部时钟。采用外部时钟的电路如图1所示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电

14、平持续时间应符合产品技术条件的要求。 图3.3晶振电路 3.2.2、芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.2.3、开锁机构 用户通过LCD提示信息,用键盘

15、输入正确密码,从而达到开锁的目的。当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动 电路,然后驱动电磁锁,达到开门的目的。电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。 在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。 图 3.4开锁电路3.2.4、键盘设计 本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成

16、具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。扫描原理: 把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。 比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit

17、会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为 扫描原理。 由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键, 我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。 图3.5键盘电路3.2.5、显示电路的设计 显示设计采用字符型液晶屏设计,由单片机的p0口控制显示,由p3.3p3.5控制lcd的控制端口。P0作为输出口使用时,由于其是一个漏极开路电路(即是弱电平),所以需要加10k的上拉电阻,它才会

18、有高电平的输出。然而,p3口有第二功能的作用,与其连接,更能有效的控制好显示电路。 图3.6显示电路图3.3、系统设计总图 图3.7系统设计总图4.系统软件设计4.1、系统软件方框图因设计主要是作用汇编语言来开发的51单片机项目程序,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。 开始初始化模式选择识别按键密码输入手动清除密码比较开门旧密码输入新密码输入存入缓存区再次输入密码重新输入设置完毕NANBY 4.1主程序的流程图4.2、键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再

19、返回。键盘部分程序如下: key:;键盘程序名称call ks;调用子程序ksjnz k1;判断是否有键按下jmp key;跳回键盘程序ks:mov p1,#0f0h;mov a,p1;xrl a,#0f0h;ret; 4.2键盘扫描程序流程图4.3、密码设置子程序由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、LCD忙检测子程序、关闭状态显示子程序、开锁

20、状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序等。 选择模式旧密码输入新密码输入存入缓存再次输入密码比较密码重新输入返回YN是否大于3次锁定NY 4.3设置密码子程序流程图5.系统调试5.1、程序调试在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的C51文件,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改。有图可以看出最终调试成功。 图5.1 keil生成hex文件 图5.2 keil编译程序成功5.2、电路仿真调试密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新

21、密码时候需要二次确认,以防止误操作 图5.3 新密码需要输两次当密码输入正确时,液晶显示屏显示如下: 图5.4仿真成功密码正确 图 5.5密码正确绿灯亮实现输入密码错误超过限定的三次电子密码锁定 图5.6密码锁定当输入密码错误时蜂鸣器响并且LED灯闪一下 图5.7密码输入错误 图5.8密码输入错误 总结 以上为这段时间所做的课程设计-基于51单片机的电子密码锁设计,在着手本次课程设计时,通过查阅网络与图书馆搜集到的资料,再加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,基本完成了课题的要求。不过由于了解的专业知识尚浅,对课题的研究经验的

22、不足,使得在技术的解决与运用上显得粗糙了一些,特别是功能按键的设定。本次设计的电子密码锁是以手动键盘输入密码的,通过这几个月对电子密码锁的研究学习,发觉这种密码输入方式可以进行改革。在越来越高科技化的今天,遥控控制显的愈发重要,今后的电子密码锁应该具有以红外技术或无线电技术为辅助的密码按键输入远程交互技术,这样就能远程输入密码完成操作。也可以放弃传统的按键输入密码模式,借助传感器技术运用声控来实现密码输入,又或者人脸识别技术,还有一种就是用户指纹输入方式,这些都可以使开锁的时间更短更方便。电子密码锁产业将向静态功耗更低,外围电路更简化,可提供的功能或控制口更多,更人性化高科技化的方向发展。通过

23、本次课题设计的锻炼,我学到了很多有关电子密码锁的设计方法与工作原理,巩固了单片机知识。无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。致谢在本次课题设计过程中,陈琦老师和杨秋芬老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成课题设计,在此表示衷心的感谢。此外在学习中,老师严谨的治学态度、丰富渊博的知识、

24、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模。另外在完成课题设计的过程中,还得到众多朋友的关心支持和帮助,在此,谨向老师同学和朋友致以衷心的感谢和崇高的敬意!最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢。参考文献01 何宏主编. 单片机原理与接口技术. 北京:国防工业出版社. 2006.11002 杨西明, 朱骐主编.单片机编程与应用入门. 北京:机械工业出版社.2004.3503 先锋工作室编著. 单片机程序设计实例. 北京: 清华大学出版社.2003.5604 谢宜仁主编. 单片机实用技术问答. 北京: 人民邮电出版社.

25、2003.7805 梁丽.电子密码锁的计算机仿真设计.计算机仿真,2005.9006 房小翠,王金凤编著. 单片机实用系统设计技术. 北京: 国防工业出版社. 1999.5607 各种网络教程及其他08 王宽仁. 可靠安全的智能密码锁. 电子技术应用 , 2001.66 附录 电路总图附录 程序清单en bit p3.5;rw bit p3.4;rs bit p3.3;display equ p0;speaker bit p2.6;led bit p2.7;open bit p2.0;returnbit bit 20h.1;ORG 0000h;LJMP start;ORG 000bh;LJMP

26、 intermit_t0;ORG 001bh;LJMP intermit_t1;ORG 0030h;start:MOV sp,#60h;lcall sys_initialization;main0: lcall strat_display;main:MOV 52h,#0;52h ;判断输入错误次数存储地址 setb led;setb tr0;lcall key;cjne a,#A,next1;LJMP set_password;next1: cjne a,#B,next2;LJMP input_password;next2: ajmp main;sys_initialization:clr l

27、ed;clr open;clr speaker;MOV 34h,#1; MOV 35h,#1;MOV 36h,#1;MOV 37h,#1;MOV 38h,#1;MOV 39h,#1; ;存放初始密码MOV r7,#12;MOV r0,#40h;loop: MOV r0,#10h;inc r0;djnz r7,loop; ;密码键值存放区清零完毕lcall delay0_1s;MOV p0,#03h;call write_instruction; ;液晶软复位MOV p0,#01h;call write_instruction;mov p0,#3fh;call write_instruction

28、;mov p0,#0fh;call write_instruction;mov p0,#06h;call write_instruction; ;液晶初始化完毕mov r4,#10;mov tmod,#11h;mov th0,#0b0h;setb ea;setb et0; ;定时器t0,0.5s定时中断初始化完毕ret; ;系统初始化完毕intermit_t0:push acc;push psw;mov th0,#3ch;mov tl0,#0b0h;djnz r4,return;cpl led;mov r4,#10;return: pop psw;pop acc;reti;intermit_t

29、1:push acc;push psw;mov th1,#9eh;mov tl1,#58h;djnz r4,return_t1;cpl led;cpl speaker;mov r4,#10;return_t1:pop psw;pop acc;reti; 键盘扫描key: call ks;jnz k1;jmp key;k1:call delay;call ks;jnz k2;jmp key;k2:clr tr0;clr led;mov r2,#0feh;mov r6,#00h;k3:mov a,r2;mov p1,a;mov a,p1;jb acc.4,l1;mov a,#0;LJMP lk;l

30、1:jb acc.5,l2;mov a,#4;ljmp lk;l2: jb acc.6,l3;mov a,#8;ljmp lk;l3:jb acc.7,next_key;mov a,#12;lk:add a,r6;mov r6,a;k4:call ks;jnz k4;mov a,r6;mov dptr,#table0;movc a,a+dptr;mov 50h,a; ;查表取值存入50H,保护键值ret;next_key:inc r6;mov a,r2;jnb acc.7,key;rl a;mov r2,a;jmp k3;ks:mov p1,#0f0h;mov a,p1;xrl a,#0f0h

31、;ret; 设置密码程序set_password:call clear_display;mov dptr,#table4;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password; ;先输入原密码完毕mov r5,#6;mov r0,#40h;mov r1,#34h;input_compere:mov a,r0;xrl a,r1;jnz input_error;inc r0;inc r1;nop;nop;djnz r5,input_compere; ;验证输入密码完毕jmp set_password0;input_

32、error:setb led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;inc 52h;mov a,52h;cjne a,#3,set_password;sjmp $; ;输入密码错误次数超过3次,锁死set_password0:call clear_display;mov dptr,#table2;call input_hint;mov r0,#40h;call password;jbc returnbit,set_password; ;第一次输入新密码完毕ca

33、ll clear_display;mov dptr,#table3;call input_hint;call delay1_5s; ;显示再次输入新密码完毕call clear_display;mov dptr,#table4;call input_hint;mov r0,#46h;call password;jbc returnbit,set_password; ;第二次输入新密码完毕mov r5,#6;mov r0,#40h;mov r1,#46h;set_compere:mov a,r0;xrl a,r1;jnz set_error;inc r0;inc r1;djnz r5,set_c

34、ompere;mov 34h,40h;mov 35h,41h;mov 36h,42h;mov 37h,43h;mov 38h,44h;mov 39h,45h; ;存入新密码完毕jmp main0; ;设置新密码成功,返回主程序set_error:setb speaker;setb led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;ljmp set_password0; ;前后两次输入新密码不一致,返回重设;输入密码开锁程序input_password:call c

35、lear_display;mov dptr,#table4;call input_hint;mov r0,#40h;call password;jbc returnbit,input_password; ;输入原密码完毕mov r5,#6;mov r0,#40h;mov r1,#34h;input_compere0:mov a,r0;xrl a,r1;jnz input_error22;inc r0;inc r1;nop;nop;djnz r5,input_compere0; ;验证输入密码完毕jmp display_right;input_error22:setb speaker;setb

36、led;call clear_display;mov dptr,#table5;call input_hint;call delay1_5s;clr speaker;clr led;inc 52h;mov a,52h;cjne a,#3,input_password;sjmp $; ;输入密码错误超过3次,锁死display_right:call clear_display;mov dptr,#table6;call input_hint;;显示输入密码正确提示完毕setb open;;开锁next_key1:call key;nop;nop;cjne a,#F,next_key1;clr o

37、pen;;按下开锁键,开锁jmp main0;;返回主程序 strat_display:mov p0,#80h;call write_instruction;mov dptr,#table1;call input_hint;mov p0,#0c0h;call write_instruction;mov dptr,#table11;call input_hint;ret;clear_display:mov display,#01h;call write_instruction;ret;input_hint:mov r5,#16;mov a,#00h;all_or_not:movc a,a+dpt

38、r;mov display,a;call writedata;inc dptr;clr a;nop;nop;djnz r5,all_or_not;ret;password:mov r5,#6;mov r1,#0c0h;mov a,r1;mov p0,a;call write_instruction;loop1:call key;nop;nop;cjne a,#C,next_to;setb returnbit;jmp endt;next_to:mov a,50h;mov r0,a;mov display,#*;call writedata;inc r1;inc r0;djnz r5,loop1;

39、endt:ret;写数据指令writedata:SETB rs;CLR rw;clr en;setb en;nop;nop;clr en;call delay;ret;写指令write_instruction:CLR rs;CLR rw;clr en;setb en;nop;nop;clr en;call delay;ret;延时程序delay1_5s:push 07h;push 02h;push 03h;mov r7,#15;del22s:MOV r3,#0;del11s:MOV r2,#0;djnz r2,$;djnz r3,del11s;djnz r7,del22s;pop 03h;po

40、p 02h;pop 07h;ret;delay0_1s:push 02h;push 03h;mov r3,#0;del21s:mov r2,#0;nop;nop;djnz r2,$;djnz r3,del21s;pop 03h;pop 02h;ret;delay:push 07h;push 06h;mov r7,#10;dl:mov r6,#248;nop;nop;djnz r6,$;djnz r7,dl;pop 06h;pop 07h;ret;table0:dbC,B,0,A;db D,9,8,7;db E,6,5,4;db F,3,2,1;table1:dbPASSWORD:A SET;table11:db B OPEN;table2:dbSET PASSWORD: ;table3:dbINPUT AGAIN!;table4:dbINPUT PASSWORD:;table5:dbPASSWORD ERROR!;table6:dbPASSWORD OK!;end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁