版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计电子密码锁设计1引言错误!未定义书签,2系统设计分析错误!未定义书签。2.1总体设计框图错误!未定义书签。2.2硬件电路设计分析错误!未定义书签。2.2.1时钟电路设计错误!未定义书签。2.2.2复位电路设计错误!未定义书签。2.2.3矩阵键盘设计错误!未定义书签。2.2.4报警控制电路错误!未定义书签。2.2.5液晶显示电路错误!未定义书签。2.3系统软件设计错误!未定义书签。2.3.1初始化及按盘识别程序错误!未定义书签。2.3.2开锁程序错误!未定义书签。2.3.3修改密码程序错误!未定义书签。2.3.4 LCD显示程序错误!未定义书签。2.4仿真测试结果错误!未定义书签。
2、3总结错误!未定义书签。参考文献错误!未定义书签。附录错误!未定义书签。1引言随着科技和人们的生活水平的提高, 如何实现家庭防盗这一问题也变的特别的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。单片机, 亦称单片微电脑或单片微型计算机。 它是把中央处理器 (CPU、随机存取存储器(RAM、只读存储器(ROM、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,可是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各
3、个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路, 核心部分只是由人为的写入程序来完成。 这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了,且容易升级改进。电子锁能够在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性,安全能够代替老式机械锁。当前使用的密码锁种类
4、繁多,各具特色。本文从经济实用的角度出发,采用AT89C2051单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。(1)系统设置6位密码,密码经过键盘输入,若密码正确,则将锁打开。(2)密码由用户自己设定,在开锁状态下,用户可自行修改密码。(3)具有自动报警功能,系统工作时,用户经过按键输入6位密码,若密码不正确,则要求重新输入密码,重新输入密码的次数不能超过3次,若3次输入的密码都不正确,则发出报警信号。本课程设计以AT89C51为主控芯片,LCD1602为显示屏,利用单片机的读写控制、扩展电路等功能部件设
5、计电子密码锁。2系统设计分析2.1总体设计框图本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户经过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路控制是否开锁。系统整体框图如图2-1所示。蜂鸣器报警电路键盘输入模块图2-1系统整体框图各模块功能如下:1 .键盘输入模块:分为密码输入按键与功能按键,用于完成密码输入功能。AT89C51LCD显示模块开锁由路2 .密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。3 .晶振电
6、路:用于单片机的起振。4 .复位电路:完成系统的复位。5 .LCD显示模块:用于完成对系统状态显示及操作提示功能。6 .开锁电路:应用发光二极管模拟开锁,完成开锁及开锁提示。2.2硬件电路设计分析本系统电路由键盘输入部分、密码存储部分、复位部分、显示部分、报警部分、开锁部分组成,根据实际情况键盘输入部分选择4X4矩阵键盘,显示部分选择字符型液晶显示LCD1602密码存储部分选用内部存储器来完成。具原理图如图2-2所示。-mm明Esib.Esib.图2-2电子密码锁原理图2.2.1时钟电路设计时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的
7、时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示, 在晶振引脚XTAL1 (19脚) 和XTAL2 (18脚) 引脚之间接入一个12MHZ1振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如33PF。如图2-3所示。R13R13IT&TIT&TmiCTE-T-O-OR12R121CDR1CDR2.2.2复位电路设计复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPlft系统中其它部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不
8、能自动进行复位的,必须配合相应的外部电路才能实现。该复位电路采用按键电平复位式复位电路。当单脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。也能使RS伪一段时间的高电平,从而实现C1C2220220口X1CRYSTALTEXThU1KTAL1ieieXTAL2XTAL2图2-3时钟电路片机已在运行当中时,按下复位键后松开,在复位引脚RET(9上电或开关复位的操作。如图2-4所示。图2-4复位电路2.2.3矩阵键盘设计为了加强密码的保密性,采用一个4X4的矩阵式键盘能够任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I
9、/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,一般采用这种方法。其原理图如图2-5所示。图2-5矩阵键盘每一行与每一列的交叉处不相同,而是经过一个按键来连通,利用这种行列式矩阵结构只需要N艮行线与M艮列线,即可组成具有 NXm按键的矩阵键盘。在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后, 下一步就是要识别哪一个按键被按下。 对键的识别方法一般有两种:一种是行扫描查询法;另一种是速度较快的线反转法。此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。
10、具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。判断键盘中哪一个按键被按下一般是经过将列线逐列至低电平后, 检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列; 如果不全为1,则所按下的按键必在此列, 而且是在与零电平行线相交的交点上的那个按键。按键的操作面板共计10个数字键和6个功能键, 键盘侧面还有一个微型蜂鸣器。键盘侧面还有一个蜂鸣器,每操作一次,它便发出声音,提示操作成功。10个数字键用来输入密码,另外6个功能键分
11、别是:A查看键、B设置新密码键、C退格键、D返回键、E确认/退出键和F开启键。其中退格键的功能是当输入密码错误的时候, 清除前面已经输入的数据, 重新输入。确认键的功能是确认输入的密码。开启键是切换到密码输入状态,输密码前需按该键才能开始输入密码。按“F”键启动进入输入密码程序,按住“F”键不放3秒以上后进入输入密码状态。在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。当3次输入都错误时,程序将返回起始状态。密码输入正确后,继电器吸合,表示锁被打开。在密码输入正确的情况下,程序进
12、入查看密码和修改密码状态,按“E”键退出查看密码状态。按“B”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“C删除后, 重新输入, 按“E”确认后, 程序退出修改密码状态。 按“D”键或等待10秒后程序退出修改密码和查看密码状态,回到起始状态。程序内定密码为:1,送电开机时,只要输入内定密码便可开门,这样可预防停电后再送电时无密码可用。当密码输入错误或密码输入时间超过规定的时间时,蜂鸣器报警。键盘的功能如表2-1所示。表2-1按键功能表按键键名功能说明0-9键数字键输入密码A键查看键查看密码B键设置新密码键设置新密码C键退格键退格删除D键返回键返回到开始界面E键确认/退出键确认/
13、退出F键开启键开启密码输入2.2.4报警控制电路该电路采用单频音报警电路,实现单频音报警的接口电路比较简单,其发音元件一般可采用压电蜂鸣器, 当在蜂鸣器两引脚上加315V直流工作电压,就能产生3kHZ&右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需10mA勺驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,P.3.1接三极管基极输入端,当P3.7输出高电平“1”时,三极管导通,蜂鸣器的通电而发音,当P3.1输出低电平“0”时,三极管截止,蜂鸣器停止发音。其原理图如图2-6所示。An/,FEM13LE1rll/rll/r-UJr-
14、UJ=T&CT5-=T&CT5-Ik k图2-6报警控制电路2.2.5液晶显示电路本设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD160取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码, 每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“IUPUTRIGHT,单片机具中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCDS示屏会显示“IUPUTERROR,
15、P3.0输出的是高电平,电子密码锁不能打开。经过LCDS示屏,能够清楚地判断出密码锁所处的状态。电路图如图2-7所示。图2-7显示电路2.3系统软件设计系统的软件设计采用汇编语言编码。设计方法是先用文本编辑器编写源码,然后用软件KeilC51编译,如果没有错误,可连接生成.HEX格式的文件 (需事先在KeilC51中设置)。如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。当然也能够直接在Keil中编码。生成的HEXC件是记录文本行的ASCII文本文件,在HEXC件中,每一行是一个HEX己录,由十六进制数组成的机器码或者数据常量。HEXC件经常被用于将程序或数据传输
16、存储到ROMEPROM大多数编程器和模拟器使用HEX文件。系统的主程序如图2-8所示。由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。图2-8系统主流程图2.3.2初始化及按盘识别程序如图2-9所示,系统的初始化包括堆栈起始地址的设定,定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化等操作。系统初始化并读取密码完成后,液晶显示“PASSWORDCONTR。L,提示用户能够输入密码。此时程序即不断测试按键,检查是否有按键被按下。如果有,则进行按键识别; 如果没有按键按下, 或者按下的按键没有被识别,R3赋彳10FFH,并
17、跳转至按键测试。实际程序运行时,绝大部分时间都在测试按键,等待用户输入。2.3.3开锁程序首先LCDH始化,输入密码,密码正确则使开锁电路动作,引脚P2.3得到低电平使发光二极管灯亮, 开锁。 开锁程序流程图如图2-10所示。邛ILCD,始化_按开j启键1FLCD口始化恤入密码1确认.序Y-开锁成功图2-9初始化及按键识别流程图图2-10开锁流程图2.3.4修改密码程序如图2-11所示,能够看出,改密键的处理流程跟开锁键类似,都需检查密码是否正确,错误的话,提示重新输入,只有输入密码正确才能够进行改密。 然后再按更改键, 密码更改程序被调用, 进而更改密码, 此过程,LCDB会显示信息。图2-
18、11修改密码流程图2.3.5 LCD显示程序液晶显示子程序在每次更新显示内容时都会被调用,具流程如图2-12所示开始图2-12LCD显示子程序流程图每次更新显示内容前,需清显示清空LCDM先的显示内容,清屏指令的指令码为01H,即将P0口赋值01H,然后写入指令寄存器IR。LCD160要显示的内容是根据其控制器内置的字符码表,事先列出要显示的ASCII字符串。每次送一个字符的ASCII码入P0口,然后写入数据寄存器DR最后将字符地址加一,LCD160会将写入的ASCII码对应的字符依次显示出来。由于显示字符串的长度不尽相同,约定每串字符以00H结尾;程序检测到字符码为00H时,即停止写入,返回
19、。LCDS示的内容在下次更新前会一直保持。2.4仿真测试结果开机后,LCD160湿示如图2-13所示,等待按键输入图2-13开机界面输入密码分两个过程:首先必须开启密码输入功能才能输入密码,按住“F”键3秒以上才能启动进入输入密码程序,进入输入密码状态,LCD1602a示如图2-14所示:图2-14输入界面此时使用矩阵键盘输入密码,在输入密码状态下,0-9为有效数字键。本系统有时间、次数限制功能,不给别人试探机会:三次输入密码机会,每次限制在10秒内完成,输入过程如图2-15所示:当密码输入正确后,LCfS示界面如图2-16所示:twrtwrINPUTPASSWORDINPUTPASSWORD
20、IUPUTRIGHTIUPUTRIGHT图2-16输入正确的界面在输入密码正确的基础上能够在密码输入正确的情况下,程序进入查看密码和修改密码状态。按“B”键进入重新设置状态,在输入新密码时,能够按“C键删除修改,按“E”确认后,程序退出修改密码状态。界面如图2-17所示:按“A”键进入查看密码状态,LCDS示界面如图2-18所示:图2-18查看密码的界面LCm到初始界面,并锁定。如果错误则LCLS示的界面如图2-17所示:3总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解在密码输入错误或是超过输入时间时,当错误次数为3次后,图2-17修改密码的界面图2-17输入错误的界面决实际问题
21、,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中能够说得是无处不在。 因此作为21世纪的大学来说掌握单片机的开发技术是十分重要的。在着手本次课程设计时, 经过查阅网络的资料, 再加上请教同学和老师,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,基本完成了课题的要求。本次课程设计所设计的系统简单只能实现一些简单的功能,还有很多不足之处,自己所学的知识和能力有限。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,能够说得是苦多于
22、甜,可是能够学到很多很多的的东西,同时不但能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。经过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,能够说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,特别是外部中断,定时/计数器和串行口,掌握的不好,应用不熟练。经过这次课程设计之
23、后,一定把以前所学过的知识重新温故电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,经过这次课设自己也学到了很多东西,在这一周的时间里,感谢魏明哲老师的指导和同学们的帮助,终于游逆而解。参考文献1何立民主编,单片机中级教程,北京航空航天大学出版社。2丁元杰主编,单片机原理与应用,机械工业出版社。3孙育才主编,MCS-51系列单片微型计算机及其应用,东南大学出版社。附录BEEPBITP3.1RELAYBITP3.6SEC10BIT20H.1SEC3BIT20H.2PA
24、SS_OKBIT20H.3PASS_OLDEQU30HPASS_NEWEQU37HPASS_DISEQU40H;COUNTEQU47H;50msSECEQU48H;POSEQU49HBUSYBITP0.7LCD_RSBITP2.0;LCDLCD_RWBITP2.1LCD_ENBITP2.2密码显存单元计数单元秒单元控制管脚定义DATAPORTEQUP0定义LCD的数据端口LCD_XEQU29HTIMESEQU2AHBUSY_CHECKBIT20H.0ORG0000HAJMPMAINORG000BHLJMPTIMER0ORG0050HMAIN:MOVSP,#60H;MOVP0,#0FFHMOVP
25、1,#0FFHMOVP2,#0FFHMOVTMOD,#01H;MOVTH0,#4CH;50msMOVTL0,#00HSETBET0设置堆栈指针工作于方式1定时常数SETBEAMOVPASS_OLD+1,#01HMOVPASS_OLD+2,#01HMOVPASS_OLD+3,#01HMOVPASS_OLD+4,#01HMOVPASS_OLD+5,#01HACALLLCD_INIT;LCD初始化MAIN1:CLRTR0CLRSEC3CLRSEC10CLRPASS_OKMOVCOUNT,#00HMOVSEC,#00HSETBRELAY;继电器释放ACALLMENU1ACALLSTART_INMAIN
26、2:MOVPASS_OLD,#01H内定密码值MOVR4,#03H;3次输入密码机会ACALLPASS_INACALLPASS_COMPMOVR5,#100;延时1sACALLDELAYJBPASS_OK,MAIN3DJNZR4,MAIN2AJMPMAIN1MAIN3:ACALLPASS_LOOKACALLCHANGE_PASSJBSEC10,MAIN4ACALLKEY_SCANCJNEA,#0DH,MAIN3;判是否D按下?MAIN4:ACALLBEEP_BLAJMPMAIN1;菜单1显示子程序(PASSWORDCONTROL);(LEARNBYHEART)MENU1:MOVB,#00HMO
27、VDPTR,#INFO1;指针指到信息1ACALLWSTRING1MOVB,#00HMOVDPTR,#INFO4;指针指到信息4ACALLW_STRING2RET;菜单2显示子程序(INPUTPASSWORD);(PASSWORD)MENU2:MOVB,#00HMOVDPTR,#INFO3;指针指到信息3ACALLW_STRING1MOVB,#00HMOVDPTR,#INFO2;指针指到信息2ACALLW_STRING2RET;菜单3显示子程序(LOOKPASSWORD);(PASSWORD)MENU3:MOVB,#00HMOVDPTR,#INFO7;指针指到信息7ACALLWSTRING1M
28、OVDPTR,#INFO2;指针指到信息2ACALLW_STRING2RET;菜单4显示子程序(CHANGEPASSWORD);(PASSWORD)MENU4:MOVB,#00HMOVDPTR,#INFO8;指针指到信息1ACALLW_STRING1MOVB,#00HMOVDPTR,#INFO2;指针指到信息2ACALLW_STRING2RET;信息字符串表INFO1:DBPASSWORDCONTROL,0INFO2:DBPASSWORD,0INFO3:DBINPUTPASSWORD,0INFO4:DBLEARNBYHEART,0INFO5:DBIUPUTRIGHT,0INFO6:DBIUPU
29、TERROR,0INFO7:DBLOOKPASSWORD,0INFO8:DBRESETPASSWORD,0;矩阵键盘键值查找程序;键值存入R3KEY_SCAN:MOVP1,#0F0H;NOPMOVA,P1;ANLA,#0F0H;MOVB,A;MOVP1,#0FH;NOPMOVA,P1;ANLA,#0FH;ORLA,B;CJNEA,#0FFH,KEY_IN1;0FFHAJMPKEY_ENDKEY_IN1:MOVB,A;MOVDPTR,#KEYTABLE;MOVR3,#0FFH;KEY_IN2:置列线为0,行线为1读入P1口状态保留高4位保存数据置列线为1,行线为0读入P1口状态保留低4位高四位与
30、低四位重新组合保存键值置键编码表首址MOVA,R3MOVCA,A+DPTRCJNEA,B,KEY_IN3;MOVA,R3;AJMPKEY_ENDKEY_IN3:CJNEA,#00H,KEY_IN2KEY_END:RET;键编码表KEYTABLE:DB0EEH,0EDH,0EBH,0E7H,0DEHDB0DDH,0DBH,0D7H,0BEH,0BDHDB0BBH,0B7H,07EH,07DH,07BH密码显本子程序PASS_PLAY:MOVR0,#PASS_OLDMOVR2,#06H;INCR3查表次数加1取出键码比较找到,取次数值继续查;00H为结束码DB 077H,00H;00H为结束码存放
31、数据首地址显示6组数据MOVLCD_X,#09HACALLSETX2P_PLAY:MOVA,R0;ADDA,#30H;ACALLWDATA;INCR0;DJNZR2,P_PLAYRET;启动输入子程序;按F键大于3秒,方可退出此程序START_IN:CLRSEC3;MOVCOUNT,#00HMOVSEC,#00HS_IN1:ACALLKEY_SCANCJNEA,#0FH,S_IN1;FSETBTR0;S_IN2:ACALLKEY_SCANCJNEA,#0FH,S_IN3;F第二行取显示数据转换为ASCII码写数据,显示修改存放数据地址清3s标志位清中断计数单元键启动TIMER0中断键JNBSE
32、C3,S_IN2没有达到3s,转移CLRTR0停止TIMER0中断CLRSEC3;MOVSEC,#00HMOVCOUNT,#00HACALLMENU2ACALLBEEP_BLAJMPS_ENDS_IN3:CLRTR0;CLRSEC3;MOVCOUNT,#00HMOVSEC,#00HAJMPS_IN1S_END:RET;密码输入子程序PASS_IN:ACALLMENU2MOVR0,#PASS_NEWMOVR2,#06H;6MOVLCD_X,#09H;ACALLSET_X2清3s标志位清中断计数单元停止TIMER0中断清3s标志位清中断计数单元存放输入密码单元首地址位密码确定显示首位置CLRSEC
33、10MOVSEC,#00HMOVCOUNT,#00HSETBTR0P_IN1:JBSEC10,P_ENDACALLKEY_SCANCJNEA,#0FFH,P_IN2AJMPP_IN1P_IN2:ACALLKEY_SCANCJNEA,#0AH,P_IN3;P_IN3:JNCP_IN1;=MOVA,R3;MOVR0,A;INCR0MOVA,#2AH;ACALLWDATA;ACALLBEEP_BL;DJNZR2,P_IN1清10s标志位清秒计数单元清中断计数单元判是否有键按下?数字键0-9有效时,C=0取键值保存输入密码值转换为ASCII码显示输入密码的位数蜂鸣器响一声PEND:CLRTR0MOVS
34、EC,#00HCLRSEC10MOVCOUNT,#00HRET;修改密码子程序CHANGE_PASS:ACALLKEY_SCANCJNEA,#0BH,CH_END;CLRTR0ACALLMENU4MOVR0,#PASS_OLD;MOVR2,#06H;6MOVPOS,#09H;ACALLBEEP_BLCH_IN1:ACALLKEY_SCANCJNEA,#0FFH,CH_IN2;AJMPCH_IN1CH_IN2:ACALLKEYSCAN清秒计数单元清10s标志位清中断计数单元判B键是否按下?存放输入密码单元首地址位密码确定显示首位置判是否有键按下?CJNEA,#0AH,CH_IN3数字键0-9有效
35、CH_IN3:JNCCH_IN4;=MOVLCD_X,POS;ACALLSET_X2MOVA,R3;MOVR0,A;MOVA,#2AH;ACALLWDATA;ACALLBEEP_BL;INCPOSINCR0DJNZR2,CH_IN1;6AJMPCH_IN6CH_IN4:ACALLKEY_SCANCJNEA,#0CH,CH_IN1;CMOVA,POSCJNEA,#09H,CH_IN5;AJMPCH_IN1CH_IN5:DECPOS时,C=0确定显示位置取键值保存输入密码值转换为ASCII码显示输入密码的位数蜂鸣器响一声位密码是否输入完?修改键检测POS是否到最小值DECR0INCR2MOVLCD
36、_X,POSACALLSET_X2MOVA,#2DH;ACALLWDATAACALLBEEP_BL;AJMPCH_IN1CH_IN6:ACALLKEY_SCANCJNEA,#0EH,CH_IN7;EACALLMENU1ACALLBEEP_BLAJMPCH_ENDCH_IN7:CJNEA,#0CH,CH_IN6;CAJMPCH_IN5CH_END:SETBTR0RET;密码比较子程序显木一蜂鸣器响一声键确定退出键返回修改;比较正确,置密码正确标志位。;比较错误,清密码正确标志位。PASS_COMP:MOVR2,#06H;MOVR0,#PASS_OLDMOVR1,#PASS_NEWP_COMP0:
37、MOVA,R0MOVB,R1CJNEA,B,P_COMP1INCR0INCR1DJNZR2,P_COMP0SETBPASS_OK;CLRRELAY;MOVB,#00HMOVDPTR,#INFO5;ACALLW_STRING2MOVSEC,#00H;CLRSEC10MOVCOUNT,#00HSETBTR0比较6组数据置密码正确标志位继电器吸合指针指到信息5清秒计数单元清10s标志位清中断计数单元RETP_COMP1:CLRPASS_OK;MOVB,#00HMOVDPTR,#INFO6;ACALLW_STRING2RET;查看密码子程序PASS_LOOK:ACALLKEY_SCANCJNEA,#0
38、AH,LOOK_END;AACALLMENU3CLRTR0ACALLPASS_PLAYACALLBEEP_BLLOOK_1:ACALLKEY_SCANCJNEA,#0EH,LOOK_1;EACALLMENU1ACALLBEEP_BLSETBTR0清密码正确标志位指针指到信息6键查看键退出LOOK_END:RET;蜂鸣器响一声子程序BEEP_BL:MOVR6,#200BL1:ACALLBL2CPLBEEP;蜂鸣器取反产生驱动脉冲DJNZR6,BL1SETBBEEP;关闭蜂鸣器MOVR5,#15ACALLDELAYRETBL2:MOVR7,#200BL3:NOPDJNZR7,BL3RET;定时器0
39、计时中断子程序TIMER0:PUSHACCPUSHPSWMOVTH0,#4CHINCCOUNTMOVA,COUNT;50ms计数值力口1CJNEA,#20,T0_ENDMOVCOUNT,#0INCSEC;MOVA,SECCJNEA,#03H,T0_0SETBSEC3;T0_0:CJNEA,#10,T0_ENDMOVSEC,#0;SETBSEC10;T0_END:POPPSWPOPACCRETI延时R5*10MS子程序DELAY:MOVR6,#50MOVTL0,#00H;50ms定时常数秒加1置3s标志位是否到10秒?秒单元清0置10s标志位DEL1:MOVR7,#93DEL2:DJNZR7,D
40、EL2DJNZR6,DEL1DJNZR5,DELAYRET;延时5MS子程序DELAY1:MOVR6,#25DEL3:MOVR7,#93DEL4:DJNZR7,DEL4DJNZR6,DEL3RET;检查LCD忙状态;busy为1时,忙,等待。busy为0时,闲,可写指令与数据LCD_BUSY:MOVDATAPORT,#0FFHBUSY_1:CLRLCD_RSSETBLCD_RWCLRLCD_ENNOPSETBLCD_ENJBBUSY,BUSY_1CLRLCD_ENRET;LCD写命令子程序;LCD_RS=L,LCD_RW=L,D0-D曲令码,=高脉冲WCOM:JNBBUSY_CHECK,WCOM_1ACA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学交通工程(交通工程设计)试题及答案
- 2025年中职医学检验技术(检验实操)试题及答案
- 2025年中职机电一体化技术(设备故障诊断)试题及答案
- 2025年大学(艺术设计学)设计心理学期末试题及答案
- 2025年大学水污染防治管理应用(应用技术)试题及答案
- 2025年中职(印刷技术)平版印刷操作阶段测试试题及答案
- 2025年中职(文秘)文书写作试题及解析
- 2025年大学一年级(建筑学)建筑设计阶段测试题及答案
- 2025年高职食品质量与安全(食品质量安全)试题及答案
- 2025年高职心理健康教育(心理健康辅导)试题及答案
- 比亚迪索赔培训课件
- 路基换填施工方案标准
- 关于怎样展开督导的工作方案
- 中国数联物流2026届校园招聘50人考试题库及答案1套
- 2025年大学网络工程(网络安全技术)试题及答案
- 中国餐饮巨头百胜集团深度分析
- 胸锁乳突肌区课件
- 2025年物业管理师《物业管理实务》真题及试题及答案
- 钢结构施工优化策略研究
- 保安公司介绍PPT模板
- 医疗质量与安全管理小组活动记录
评论
0/150
提交评论