智能密码锁设计_第1页
智能密码锁设计_第2页
智能密码锁设计_第3页
智能密码锁设计_第4页
智能密码锁设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上湖南工程学院等级:课 程 设 计课程名称 单片机原理及应用 课题名称 智能密码锁设计 专 业 自动化 班 级 1291 学 号 姓 名 指导教师 2014 年 12 月15 日湖南工程学院课 程 设 计 任 务 书课程名称 单片机原理及应用 课 题 智能密码锁设计 专业班级 自动化1291 学生姓名 聂利峰 学 号 5 指导老师 王迎旭 李晓秀 审 批 任务书下达日期 2014 年 12 月 1 日任务完成日期 2014 年 12 月 15 日设计内容与设计要求设计内容:本课题是要发设计一种基于单片机控制的智能电子密码锁,主要功能有:按用户使用要求可设置、修改密码,遥

2、控或按键开锁,错误报警、显示等辅助功能。设计要求:1)根据课题要求,确定智能电子密码锁的硬件; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行单元电路及应用程序的调试;主 要 设 计 条 件1. 密码可设48位,并可在线修改并存储;2.密码输错3次应有报警信号提示,并有特殊密码解除;3.出开锁时外的时候,要求显示的是北京时间;4.开锁信号可以通过继电器输出。说 明 书 格 式封面课程设计任务书目录第1章 概述(课题设计的要求、目的及意义)第2章 系统总体方案选择与说明(系统硬件电路设计框图与工作原理)第3章 硬件电路设计(各部分电路设计、原理、参数计

3、算、I/O分配等)第4章 应用软件设计(流程图、算法等)*第5章 系统仿真调试第6章 硬件调试与结果分析(开发板焊接、性能测试、结果、操作说明)第7章 小结(已完成的工作、效果、特色、不足与展望)致谢参考文献 附录A 系统硬件电路原理图附录B 程序清单评分表进 度 安 排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五 小系统焊接与调试;第二周星期一、各硬件模块设计星期二、各软件模块设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资

4、料,答辩参 考 文 献参考文献1 王迎旭等.单片机原理及及应用M.机械工业出版社.2012年2 胡汉才,单片机原理及其接口技术 M. 3版. 北京:高等教育出版社,2004. 3 陈海宴. 51单片机原理及应用基于keil C与proteus M. 北京:北京航空航天大学出版社,2010.4 邓亚平. 微型计算机接口技术 M. 北京:清华大学出版社, 2001 目 录第1章 概述 .11.1 设计要求.11.2 目的及意义. 1第2章 系统总体方案选择与说明.2 2.1系统硬件电路设计框图. 22.2 工作原理. 2第3章 硬件电路设计.43.1 时钟电

5、路设计.43.2 开锁电路设计.43.3 复位电路设计. .53.4 报警电路设计.53.5 键盘电路设计.53.6 LED数码管显示电路设计.63.7 密码存储电路设计.7第4章 应用软件设计.94.1软件设计思路.94.2各子程序设计.9 4.2.1 键盘扫描子程序设计.9 4.2.2 LED显示子程序设计. 11 4.2.3 开锁子程序设计.114.2.3 EEPROM闪存子程序设计.11第5章 硬件调试与结果分析.13第6章  小结.致 谢.参考文献.附    录.附录A:系统硬件电路原理图.附录

6、B:源程序清单.电气与信息工程系课程设计评分表.  第1章 概  述1.1 设计要求本设计是基于单片机控制的智能电子密码锁,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。 主要功能有:按用户使用要求可设置、修改密码,遥控或按键开锁,错误报警、显示等辅助功能。列如:(1) 密码可设4位,并可在线修改并存储;(2)密码输错3次应有报警信号提示,并有特殊密码解除;(3)出开锁时外的时候,要求显示的是北京时间;(4)开锁信号可以通过继电器输出。1.2 目

7、的及意义在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少、安全性能差的缺点,使电子密码控制系统无论在技术上还是在性能上都大大提高了一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码控制系统,它除具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有很高的安全性、可靠性,应用日益广泛。 第2章 系统总体方案选择与说明2.1系统硬件电路设计框图本方案采用一种是用以89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性

8、,实现基本的密码锁功能。 根据设计要求与设计思路,确定系统的设计方案,图2.1为系统组成原理框图。硬件有以下几部分组成:单片机、时钟电路、复位电路、键输入电路、串行EEPROM扩展电路、LED数码管显示电路、LED指示灯电路、蜂鸣器电路、继电器电路等。键盘输入电路系统复位电路时钟电路EEPROM闪存LED数码显示LED、蜂鸣器、继电器电路单片机图2.1系统硬件电路设计方案框图 2.2 工作原理(1)系统的原始密码放在RAM区,在运行过程中可以实时更改系统密码。(2)利用串行EEPROM存储芯片,可以随时读取新密码,且具有掉电保护功能。(3)人机交互通过键盘输入,系统根据键值做出相应的

9、处理,完成具体的功能。(4)LED数码管通过驱动电路,显示相应的状态。位选由P2口高四位产生,段码由P1口输入。 (5)系统还扩展了LED指示灯、蜂鸣器、继电器等一些其本外围电路。(6)此系统共设计了3个基本功能键:密码设置键、确认键、复位键。 密码设置键:当用户需更改密码时,可通过此功能键方便地修改原先的旧密码。 确认键:当完成密码输入后,可按此功能键即可实现密码的比较和处理。 复位键:当密码三次输入错误时,系统进入死锁状态,可按此功能键跳出此状态。 第3章 硬件电路设计3.1 时钟电路设计单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电

10、容就构成了单片机的时钟电路,如图3.1所示。  图3.1  时钟电路 电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在22±0.1PF,一般晶振为12MHZ,电容取2PF。石英晶体选择12MHZ。3.2开锁电路设计本次智能电子密码锁设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.2所示。当P2.0口输出低电平时,二极管发光,表示开锁。 图3.2开锁电路3.3复位电路设计在接通电源瞬间

11、,电容C3上的电压很小, RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,当复位按键按下后电容C3通过R5放电,当电容C3放电结束后,RST端的电位由R5与R6分压比决定,由于R5R6,所以RST为高电平,CPU处于复位状态,松手后,电容C3充电,RST端电位下降,CPU脱离复位状态,R5的作用在于限制按键按下瞬间电容C3的放电电流,避免产生火花以保护按键触电,其电路如图3.3图3.3复位电路3.4 报警电路设计图3.4 报警电路 报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流

12、。蜂鸣器电路如图3.4所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。3.5键盘电路设计     此次课程设计采用4*4矩阵键盘,与P2口相连,采用扫描法。设有09十个数字密码,和几个功能键。开机显示- - - -,等待密码输入,输入4个密码,按确认键后,密码比较。P0口送示数据,P2口显示扫描,每一个键对应一个键码,以便将键码转到相应的的键处理子程序,进一步实现数据输入和命令处理的功能,根据按键次数,第一位显示器显示第一次按的密码,第二位显示器显示第二次按的密码,第三位显示器显示第三次按的密码,依

13、此第四位显示器显示第四次按的密码,密码对则执行相关动作,不同则显示器清零,等待重新输入。 使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.5 图3.5矩阵键盘 扫描P2.4P2.7,输出全为0,读P2.0P2.3,若P2.0P2.3全为1,则键盘上没有闭合键,若P2.0P2.3不全为1,则有键处于闭合状态。再键盘去抖确认有键闭合计算键号,判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不

14、在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。键值N=行首键号+列号 表3.1 按键功能表 按键 键名 功能说明 1-9键 数字键 输入密码 D键 确定键 密码比较 C键清除键 使显示清零 R键 密码重设键 设定新密码3.6 LED数码管显示电路设计LED显示器显示控制方法有两种,即动态显示和静态显示。静态显示亮度一般比动态显示效果好,但本次设计中,采用了动态显示。为了方便编写程序,通常在内部RAM中设置显示缓冲区,存放显示的数字或字符,显示缓冲区单元个数与LED显示器位数相同。此次基于单片机的电子密码锁,我选用动态显示,通过与软件配合,每输入一个密码,

15、进行显示一次,扫描,4个密码输入完后,进行比较,密码正确则开锁,密码错误,可重新输入三次,三次后仍然错误,报警!。用P0.0P0.7通过上拉电阻接数码管七段显示,P2.4P2.7接LED位显示,通过软件实现数字和位控制,显示电路原理图如图3.6所示 图3.6 LED数码显示电路3.7 密码存储电路设计电路中单片机的P3.4引脚作为串行时钟线SCL,P3.5引脚作为串行数据线SDA,A0、A1、A2接地,从第0页开始存,单片机I/O口模拟串行总线与AT24C02的接口电路如图3.7所示 图3.7 密码存储电路设计第4章 应用软件设计4.1软件设计思路电子密码锁工作的主要过程是LED数码管没键按下

16、时显示时间,有键按下,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警,一段时间内没键按下返回时间显示。软件设计总流程图如图4.1固定密码动态密码显示开锁3次错误报警开始有无键按下?密码对错?时间显示NYNY 图4.1软件设计总流程图4.2各子程序设计4.2.1 键盘扫描子程序 输入键号到A返回有键闭合?有键闭合?调用显示子程序延时开始两次调用显示子程序延时调用显示子程序延时键释放?YNYNYN图4.2 键盘子程序流程图键盘子程序如下KEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;

17、有键按下继续 LCALL DISP LCALL DELAY2 INC 6AH MOV A,6AHCJNE A,#250,KEY RET K1: LCALL DELAY2 LCALL DELAY2 ;有键按下继续延时去抖动 LCALL KS ;再一次调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;返回继续检测有无按键按下 K2: MOV R2,#0EFH ;将扫描值送入 R2暂存 MOV R4,#00H ;将第一列的列值00H送入R4暂存,R4用于存放列值。K3: MOV P2,R2 ;将R2的值送入P2口L6: JB P2.0,L1 ;P2.0等于1跳转到L1 MO

18、V A,#00H ;将第一行的行值00H送入ACC LJMP LK ;跳转到键值处理程序L1: JB P2.1,L2 ;P2.1等于1跳转到L2 MOV A,#04H ;将第二行的行值送入ACC LJMP LK ;跳转到键值理程序进行键值处理L2: JB P2.2,L3 ;P1.2等于1跳转到L3 MOV A,#08H ;将第三行的行值送入ACC LJMP LK ;跳转到键值处理程序L3: JB P2.3,NEXT ;P2.3等于1跳转到NEXT处 MOV A,#0cH ;将第四行的行值送入ACCLK: ADD A,R4 ;行值与列值相加后的键值送入A PUSH ACC ;将A中的值送入堆栈暂

19、存 MOV R2,A MOV 6AH,#00H INC 48H ;按键次数加一 CJNE A,#10,K5 MOV 48H,#00H LCALL K4 LJMP judge ;转判断4.2.2 LED显示子程序采用LED动态显示,由单片机P0口进行输出显示,P2口扫描, LED数码管显示程序流程图如图4.3开始密码对错处理按键数值存R2比较MOV P0,A按键值入AINC R1,位控右移取显示表头地址显示单元从EFH开始入R1按键数是否为4?一段时间内有键按下?MOVC A,A+DPTRNY返回时间显示NY 图 4 .3 LED显示子程序流程图 LED显示子程序如下 DISP0: M

20、OV 7AH,#11 ;显示清- MOV 7BH,#11 MOV 7CH,#11 MOV 7DH,#11 RET;子程序返回 DISPLAY: MOV R3,48H ;按键次数放R3 MOV A,51H ; 修改新密码次数 CJNE A,#1,N4 ;新密码输入次数 不等转N4 N9: MOV A,R2 ;按键值存A N5: CJNE R3,#1,N6 ;判断按键次数 MOV 74H,A ;按键值存缓存单元 MOV 7aH,A AJMP DISP N6: CJNE R3,#2,N7 MOV 75H,A MOV 7BH,A AJMP DISP N7: CJNE R3,#3,N8 MOV 76H,

21、A MOV 7CH,A AJMP DISP N8: CJNE R3,#4,DISP MOV 77H,A MOV 7DH,A AJMP DISP N4: MOV A,R2 ; 重复输入新密码转N4 N0: CJNE R3,#1,N1;判断按键次数 MOV 7aH,A ;存缓存 AJMP DISP N1: CJNE R3,#2,N2 MOV 7BH,A AJMP DISP N2: CJNE R3,#3,N3 MOV 7CH,A AJMP DISP N3: CJNE R3,#4,DISP MOV 7DH,A DISP: MOV R1,#0EFH ;显示的位控 MOV R0,#7aH ;从7a开始显示

22、 DISPLAY2:MOV A,R0 ;显示缓存单元放AMOVC A,A+DPTR ;转换成段码MOV P0,A ;显示MOV A,R1 ;位控MOV P2,A ;位控LCALL DELAY2INC R0RL AMOV R1,ACJNE R1,#0FEH,DISPLAY2RET ;子程序返回4.2.3 开锁子程序设计如图4.4为开锁流程图,输入密码,如果密码正确,则开锁成功,如果输入错误累计达到三次,则执行报警程序。开始初始化输入密码报警输入次数加1开锁密码正确?返回次数>3YNNY 图4.4开锁子程序流程图4.2.3 EEPROM闪存子程序设计图4.5为实现单片机通过串行总线对AT24

23、C02的数据读写。单片机的P3.4引脚作为串行时钟线SCL,P3.5引脚作为串行数据线SDA,开机从24C02读取上次保存的密码,修改密码后又重新存入新的密码。从24C02读密码开始新密码存入24C02修改密码成功返回图4.5 EEPROM闪存子程序设计第5章 硬件调试与结果分析开机初始界面LED数码管显示时间0时0分,LED灯不亮表示未开锁,图5.1所示。 图5.1输入第一位密码0,LED数码管第一位显示0其余三位显示,LED灯不亮表示未开锁,显示如图5.2 图5.2密码输入错误,LED数码管显示表示待重新输入密码,LED灯不亮表示开锁不成功,如图5.3图5.3 密码输入完成且正确,LED灯

24、亮表示开锁成功,显示如图5.4图5.4 一段时间内无按键输入返回时间显示0时3分,如图5.5 图5.5密码连续三次输入错误LED数码管显示最后一次输入值1,前面三位数码管不显示,如图5.6 图5.6第6章 小结通过老师的悉心指导,团队小组的团结协作,在为期两周的课程设计里,我们应该说还是比较顺利的完成了这次智能密码锁的单片机课程设计的按用户使用要求可设置、修改密码、遥控或按键开锁,错误报警、显示等辅助功能等要求。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,开阔了眼界,提高了单片机知识的理解和水平。学会了坚持、耐心和努力;发现、提出、分析、解决问题和实践能力的提高都

25、会受益于我在以后的学习、工作和生活中。设计过程,首先要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践

26、的过程中仍有意想不到的困惑,以至于还有一些功能不能主动完成。对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,但通过学习这一次实践,增强了我们的动手能力,提高和巩固了单片机方面的知识,特别是软件方面。从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是非常重要的。 致 谢在这次课程设计顺利完成的过程中,首先我要感谢王迎旭老师在课程设计上给予我的悉心指导、提供给我的支持和帮助,王老师多次帮助我

27、分析思路,开拓视角,这是我能顺利完成这次课程设计的主要原因,其次我要感谢我的团队在这两周的相互帮助,相互学习,一起把设计顺利的做好,在此期间,我不仅学到了许多新的知识,而且也开阔了视野,掌握了基本的研究方法,提高了自己的设计能力。同时也感谢学院为我提供良好的做课程设计的环境。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。参考文献 1 王迎旭. 单片机原理与应用 M. 北京: 机械工业出版社,2004.2 胡汉才,单片机原理及其接口技术 M. 3版. 北京:高等教育出版社,2004. 3 陈海宴. 51单片机原理及应用基于keil C与proteus M. 北京:北京航空航天大学出版社

28、,2010.4 邓亚平. 微型计算机接口技术 M. 北京:清华大学出版社, 2001 5 周航慈. 单片机应用程序设计技术 M. 北京: 北京航空航天大学出版社, 2002 6 谢宜仁. 单片机实用技术问答 M. 北京: 人民邮电出版社, 2002附 录附录A:系统硬件电路原理图附录B 程序清单 SCL EQU P3.4 SDA EQU P3.5MIAO1 EQU 68HMIAO2 EQU 67HFEN1 EQU 66H FEN2 EQU 65HSHI1 EQU 64HSHI2 EQU 63HMIAO EQU 60HFEN EQU 61HSHI EQU 62HORG 0000hLCALL re

29、ad SJMP START1ORG 000BHAJMP TIMER0 ORG 0030hSTART1: MOV 7AH,#11 ;初始显示 MOV 7BH,#11 MOV 7CH,#11 MOV 7DH,#11 MOV DPTR,#TAB ;将表头放入DPTR MOV SP, #80HMOV 52H, #00H ; 定时中断次数清零MOV MIAO,#0MOV FEN,#0MOV SHI,#0MOV TMOD, #01HMOV TH0 ,#3CHMOV TL0 ,#0B0H SETB TR0 SETB ET0SETB EAMAIN0: LCALL KS ;JNZ MAIN CALL shiji

30、anMOV R1,#0EFH MOV R0,#63HCALL DISPLAY2 ;时间显示SJMP MAIN0TIMER0: PUSH ACCINC 52H ;定时中断次数加一MOV A ,52HCJNE A ,#20 ,backMOV 52H ,#0INC MIAOMOV A,MIAOCJNE A,#60,backMOV MIAO,#0INC FENMOV A ,FENCJNE A,#60 ,backMOV FEN ,#0 INC SHIMOV A , SHICJNE A,#24, backMOV SHI ,#0back: POP ACC MOV TH0,#3CH MOV TL0,#0B0H

31、 RETIshijian: MOV A ,MIAOMOV B,#10DIV ABMOV MIAO2 ,AMOV MIAO1 , BMOV A,FENMOV B, #10DIV ABMOV FEN2 , AMOV FEN1 , BMOV A,SHIMOV B ,#10DIV ABMOV SHI2,AMOV SHI1 ,BRETMAIN: LCALL KEY ;调用键盘扫描程序 MOV A,6AH CJNE A,#250, D2 AJMP MAIN0D2: LCALL DISPLAY ;数字键显示 MOV A,R3 ;判断按了几次 CJNE A,#4,MAIN MOV 48H,#0 MOV A,5

32、0H CJNE A,#11,judge MOV A,51H CJNE A,#0,L10 LJMP judgejudge:MOV A,7AH CJNE A,70H,ERROR MOV A,7BH CJNE A,71H,ERROR MOV A,7CH CJNE A,72H,ERROR MOV A,7DH CJNE A,73H,ERRORL10: MOV A,50H;修改值放A CJNE A,#11,L4 INC 51H;修改新密码次数 AJMP L5L4: CLR P1.0 ;开锁L5: MOV A,51H CJNE A,#3,L11 LCALL XGBIJIAOL11: LCALL DISP0

33、MOV 49H,#00H MOV 48H,#0 LJMP MAINXGBIJIAO:MOV A,7AH ;修改密码确认比较 CJNE A,74H,ERROR MOV A,7BH CJNE A,75H,ERROR MOV A,7CH CJNE A,76H,ERROR MOV A,7DH CJNE A,77H,ERROR MOV 51H,#00H MOV A,74H;修改成功保存密码 MOV 70H,A MOV A,75H MOV 71H,A MOV A,76H MOV 72H,A MOV A,77H MOV 73H,A CLR P0.4 MOV 50H,#00H MOV 51H,#00H LCA

34、LL write RETERROR: LCALL DISP0 SETB P1.0 SETB P0.4 MOV 50H,#00H MOV 51H,#00H INC 49H ;每错一次加一 MOV A,49H CJNE A,#3,LOOP0 ;错三次报警 MOV 49H,#00HALARM: CLR P3.7 SJMP ALARMLOOP0:LJMP MAINKEY: LCALL KS ;调用检测按键子程序 JNZ K1 ;有键按下继续 LCALL DISP LCALL DELAY2 INC 6AH MOV A,6AHCJNE A,#250,KEY RET K1: LCALL DELAY2 LCA

35、LL DELAY2 ;有键按下继续延时去抖动 LCALL KS ;再一次调用检测按键程序 JNZ K2 ;确认有按下进行下一步 AJMP KEY ;返回继续检测有无按键按下 K2: MOV R2,#0EFH ;将扫描值送入 R2暂存 MOV R4,#00H ;将第一列的列值00H送入R4暂存,R4用于存放列值。K3: MOV P2,R2 ;将R2的值送入P2口L6: JB P2.0,L1 ;P2.0等于1跳转到L1 MOV A,#00H ;将第一行的行值00H送入ACC LJMP LK ;跳转到键值处理程序L1: JB P2.1,L2 ;P2.1等于1跳转到L2 MOV A,#04H ;将第二

36、行的行值送入ACC LJMP LK ;跳转到键值理程序进行键值处理L2: JB P2.2,L3 ;P1.2等于1跳转到L3 MOV A,#08H ;将第三行的行值送入ACC LJMP LK ;跳转到键值处理程序L3: JB P2.3,NEXT ;P2.3等于1跳转到NEXT处 MOV A,#0cH ;将第四行的行值送入ACCLK: ADD A,R4 ;行值与列值相加后的键值送入A PUSH ACC ;将A中的值送入堆栈暂存 MOV R2,A MOV 6AH,#00H INC 48H ;按键次数加一 CJNE A,#10,K5 MOV 48H,#00H LCALL K4 LJMP judgeK5

37、: JC K4 CJNE A,#11,L12 ;修改密码功能键A MOV 50H,AL12: MOV 48H,#00H LCALL DISP0K4: LCALL DISP LCALL DISP ;调用延时去抖动程序 LCALL KS ;调用按键检测程序 JNZ K4 ;按键没有松开继续返回检测 POP ACC ;将堆栈的值送入ACC RET ;子程序返回NEXT: INC R4 ;将列值加一 MOV A,R2 ;将R2的值送入A JNB ACC.7,KEY ;扫描完成跳至KEY处进行下一回合的扫描 RL A ;扫描未完成将A中的值右移一位进行下一列的扫描 MOV R2,A ;将ACC的值送入R

38、2暂存 LJMP K3 ;跳转到K3继续KS: MOV P2,#0FH ;将P2口高四位置0低四位值1 MOV A,P2 ;读P2口 XRL A,#0FH ;将A中的值与A中的值相异或 RET ;子程序返回;* ;读24C02的数据的程序 read: ACALL START ;开始信号 MOV A,#0A0H ;发从机的地址 ACALL SEND ;发送控制字 ACALL ACKI;接收应答 JC OUTEND ;不响应,转结束 MOV A,#00H;设置要读取从器件的片内地址 ACALL SEND ACALL ACKI JC OUTEND ACALL START ;开始信号 ORL A,#0

39、A1H;设置控制字,准备接收 ACALL SEND ;发送控制字 ACALL ACKI JC OUTEND MOV R2,#4 ;准备接收数据的字节数 MOV R1,#70H ;接收字节存放在主器件中的地址60H IN0: ACALL REV ;接收一个字节 ACALL ACKO;主机向24C02发送应答信号 MOV R1,A ;把接收到数据存放到存储单元中 INC R1 DEC R2 CJNE R2,#1,IN0 ;判断是否为最后一个接收字节 ACALL REV ;接收最后一个字节 ACALL ACKN; MOV R1,A ;把接收到数据存放到存储单元中 OUTEND: ACALL STOP ;停止信号 ret ;* ;写24C02的数据的程序 write: LCALL START ;开始信号 MOV A,#0A0H ;定控制字,准备发送 ACALL SEND ;发送控制字 ACALL ACKI ;接收应答 JC WRITEEND ;从器件不响应,转结束 MOV A,#00H ;设置从器件片内地址 ACALL SEND ;发送片内地址 ACALL ACKI JC WRITEEND

温馨提示

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

评论

0/150

提交评论