《智能交通灯控制系统的设计毕业设计论文.doc》由会员分享,可在线阅读,更多相关《智能交通灯控制系统的设计毕业设计论文.doc(29页珍藏版)》请在三一办公上搜索。
1、毕业设计论文题目:智能交通灯控制系统的设计学 生 姓 名: 学号: 学 部 (系): 专 业 年 级: 指 导 教 师: 职称或学位: 2005 年 5 月 17 日摘 要随着现代社会对交通运输的日趋依赖,交通灯成为了人们生活中不可或缺的一部分。传统的交通灯控制系统虽然在一定程度上可以满足指挥路口交通的需要,但随着城市规模的不断扩大,原有的交通灯控制系统已经表现出明显的缺点:红绿灯时间相对固定,不能伴随车流量的改变而调整红绿灯的显示时间。本设计以AT89S51单片机为核心,外接外围电路构成基本电路,使硬件电路能适应所完成的控制功能。在Keil软件中编写C语言程序,最后用Proteus软件进行仿
2、真,基本实现了智能交通灯的模拟。该系统可控制红、绿、黄灯按时间依次变换,并有倒读秒功能。关键词:单片机;交通灯;倒计时显示AbstractAs modern society increasingly rely on for transportation, traffic lights has become the indispensable part of peoples life. Although to some extent, the traditional traffic light control system can meet the needs of command inters
3、ection traffic, but with the enlargement of city scale, the original traffic light control systems have shown obvious disadvantages: traffic light time is relatively fixed, not along with the change of the flow adjustment of traffic lights show time.This design uses AT89S51 microcontroller as the co
4、re, constitute the basic circuit, external peripheral circuit that can be adapted to control the functions performed by hardware circuit. In Keil software written in C language program, and finally with the Proteus software simulation, the basic realization of the intelligent simulation of traffic l
5、ights. The system can control red, green, yellow light according to time, in turn, transform, and has function of seconds.Key words: single chip microcomputer; The traffic light; The countdown display 一、 绪论1.1、 课题背景 随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生。在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着
6、交道。当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,
7、绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向
8、。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的技术手段加以实现。随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,智能交通灯控制系统方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步
9、取代传统的交通灯控制措施。1.2、 交通灯历史进入20世纪70年代,随着计算机技术和自动控制技术的发展,以及交通流理论的不断完善,交通运输组织与优化理论和技术水平不断提高,控制手段越来越先进,形成了一批商水平有实效的城市道路交通控制系统。早在1977年,Pappis等人就将模糊控制运用到交通控制上,通过建立规则库或是专家系统对各种交通状况进行模糊控制,并取得了很好的效果。近年来,欧美日本等相继建立了智能交通控制系统。在这些系统中,大部分都在路口附近安装磁性环路检测器,还使用了新型检测器等技术和设备。这些现代化设备技术加上控制理论和现代化科学管理技术,使得交通控制系统日益完善。随着一些研究控制理
10、论的学者投身到交通控制的研究中,在交通信号控制领域提出了一些新方法、新思路。如静态多段配时控制、准动态多段配时控制、最优控制、大系统递阶控制、模糊控制、神经网络控制,网络路由控制等。模糊交通控制已经成为了交通信号控制的主流方向之一7。国内外很多学者都进行了此类研究。交通系统作为一个时变的、具有随机性的复杂系统,传统的人为设定多种方案或是建立各种预测模型均比较困难。城市交通控制研究的起源比较早。1868年,英国伦敦燃汽信号灯的问世,标志着城市交通控制的开始。1913年,在美国俄亥俄州的Cleveland市出现了世界上最早的交通信号控制。1926年美国的芝加哥市采用了交通灯控制方案,每个交叉口设有
11、唯一的交通灯,适用于单一的交通流。从此,交通控制技术和相关的控制算法得到了发展和改善,提高了交通控制的安全性、有效性,并减少了对环境的影响8。二、 总体方案设计2.1、 系统通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。交通状态从状态1开始变换,直至状态4然后循环至状态1,周而复始,把这四个状态归纳如下:(1)东西方向红灯亮,南北方向绿灯亮,倒计时27秒。此状态下,东西向禁止通行,南北向允许通行。(2)东西方向红灯亮,南北方向黄灯闪烁,倒计时3秒。此状态下,除了已经正在通行中的其他所有车辆都需等待状
12、态转换。(3)南北方向红灯亮,东西方向绿灯亮,倒计时27秒。此状态下,东西向允许通行,南北向禁止通行。(4)南北方向红灯亮,东西方向黄灯闪烁,倒计时3秒。此状态下,除了已经正在通行中的其他所有车辆都需等待状态转换。东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表2.1所示。说明:0表示灭,1表示亮。交通状态及红绿灯状态状态1状态2状态3状态4东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100本设
13、计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示和紧急处理等功能。(1)倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择9。(2)紧急处理交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分
14、秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停按键,就可达到想此目的。2.2 系统基本结构及原理硬件电路由AT89C51单片机、4个4位共阳极的数码显示管、复位电路、时钟电路、按键电路以及交通灯演示系统组成时钟电路复位电路按键系统交通灯显示系统时间显示系统AT89C51单片机硬件系统框图三、 硬件设计3.1 AT89C51单片机简介芯片AT89C51的外形结构和引脚图如图所示。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能C
15、MOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MC-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51引脚图3.1.1 主要特性8051CPU与MCS-51兼容4K字节可编程FLASH存储器(寿命:1000写/擦循环)全静态工作:0HZ-24KHZ三级程序存储器保密锁定128*8位内部RAM32位可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.
16、1.2 管脚说明VCC:供电电压GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:
17、P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高8位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉
18、为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,各功能口功能如下:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD (串行输出口)P3.2/INT0 (外部中断0)P3.3/INT1 (外部中断1)P3.4 T0 (计数器0外部输入)P3.5 T1(计数器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG
19、:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定是目的。然而它可用作对外部输出的脉冲或用于定是目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访
20、问外部数据存储器时,这两次有效的信号将不出现。/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出引脚。3.2 LED显示系统LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如 dp,g,f,e,d,c,b,a全亮显示为8,采用共阳极连接驱动代码。驱动代码表显示数值dp
21、,g,f,e,d,c,b,a驱动代码011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后有DPTR调取LEDMAP的代码。LED8段数码管的设置为每个方位上的一对为显示器。四个方位上总共用8个LED接在单片机的IO口上。虽然路口不一样,但是显示的时间在数字上是一样的,所以8个数码管的段都接在P0口,每个数码管的位选端都接在P
22、2口,如图3.7所示,并且通过三极管来驱动和控制每位的亮灭。3.3 时钟电路时钟电路MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。当使用内部振荡电路时,XTAL1和XTAL2引脚外接石英晶体和微调电容,如图所示,图中C2、C3大小一般为30pF。还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。如何进行复位呢?只能在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即
23、可对单片机实现复位操作。当主电源VCC发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。3.4 复位电路复位电路AT89C51的复位是由外部的复位电路实现的。复位电路通常采用上电复位和按钮复位两种方式。在此次设计中,我使用了上电复位方式。上电复位是通过外部复位电路的电容充电来实现的。四、 软件设计4.1 LED显示程序设计思路扫描十位输出十位数据扫描百位输出百位数据开始结束扫描个位输出个位数据在这部分我使用了数码管动态显示方式来显示数据。所谓动态显示方式,就是在某一时刻,只让某一位的位
24、选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应为要显示的字符的段码。这样,在同一时刻,LED中只有选通的那位显示出字符,而其他位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。LED显示流程图4.2 交通灯程序设计思路在这部分我设置南北方向通行,东西方向禁行为初始状态,持续时间为27s。接下来黄灯闪烁3s,然后南北方向禁行,东西方向通行,持续时间仍为27s,最后黄灯闪烁3s,回到初始状态,如此循环。Y结束开始南北绿灯亮 东西红灯亮黄灯闪烁LED是否为0000000000000000LED是否为00南北红灯亮 东西绿灯亮LED是否为0黄灯闪烁LED是否为00
25、000000NYNYNYN4.3 紧急情况设计思路当需要应对特殊情况时,在人为控制下,程序由中断入口地址切换到中断程序,根据实际情况的不同切换到不同的中断子程序,当紧急情况处理完,由人为控制返回原程序。程序流程图如下:中断入口地址保护断点判断是哪种中断断断进入相应中断程序人为结束中断恢复现场中断返回结束紧急情况程序流程图中断入口地址为:中断入口地址(16进制)外部中断定时器T00003H000BH五、 系统调试5.1 硬件电路接法的操作1.防止选择(删除)元器件2.移动元器件3.缩放视图4.连接导线5.仿真、调试5.2 单片机系统PROTEUS设计与仿真过程Proteus强大的单片机系统设计与
26、仿真功能,使它可成为单片机系统应用开发和改进手段之一。全部过程都是在计算机上通过Proteus来完成的。其过程一般也可分为三步:1.在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。简称Proteus电路设计。2.在Keil平台上进行单片机系统程序设计、编译、汇编编译、代码级调试,最后生成目标代码文件(*. hex)。简称Proteus源程序设计和生成目标代码文件。3.在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。它在相当程度上反映了实际单片机系统的运行情况。简称Proteus仿真。5.3 仿真结果将在Keil平台上生成
27、目标代码文件(*. hex)加载到单片机系统中,点击运行按钮,运行结果显示如图所示。 硬件仿真图开始运行后,南北方向通行,东西方向禁行,同时数码管从55显示,每隔一秒数码管减一,当减到0时,四路的黄灯开始闪烁,数码管同时从5开始减一,减到0时,南北方向禁行,东西方向通行,同时数码管从55显示,每隔一秒数码管减一,当减到0时,四路的黄灯开始闪烁,数码管同时从5开始减一,减到0时,返回初始状态,再没有外部中断的情况下如此循环下去。 四个方向禁行硬件仿真图K1为外部中断按钮,当按下K1时,数码管不再显示数,黄灯闪烁五秒后,四路灯都为红色。当按下复位开关后,返回到初始状态。南北通行东西禁行硬件仿真图K
28、2为外部中断按钮,当按下K2时,数码管不再显示数,黄灯闪烁五秒后,南北方向保持通行,东西方向保持禁行。当按下复位开关后,返回到初始状态。南北禁行东西通行硬件仿真图K3为外部中断按钮,当按下K3时,数码管不再显示数,黄灯闪烁五秒后南北方向保持禁行,东西方向保持通行。当按下复位开关后,返回到初始状态。六、 总结经过这段时间的查阅资料、电路设计和调试程序,我的毕业论文得以顺利完成。通过这次的锻炼,让我对电子制作有了更深的体会。 回想做课设的整个过程,艰辛同时又充满乐趣。通过这次亲自体验发现课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。本次设计让我学到了许多书本上学不到的东西,
29、增强了我的分析理解能力,也对智能仪器乃至我们专业有了进一步的了解。同时我也学会了一些软件的应用,如:Altium Designer DXP、Keil、Visio等。这次自选设计为交通灯系统,设计系统主要针对上学期所学的智能仪器和前面所学几门专业课进行的。从课题分析开始,再进行硬件设计、软件设计、系统整体调试。最后到系统实现。每一步都让我将理论学习的知识应用到实践中去,也使我掌握了一整套规范的设计操作流程。我的课程设计能够顺利完成,首先要感谢学校和老师能给予我们这次课程设计的机会。其次要感谢我的指导老师孙老师,在设计的过程当中孙老师给予了我热情的帮助和悉心的指导,在此我要向她说声谢谢。通过这次理
30、论与实际结合的学习,加深了我对专业知识的学习,更重要的是锻炼了我的能力,这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。参考文献1. 李群芳:单片微型计算机与接口技术(第4版),电子工业出版社,20122. 谭浩强:C程序设计(第四版),清华大学出版社,20113. 周立功:ARM嵌入式系统基础教程(第2版),北京航空航天大学出版社,20084. 蔡伟智:LED道路交通灯的研制,液晶与显示,第20卷第五期5. 张友德:单片机原理与应用,复旦大学出版社,20026. 倪继烈:微型计算机原理与接口技术,清华大学出版
31、社,20057. 徐爱钧:智能化测量控制仪表原理与设计(第二版)北京航空航天大学出版社,20048. 吴金戌、沈庆阳、郭庭吉:8051单片机实践与应用清华大学出版社,20029. 谢自美:电子线路设计实验测试(第三版)华中科技大学出版社,200610. 黄智伟:凌阳单片机设计指导,北京航空航天大学出版社,2007致谢我的课程设计能够顺利完成,首先要感谢学校和老师能给予我们这次课程设计的机会。其次要感谢我的指导老师孙老师,在设计的过程当中孙老师给予了我热情的帮助和悉心的指导,在此我要向她说声谢谢。通过这次理论与实际结合的学习,加深了我对专业知识的学习,更重要的是锻炼了我的能力,这次设计在不断的复
32、习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。附录汇编代码:ORG 0000H LJMP MAIN ORG 0003H LJMP DIP0 ORG 000BH LJMP TT0MAIN:MOV R4,#20 MOV 40H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R0,46H CJNE R0,#01H,XX MOV 41H,#04H MOV 42H,#08H MOV 43H,#08H XX:MOV 41H,#04H MOV 42H,#04H MO
33、V 43H,#09H MOV TH0,#3CH MOV TL0,#0B0H MOV TMOD,#01H SETB ET0 SETB EX0 SETB IT0 SETB EA SETB TR0 MOV P1,#00H SETB P1.3 / SETB P1.7 PLY:MOV R0,45H CJNE R0,#01H,YY CLR P1.1 CLR P1.2 CLR P1.0 AJMP PLY YY:CLR P1.1 CLR P1.2 SETB P1.0 MOV DPTR,#TAB MOV A,41H MOVC A,A+DPTR MOV DPTR,#7FFFH MOVX DPTR,A LCALL
34、DEL2MS CLR P1.0 SETB P1.1 CLR P1.2 MOV DPTR,#TAB MOV A,42H MOVC A,A+DPTR MOV DPTR,#7FFFH MOVX DPTR,A LCALL DEL2MS CLR P1.0 CLR P1.1 SETB P1.2 MOV DPTR,#TAB MOV A,43H MOVC A,A+DPTR MOV DPTR,#7FFFH MOVX DPTR,A LCALL DEL2MS AJMP PLYTT0:CLR EA PUSH Acc SETB EA MOV TL0,#0B0H MOV TH0,#3CH DJNZ R4,RET1 MOV
35、 R4,#20 MOV R0,43H CJNE R0,#09H,L0 MOV R0,42H CJNE R0,#09H,L0 MOV R0,41H CJNE R0,#09H,L0 MOV R0,40H CJNE R0,#00H,L1 LCALL S0 INC 40H LJMP L0 L1:MOV R0,40H CJNE R0,#01H,L2 LCALL S1 INC 40H LJMP L0 L2:MOV R0,40H CJNE R0,#02H,L3 LCALL S0 INC 40H LJMP L0 L3:LCALL S2 MOV 40H,#00H L0:INC 41H MOV R0,44H CJ
36、NE R0,#01H,L4 CPL P1.5 L4:MOV R0,41H CJNE R0,#0AH,RET1 MOV 41H,#00H INC 42H MOV R0,42H CJNE R0,#0AH,RET1 MOV 42H,#00H INC 43H MOV R0,43H CJNE R0,#0AH,RET1 MOV 43H,#0AHRET1:CLR EA POP Acc SETB EA RETIDIP0:CLR EA PUSH PSW PUSH Acc SETB EA LCALL DEL2MS MOV P2,#0FFH MOV A,P2 ORL A,#0F0H CJNE A,#0FFH,TES
37、TDIP1:CLR EA POP Acc POP PSW SETB EA RETITEST:JNB Acc.0,KEY4 JNB Acc.1,KEY1 JNB Acc.2,KEY2 JNB Acc.3,KEY3 LJMP DIP1KEY1:ANL P1,#0F8H CLR TR0 MOV P1,#00H LCALL FLASH MOV 45H,#01H ORL P1,#48H ANL P1,#48H LJMP DIP1KEY2:ANL P1,#0F8H CLR TR0 MOV P1,#00H LCALL FLASH MOV 45H,#01H ORL P1,#88H ANL P1,#88H LJ
38、MP DIP1KEY3:ANL P1,#0F8H CLR TR0 MOV P1,#00H LCALL FLASH MOV 45H,#01H ORL P1,#50H ANL P1,#50H LJMP DIP1KEY4:MOV 41H,#04H MOV 42H,#08H MOV 43H,#08H MOV 47H,#00H MOV 46H,#00H MOV P1,#00H SETB P1.3 SETB P1.7 LJMP DIP1S0:MOV 41H,#03H SETB P1.5 MOV 44H,#01H RETS1:MOV 44H,#00H MOV R0,46H CJNE R0,#01H,X1 M
39、OV 41H,#03H MOV 42H,#08H MOV 43H,#08H LJMP Y1 X1:MOV 41H,#03H MOV 42H,#04H MOV 43H,#09H Y1:ANL P1,#50H ORL P1,#57H RETS2:MOV 44H,#00H MOV R0,46H CJNE R0,#01H,X2 MOV 41H,#03H MOV 42H,#08H MOV 43H,#08H LJMP Y2 X2:MOV 41H,#03H MOV 42H,#04H MOV 43H,#09H Y2:ANL P1,#88H ORL P1,#8FH RETFLASH:MOV 45H,#0AH Z1:CPL P1.5 LCALL DEL1S MOV R0,45H DEC 45H DJNZ R0,Z1 RETDEL1S:MOV R5,#5 DEL11:MOV R6,#200 DEL12:MOV R7,#126 DJNZ R7,$ DJNZ R6,DEL12 DJNZ R5,DEL11 CLR RS0 RETDEL2MS:MOV R1,#6 DEL21:MOV R2,#126 DJNZ R2,$ DJNZ R1,DEL21 RETTAB:DB 90H,80H,0f8H,82H,92H,99H,0B0H,0A4H,0F9H,0C0HEND