摘 要
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用ATMEL公司生产的单片机ATSC51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过按键调整红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示;本系统实用性强、操作简单、扩展功能强。 关键字:单片机 密码锁 传感器检测 倒计时
第 1 页
目 录
第一章 引言
第二章 红绿灯系统的方案选择 2.1采用74LS224设计的电子密码锁 2.2采用单片机设计的智能密码锁
第三章 “松本用智能密码锁硬件电路的设计 3.1 单片机模块 3.2 光电传感器模块 3.3 显示模块 3.4 键盘模块 3.5报警电路
第四章 “松本”家智能密码锁系统的软件设计 4.1系统程序设计主流程图 4.2外对管检测子程序过程 4.3 LED数码显示器的设计
第五章 “松本”家用智能密软件仿真和电路安装及调试 5.1软件仿真 5.2 硬件电路安装
5.2.1 元件安装的基本要求与原则 5.2.2 整机电路板的安装与调试 5.3故障分析 第六章 总结评价
第 2 页
第一章 引言
随着人们生活的提高和安全意识的加强,各种系列的防盗门广泛进入人们的生活和工作,因而防盗门锁系统的安全性方便性就变得至关重要。而随着科学技术的发展,安全已成为人们关注的焦点之一,于是各种安全产品相继问世(如指纹防盗、红外防盗、GPS 等),虽然这类产品安全性高,但因其生产成本高,携带安装使用不方便,在一定程度上了这类产品的普及和推广,电子密码锁由于其体积小,成本低,安全性高等特点日益受到人们的青睐。
第 3 页
第二章“松本”家用智能密码锁的方案选择
2.1采用74LS224设计的电子密码锁
利用双JK触发器74LS224构成数字逻辑电路控制方案。系统的总体方框图如下图2-1所示:
图2-1 基于74LS224电子锁系统的原理框图
通过上图分析可以知道,采用74LS112设计的电子密码锁可以避免很多问题,如一些钥匙掉了,还有防盗报警系统更是起到了关键作用。
输入 键盘 密码 校对 报警驱动电路 红灯 亮起 开锁 绿灯 亮起 2.2采用单片机设计的智能密码锁
第 4 页
利用单片机ATC51,它是一种性能优良的集成可编程的单片机,其功能十分的强大,它把CPU、存储器、及I/O集成到一个芯片上,只要外加少许电子零件便可以构成一套简易的控制系统。这样可以降低产品的硬件成本,通过编程快速实现对不同密码值的输出与控制。
通过以上方案的分析,根据方案二作为本系统的设计方案。无论是在性能,特点,还是原理图上,或者是在电路设计上,材料上都具有简单,使用性强等方面都是上上之选。具体的系统框图如下图2-2所示:
图 2-2 基于单片机ATC51型电子密码锁系统整体方框图
第三章“松本”家用智能密码锁硬件电路的设计
为使智能电子密码锁装置能够具有更好的实用性,并且具有更高的性能,在这里对该系统的硬件等各组成部分的电路进行精心的设计。
该系统的硬件设计采用了模块化的设计方法。按实现的功能来分,可分为以下五个部分:光电传感模块、单片机模块、行列式键盘模块、数码管显示模块、声光报警模块,系统框图见图2-2所示。
3.1 单片机模块
智能密码锁的处理电路主要是由单片机ATC51及其外围电路所组成的,现在我对系统处理电路进行分析。
ATC51是由美国Atmel 公司生产的至今为止世界上最新型的高性能八位单片机。该芯片采用FLASH存储技术,内部具有4KB字节快闪
第 5 页
存存储器,采用DIP封装,是目前在中小系统中应用最为普及的单片机。 1. ATC51的特点
(1)ATC51与MCS-51系列的单片机在指令系统和引脚上完全兼容; (2)片内有4k字节在线可重复编程快擦写程序存储器; (3)全静态工作,工作范围:0Hz~24MHz; (4)三级程序存储器加密; (5)128×8位内部RAM; (6)32位双向输入输出线;
(7)两个十六位定时器/计数器; (8)五个中断源,两级中断优先级; (9)一个全双工的异步串行口; (10)间歇和掉电两种工作方式。 2.ATC51的功能描述
ATC51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
ATC5可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。ATC51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
3. 口线:P1、P3共2个八位口
(1)P1口是专门供用户使用的I/O口,是准双向口,其中P1.0和P1.1除作为普通I/O用外,还可作为电压比较器输入端。
第 6 页
(2)P3口是双功能口,该口的每一位均可地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。P3口的第二功能如表1所示,第6脚不引出。 (3)VCC: 工作电源+5V (4)GND :电源地。
(5)VPP: 访问外部程序存储器允许信号。 (6)RST:复位信号输入端。
(7)XTAL1:片内振荡器输入端。在采用外部时钟时,对于HMOS单片机,该端必须接地,对于CHMOS单片机,此引脚用为驱动器。
(8)XTAL2:片内振荡器输出端。在片内它是一个振荡电路反向放大电路输出端,振荡电路的频率是晶体振荡频率,若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲,对于CHMOS单片机,此引脚应悬浮。
(9)RXD:串行口输入。 (10)TXD:串行口输出。
(11)ALE:访问片外存储器时,它作为锁存扩展地址低字节的控制信号的输入。
4. 控制口线:PSEN(片外选取控制)、ALE(地址锁存控制)、EA(片外存储器选择)、RESET(复位控制)
5. 电源及时钟:VCC、VSS、XTAL1、XTAL2操作方法
表1 P3口的第二功能
第 7 页
6. 总结其主要的功能特性如下表2所示
表2 ATC51的主要功能特性
兼容MCS51指令系统 15个双向I/O口 两个16位可编程定时计数器 时钟频率0-24MHz 两个外部中断源 可直接驱动LED 低功耗睡眠功能 2K可反复擦写(>1000次)Flash Rom 6个中断源 2.7-6.0V的宽工作电压范围 128 X8bit内部RAM 两个串行中断 两级加密位 内置一个模拟比较放大器 可编程UARL通道 软件设置睡眠和唤醒功能 8031/8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
3.2 光电传感器模块
此模块采用红外对管进行行人检测,电路图如图3-2所示。
第 8 页
图3-2 光电传感器检测电路
当无人遮挡时,红外接收管能够畅通无阻地接收发射管发射的红外线,此时接收管的电阻非常小,导致74LS04的输入管脚1脚为低电平,而输出管脚为高电平,不触发密码输入状态。
当有人遮挡时,红外接收管无法接收到红外线,则电阻变得非常大,导致74LS04的输入管脚为高电平,而输出管脚为低电平,通过单片机的外部中断管脚触发密码输入状态,系统开始倒计时。
3.3 显示模块
本显示模块采用二位一体共阴数码管和四位一体共阴数码管进行显示,采用动态扫描方式,在数码管中每一位的字段位a、b、c、d、e、f和g与DP分别接在一起,当要在某一位显示数字时,对应数字的字段位选通,同时该位的位选端也选通从而显示该数字。当要在两位或多位上同时显示数字时,字段位将按照数字显示的先后秩序轮流选通字段数码管,同时,位选项段也根据数字显示的秩序轮流导通。由于扫描的频率极快,每个数码管的显示时间为1毫秒,所以将看不到的数字的闪烁现象。
本显示模块中,二位一体的数码管用来显示倒计时秒表,从29秒倒计时到0秒,共30秒;而四位一体的数码管用来显示四位密码。平时数码管均不亮,只有进入密码输入状态时,数码管才点亮,达到省电的目的,电路如图3-2所示。
第 9 页
图3-2 数码管显示电路
3.4 键盘模块
在智能电子密码锁中我们采用的是4×3式行列式键盘,如下图所示,键盘的列线与P0口的高3位相接,行线与P1口低3位相接,采用动态扫描方式,实现人机对话。详细电路图3-3所示。
第 10 页
图3-3 4×4式行列式键盘结构图
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘,在行线和列线的每一个交叉点上设置一个按键这样的键盘中按键的个数是4×4这种行列键盘结构能够有效地提高单片机系统中I/O口的利用率
当键盘有键按下时,要逐行或逐列扫描,以判定是哪一个按键按下。下面介绍的是一种最普通的扫描法键盘扫描方式。
扫描法是在判定有键按下后逐列置低电平,同时读入行状态,如果行状态出现非全1状态,这是0状态的行、列交点的键就是所按下的键。扫描法的特点就是逐行扫描查询,这是相应的行应有上拉电阻接高电平,如上图所示的电路图,行列式键盘扫描程序就是采用扫描法来确定哪个键按下的,图中的行线上拉电阻要接+5V电源,才能列线逐列扫描。
3.5报警电路
本系统的报警采用声光报警方式进行报警,当密码输入错误时,红色发光二极管发光,蜂鸣器发出声音报警;当密码输入正确时,绿色发光二极管发光,表示门已打开。电路如图3-4所示。
图3-4 报警电路图
第四章“松本”家用智能密码锁系统的软件设计
4.1系统程序设计主流程图
第 11 页
根据硬件电路,软件程序,则当单片机上电复位,开始进行初始化,然后接进行键盘扫描,判是否有键按下,然后判是什么键,把键码存到显示地址,当你把密码输入后再按下比较键,当密码与设值密码符合时,单片机就会给发光二极管一个高电平使它发光表示开锁,发光二极管发光1秒钟后会自动熄灭,否则单片机会使它报警。
当你的密码被别人知道后,你可以在第一时间输入正确密码。你将可以修改你的密码。程序是由主程序和延时子程序合成整个流程图。
键盘输入到锁开或报警都是由单片机控制,所以说单片是整个系统的核心,它控制整个电路的运行。整个程序执行后,又回到程序的开始部分,这样程序反复的运行,单片机源程序见附录二。
图4-1主程序流程图
4.2红外对管检测子程序过程
当有物件在对管之间通过时,红外对管正极为高电平,通过三极管转为低电平,单片机P0.0检测到由高电平转变为低电平,单片机转入计数子程序,对累加器30H加1,然后依次类推依次累加,然后把寄存器的值转入显示子程序进行显示。程序流程如图4-2所示:
第 12 页
4.3 LED数码显示器的设计
显示器是单片机应用系统不可缺少的外部输出设备,比如显示系统运行的结果,监视单片机运行状态等等。显示器的种类很多,有数码管(LED)显示器、液晶(LCD)显示器和CRT显示器等。由于数码管显示器(发光二极管)具有显示清晰、高亮度、使用电压低、寿命长的特点,常用来显示各种数字或符号,因此在单片机系统中得到了广泛运用。
LED(Light Emitting Diode)是发光二极管的缩写,通常所说的LED显示器是由七个发光二极管组成,按“日”字形排列,也称七段LED显示器。此外,显示器中还有一个圆点型的发光二极管,表示小数点,图中以dp表示。 LED数码显示器的字形(段)码表如表1所列:
表1 LED数码显示器的字形(段)码表
字形码 显示字(共阳形 极) 0 C0H 极) 3FH 9 90H 6FH (共阴显示字形 (共阳极) (共阴极) 字形码 字形码 字形码
第 13 页
1 2 3 4 5 6 7 8 F9H A4H B0H 99H 92H 82H F8H 80H 06H 5BH 4FH 66H 6DH 7DH 07H 7FH A B C D E F 熄灭 88H 83H C6H A1H 86H 8RH FFH 77H 7CH 39H 5EH 79H 71H 00H LED显示器有共阴和共阳两种接法。当选共阴极接法的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮,加入低电平对应的二极管熄灭。
选用共阳极的LED显示器时,所有发光二极管的阳极连在一起接高电平,当某个发光二极管的阴极加到高电平时,对应的二极管点亮。
第五章“松本”家用智能密码锁软件仿真和电路安装及调试
5.1软件仿真
1.使用Wave6000软件对源程序进行仿真
Wave6000是一款可以对源程序进行仿真的软件。我们可以在Wave6000的界面下新建一个文件,然后进行源程序的编写。当我们初步编写完源程序后,可以按全速执行键让源程序运行,假如源程序中有错误如图5-1所示,软件会显示错误的原因和位置以便于用户改正,当源程序全部正确后软件会自动生成后缀名为HEX和BIN的文件,如图5-2所示:
图5-1 Wave6000仿真图
图5-2 Wave6000仿真图
第 14 页
5.2 硬件电路安装
5.2.1 元件安装的基本要求与原则
制造电子产品,可靠性与安全是二个重要因素,而零件的安装对于保证产品的安全可靠是至关重要的,如何疏忽都可能造成整机工作失常,甚至导致更为严重的后果,元件安装时我们要保证导通与绝缘的电器性能、保证机械强度、抱着那个传热的要求和安装时接地与屏蔽要充分利用,为达到产品的可靠与安全,安装时应遵循一些基本的要求与原则 1.元件安装的基本要求
(1)保证导通与绝缘的电气特性,电气连接的通与断是安装的核心这里所说的通断,不仅是安装后简单的使用万用表测试的结果,而且要考虑在振动,长期工作,湿度等自然条件变化的环境中,都能保证通者恒通,断者恒断。
(2) 保证机械强度,电子产品在使用过程中,不可避免的需要运输和搬动,会发生各种有意或无意达到振动冲击,如果机械安装不够牢固,电气连接不够可靠,都有可能因为加速度的瞬间受力使装置受到损害。
(3) 保证传热的要求,在安装中,必须考虑某些零部件在传热,电磁方面的要求。
2.安装元件时应注意以下原则
(1)基板的附着力,并防止元器件的裸露部分同印制导线短路,安装时元器件应离开面板约1~2mm。
(2)装配时,应该先安装那些需要机械固定元器件,在此装置中如稳压管、中心 座。
(3) 各种元器件的安装,应该使它们的标记(用色码或字符标注的数值,精度等) 上面或易于是辨认的方向,并注意标记的读书方向一致 (从左到右或从上到下)。
(4) 在安装元件时应与焊接同步进行操作。
5.2.2 整机电路板的安装与调试
1.对电源进行调试
首先把所有集成块都用插座装上,拔下集成块,接通电源,量其各个集成电路的正电源端和液晶屏的电源端,量其对地之间的电压,发现都是5.04V,这说明电源部分工作正常。
第 15 页
2.对外围电路调试
插上MAX7219,单片机插上,通上电之后,按行列式键盘,在单片机IC插座的第21脚~27脚之间的电压,发现当按1时,21脚电压从5V变成0V,这说明有信号送入单片机,当一个一个量到第27脚时候发现没变化,仔细检测管脚连续发现其虚焊,补焊,一切正常。
5.3故障分析
故障现象 分析故障原因 解决方法 重新上锡,焊牢,接上电源,故障排除。 表3故障分析
当密码输入正确时,对应的绿灯没有亮。 对线路板仔细检查发现绿色LED灯陋焊。 输入密码5555时没有对应的显示。 通过线路板的检查,未发现不足之处,但在程序上对程序进行重新定义,并修改。重新烧入到芯片上,没有把按键5的状态写上。 接通电源,故障排除。 通过线路板的检查,未发现不足之处,但是在键盘按下键盘没有响应。 与芯片的连接排线由于是采用自制插针,导致经常性接触不良。 采用加长型固定式排线,相对与插针式排线不会出现接触不良情况。经过多次检验,故障排除。 第六章 总结评价
本设计利用ATC51单片机实现了电机转速控制器,通过这次设计,
我掌握了一个单片机系统的设计方法,从系统设计的芯片选型到原理图的绘制及调试电路、编写程序、调试软件、都给了我很多体会。虽然本系统的功能较为简单,在硬件上采用了74ls112设计的电子密码锁。在软件上
第 16 页
也采用较为合理的系统结构及算法,提高了单片机的使用效率,且具有一定的防干扰能力。但该设计也有不足之处,主要是在关于红外对射系统接收上,因此,有必要引入更高级的传感器技术,在此基础上稍加扩展就能实现更多的功能。还有在密码输入问题也有需要增加的部分,因为没有密码多少次输入的中断系统,因此本系统仍然有着很大的参考意义。
致 谢
这三年来,得到院领导和我的专业老师对我的谆谆教诲和帮助,学会了各逻辑电路的工作原理,还有其他一些数字模拟集成电路工作原理以及一些专门集成块的运用方法,电路的设计,控制电路的设计等等,使自己多年来所学的理论知识和实践做到有机的组合,进一步深化巩固自己的理论知识。
在此,我表示衷心的感谢。尤其是指导老师王傲胜老师对我的关心和帮助,这次毕业设计能的成功,他无论在理论上还是实践中都给予我有很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。设计当中,难免会有不少的缺点和不足之处,恳请指导老师批评并指正。
第 17 页
参考文献
[1] 张庆双.科教、娱乐应用电路集粹[J].机械工业出版社,2009 9月 第9期
[2] 谢自美.主编《电子线路设计·实验·测试》(第三版) [M].华中科技大学出版社,2009 5月
[3] 电子报社.电子报2009年合订本下[J].成都:四川科学技术出版社,2009 6月 第6期
[4] 黄海平.常用电气线路290例[J].浙江:科学出版社,2008 7月 第7期
[5] 电子报 [J].类别:电子制作 2008年 第7期
[6] 鲁芳,钱罗珍.电子报.基础.技能.线路实例[J].浙江:浙江科技出版社,2008 3月 第3期
第 18 页
[7] 谭进.电子文摘报[J].电子文摘报出版社,2008 9月 第9期
[8] 电子报社.《电子报2008年合订本》上[J].四川科学技术出版社,2008 6月 第6期
附录一 元件清单
第 19 页
元器件名称 单片机 显示驱动器 六反向器 数码管 数码管 电解电容 瓷片电容 电阻 电阻 电阻 晶振 复位开关 三极管 发光二极管 发光二极管 蜂鸣器 红外对管 通用板
型号/参数 ATS51 74LS245 74LS04 4位一体共阴 2位一体共阴 22uF 33pF 10K 1K 200 12MHz 8550 红光 绿光 数量 1 1 1 1 1 1 2 6 6 11 1 13 7 1 1 1 1 1 附录二 实物图和使用说明
第 20 页
1、实物图(元件面)
实物图(焊接面)
2、使用说明:
(1)将电路安装在一个固定的位置上; (2)接通电源(+5V),阻挡一下红外对射管;
(3)在30秒内输入密码,若密码正确绿灯亮,门开不报警;若密码错误或者不输入,则红灯亮,门不开报警。
(4)完成后,按下复位按钮,返回初始状态。
第 21 页
附录三 系统整体原理方框图
第 22 页
附录四 单片机源程序
第 23 页
LED_G BIT P3.6
LED_R BIT P3.7 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 000BH LJMP ITT0 ORG 0030H
;************************************** ;系统初始化
;**************************************
MAIN: MOV 30H,#01H ;初始化密码为1234,存放于片内RAM30H~33H MOV 31H,#02H MOV 32H,#03H MOV 33H,#04H
MOV 40H,#11 ;40H~41H存放倒计时时间 MOV 41H,#11
MOV 42H,#11 ;42H~45H存放四位密码 MOV 43H,#11 MOV 44H,#11 MOV 45H,#11
SETB LED_G ;不报警 SETB LED_R SETB SOUNDER
CLR F0;设标志位F0=0表示没有人 CLR F1;设标志位F1=1表示密码输入完成 CLR F2;设标志位F2=1表示要报警 MOV TMOD,#11H
MOV TH0,#3CH
MOV TL0,#0B0H
第 24 页
MOV R5,#20 MAIN_1: JB F0,START SJMP MAIN_1
;************************************** ;主程序
;************************************** START: SETB ET0 SETB TR0 MOV 40H,#02H MOV 41H,#09H START_1: ACALL KEY ACALL DISPLAY SETB SOUNDER CLR EA MOV 40H,#11 MOV 41H,#11 MOV 42H,#11 MOV 43H,#11 MOV 44H,#11 MOV 45H,#11 ACALL DISPLAY AJMP NOBAOJ BAOJ: MOV 40H,#11 MOV 41H,#11 MOV 42H,#11 MOV 43H,#11 MOV 44H,#11 MOV 45H,#11 ACALL DISPLAY AJMP BAOJ
;************************************** ;INT0中断服务程序
第 25 页
;************************************** INT0: MOV R7,#250 INT0_1: ACALL DISPLAY ACALL DISPLAY
DJNZ R7,INT0_1 ;延时3秒钟再行检测是否有行人 JB SENSOR,INT0_2
SETB F0 ;F0=1表示有行人 AJMP INT0_END INT0_2: SETB EX0 INT0_END: RETI
;************************************** ;ITT0中断服务程序 ,30秒倒计时 ;************************************** ITT0: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R5,ITT0_1 MOV R5,#20 DEC 41H MOV A,41H CJNE A,#0FFH,ITT0_1 MOV 41H,#09H DEC 40H MOV A,40H CJNE A,#0FFH,ITT0_1 MOV 40H,#10 MOV 41H,#10 MOV 42H,#10 MOV 43H,#10 MOV 44H,#10 MOV 45H,#10 CLR ET0
第 26 页
SETB F2 AJMP ITT0_END ITT0_1: SETB TR0 ITT0_END: RETI
;************************************** ;键盘查询子程序
;************************************** KEY: MOV P1,#0F0H MOV A,P1
CJNE A,#0F0H,KEY_3 AJMP KEY_END KEY_3: ACALL DELAY MOV P1,#0F0H MOV A,P1
CJNE A,#0F0H,KEY_1 AJMP KEY_END
KEY_1: MOV P1,#0FEH ;逐行扫描 JNB P1.4,K1 JNB P1.5,K2 JNB P1.6,K3
MOV P1,#0FDH ;逐行扫描 JNB P1.4,K4 JNB P1.5,K5 JNB P1.6,K6
MOV P1,#0FBH ;逐行扫描 JNB P1.4,K7 JNB P1.5,K8 JNB P1.6,K9
MOV P1,#0F7H ;逐行扫描 JNB P1.4,KA JNB P1.5,KB JNB P1.6,KC
第 27 页
AJMP KEY_1 K1: AJMP KEY_YI K2: AJMP KEY_ER K3: AJMP KEY_SAN K4: AJMP KEY_SI K5: AJMP KEY_WU K6: AJMP KEY_LIU K7: AJMP KEY_QI K8: AJMP KEY_BA K9: AJMP KEY_JIU KB: AJMP KEY_LING KA: AJMP KEY_QINGCHU KC: AJMP KEY_QUEDING KEY_4: AJMP KEY_END KEY_YI: ACALL DISPLAY JNB P1.4,KEY_YI MOV @R0,#01H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_ER: ACALL DISPLAY JNB P1.5,KEY_ER MOV @R0,#02H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_SAN: ACALL DISPLAY JNB P1.6,KEY_SAN
第 28 页
MOV @R0,#03H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_SI: ACALL DISPLAY JNB P1.4,KEY_SI MOV @R0,#04H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_WU: ACALL DISPLAY JNB P1.5,KEY_WU MOV @R0,#05H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_LIU: ACALL DISPLAY JNB P1.6,KEY_LIU MOV @R0,#06H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_QI: ACALL DISPLAY JNB P1.4,KEY_QI
第 29 页
MOV @R0,#07H INC R0 DJNZ R6,KEY_4 MOV R0,#42H MOV R6,#4 AJMP KEY_4 KEY_BA: ACALL DISPLAY JNB P1.5,KEY_BA MOV @R0,#08H INC R0
DJNZ R6,KEY_END MOV R0,#42H MOV R6,#4 AJMP KEY_END KEY_JIU: ACALL DISPLAY JNB P1.6,KEY_JIU MOV @R0,#09H INC R0
DJNZ R6,KEY_END MOV R0,#42H MOV R6,#4 AJMP KEY_END KEY_LING: ACALL DISPLAY JNB P1.5,KEY_LING MOV @R0,#00H INC R0
DJNZ R6,KEY_END MOV R0,#42H MOV R6,#4 AJMP KEY_END KEY_QINGCHU:ACALL DISPLAY JNB P1.4,KEY_QINGCHU
第 30 页
MOV 42H,#10 MOV 43H,#10 MOV 44H,#10 MOV 45H,#10 MOV R0,#42H MOV R6,#4 AJMP KEY_END KEY_QUEDING:ACALL DISPLAY JNB P1.6,KEY_QUEDING SETB F1 KEY_END: RET
DELAY: MOV 28H,#20 DELAY_1: MOV 29H,#250 DJNZ 29H,$ DJNZ 28H,DELAY_1 RET
;************************************** ;比较子程序
;************************************** BIJIAO: MOV A,42H
CJNE A,30H,BIJIAO_1 MOV A,43H CJNE A,31H,BIJIAO_1 MOV A,44H CJNE A,32H,BIJIAO_1 MOV A,45H BIJIAO_END:RET
;************************************** ;显示子程序
;************************************** DISPLAY: MOV DPTR,#TAB MOV P2,#0FEH
第 31 页
MOV A,40H MOVC A,@A+DPTR MOV P0,A ACALL DS1MS MOV P2,#0FDH MOV A,41H MOVC A,@A+DPTR MOV P0,A ACALL DS1MS MOV P2,#0FBH MOV A,42H MOVC A,@A+DPTR
MOV P0,A
ACALL DS1MS MOV P2,#0F7H MOV A,43H MOVC A,@A+DPTR MOV P0,A ACALL DS1MS MOV P2,#0EFH MOV A,44H MOVC A,@A+DPTR MOV P0,A ACALL DS1MS MOV P2,#0DFH MOV A,45H MOVC A,@A+DPTR MOV P0,A ACALL DS1MS RET
DS1MS: MOV TH1,#0FCH
第 32 页
MOV TL1,#18H SETB TR1
DS1MS_1: JBC TF1,DS1MS_2 SJMP DS1MS_1 DS1MS_2: CLR TR1 RET
TAB: DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,040H,000H END
第 33 页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务