LCD密码锁设计说明书.doc

上传人:sccc 文档编号:4970187 上传时间:2023-05-26 格式:DOC 页数:38 大小:1.06MB
返回 下载 相关 举报
LCD密码锁设计说明书.doc_第1页
第1页 / 共38页
LCD密码锁设计说明书.doc_第2页
第2页 / 共38页
LCD密码锁设计说明书.doc_第3页
第3页 / 共38页
LCD密码锁设计说明书.doc_第4页
第4页 / 共38页
LCD密码锁设计说明书.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《LCD密码锁设计说明书.doc》由会员分享,可在线阅读,更多相关《LCD密码锁设计说明书.doc(38页珍藏版)》请在三一办公上搜索。

1、目录【摘 要】3第一章 前 言511 课题的背景及意义512 国内外发展现状513 本文的主要研究内容514 开发环境介绍6第二章 系统的组成及工作原理821 需求分析82.1.1 设计内容与要求82.1.2 系统框图822系统组成923系统工作原理介绍9第三章 硬件电路设计1031单片机最小系统介绍103.1.1 时钟电路123.1.2 复位电路1332 LCD显示模块143.2.1常见的液晶显示模块153.2.2“162”字符型液晶显示模块153.2.3“44”矩阵式键盘扫描1733 开锁电路193.4 电路总图20第四章 软件设计2141 软件设计分析2142 系统资源分配2143 程序

2、设计2244 程序清单及注释23第五章 实验调试及测试结果3051 硬件调试3052 软件调试3153 总体调试31第六章 制作电路板3261 Protel 99SE简介3262 绘制电路原理图3263 制作PCB板33第七章 总结3571 实现功能3572 心得体会35致谢36参考文献37附录一:元器件清单38LCD电子密码锁【摘 要】当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。本次设计以电磁继电器模拟密码锁,由单片机89C51来控制锁的打开与闭合,密码从键盘输入,用89C51来

3、控制LCD显示当前锁的状态信息。本次设计的核心是软件部分,通过编程来控制输出高低电平,再加上硬件电路来实现开锁的功能,密码为6位,且设计的电子密码系统稳定性能好,安全系数高, 其方法和技术可广泛用于仓管、防盗门、密码箱等安全系统。【关键词】单片机开发系统 密码锁 LCDLCD Electronic Password lock Abstract: Now the security information system application becomes more and more widespread, specially plays the significant role in prot

4、ecting the secret, vindicating the privacy and the property protection. And the safety system based on the electronic password lock is a part of them. Therefore investigating it is of great practical significance. This design uses the Electromagnetic Relay to simulate password lock, the 89C51 to con

5、trol the opening and closure of the lock, the keyboard to enter the password and the89C51 to control LCD which is used to display the current state of the lock. This design takes software as its core, controls the output height level via program, and in addition realizes the function of opening the

6、lock via hardware electric circuit. The password should be confined to 6 figures, also the stability of the designed electron cryptography is good, the safety coefficient is high, its methods and the technology can be widely used in the storehouse of management, security gate, combination-locked bri

7、efcase and etc.Key words: MCS development system, passwords lock, LCD 第一章 前 言11 课题的背景及意义随着现代化工业生产过程复杂性与集成化程度的增加,自动控制系统在工业过程中已成为不可缺少的重要组成部分,是电子技术与自动控制理论的紧密结合,并广泛应用于工业、农业、医学、国防和军事等等领域。自动控制系统应用于工业控制有各种各样的结构和形式,实现各自不同的功能,此次设计中用到的89C51就是一种新型的价格便宜而性能优良的单片机系统,结构简单,布局合理,功能齐全,用途广泛。用单片机开发系统来做这次课程设计,使得更进一步掌握如何

8、利用接口电路进行硬件系统的设计,以及如何进行软件设计的方法和技术。且设计的电子密码锁安全系数高,性能稳定, 面向应用,设计的系统具有很强的现实意义。12 国内外发展现状一直以来,市场上的密码锁产品都是基于机械原理的机械密码锁,这种密码锁最大的缺点就是结构简单,安全系数低。但随着当今社会对家庭财产,公共隐私等保密性要求提高,使得对密码锁系统的安全性提出了更高的要求, 而随着微电子技术的发展,微处理器与微型计算机得到迅速的发展,单片微型计算机功能强,结构紧凑,体积小,功耗低,抗干扰能力强,稍加一定的外围设备就方便地构成一个应用系统,这正好符合密码锁系统的要求,国内外市场上的相关产品也越来越多地使用

9、单片机来加强密码锁的安全性稳定性。13 本文的主要研究内容本文的主要研究基于单片机89C51为核心控制的电子密码锁安全系统,本次设计以电磁继电器模拟密码锁,由单片机89C51来控制锁的打开与闭合,由LCD来管理显示,密码从键盘输入,用89C51来控制LCD显示当前锁的状态信息。本次设计用单片机开发系统来模拟密码锁的多种功能,密码由6位数字组成,当密码相符则开锁,显示“RIGHT”,否则显示“ERROR”,同时密码可以修改。开锁单片机开发出开关量,通过光电耦合器控制,打开密码锁。14 开发环境介绍1、从概念产品到设计完成的完整电子设计工具 Proteus组合了高级原理布图、混合模式SPICE仿真

10、,PCB设计以及自动布线来实现一个完整的电子设计系统。 此系统受益于15年来的持续开发,被电子世界在其对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。系统特性: 􀁺 ISIS原理布图个易用而又功能强大的工具; 􀁺 PROSPICE混合模型SPICE仿真-可以升级到我们的独特的虚拟系统模型技术的工业标准SPICE3F5

11、f仿真器; 􀁺 ARES PCB设计具有32位数据库、元件自动布置、撤消和重试的自动布线功能的超强性能的PCB设计系统; 􀁺 标准的时尚的图形用户界面; 􀁺 保证所有的主要模块的操作性能和兼容性; 􀁺 支持Windows 98/Me/2K/XP; 􀁺 产品完全可以信赖:超过15年的连续不断的开发; 􀁺 数千个拷贝安装分布全世界35个国家; 􀁺 直接来自开发者的技术支持; 2、ISIS 智能原理图输入系统ISIS是PROTEUS系统的中心,它远不仅是一个图表库。它是具有控

12、制原理图画图的外观的超强的设计环境。无论用户的要求是快速实现复杂设计的仿真以及PCB设计,还是设计精美的原理图以供出版,ISIS是最好的工具。特性: 生成出版质量的原理图; 风格模板允许提供库部件的用户化; 鼠标驱动和内容关联的用户界面;自动走线,以及接点的布置和切除参数表示子电路元件值的层次设计包括子电路端口以及总线引脚的总线支持挑选元件或建立新库元件可预览PCB 封装完全体现多元器件的同性和异性包括相应对话框用户化的元件特性的精细管理超过8000元件的大型元件库。完全适用于仿真模型网表格式:Labcenter SDF,SPICE,Tango,Boardmaker,EEDeginer,Fut

13、urenet,Racal &Valid 电器标准检查以及元件报告清单可彩色或单色输出到Windows 打印装置图形输出格式:WMF,BNP,DXF,EPS以及HPGL第二章 系统的组成及工作原理21 需求分析2.1.1 设计内容与要求 (1)设计一个数字式密码锁; (2)密码由6位数字组成; (3)密码相符则开锁,显示“RIGHT”,否则显示“ERROR”; (4)密码可以更新; (5)采用LCD显示。 2.1.2 系统框图图2-1为本次密码锁设计的总框图: LCD显示电路8051单片机复位电路 开锁控制电路矩阵键盘控制图2-1 系统框图22系统组成本次设计的基于单片机的电子密码锁系统主要由三

14、个模块组成,核心是89C51单片机,LCD显示荧幕, 4x4 矩阵式键盘,而开锁电路则由光电耦合器及电磁继电器组成。23系统工作原理介绍通电复位,电路进入就绪状态,等待用户输入密码,LCD显示PASSWORD:000000,表示锁闭合。“*”为密码设定键:先输入所要设定的密码,然后按“*”,即完成设定,并将显示屏幕清除为“PASSWORD:000000”。“#”为清除键:按下此键后,屏幕会清除为“PASSWORD:000000”。“A”为显示密码键:按下此键时显示当前设定的密码,经4秒后将显示屏幕清除为“PASSWORD:000000”。“B”为开门键:输入密码后再按此键,经比较密码,正确则令

15、电锁动作(P0.0),并在第二行显示“RIGHT!”,如果错误则在第二行显示“ERROR!”,经4秒后将显示屏幕清除为“PASSWORD:000000”。“C”为闭锁键:按下此键后会令电锁动作(P0.0),此时锁已关闭。显示屏幕重新显示“PASSWORD:000000”,表示锁已闭合,用户可以离开。第三章 硬件电路设计31单片机最小系统介绍如图3-1,8051 单芯片是MCS-51 族系中最早问世的产品也是最典型的代表,在1980年时,就已经制造生产,它是专为控制应用所设计的8位CPU。而89C51 单芯片其指令集与接脚完全与MCS-51 兼容。8051共有4个I/O端口,为P0、P1、P2、

16、P3,四个I/O口都是双向的,且每个口都具有锁存器。每个口有8条线,共计32条I/O线。各端口的功能叙述如下:1、 P0口 有三个功能:(1) 外部扩充存储器时,当作数据总线(D0D7)。(2) 外部扩充存储器时,当作地址总线(A1A7)。(3) 不扩充时,可做一般I/O口使用,但内部没有上拉电阻,作为输入或输出时应在外部接上拉电阻。2、 P1口 只做I/O口使用,其内部有上拉电阻。3、 P2口 有两个功能:(1) 扩充外部存储器时,当作地址总线(A8A15)使用。(2) 做一般I/O口使用,其内部有上拉电阻。4、 P3口 有两种功能:除了作为I/O口使用外(内部有上拉电阻),还有一些特殊功能

17、,由特殊寄存器来设置。P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外部中断)P33/INT1(外部中断)P34T0(TIMER0的外部输入脚)P35T1(TIMER1的外部输入脚)P36/WR(外部数据存储器的写入控制信号)P37/RD(外部数据存储器的读取控制信号)端口1、2、3有内部上拉电阻,当作为输入时,其电位被拉高,若输入为低电平可提供电流源;其作为输出时可驱动4个LS TTL。而端口0作为输入时,处在高阻抗的状态,其输出缓冲器可驱动8个LS TTL(需要外部的上拉电阻)。5、 EA/VPP(1) 接高电平时:a、 CPU读取内部程序存储器(ROM),如805

18、1/8052。b、 扩充外部ROM:当读取内部程序存储器超过0FFFH(8051)、1FFFH(8052)时,自动读取外部ROM。(2) 接低电平时:CPU读取外部程序存储器(ROM),如8031/8032。(3) 8751烧写内部EPROM时,利用此脚输入24V的烧写电压。图3-1 8051引脚图 3.1.1 时钟电路 如果说CPU是单片机的心脏,那么石英晶体振荡器就相当于心脏起搏器。单片机系统的各部分都要以时钟频率为基准,才能在CPU的指挥下有条不紊的协作工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机的稳定性。89C51的时钟电路设计有两种方式:一种是内部时钟方式

19、,另一种是外部时钟方式。本次采用单片机内部时钟方式。内部时钟方式 MCS-51内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器(简称晶振)和微调电容,就构成了一个稳定的自激振荡器。图3-2是MCS-51内部时钟方式的振荡器电路,即内部时钟电路。图3-2 内部时钟电路图 电路中的电容C1和C2典型值通常选为20pf左右。对外接电容的值虽然没有严格要求,但电容的大小会影响振荡器的频率的高低,振荡器的稳定性和起振的快速性。晶振的振荡频率范围通常在1.2MHZ-12MHZ之间。振荡的频率越高,则系统的时钟频

20、率也就越高,单片机的运行速度也就越快。内部时钟由晶振控制,一般典型值为6MHZ,12MHZ。此次所用单片机为12MHZ。3.1.2 复位电路复位是使CPU和系统其它部件处于一个确定的初始状态,并从这个初始状态开始工作。当MCS-51系列单片机的复位端子RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RESET持续为高电平,单片机就处于循环复位状态。在实际应用中,复位操作通常有两种基本方式:上电复位、手动复位。本次设计采用手动复位。手动复位电路手动复位要求电源接通后单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的手动复位电路如图3-3所示。上电后由于电

21、容的充放电和反相门的作用,使RESET持续一段时间的高电平。当单片机在运行过程中时,按下复位键S后松开,也能使RESET保持一段时间的高电平,从而实现复位操作。图3-3 手动复位电路综上所述,单片机最小系统电路图如图3-4所示。图3-4 单片机最小系统电路图89C51 的复位端是一个史密特触发输入,高电平有效,而系统中的时钟接口复位信号都是低电平有效。在复位电路中,按一下复位开关就使在RESET端出现一段时间的高电平,经过一次反相整形,提供给单片机复位端。再经过一次反相整形,通过I/ORST 端提供给外部接口电路。外接12M 晶振和两个20P 电容组成系统的内部时钟电路。32 LCD显示模块液

22、晶显示器件在中国已有20多年的发展历史。这期间,液晶显示器件从实验室走向大规模生产,形成了独立的产业部门。液晶显示器件独具的低电压、微功耗、体积小、显示内容丰富、超薄轻巧的优点,使他可以直接与大规模集成电路结合开发出一系列具有便携显示功能的产品。这些产品不仅改变了人类生活甚至也改变了社会。例如,液晶显示的电子表、子计算器、家用电器等等已经成为人们生活的必需品;液晶显示的移动通讯设备和笔记本电脑等已经成为人类经济活动的必备工具;液晶显示的仪器仪表、电器设备等几乎取代了传统的指针式或发光二极管显示的同类产品。3.2.1常见的液晶显示模块液晶显示模块(忧DMODULE,简称优M)是一种将LCD显示器

23、件及其驱动电路通过各种形式组合在一起的一种电气部件,对外提供简单的接口,使得各个行业的工程设计人员不需要了解复杂液晶驱动电路原理也可以方便的使用液晶显示器件。液晶显示模块根据显示图形的不同分为以下几种。1. 段式显示模块段式显示模块主要用于显示数字,或围绕数字显示。在形式上总是围绕数字“8”的结构变化。例如电话的来电显示功能,只需要显示电话号码,这时,使用段式的显示模块就已经足够。段式显示被广泛应用于便携设备上,例如各种数字仪表、计时器、计数器等。目前,该类模块的应用已经相当普及,基本上取代了8段比D数码管。2字符型显示模块字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模

24、块。用于显示5x7点阵字符。液晶模块内部具有字符发生存储器(CGROM),他存储了两百多个不同的点阵字符图形,根据所带的字库的不同,CGROM可以包含里面的字符可以是:阿拉伯数字、英文字母的大小写,也可以是常用符号、日文片假名或者其它各国的字母。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是010001B(41H),显示时控制IC自动将4lH对应的CGROM中的点阵字符图形显示出来,就能在显示屏上看到字母“A”了。这类模块主要应用于比较高级的家用电器、仪器仪表以及便携设备,提供简单的信息显示,实现人机交互功能。3 图形点阵显示模块图形点阵显示模块常用于显示图形和文字。该类模块已

25、经广泛应用于手机、MP3、PDA、数码相机等高端消费类电子产品,实现复杂的图形显示功能和汉字显示功能。使得人机界面变得越来越直观,尤其对于国内大多数需要有汉字和图形显示的用户来说,显示界面的友好与否,将直接影响到其产品的形象和市场竞争力。3.2.2“162”字符型液晶显示模块本次设计中使用的液晶显示模块为标准的“16x2”字符型液晶显示模块,该模块为两行字符显示,每行为16个5x7的点阵字符,带有光标显示。该模块市面上很多,广泛应用于各种通讯设备和仪器仪表上,例如市面上比较高档的来电显示电话机就是使用这种“16x2”字符型液晶显示模块来实现阿拉伯数字和英文字母的显示功能。该模块接口信号如下:表

26、一:“ 16 x 2”字符型液晶显示模块的接口信号引脚符号输入/输出功能1GND-OV(地)2VCC-模块电源(+5V)3VL-LCD对比度调节端4RS输入寄存器选择位,当RS=1时,选择数据寄存器,当RS=0时,选择指令寄存器。5R/W输出读写操作选择位,当RW =1,读操作,当RW =0,写操作6E输入读写操作使能信号7-10DB0-DB3输入/输出数据总线0-3,当使用八位数据总线模式是,作为低字节准双向数据总线。使用四位数据总线模式时,空接11-14DB4-DB7输入/输出数据总线4-7,当使用八位数据总线模式是,作为高字节准双向数据总线;使用四位数据总线模式时,用作高字节和低字节数据

27、总线,D作为芯片忙信号输人下图为LCD液晶显示电路图图3-5 LCD显示模块电路3.2.3“44”矩阵式键盘扫描如图3-6,在44矩阵式键盘中,每一个交叉点可放一个按键,其中4条I/O线是输出线,又称为扫描线,用以输出的扫描码,每次仅让一支输出脚为零电位。另外4条I/O 线为输 入线又称之为资料线,用以读取按键信号的状态1。输出线(扫描线)P2.7P2.6P2.5P2.400001P2.3输入线/资料线0P2.21P2.11P2.0第3列第2列第1列第0列第2行第3行第1行第0行图3-6 44矩阵式键盘的接线图3-7 键盘显示电路33 开锁电路开锁控制电路由单片机P0.0控制,P0.0接光电耦

28、合器和电磁继电器,开锁电路如图3-8所示。当单片机发出开锁信号时,P0.0口为低电平,通过具有功率放大作用的74LS04,驱动光电耦合器的发光二极管导通发光,接收三极管吸收光而导通,从而使与三极管集电极相连的电磁继电器的中心抽头由“常闭”接到“常开”,从而将锁打开参数设计:R1为限流电阻,与VCC和光耦内的发光二极管相连,由于发光二极管当流过的电流在510mA时正常发光,所以,当P0.0为低电平(0.3v)时,二极管电流为:Vcc=5v,i=510mA,0.7v为二极管本身的管压降,0.3v为低电平电压,则R1为4701K,本设计中采用 510欧。同理R3取1K欧。图3-8 开锁控制电路 3.

29、4 电路总图图3-9 电路总图第四章 软件设计41 软件设计分析软件是系统的指挥中心,由它来配合控制完成各种预定功能。为了充分发挥89C51优越的性能价格比,在设计上尽量做到硬件“软化”,使系统硬件设计得到简化。系统软件采用MCS-51汇编语言编写,采用了模块化结构设计。为增强系统的实时性,对那些偶发事件采用中断方式处理,主程序主要用于系统的控制和管理。42 系统资源分配 (1)、键盘及显示安排 数字键: 09 个 命令键: *(41H) 、#(42H)、A(43H)、B(44H)、C(45H) 显示器: 162 LCD 显示器(2)、RAM的设计 30H、31H、32H、33H、34H、35

30、H:密码存放区。开机时先到TABLE3取出内定密码存入30H-35H,以防断电又上电后RAM被清除而无密码可用。 40H、41H、42H、43H、44H、45H:按键值存放区。当按下数字键时,会到TABLE2去按键的内码值(30H-39H)送至LCD显示,并减30H(00H-09H)。(3)、162 LCD的地址 外部地址:DB7=1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9第一行: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 P A S S W O R D : 0 0 0 0 0 0 R I G H T ! 第二行: C C C C C C

31、0 1 2 3 4 5 43 程序设计程序主要完成初始化、显示处理、送LCD显示、键盘扫描以及键处理等功能,其中初始化又涉及内存单元,显缓区,堆栈,及各寄存器的初始化,其流程框图见图4.1初始化显示处理键扫、求键号键处理有键按下否?清除键处理开门键处理修改密码键处理数字键处理开始NY图4-1 主程序流程框图44 程序清单及注释RS BIT P3.5 ;RS=P3.5RW BIT P3.6 ;R/W=P3.6E BIT P3.7 ;E=P3.7 ORG 0000HMOV SP,#70H ;设置堆栈MOV R7,#00H ;TABLE3(密码存放)的取码指针MOV R6,#06H ;6个密码MOV

32、 R0,#30H ;存入RAM 30H-35HS1:MOV A,R7 ;至TABLE3取码MOV DPTR,#TABLE3MOVC A,A+DPTRMOV R0,AINC R0INC R7DJNZ R6,S1MOV P1,#01H ;清除LCD屏幕CALL ENABLEMOV P1,#38H ;LCD功能设定,DL=1(8位),N=1(2行显示)CALL ENABLEMOV P1,#0FH ;显示屏幕ON/OFF,D=1(显示ON)CALL ENABLE ;C=1(光标ON),B=1(闪烁ON)MOV P1,#06H ;LCD模态设定,I/D=1(计数地址加1)CALL ENABLEMOV P

33、1,#80H ;LCD第一行地址CALL ENABLEMOV DPTR,#TABLE1 ;到TABLE1取码显示“PASS WORD:OOOOOO”CALL WRITE1MOV P1,#8AH ;光标所在位置(第一个数字地址) CALL ENABLESTART: MOV R4,#06 ;清除按键存放RAM的内容 MOV R0,#40HCLEAR: MOV R0,#00H INC R0 DJNZ R4,CLEAR MOV R0,#40H ;按键值的RAM 40H-45HL1: MOV R3,#0F7H ;键盘行扫描初值 MOV R1,#00H ;TABLE3(键盘内码)的取码指针L2: MOV

34、A,R3 MOV P2,A ;行扫描输出 MOV A,P2 ;读入键盘值存入R4 MOV R4,A SETB C ;C=1 MOV R5,#04HL3: RLC A JNC KEYIN ;C=0表示有按 INC R1 DJNZ R5,L3 ;4个列扫描是否完毕 MOV A,R3 ;扫描下1行 SETB C RRC A MOV R3,A JC L2 ;4个行扫描是否完毕 JMP L1KEYIN:MOV R7,#10 ;清除抖动10毫秒D2: MOV R6,#248 DJNZ R6,$ DJNZ R7,D2D3: MOV A,P2 ;读入键盘值与前值(R4)比较是否相等 XRL A,R4 ;相等表

35、示按键尚未放开 JZ D3 MOV A,R1 ;至TABLE2取键盘码 MOV DPTR,#TABLE2 MOVC A,A+DPTR MOV R2,A ;先存入R2,以免数据被破坏 XRL A,#41H ;是否按“*”,设定密码 JZ SET0 MOV A,R2 XRL A,#42H ;是否按“#”,清除屏幕 JZ CLEAR1 MOV A,R2 XRL A,#43H ;是否按“A”,显示密码JZ DISPMOV A,R2XRL A,#44H ;是否按“B”,比较密码,相同则开门JZ COMPMOV A,R2XRL A,#45H ;是否按“C”,按下则锁闭合JZ D13MOV A,R2XRL

36、A,#46H ;“D”键无作用JZ L1MOV A,R2 ;数字显示至LCDCALL WRITE2SUBB A,#30H ;键盘码为ASCII码,减30H变十六进制码MOV R0,A ;存入40H-45HINC R0CALL CHECK ;检查LCD是否显示完第六个数字JMP L1SET0:MOV R6,#06H ;密码设定MOV R0,#40H ;键盘显示器存放RAM40-45HMOV R1,#30H ;密码存放RAM 30H-35HSET1:MOV A,R0 ;RAM 40H-45H 的值存入30H-35HXCH A,R1INC R0INC R1DJNZ R6,SET1JMP CLEAR1

37、 ;清除屏幕CLEAR1:MOV P1,#8AH ;清除LCD6个数字为“000000” CALL ENABLE MOV R1,#06HA2: MOV A,#30H ;30H为“0”的ASCII码 CALL WRITE2 DJNZ R1,A2 MOV P1,#8AH ;光标位置 CALL ENABLE JMP STARTDISP: MOV P1,#8AH ;光标停在8AH位置 CALL ENABLE MOV R6,#06 ;6个数 MOV R0,#30H ;密码存放RAM 30H-35HDISP1: MOV A,R0 ADD A,#30H ;将密码转换为ASCII码 CALL WRITE2 ;

38、由LCD显示 INC R0 DJNZ R6,DISP1 CALL DELAY1 JMP CLEAR1D13: SETB P0.0COMP: MOV R1,#40H ;键盘显示器存放RAM 40H-45H MOV R0,30H ;密码存放RAM 30H-35H MOV R2,#06H ;比较6个数COMP1: MOV A,R1 XRL A,R1 JNZ ERROR ;比较是否相等INC R0INC R1DJNZ R2,COMP1CALL RIGHT ;6个码都相等则LCD显示“RIGHT!”CLR P0.0 ;电锁动作CALL DELAY1CALL SPACE ;LCD清除“RIGHT!”JMP

39、 CLEAR1 ;清除为“000000”ERROR:MOV P1,#0C0H ;LCD第二行地址CALL ENABLEMOV DPTR,#TABLE4 ;至TABLE4取出“ERROR!”CALL WRITE1 ;输出至LCD显示CALL DELAY1CALL SPACE ;LCD清除“ERROR!”为空白JMP CLEAR1 ;LCD清除为“000000”RIGHT:MOV P1,#0C0H ;LCD第二行地址CALL ENABLEMOV DPTR,#TABLE5 ;至TABLE5取出“RIGHT!”CALL WRITE1 ;输出至LCD显示RETSPACE:MOV P1,#0C0H ;LC

40、D第二行地址CALL ENABLEMOV DPTR,#TABLE6 ;至TABLE6取出“ ”CALL WRITE1 ;输出至LCD显示6个空白RETCHECK:MOV P1,#0FFH ;令P1=FFHCLR RS ;RS=0,R/W=1,读LCD内部计数器SETB RWCLR ENOPSETB EJB P1.7,CHECK ;检测LCD D7=BUSY FLAG=0MOV A,P1 ;是则读入LCD内部计数值ANL A,#7FH ;取7个位CJNE A,#10H,A3 ;第一行是否显示完MOV P1,#8AH ;是则光标回到8AH位置CALL ENABLEMOV R0,#40H ;按键显示地址回到(40H)A3:RETENABLE:CLR RS ;RS=0,R/W=0写入指令寄存器 CLR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号