电子密码锁课程设计报告

合集下载

电子密码锁程序设计报告

电子密码锁程序设计报告
课程设计报告
课程设计题目:8位数字密码锁设计
学院:计算机科学与技术学院
姓名:王小川
班级:10级2班
学号:
指导老师:黄为民
2012年2月17日
1.课程设计的目的和要求
设计一数字密码锁,在锁开的情况下输入密码,设置密码共八位,用数据开关sw0-sw9分别代表数字0,1,2,3,……,9。输入的密码用七段显示器显示。具体要求如下:
always@(posedge clk_1Hz)//开锁及关锁
begin
if(lock==0&&!check)
begin
if(code=={num8,num7,num6,num5,num4,num3,num2,num1})
lock<=1;
else
if({num8,num7,num6,num5,num4,num3,num2,num1}==32'b)//万能密码开锁
//assign clock = {clk_1MHz, clk_100KHz, clk_10KHz, clk_1KHz, clk_100Hz, clk_10Hz, clk_1Hz};
divide_by_50 d6 (clk_1MHz, CLK, RST);
divide_by_10 d5 (clk_100KHz, clk_1MHz, RST);
begin
if({n0,n1,n2,n3,n4,n5,n6,n7,n8,n9}!=10'b)
begin
case({n9,n8,n7,n6,n5,n4,n3,n2,n1,n0})
10'b:temp=4'd0;
10'b:temp=4'd1;
10'b:temp=4'd2;

课程设计电子密码锁

课程设计电子密码锁

课程设计电子密码锁一、教学目标本课程旨在让学生了解和掌握电子密码锁的基本原理和制作方法,培养学生的电子技术应用能力和创新思维。

具体目标如下:1.知识目标:(1)了解电子密码锁的工作原理及其基本组成部分;(2)掌握常用电子元器件的识别、选用和应用;(3)学习编程和电路设计的基本方法。

2.技能目标:(1)能够独立完成电子密码锁的电路设计;(2)熟练使用编程软件进行程序设计;(3)具备团队协作能力和问题解决能力。

3.情感态度价值观目标:(1)培养学生对电子技术的兴趣和热情;(2)增强学生的创新意识和实践能力;(3)培养学生具备良好的团队精神和合作意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.电子密码锁的基本原理及其组成部分;2.常用电子元器件的识别、选用和应用;3.电路设计的基本方法;4.编程软件的使用和程序设计;5.电子密码锁的制作和调试。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:用于讲解基本原理和知识点;2.讨论法:引导学生探讨和解决问题;3.案例分析法:分析实际案例,加深学生对知识的理解;4.实验法:动手实践,培养学生的操作技能。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:提供基本知识和理论学习;2.参考书:拓展学生的知识视野;3.多媒体资料:辅助讲解和展示实验过程;4.实验设备:用于学生的动手实践。

五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置适量的作业,评估学生的理解和掌握程度;3.考试成绩:通过期中和期末考试,全面评估学生的知识掌握和应用能力。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:1.教学进度:按照教材和大纲,合理安排每个章节的教学内容;2.教学时间:根据课程内容和学生的实际情况,合理分配课堂讲解、实验操作等时间;3.教学地点:选择适当的实验室和教室,确保教学顺利进行。

电子技术课程设计报告电子密码锁

电子技术课程设计报告电子密码锁

电子技术课程设计报告电子密码锁电子技术课程设计报告设计课题:电子密码锁电子密码锁一、引言随着人们生活水平的提高,人们对自己的生活有了越来越高的要求,贵重物品也越来越多,而传统的机械安全锁由于其构造的简单,被撬被盗事件在我们身边经常发生,使我们的财产以及人身安全存在很大的安全隐患,这致使我们寻求更好的安全措施。

电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。

而且密码锁的形式多样,有声控密码锁,电子密码锁等,社会上大多使用电子按键密码锁。

本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安全工作,具有较高的安全系数。

要求电子器件设计制作密码锁的控制电路,使之在规定的时间内输入正确的密码时,输出信号以开启密码锁,否则报警电路报警。

本设计用红、绿LED指示关锁、开锁状态和报警状态。

二、设计任务1、密码锁控制器中存储一个4位代码,当锁按钮开关设置8位(其中只有4位有效)的输入代码等于存储代码时启动开锁控制电路,并且用绿灯亮表示开锁状态。

2、从第一个按钮触动后的15秒内若未能将锁打开,则报警电路发报警信号,同时用绿灯灭表示关锁状态。

3、要求性能可靠、操作简便。

4、密码锁控制器中存储的4位密码可以修改。

5、分析部件见工作原理,绘制电路图,进行仿真制作实物并撰写设计报告。

三、设计方案方案一:用开关控制可控硅整端口的电压变化即导通,按依次按下四个开关,其功能相当于给可控硅一个高电平触发,四个可控硅整流器依次导通,整条回路导通,发光二极管亮,而发光二极管亮即表示输入的密码为正确密码,电路达到密码锁开锁功能。

设计8位按键只有4位是正确的,如果按下4位伪码的其中一位即按下的其中一个或几个,控制报警电路可控硅导通。

此时开锁部分悬空,报警报警方案二;采用STC89C52单片机为芯片主体,采用AT24C08为掉电存储器的芯片,用单片机的P1口作为接4 ×4 键盘按键的检测按键,P0口实现数码管的按键显示,以及错误信息,单片可以进行位操作,P2口组成报警电路,密码修改电路和AT24C08的掉电保护等其他相关功能。

电子密码锁-课程设计报告

电子密码锁-课程设计报告

1、总体方案设计设计本课题时构思了两种方案:一种是用以A T89C2051为核心的单片机控制方案;另一种是用CMOS数字集成电路控制方案。

考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。

1:采用数字电路控制。

其原理方框图如图数字电路控制方案采用数字密码锁电路的好处就是设计简单。

用以CMOS构成的数字逻辑电路作为密码锁的核心控制,共设了8个用户输入键;如果用户输入密码的时间超过5秒(一般情况下,用户不会超过5秒,若用户觉得不便,还可以修改)电路将报警20秒。

通过比较以上两种方案,单片机方案有较大的活动空间,但是成本昂贵;采用数字密码锁电路只要设计合理,仍然能够满足保密性要求。

所以我们采用后一种方案。

2.1设计说明要求用电子器件设计制作密码锁的控制电路,使之在输入正确的代码时输出信号,以启动执行机构动作,并用红,绿LED灯指示开锁、关锁状态。

设计完成的要求:(1)密码锁控制器中存储一个八位代码(二进制),当开锁按钮开关(共设置了11位,其中只有8位有效密码键,其余三位为干扰位和密码更改位)的输入代码等于存储代码时启动开锁控制电路,并且绿灯亮,红灯灭表示开锁状态。

(2)从第一个按钮触动后的5秒内若未能将锁打开,则电路自动复位并有扬声器发出报警信号,报警信号持续时间20秒,同时绿灯灭,红灯亮表示关锁状态。

(3)本设计完成了发挥部分的要求即密码修改电路,通过按钮开关(space 键)控制,用户可以自行修改八位密码,修改后的密码将进入电路锁存。

2.2设计思路根据题目要求,我们设计了这款实用稳定的数字电子密码锁,由密码按钮键、预置密码锁存器、密码比较识别电路、5s计时电路和20s计时电路等组成。

整机采用CMOS数字集成电路,电路新颖,线路简单,保密性强,性能可靠,误码报警等特点。

2.3总体方框图3、设计原理分析电路组成:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入锁定电路3.1 密码输入和修改电路:电路总共设计了11个用户输入键,其中有8位是有效的密码按键,其余的分别是M键(仿真电路中采用此按键表示开始输入密码,但是实际电路中可以用灵敏度较高的端口来代替,当人走近门时,触摸了敏感端,由于人自身带电,端口变成高电平,黄色指示灯亮表示电子锁处于待命状态,当然这在仿真电路中通过按键也可以实现),L键(输入密码结束,按下确认键即L键),space键(这个按键装在电路内部,是密码修改键,修改前后分别按space 按键表示修改密码和密码修改结束)3.2报警电路:报警电路实现的功能是:当输入密码的时间超过5s(一般情况下用户输入不会超过)或者密码输入错误,电路报警20s,防止他人恶意开锁。

电子密码锁实验报告

电子密码锁实验报告

课程设计(综合实验)报告( 2011 -- 2012 年度第 1 学期)名称:电子技术综合实验题目:数字电子钟院系:电气与电子工程学院班级:电气0903学号:**********学生姓名:**指导教师:**设计周数: 2成绩:日期:2012 年 1 月8 日一、课程设计(综合实验)的目的与要求钟表是人们生活中的常用物品。

本题要求用电子器件设计制作一个数字电子钟。

具体要求是:1、设计一个能直接显示时、分可以进行校“时”、校“分”的数字电子钟。

小时可采用十二进制也可采用二十四进制。

2、(1)设计24小时整点报时控制电路,要求每整点发出一声音响报时。

(2)要求只在6--22点之间每整点报时一次,23--5点之间整点不报时。

3、设计任意几点几分均可响铃的闹钟控制电路。

响铃1分钟,可提前终止。

4、根据规定的作息时间表,设计自动响铃控制电路。

(选做)2.设计思路数字式电子钟的基本功能是能够实现时、分、秒的正确计时,计时单位为1秒。

因此,一个简单的数字式电子钟,首先必须有计时显示电路和秒脉冲产生电路。

(为了避免重复电路,秒计时在本课题中省略,所以计时单位为1分钟,秒脉冲变为分脉冲,仿真中可用软件中已有的时钟信号发生器来实现。

)其次,当刚接通电源或时钟走时出现误差时,需要进行时间校准,否则就不能正确表示当前时间。

因此,数字式电子钟应有校时控制电路。

另外,若要求数字钟能够自动整点报时或按要求时间闹铃,还应有整点报时和闹铃控制电路。

若还需要其它功能,相应的还要有一些控制电路。

综上所述,数字式电子钟应由计时显示电路和控制电路组成。

二.方案设计与论证1、计时电路时间标准:“分”信号后,就可以根据60分为1小时,24小时为一天的计数周期,分别组成一个个60进制,一个24进制的计数器。

将这些计数器适当连接,就可以够成秒,分时的计数器,实现计时功能。

本实验采用74ls160十进制加法计数器。

采用清零法和异步级联法构成60进制,24进制计数器。

(完整版)电子密码锁的设计

(完整版)电子密码锁的设计

指导教师签字:年月日目录摘要 (2)Abstract (2)第一章、绪论 (3)1.1 课题研究的相关背景 (3)1.2 课题研究的基本理论依据 (3)1.3 设计课题的任务 (3)1.4 课题研究的目的、意义 (4)第二章设计方案简述 (5)2.1 方案的论证 (5)2.2 方案的原理 (5)2.3 方案的总体框图 (5)第三章详细的设计方案 (6)3.1 密码的设定和密码的输入部分 (6)3.2 执行电路 (7)3.3 NE555秒脉冲电路 (7)3.4 报警电路 (8)3.5 倒计时电路 (8)3.6 稳压电源电路 (9)第四章设计结果及分析 (10)4.1 电路的调试 (10)4.2 功能的扩展 (10)第五章设计的总结 (12)参考文献 (13)摘要随着人门生活水平的提高,如何提高实现家庭的防盗这一问题业变得尤其突出,传统的机械锁由于其构造的简单,被撬开的事件屡见不鲜,使我们的财产以及人身安全有了很大的隐患,这致使我们寻求更好的安全措施。

电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。

设计本课题时构思的方案是采用74LS86四两输入的异或门和74LS04非门构成的数字逻辑电路控制方案。

初始密码(可以修改)设定后,当输入密码正确时按下开锁按钮,绿灯亮表示开门;当输入密码错误按下开锁按钮时,红灯亮表示报警状态,同时555电路产生脉冲进入10秒的倒计时并发出报警声。

关键词:电子密码锁;74LS86四两输入异或门;74LS04非门;555电路AbstractWith the people's living standards increase, how to improve the implementation of family protection against the problem has become particularly outstanding, and the traditional machinery lock because of its construction of simple and forcing open the event of the case, our property and security of person was a great potential, this to us for the safety measures. the lock because of its confidentiality high, with agility, safety, was the favorite.This subject in the design concept plan was adopted 74ls86 4 liang of the input power, or the door and 74ls04 the door of a digital logic to control circuit.Initial passwords ( can modify ) then, when the right to enter the password when the open lock button, the green light before the door when their ; enter the password mistake in the open lock button when the lights indicate the state, the circuit produce pulses 555 to 10 seconds count down and alarm.Keywords:electronic combination locks;74ls86 ;74ls04 ;555 chip第一章、绪论1.1 课题研究的相关背景在现代城市中,随着人们生活水平的提高,如何提高实现家庭的防盗这一问题业变得尤其突出,传统的机械锁由于其构造的简单,被撬开的事件屡见不鲜,使我们的财产以及人身安全有了很大的隐患,这致使我们寻求更好的安全措施。

电子密码锁的课程设计报告书

电子密码锁的课程设计报告书

电子技术基础课程设计说明书题目:电子密码锁的设计摘要本文要求用电子器件设计制作一个电子密码锁的控制电路.使之输入正确的代码时.锁自动打开;当输入密码不正确时.电路自动报警并复位.并且利用了一些附加电路保证了电路的正常工作.使电路拥有了极高的安全系数。

本文首先对电子密码锁的基础知识进行了详细说明.然后详细分析了电子密码锁的工作原理.各组成部分的作用。

关键词:电子密码锁 D触发器 Multisim 10AbstractThis requirement is designed to use electronic devices of an electronic lock control circuit to make it enter the correct code, the lock opens automatically; when the input password is incorrect when the automatic alarm, and reset the circuit, and the use of some additional circuitry to ensure the circuit normal work, so that the circuit has a very high safety factor. In this paper, the electronic lock of the basic knowledge of a detailed explanation, and then a detailed analysis of the electronic code lock works, the role of the various components.Keywords: Electronic Code Lock, D flip-flop Multisim 10目录一设计任务.................................................................... - 1 -1.1设计目的和意义........................................................... - 1 -1.1.1目的............................................................... - 1 -1.1.2意义............................................................... - 1 -1.2初始参数和要求........................................................... - 2 -1.2.1 初始参数.......................................................... - 2 -1.2.2 要求.............................................................. - 2 - 二系统设计..................................................................... - 3 -2.1系统工作原理............................................................. - 3 -2.1.1 . 电路结构框图.................................................... - 3 - 2.1.2 . 电路工作原理.................................................................................... ..............................- 3 -2.1.3 . 电路原理图...................................................... - 3 -2.2 器件选择................................................................ - 4 -2.3电路设计................................................................. - 7 - 2.3.1. 密码电路的设计.................................................................................... ...........................- 7 -2.3.2. 置零电路及报警电路设计.................................................................................... ...........- 8 -2.3.3. 延时电路设计..................................................... - 8 -2.4 电路仿真测试............................................................ - 8 - 三总结......................................................................... - 9 -3.1结论..................................................................... - 9 -3.2优点与不足............................................................... - 9 -3.3 心得与体会.............................................................. - 9 - 参考文献....................................................................... - 10 - 感谢........................................................................... - 10 -一设计任务1.1设计目的和意义1.1.1目的设计一种用开关控制D触发器的翻转.达到密码开锁的电子密码锁的数字逻辑电路。

eda课程设计电子密码锁

eda课程设计电子密码锁

eda课程设计 电子密码锁一、课程目标知识目标:1. 学生能够理解电子密码锁的基本原理,掌握其电路组成及功能。

2. 学生能够了解数字电路的基本知识,包括逻辑门、触发器等,并运用这些知识分析电子密码锁的工作原理。

3. 学生能够掌握二进制与十进制的转换方法,并应用于电子密码锁的设计。

技能目标:1. 学生能够运用所学知识设计并搭建简单的电子密码锁电路。

2. 学生能够通过实际操作,调试并优化电子密码锁的性能。

3. 学生能够运用EDA软件(如Multisim、Protel等)进行电子密码锁电路的设计、仿真和测试。

情感态度价值观目标:1. 培养学生动手实践、解决问题的能力,增强自信心和成就感。

2. 培养学生团队协作精神,学会沟通与分享,提高合作能力。

3. 增强学生对电子科技的兴趣和热爱,激发创新意识和潜能。

课程性质分析:本课程为电子技术实践课程,注重理论联系实际,强调学生的动手能力和创新能力。

学生特点分析:学生处于高中阶段,具有一定的电子基础和逻辑思维能力,对实践操作充满兴趣。

教学要求:结合课程性质和学生特点,将课程目标分解为具体的学习成果,以项目为导向,引导学生通过实践探索,完成电子密码锁的设计与制作。

在教学过程中,注重启发式教学,鼓励学生提问、思考、解决问题,培养其创新能力和实际操作能力。

后续教学设计和评估将以此为基础,确保学生达到预定的学习成果。

二、教学内容1. 理论知识:- 数字电路基础知识:逻辑门、触发器、计数器等;- 电子密码锁原理:锁体结构、电路设计、密码设置与识别;- 二进制与十进制转换方法及其应用。

2. 实践操作:- 使用EDA软件(如Multisim、Protel)进行电子密码锁电路设计;- 搭建电子密码锁电路,进行实际操作和调试;- 分析并优化电子密码锁性能,提高其安全性。

3. 教学大纲:- 第一阶段:数字电路基础知识学习,占总课时1/3;- 第二阶段:电子密码锁原理学习,占总课时1/3;- 第三阶段:实践操作,包括EDA软件使用、电路搭建、调试与优化,占总课时1/3。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖州师范学院求真学院课程设计总结报告课程名称单片机系统课程设计设计题目保险箱电子密码锁的设计专业班级姓名学号指导教师报告成绩求真学院信息与工程系二〇一〇年七月三日《单片机系统课程设计》任务书一、课题名称基于单片机电子密码锁的设计制作二、设计基本要求基本功能:1、能通过正确密码输入开锁,并且开锁动作由灯光状态提示。

2、输入错误密码启动声光报警功能。

3、实现手动上锁功能。

扩展功能:1、密码输入错误连续三次,进行长报警并锁定键盘。

2、修改密码功能3、EEPROM断电存储功能。

三、设计报告设计报告要求:(包含以下内容)1、设计任务及分析2、设计硬件方案3、软件设计流程4、软件调试5、心得感想附:主要源程序代码《保险箱的电子密码锁设计》课程设计总结报告目录一、设计任及分析………………………………………………………………………二、设计硬件方案………………………………………………………………………三、设计软件流程………………………………………………………………………四、软件调试………………………………………………………………………….…五、心得感想.……………………………………………………………………………六、程序代码.…………………………………………………………………………参考文献…………………………………………………………………………. ………《保险箱的电子密码锁的设计》一、设计任务近年来,随着改革开放的深入发展,电子电器的飞速发展.人民的生活水平有了很大提高。

各种高档家电产品和贵重物品为许多家庭所拥有。

然而一些不法分子也是越来越多。

这点就是看到了大部分人防盗意识还不够强。

造成偷盗现象屡见不鲜。

因此,越来越多的居民家庭对财产安全问题十分担忧。

有报警功能的密码锁这时正为人们解决了不少问题.但是市场上的密码锁大部分都是用于一些大公司财政机构。

价格高昂,一般人们难以接受。

如果再设计和生产一种价格低廉、性能灵敏可靠的密码锁,必将在防盗和保证财产安全方面发挥更加有效的作用。

本次设计是基于STC89C51单片机和内部资源EEPROM来实现电子密码锁的各种功能,其中主要有以下几个模块:1、矩阵键盘模块:(1)基本的数字键0~9;(2)撤销键:当输入密码有误时,可以按撤销键删除错误的数字;(3)确认键:当密码输入完毕后,按确认键执行开锁判断;(4)密码修改键:在开锁状态下,按此键进行修改密码;(5)上锁键;锁上电子密码锁,处于关闭状态。

图如下:矩阵式(3*4)按键独立式按键(1)当有数字键按下时,显示器的最右端显示无效字符“—”,按一下亮一下。

(2)右边1盏LED指示灯亮,表示开锁成功;8盏LED只是灯全亮,表示开锁未成功。

LED图如下:3、报警模块:当输入密码错误次数超过3次,启动蜂鸣器和指示灯(红)进行报警。

并且将锁定键盘N分钟(N可以视情况修改),在此期间不允许键入当密码输入正确,单片机控制继电器执行开锁机制。

T10T11D5GNDR13.3K电磁锁C24VC C来自微控制器信号D6密码锁开锁机构电路图实验电路图:图中的用LCD1602代替LED8段数码管和8盏LED 指示灯。

二、设计硬件方案1、晶振电路设计:2、复位电路设计:3、键盘电路设计:由于本次设计的按键数目较多,所以采用矩阵式(3*4)的设计方法和两个独立式键盘接口对键盘电路进行设计(如图)。

行列式键盘与独立式键盘相比,可以节省很多接口。

利用扫描法来识别键盘有无键被按下可分两步:第一,识别键盘有无键按下。

首先把所有的列线置0电平,然后检查各行线电平是否都为高电平,如果不全为高电平,则说明有按键被按下,否则则说明无键被按下。

第二,识别出哪个按键被按下。

采用扫描法,在某一时刻置让一条列线处于低电平,其余所有列线处于高电平,检查各行线电平的变化,如果某行线电平为低电平,则可确定此行此列的交叉点出的按键被按下。

三、设计软件流程流程图:开始初始化Flag=3?键盘扫描处理程序四、软件调试所需软件1、伟福的编程,仿真,编译集成环境Wave6000:将汇编语言源程序编译成*.hex文件2、STC-ISP-V4.83下载器:将汇编语言源程序编译成的*.hex文件在线下载到STC单片机中Wave6000使用说明:(1)在“Wave6000”目录中的“BIN”子目录下,双击图标执行伟福软件跳出以下画面(2)第一次使用时须在工具栏中选择仿真器设置栏进行仿真器设置,选择你需要的仿真器、仿真头、CPU,并在使用伟福软件模拟器出打钩。

(3)在下图“模块文件”上点鼠标右键,在下拉菜单中选择“新建项目”,出现“加入模块文件”对话框,选择你已编译完成的汇编语言源程序“NO29.ASM”文件,并选择打开该文件,出现“加入包含文件”对话框,选择你已编译完成的汇编语言源程序“NO29.ASM”文件,并选择打开该文件,出现“保存项目”对话框,现在同一文件名“NO29”,不加文件名后缀,点保存。

(4)双击你已编好的汇编源程序点击工具栏的“项目”,并选择其中的“全部编译”,如左下侧信息栏中指出有错时,在你的源程序中改正错误后再选择“全部编译”直到没有错并生成NO29.hex文件。

STC-ISP-V4.83使用说明:(1)双击图标并出现下图画面:(2)选择你需要的单片机型号;(3)打开“NO29.hex”文件;(4)选择你的串行口(5)点击download/下载,即可实现自动下载编程。

五、心得感想通过本次单片机系统课程设计《保险箱电子密码锁的设计》使我在利用网络这个信息汇集的领域,通过检索、阅读,提高自己阅读文献的本领;对STC89C51单片机有了进一步的认识,对wave6000这个软件的应用也更加纯熟了。

另外,也使我们学习的《单片机原理与应用设计》中的汇编得到了应用,让我对汇编语言也有了更深一步的了解。

学校安排这次的课程设计也就是为了我们的做毕业设计打下基础,让我们熟悉毕业设计的工作流程,让我们尽可能的熟悉并运用好毕业设计所需的软件,以便我们在不也设计中得到更好的发挥。

六、程序代码FLAGKEY EQU 00HRIGHT EQU 01H KEYBUFF EQU 31H WORKFLAG EQU 30H ERRTIMES EQU 32HDEL_TIMES EQU 34HCODEINADDR EQU 3BHRIGCODE1 EQU 40H RIGCODE2 EQU 41H RIGCODE3 EQU 42H RIGCODE4 EQU 43H RIGCODE5 EQU 44HORG 0000HLJMP STARTORG 0100HSTART: MOV SP,#60HCLR RIGHTCLR FLAGKEYMOV WORKFLAG,#0MOV R0,#CODEINADDRMOV ERRTIMES,#3MOV RIGCODE1 ,#5MOV RIGCODE2 ,#5MOV RIGCODE3 ,#5MOV RIGCODE4 ,#5MOV RIGCODE5 ,#0FFH LOOP:MOV R7,WORKFLAGCJNE R7,#3,NEXT0AJMP LOOPNEXT0:LCALL KEYSCANDEALAJMP LOOPKEYSCANDEAL: LCALL SCANKEYJB FLAGKEY,KEYDEALRET KEYDEAL: CLR P3.2LCALL S_DELSETB P3.2MOV A,KEYBUFFCLR CSUBB A,#10JNC ENLCALL DIG_KEYAJMP EXITEN:MOV R7,KEYBUFFCJNE R7,#10,LOCKLCALL EN_KEYAJMP EXITLOCK:CJNE R7,#11,CLR1LCALL LOCK_KEYCLR1:MOV R7,KEYBUFFCJNE R7,#12,XCH1LCALL CLR_KEYAJMP EXITXCH1:MOV R7,KEYBUFFCJNE R7,#13,EXITLCALL XCH_KEYAJMP EXITEXIT: CLR FLAGKEYRETDIG_KEY: MOV R7,WORKFLAGCJNE R7,#0,NEXT2MOV A,KEYBUFFMOV @R0,AINC R0MOV DPTR,#DISPLAY_TABCLR P1.4MOVC A,@A+DPTRMOV P0,ALCALL S_DELSETB P1.4SETB P3.5NEXT2: RETEN_KEY: MOV R7,WORKFLAGCJNE R7,#0,EN_XCHMOV A,#0FFHMOV @R0,AMOV R0,#CODEINADDRLCALL CODECOMP1JNB RIGHT,ERRORCLR RIGHTMOV P0,#0F0HCLR P3.5MOV P1,#0F0HMOV WORKFLAG,#1MOV ERRTIMES,#3RETERROR:DJNZ ERRTIMES,ERR1MOV R7,WORKFLAGMOV R7,#3CLR P3.2MOV P0,#00HCLR P3.5MOV P1,#0F0HLCALL LL_DELSETB P3.2SETB P3.5MOV R7,#0MOV ERRTIMES,#3RETERR1: MOV P0,#00HCLR P3.5MOV P1,#0F0HLCALL SPEAKRETEN_XCH: CJNE R7,#2,EN_ENDSETB RS0SETB RS1MOV R0,#CODEINADDRMOV R1,#COMPCODE1MOV A,R1MOV A,@R0INC R0INC R1MOV DPTR,#DISPLAY_TABCLR P1.5MOVC A,@A+DPTRMOV P0,ASETB P3.5DJNZ INTIMES,EN2AJMP COMP2EN2:MOV R0,#CODEINADDRCOMP2: MOV R1,#COMPCODE1MOV R0,#CODEINADDR LOOPCOMP2: MOV A,@R0MOV B,@R1CJNE A,B,EN_XCHCJNE A,#0FFH,COMPLOOPMOV R0,#CODEINADDRMOV R1,#COMPCODE1 TIHUAN: MOV A,@R1MOV @R0, AINC R0INC R1CJNE A,#0FFH,TIHUANMOV WORKFLAG,#1MOV R0,#CODEINADDR EN_END:RETCOMPLOOP: INC R0INC R1AJMP LOOPCOMP2LOCK_KEY: CLR RIGHTMOV WORKFLAG,#0MOV R1,#CODEINADDRMOV @R1,#0FFHINC R1MOV @R1,#0FFHINC R1MOV @R1,#0FFHINC R1MOV @R1,#0FFHMOV R0,#CODEINADDRMOV P0,#0FHCLR P3.5MOV P1,#0F0HRETCLR_KEY: MOV R7,WORKFLAGCJNE R7,#0,CLR2MOV P1,#0F0HMOV R0,#CODEINADDRRETCLR2:CJNE R7,#2,CLR_ENDMOV P1,#0F0HMOV R0,#CODEINADDR CLR_END:RETXCH_KEY: MOV R7,WORKFLAGCJNE R7,#1,XCH_ENDMOV WORKFLAG,#2CLR P0.6CLR P3.5XCH_END:RETCODECOMP1: MOV R1,#CODEINADDRMOV A,RIGCODE1MOV B,@R1CJNE A,B,ERROR1MOV A,RIGCODE2INC R1MOV B,@R1CJNE A,B,ERROR1MOV A,RIGCODE3INC R1MOV B,@R1CJNE A,B,ERROR1MOV A,RIGCODE4INC R1MOV B,@R1CJNE A,B,ERROR1MOV A,RIGCODE5INC R1MOV B,@R1CJNE A,B,ERROR1OKCL: SETB RIGHTRETERROR1:CLR RIGHTRET;CODETAB: DB 5,5,5,5,0FFH;**** 键盘扫描子程序SCANKEY ***** ; 4*3键盘扫描子程序; 行接P2.0-P2.3,列接P2.4-P2.6; 调用该子程序扫描一遍键盘; 键盘如有按键,则标志位FLAG_KEY=1 ; 输入键盘码放入键盘存储器KEYBUFF ; 面板上键盘为1 2 3 4; 5 6 7 8; 9 0 A B;**************************** SCANKEY:SETB RS0CLR RS1MOV R3,#0F7HMOV R2,#00HL2: MOV A,R3MOV P2,AMOV A,P2MOV R4,ASETB CMOV R5,#03HRLC AL3: RLC AJNC KEYININC R2DJNZ R5,L3MOV A,R3SETB CRRC AMOV R3,AJC L2JB P3.3,L4MOV R2,#12MOV A,R2SETB FLAGKEYMOV KEYBUFF, AAJMP L5L4:JB P3.4,L5MOV R2,#13MOV A,R2SETB FLAGKEYMOV KEYBUFF, AL5:CLR RS0CLR RS1RET;------------------------------------------------- KEYIN:MOV R7,#60D2: MOV R6,#248DJNZ R6,$DJNZ R7,D2D3: MOV A,P2XRL A,R4JZ D3MOV A,R2MOV DPTR,#KEYSCAN_TABMOVC A,@A+DPTRSETB FLAGKEYMOV KEYBUFF, ACLR RS0CLR RS1RET;==================================SPEAK:MOV DEL_TIMES,#5SPK1: CPL P3.2LCALL L_DELDJNZ DEL_TIMES,SPK1SETB P3.2RET S_DEL:MOV R7,#200S_DEL1: MOV R6,#10S_DEL2: MOV R5,#10S_DEL3: DJNZ R5,S_DEL3DJNZ R6, S_DEL2DJNZ R7, S_DEL1RETLL_DEL: MOV R4,#50LL1: LCALL L_DELDJNZ R4, LL1RETL_DEL:MOV R7,#250L_DEL1: MOV R6,#50L_DEL2: MOV R5,#50L_DEL3: DJNZ R5, L_DEL3DJNZ R6, L_DEL2DJNZ R7, L_DEL1RET;================================== ; 键盘扫描码KEYSCAN_TAB:DB 04H,08H,0BHDB 03H,07H,0AHDB 02H,06H,00HDB 01H,05H,09H;-----------------------------------;********键盘扫描结束****************DISPLAY_TAB:DB 0F7H,0F7H,0F7H,0F7H,0F7H,0F7HDB 0F7H,0F7H,0F7H,0F7H,0F7H,0F7H参考文献[1]马忠梅单片机C程序设计[M],北京:北京航空航天大学出版社,2007[2]李广弟单片机基础[M],北京:北京航空航天大学出版社,2007[3]张洪润,兰清华,单片机应用技术教程[M],北京:清华大学出版社,1997[4]闵锐,徐勇,孙峥等.电子线路基础西安[M],西安电子科技大学出版社,2003[5] 李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社,2005[6] 张毅刚,彭喜元. 单片机原理与应用设计. 电子工业出版社.。

相关文档
最新文档