1、 交通灯控制系统的设计与制作摘 要:道路交通信号灯是交通安全产品中的一个类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。本文将介绍一种基于单片机控制的交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机AT89C51和芯片74LS245为中心器件来设计交通灯控制系统。本系统性能稳定,功能完善,实用性强。Abstract: Road traffic lig
2、hts is a safety product categories, is to enhance road traffic management and reduce the occurrence of traffic accidents and enhance road use efficiency and improve the traffic conditions of an important tool. Applicable to cross, such as T-intersection, from road traffic signal control machine cont
3、rol, guidance of vehicles and pedestrian traffic safety in an orderly manner. In recent years, with the rapid development of science and technology, the application of SCM is at the same time, increasingly driven to update the traditional control technology. This article will introduce a single-chip
4、 microcomputer-based control of the automatic traffic signal control system. Many traffic lights control. The system uses MSC-51 series single-chip and chip AT89C51 devices to 74LS245-centric design of the traffic light control system. Stable performance of the system, functional, practical. 目 录引 言1
5、第1章 方案选择及总体设计111方案选择112 总体设计2121 系统构成2121功能概述2第2章 系统硬件设计32. 1单片机简介2.1.1 单片机的发展历程22.1.2 单片机的特点:32.1.3 AT89C51单片机简介422交通灯四种通行模式及行车方向指示323各功能模块硬件设计及实现5231行人通行指示及其实现5232主次干道独立控制功能6233倒计时计数功能及其实现6第3章 系统软件设计731 软件总体流程图7第4章 系统调试分析及结果1041 电路板实物的制作10411 印刷电路板PCB图的绘制10412 实物的制作1142 系统硬件调试1343 系统软件调试1344 系统总体调
6、试13第5章 心得体会16参考文献15附录:16附录一:元件清单16附录二:原理图与仿真图17附录三:程序清单1826引 言当今世界,红绿灯已经被安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一现象在19世纪就已出现了,19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯-煤气交通信号灯
7、,这是城市街道的第一盏信号灯。在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色第1部分 方案选择及总体设计11方案选择能实现此电路的方法很多,我们根据实际将范围定在以下几个比较切合我们的方案中。第一种方案:采用数字电子技术实现。用基本的555芯片(利用单稳态实现定时),计数芯片(如74LS163,74LS160等)完成计时功能,控制电路芯片,译码芯片(如74LS138)等基本芯片,结合电阻,电容等基本元件,通过逻辑电路实现交通灯的功能。 第二种方案:使用单片可编程来实现交通灯的功能。利用单片机的外围扩展,显示电路构成基本硬件。然后编程实现对定时,控制,显示电路的控制,然后调试,完
8、成设计。 结合实际情况,根据毕业设计任务书的要求,我们经过讨论和论证,最终一致选用第二种方案的设计思路对交通灯控制系统进行设计。12 总体设计121 系统构成整个系统的构成以AT89C51单片机为核心,由I/O口扩展,LED数码管显示,紧急情况中断电路还有复位电路等组成。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。行车方向指示采用LED发光二极管,可有红、绿两种颜色指示放行与禁止,黄灯作为红绿转换的提示,形象直观。行人通行指示也同样采用LED发光二极管,用红、绿两种颜色指示放行与禁止,黄灯作为红绿转换的提示,形象直观,简洁明了
9、,更方便控制。按键控制台,可供警察在室内实时监视交通状况。通过按键可设置紧急情况发生时的交通灯状态控制人机界面非常友好。系统采用双数码管倒计时计数功能,最大显示数字99。友好的人机界面、灵活的控制方式、优化的物理结构以及丰富的功能是本设计的亮点。整个硬件电路组成模块如图1;AT89C51单片机I/0口扩展LED数码管显示复位电路图1-1.系统硬件构成模块121功能概述本设计由中断系统、单片机、LED数码显示模块和按键等构成。单片机是集成的IC芯片AT89C51单片机,只需根据实际选型。其他部分都需要根据应用要求和性能指标自行设计。LED数码显示电路复 位 电 路AT89C51单 片 机电源稳压
10、控制电路键盘控制电路交通灯控制电路程序运行指示电路硬件总体框图第2部分 系统硬件设计2.1单片机简介2.1.1 单片机的发展历程单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 在MCS-51系列单片机中,有两个子系列:51子系列和52子系列。每个子系列有诺干中型号。51系列有8051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。改进后的型号更加省电。52系列比对应的5
11、1系列增加了定时器T2并将内部程序存贮器增加到8KB。Inter公司停止生产MCS-51系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是AT89C51/AT89s51等。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角
12、的多功能化,以及低电压底功耗2.1.2 单片机的特点:(1)性价比高,开发周期短,易于产品化,(2)集成度高,可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗、低电压一般电源供电电压在53V范围内单片机都能正常工作,供电的下限可达12V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了I2C及SPI等串行总线方式, 可根据需要进行并行或者串行扩展。2.1.3 AT89C51单片机简介AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read
13、Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10
14、年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路22交通灯四种通行模式及行车方向指示按交通灯控制规则,每个街口有左拐、右拐、直行及行人四种指示灯。每个灯有红、绿两种颜色灯。交道口模型如图21所示:北 南东西图2 交通指挥灯示意图绿 黄红绿黄红红黄绿绿红黄4组LED数码管按照设置的通行时间(各路口默认的通行时间均为1分钟)进行倒计时,并各自进行红、绿灯显示,共有四种通行方式,分别为: 系统工作方式:1. 现实系统提示符“P”2. 按S2键启动交通灯控制器。主通道首先放
15、行,绿灯亮55秒后,黄灯开始亮2秒,接着黄灯闪烁3次,每次一秒,接着红灯亮,主通道停止放行;次通道开始放行,绿灯亮25秒后,黄灯开始亮2秒,接着黄灯闪烁3次,每次一秒,次通道停止放行;依次循环。3. 时间在显示器上显示出来。4. 按S4键复位。一般主干道通行时间要比次干道要长一些,可以根据实际情况进行调整,以提高车辆通过率,缓减交通压力。本设计选用LED发光二极管的红绿灯状态用来指示左右拐、直行等交通指示信息。绿色表示通行,红色则表示禁止通行。中间绿色灯亮,表示直行,两边红色灯亮,表示禁止通行;左边绿色灯亮,表示左拐弯;其他红色灯亮则表示禁止通行和右拐弯。所有指示信息一目了然。实物流程图:(L
16、ED均显示南北干道闪亮时间)1: 30东西干道 红灯南北道绿灯 (主干道绿灯亮55秒,次干道红灯亮(55秒)2: 4南北干道黄灯黄灯东西干道 红灯(主干道黄灯亮2秒再闪烁3秒 次干道亮红灯)3: 54东西干道绿灯南北道红灯(次干道 绿灯亮25秒 主干道亮红灯)23各功能模块硬件设计及实现231行人通行指示及其实现人行道的通行采用红绿两种颜色的发光二极管来指示,其中多加了一个黄灯作为提示红绿转换的提示标志。按规则,南北车辆直行的时间也就是东西路口行人通行的时间。所以,在该时刻南北直行的指示灯和东西路口人行道上的指示灯的点亮情况应该是一致的。在现实中,人行道的状态切换是用该信号指示灯闪烁来提示红绿
17、状态的切换的。但是在我们这个设计中,我们认为直接再加一个黄色信号灯来提示红绿状态的转换效果会更加明了。当然,相应地要考虑到单片机的带载能力了。 黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。 我们的视网膜含有杆状
18、和三种锥状感光细胞,。杆状细胞对黄色的光特别敏感,三种锥状细胞则分别对红光、绿光及蓝光最敏感。由于这种视觉结构,人最容易分辨红色与绿色。虽然黄色与蓝色也容易分辨,但因为眼球,对蓝光敏感的感光细胞较少,所以分辨颜色,还是以红、绿色为佳。所以,交通灯用什么颜色也是有大学问的。232主次干道独立控制功能当主干道方向的车辆过多发生堵塞, 而次干道方向车辆却很稀少时,正常的信号灯时序将会使交通状况更加恶化。本设计添加了主次干道独立控制功能,交警可按需求控制任意路口的通行,该措施可在一定程度缓减短暂的交通压力。233倒计时计数功能及其实现本系统使用数码管完成倒计时显示功能。以南北方向为例,数码管显示的数值
19、从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。系统共有4 个二位的LED 数码管,分别放置在模拟交通灯控制板上的四个路口。因为相同直线方向上的数码管应该显示同样的内容,所以我们可以把它们同样对待。也就是说各个方向的数码管个位(把数码管第二位定义为个位,第一位定义为十位)用一根信号线控制,十位用另一根信号线控制。这里采用动态显示。考虑到单片机的P1口驱动数码管七位段码的能力,我们利用一片74LS245芯片来作为数码管的位驱动芯片。经实验证明,该8路同相三态双向总线收发器芯片的驱动能力完全可以满足本设计的显示要
20、求。第3部分 系统软件设计硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。31 软件总体流程图软件总体设计及流程图见图3-1,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,发送显示数据,同时对按键进行扫描,等待外部中断,以及根据所需要的功能进行相应的操作。其流程图如
21、下图所示。运行过程东西绿灯30S,南北:红灯54S是否到3秒东西黄灯亮4S,南北:红灯Count10?东西:黄灯灭,南北:红灯是否到0秒NYYNN南北:绿灯30S,东西:红灯34S是否到3秒南北:黄灯亮4S,东西:红灯Count10?南北:黄灯灭,南北:红灯是否到0秒YYYNNNLED显示缓冲区 DISPY启动按钮第4部分 系统调试分析及结果因本设计本身要求有稳定性高、免维护、抗干扰能力强等功能,系统调试除了验证数据处理的精度,确保判断的准确性外,同时必须确认各项功能的正常运行。41 电路板实物的制作411 印刷电路板PCB图的绘制由于本电路硬件设计中,用单片机的两个IO口控制各路交通灯的循环
22、点亮。用同一芯片单片机的P1口和P3口的高四位,来控制数码管的显示点亮。因此,在同一芯片中,所要接的线路比较多。在硬件的布局中,各位LED灯和数码管的布局比较固定化,集中分布在所控制的四个路口。因此,若采用双面PCB板的话,这个电路的布线比较容易实现。但是,现实水平中做双面板会出现一些焊点接触不良而导致电路调试过程不易实现。因此,我们决定使用单面板布线。单片面板的布线需要牺牲本设计电路板一部分实际电路的美观。印制电路板的设计是以电路原理图为根据,实现电路设计者所需要的功能。印刷电路板的设计主要指版图设计,需要考虑外部连接的布局、内部电子元件的优化布局、金属连线和通孔的优化布局、电磁保护、热耗散
23、等各种因素。优秀的版图设计可以节约生产成本,达到良好的电路性能和散热性能。简单的版图设计可以用手工实现,复杂的版图设计需要借助计算机辅助设计(CAD)实现。412 实物的制作准备工作:打印一份印刷电路PCB;事先购买好实物电路所需的各种元器件;一块铜板;FeCl3一包;还有其他的基本电子器件和制板工具。制作过程:我们的印刷电路板制作过程总制板工艺程序:修整板周边尺寸-复制-钻孔定位-贴胶-腐蚀-清洗-去胶-细砂纸擦光亮-涂松香水。 1.先将符合尺寸要求的复铜板表面用细砂纸擦光亮,再把打印出来的印刷电路PCB复写纸将布线图复制到复铜板上。 2.用直径1.0mm钻头钻孔、定位口,再进行贴胶(或上油
24、漆)。 3.贴完胶后,应在板上垫放一张厚张,用手掌在上面压一压,其目的是使全部贴胶与复铜板粘贴得更加牢靠。必要时还可用吹风筒加热,可使用权贴胶粘度加强,由于所用的贴胶具很好的粘性,而且胶纸又薄,故采用这种贴胶进行制板,效果较好,一般是不须再作加热处理。 4.腐蚀一般采用三氯化铁作腐蚀液,腐蚀速度与腐蚀液的浓度,温度及腐蚀过程中采取抖动有关,为保证制板质量及提高腐蚀速度,我们采用了抖动和加热的方法。 5.腐蚀完成后,应用自来水冲洗干净,并将胶纸去掉,把印刷板抹干。 6.用细砂布将印刷板复铜面擦至光亮为止,然后立即涂上松香溶液。(涂松香水时应将印刷电路板倾斜放轩再涂以松香水,以免松香水经钻孔流至背
25、面)。 附注: (1)松香水的作用是防氧化,助焊及增加焊点的光亮度等;松香溶液是用松香粉末与酒精或天寻水按一定比例配制面成,其浓度应适中,以用感有一定粘性即可。 (2)三氯化铁溶液对人体皮肤不会有不良影响,但三氯化若搞到衣服上或地面上,寻是难以洗掉的,所以使用时我们是特别小心的。 制板心得:我们在制板过程中,1.首先是PROTEL设计的时候出现的错误导致印制电路板制作错误。2.其次是由于设计的理论和实际有误差导致无法实现目标。3.焊接过程中出现了一些问题,比如焊跳线的时候,由于接线太多,而且是手工焊接,并且焊接设备不好,烙铁头高温下容易老化氧化和温度不可控制。因此导致焊盘脱落,原件烫伤等原因导
26、致报废了好几块板子。此外,有些焊盘太小并且有损坏迹象,所以焊接很不方便。但为了不出现虚焊,却花了很长时间去焊,有些焊点并不是很美观。4.焊接过程中,有时候焊锡会不小心将相邻的两根引线短路。所以,此次做板积累了一些经验,主要是,再次做板的时候一定要注意PCB的引线之间的距离不能设置太近。因为我们是手工制作,精度和密度都必须有一个自由度和能力所及的范围,并且考虑到手工制板的局限性和线路过细密导致的氧化和短路故障。我们拥有了这些宝贵的经验,相信今后制板,一定会完美保证电路的实现!42 系统硬件调试在设计过程中,我们使用了proteus硬件仿真软件对该设计的硬件电路进行了实物功能仿真,仿真效果良好。实
27、物交通灯控制系统的PCB电路板焊接工作量非常大,电路安装完成后,首先进行检查,即确认电路无虚焊,无短路,无断路,集成元件安装是否正确,之后进行电路功能模块的分级调试,根据电路功能逐级进行:通行方式功能调试:包括对四种通行方式控制调试,行人和行车方向指示灯亮度和驱动电路调试;倒计时功能调试:数码管亮度调试;复位和紧急情况手动控制功能调试。 43 系统软件调试本系统的软件系统很大,选用一般的伟福仿真器对程序进行编写和调试。除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试。采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。44
28、系统总体调试系统做好后,进行系统的完整调试。主要任务是检验实现的功能及其效果并校正误差。测试一开始,我们就发现了系统出现了两个问题:一是有一部分交通灯亮度不够,所发出来的光非常的微弱以致于几乎感觉不到它的亮度;二是数码管不工作,没有时间显示。这与设计的要求完全不符。为了找出这个问题和解决方法,我们查找了电路的输出各部分的输出电平。发现了一个现象,我们采用的数码管是共阴极数码。而控制数码段显示的P1口输出的是高电平。经多方查阅资料,解决第二个问题可以有两个解决方法。其一,将硬件电路作修改,将数码管换成共阳极的数码管。这样数码管就可以正常进行时间显示了。其二,修改程序,让控制数码管段码的P1输出的
29、是低电平。若采用修改硬件电路的方法的话,硬件电路就得作变动。已经布好的线也必须有相应的变动,操作起来比较麻烦。所以,我们采用了第二种方法。修改了程序电路中的段码代码。再次调试,按照设计要求的指标,系统数码管电路部分基本能按照预先设定的要求来进行倒计时的显示。亮度要求也基本符合预先设想。接下来还有一个问题有待解决,交通灯亮度不足,以致于部分交通灯只能勉强看得出来它在亮而已。这明显不能满足设计要求。经多方检测,我们认为这是由于LED灯驱动能力不足引起的亮度弱问题。若要修正这个问题,那就得为LED灯增加驱动电路以提高电路的驱动能力。要实现这一步骤必须对硬件电路进行一定的改动。LED灯的驱动电路可以用
30、集成电路电路芯片来进行驱动。在初步方案中我们考虑要用集成电路来完成。但是由于客观方面的原因,将要参加工作离开学校没有制作实物的环境条件。因此,这部分改进只作了一个设想,并没有时间去付诸实施。但基本问题和解决问题的原理我们还是有一定的了解。第5部分 心得体会在此次设计过程中,我们通过查找了大量相关的资料,并且在动手设计和制作之前,通力合作,群策群力,在此次设计和制作过程中,不仅增进了我们的专业素养和理论知识和实践经历,更加增进了我们彼此之间的同学友谊,让我们都备受珍惜和倍感鼓舞。我们都熟悉和总结出了各自的设计方案、设计思路。然后通过各自论证和辩论讨论等形式,优势互补,强强联合,得出最终的三人群体
31、智慧结晶。但是,由于我们是专科毕业层次的学生,水平有限,在原理图的制作设计过程中,我深深的感受并深切体会到了我们理论知识的不足,很多东西虽然已学过,但印象已不是那么深刻都是边设计边查阅书籍学习。在实际做板中,在屡次出失败中,我们也深深知道我们理论操作的极度欠缺。但是,皇天不负有心人,在我们的通力合作,全心沟通的前提下,尽己所能,分工合作。在指导老师有力而精当的指导下,我们终于能顺利而圆满地完成了设计和制作。谢谢老师的真诚关怀和热诚而无私的指导!由此追溯到近半年来我们的促膝而谈,我们的各抒己见。我想,这是我们在航专学习岁月最值得怀念和铭记的岁月!让青春的激情和对科学的追去和对知识的渴望的梦想在这
32、里燃烧和绽放,我想我们的记忆将永远铭记这一段岁月!参考文献1陈权昌、李兴富.单片机原理及应用.华南理工大学出版社.2004.2葛仁华、卢勇威.数字电子技术.华南理工大学出版社.2005.3沈鸿星.LED交通信号灯系统的硬件设计J.电子工程师.2004. 4何立民.单片机应用技术大全M.北京:北京航空航天大学出版社.1994.5李广弟.单片机基础M.北京:北京航空航天大学出版社.1992.6胡汉才. 单片机原理及其接口技术M.清华大学出版社.2000年5月第一版.7何立民. 单片机高级教程M.北京航空航天大学出版社,2000年5月第一版.附录:附录一:元件清单元器件名称规格数量AT89S52加底
33、座双列直插式1四位一体共阳数码管加底座0.5寸2晶振12MHz1发光二极管0.5mm9单排插针40脚1三极管90129蜂鸣器5V1小按键6*6*4.3mm9下载口座子十芯 (FC-10P)118b20温度传感器1六脚按键开关8.5*8.5mm1USB电源线加接口1m1电阻2001电阻4.7K1电阻1K3电阻47024短路冒3电解电容22uf1瓷片电容33pf2排阻10k2附录二:系统原理图:系统仿真图:附录三:程序清单 ;*;项目名称:交通灯控制器的设计;设计日期:2011年11月17日;*;堆栈栈底7FH;*;LED数码管显示器设定;P0.7-P0.0段控线,接LED的显示段dp,g,f,e
34、,d,c,b,a;P2.7-P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);显示缓冲区设定从左至右依次为7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);*;独立式键盘设定;8个按键S2至S9分别依次接在P1.0至P1.7口线; ;*;P3口接8个发光二极管;P3.0-P3.2为主干道绿灯、黄灯、红灯,P3.3-P3.5为次干道绿灯、黄灯、红灯;* ;子程序;DISP(数码管显示子程序);DL(1毫秒延时子程序,晶振频率12MHz);*;常
35、数表格;TAB(共阳数码管字型代码表);DISBH(系统提示符P.字型代码序号表);*;键功能程序;S2GN控制启动,S4GN控制停止;*;数据存储器变量及常量单元定义;*;伪指令定义区 主程序;*;系统起始程序区 ORG 0000H START: LJMP MAIN;*;系统监控程序区 ORG 0030H MAIN: MOV SP, #7FH ;确立堆栈区 MOV PSW, #00H ;初始化PSW,通用寄存器组为第0组 ; MOV R0, #20H ;RAM区首地址 MOV R7, #96 ;RAM区单元个数 ML: MOV R0, #00H INC R0 DJNZ R7, ML TSF:
36、 MOV DPTR, #DISBH ;系统初始化后提示符“P.”字符代码表首地址 MOV R5, #08H MOV R0, #78H DISPTSF:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSF LOOP:LCALLDISPLCALLKEY MOV A, 20H CJNEA,#01H,KEY3LJMPS2GNKEY2:CJNEA,#04H,KEY3LJMPS4GNKEY3:LCALLDISPLJMPLOOP;* ;S2键功能;主干道55秒主干道绿灯时间、次干道55秒红灯时间S2GN:MOV7FH,7EH ;LED
37、7不显示P.CC:MOVP3,#0DEHMOV31H,#05HMOV30H,#05H ;个位、十位赋初值BB:MOV78H,30HMOV79H,31HLCALLKEYLJMPDELY1S;个位减一程序DD:DEC30HEE:MOV78H,30HMOV79H,31HLCALLKEYJB20H.2,S4LJMPDELY1S;十位减一程序XX:DEC31HMOV30H,#09HMOV78H,30HMOV79H,31HLCALLDISPLCALLKEYCLRACJNEA,31H,BB ;判断十位是否为零LJMPDELY1SCJNEA,30H,DD ;判断个位是否为零S4:JB20H.2,S4G;* ;
38、延时1s程序DELY1S:MOVR4,#100DELY:LCALLDISPDJNZR4,DELYCLRACJNEA,30H,DD;判断个位是否为零CJNEA,31H,XX ;判断十位是否为零;2秒黄灯,2秒黄灯闪时间、次干道4秒红灯时间CCC:MOVP3,#0DDHMOV30H,#04HAAA:MOV78H,30HMOV79H,31HLCALLDISPLCALLDELAYDEC30HMOVA,#02HCJNEA,30H,AAAMOV78H,30HMOV79H,31HLCALLDISPLCALLKEYKKK:MOVP3,#0DFHMOV78H,30HMOV79H,31HLCALLDELAYMOVP3,#0DDHLCALLDELAYDEC30HMOVP3,#0DFHCLRACJNEA,30H,KKKMOV78H,30HMOV79H,31HLCALLDISPLCALLDELAYS4G:JB20H.2,S41;* CGD:MOVP3,#0F3H;次干道25秒主干道绿灯时间、主干道25秒红灯时间CCX:MOV31H,#02HMOV30H,#05H ;个位、十位赋初值BBB:MOV78H,30HMOV79H,31HLCALLKEYLJMPDELY10S;个位减一程序DDD:DEC