交通灯设计 .doc
江苏城市职业学院 毕业设计(论文)( 2013 届)设计(论文)题目 单片机控制的交通灯 办 学 点 (系) 南通办学点艺术传媒学院 专 业 电气自动化 班级 10电气 学号 8 学生姓名 林雨晴 起讫日期 2012.102013.4 地点 江苏城市职业学院南通办学点 指导教师 张 鹰 职称 副教授 2013年 4 月 摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还要根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道人行人道,有条不紊。那么靠什么来实现这种井然秩序呢?靠的就是交通灯的自动指挥系统。交通灯的控制方式很多,这里采用MSC-51单片机为控制器来实现交通灯自动控制。为了能够根据实际车流量通过可编程并行I/O接口芯片80C51芯片的P1口设置红绿灯的点亮时间。红绿灯循环点亮,倒计时剩秒时黄灯闪烁警示。此系统实用性强,操作简单,扩展方便。关键字:交通灯 单片机 MSC-51 目录1引言42系统方案设计62.1系统总体方案设计62.2单片机型号选择82.3交通灯及数字显示型号选择83硬件电路设计93.1单片机最小系统设计93.2交通灯及显示电路设计113.3单片机与PC机通信123.4键盘电路设计13单片机电源电路设计144软件设计154.1程序总体设计154.2 红绿灯显示设计174.3键盘电路设计185 设计总结196结束语197参考文献21附录22附录一:系统设计原理图22附录二:系统程序221引言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已经出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示停止,绿色代表注意。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上,红灯表示停止,绿灯表示通行。1918年,有出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安装在地下,当车辆接近时,红灯变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束就能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一转向。左右转弯车辆都必须让合法的正在路口内行驶的车辆和过人行横道的行人优先通过。红灯是禁止信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长,现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减少了工作人员的劳动强度。中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用,智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。2系统方案设计东西、南北两干道交于一个十字路口,各干道有两组红、黄、绿三色的指示灯,分别指挥车辆和行人安全通行。红灯点亮禁止通行,路灯点亮允许通行,黄灯点亮提示人们注意红、绿灯的状态即将切换,且黄灯点燃时间为东西、南北两干道的公共停车时间。通过数码管显示时间,让司机和行人能够及时了解红绿灯工作情况。其十字路口交通灯设计图如图2-1所示。图2-1十字路口交通灯设计图2.1系统总体方案设计交通灯设计的好坏直接关系到交通的流畅。在这个追求效率的时代,交通顺畅对社会经济具有重要的影响。这里提出两中设计方案。方案一以单片机为控制核心,其设计框图如图2-2所示。图2-2方案一设计框图方案一设计原理:通过键盘电路设置个路口每个红、绿、黄灯点燃时间。输送到单片机。通过单片机控制红黄绿灯的亮灭,并同步显示每个红、黄、绿灯即将熄灭的时间。通过压力传感器测量出交叉路口的车流量送入单片机,从而使单片机能够根据车流量的大小,自动调节个红、黄、绿灯的亮灭时间。并及时记录下车流大小。优点:系统可靠性高;稳定可靠;价格便宜;可扩展性高;能够满足一般的需要。但系统结构较为复杂。方案二:采用PLC为控制核心,其总体设计框图如图2-3所以。图2-3方案二设计框图方案二主要将控制核心进行了改变。由于PLC的I/O口资源较多不需要进行扩展,可以直接控制交通灯并显示时间。优点:系统简单;可靠性高。但是价格较昂贵。综合比较这两种方案,对于交通灯这样一个不是很复杂的系统,传统的单片机已经能够满足要求。若采用PLC则会造成资源的浪费。故这里采用方案一。2.2单片机型号选择单片机是控制系统的核心部分,对于采用何种单片机将直接关系到控制系统的稳定性,快速性及经济性。对于单片机的选择,这里提出了如下两种方案。方案一:采用目前比较通用的52系列单片机。此类单片机的运算能力强,软件编程灵活,自由度大,可为许多嵌入式控制应用系统提供高性价比的解决方案。若该系统采用此单片机为核心,能够实现对外围电路的智能控制,且价格低廉。方案二:采用TI公司生产的16位MSP430系列单片机。此单片机内部模块多、兼容性好、品种多、性价比高;易扩展、可靠性、具有较高的数据处理和运算能力,并且低功耗是其最大的亮点。但抗干扰能力不如52系列单片机,价格昂贵。综合比较以后,该系统我采用较为常见的STC89C52单片机,单片机STC89C52属于52系列的一种,它是一种低功耗、高性能CMOS8位微控制器,具有8K的系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.3交通灯及数字显示型号选择交通灯作为被控对象,直接控制车流人流。交通灯的选型很重要。方案一选择不带箭头的绿灯,此类等适合小型的路口,一旦车流过大就会造成堵塞。方案二采用带指示箭头的绿灯,可以区分出直行,左拐,还是右拐。可以方便的控制车流人流,发挥出最出色的指挥作用。综合比较这两者方案,由于人行行道只有直行故采用没有指示方向的绿灯,而车行道需要区分出左右转向故采用有指示方向的绿灯为了使行人及司机能够了解交通灯的运行状态,需要将各个等的点燃时间显示出来,这里提出两种显示方案。方案一:采用四位一体的共阳极数码管显示。它具有显示清晰,电路接口简单,价格低廉等特点,但是显示位数有限,显示精度较差。方案二:采用液晶屏显示。采用液晶屏显示具有显示灵活的特性,相比于数码管,显示更清晰,精度更高,但价格较为昂贵。综合比较这两者方案,交通灯只需要显示两位,数码管完全可以满足要求,故这里选择方案一。3硬件电路设计本设计选用AT89C52单片机及外围器件构成最小控制系统,16个发光二极管分成4组,分别代表红灯,黄灯,直行及右拐绿灯,左拐绿灯。8个数码管构成倒计时显示模块,车流检测传感器采集数据流量。实现自动调节。3.1单片机最小系统设计该系统的控制核心采用AT89C52单片机。其外部引脚图如下图3-1所示。图3-1 AT89C52外部引脚图引脚功能说明如下:P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8 位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)定时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在Flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出。P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)。P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为STC89C52特殊功能(第二功能)使用,在Flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能: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(外部数据存储器读选通);RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。单片机最小系统包括复位电路及时钟电路。单片机最小系统电路原理图如图3-2所示。图3-2单片机最小系统原理图复位电路:单片机复位方法有两种:上电复位和操作复位。上电复位是指计算机上电瞬间,要在RST引脚上出现宽度大于10ms的正脉冲,是计算机进入复位状态。操作复位:是指用户按下复位按钮使计算机计入复位状态。这里采用操作复位。当按下复位按钮KEY1此时RST被拉高,计算机进入复位状态。时钟电路: MCS-51单片机的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号。另一种为外部方式,时钟信号由外部引入。本系统采用内部方式来为系统提供时钟信号。STC89C52单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输人端和输出端,其频率范围为1.2一12MHz。该放大器与作为反馈元件的片外晶体或陶瓷谐振器(简称晶振)一起构成自激振荡器。3.2交通灯及显示电路设计交通灯及倒计时显示电路如图3-3所示。图3-3交通灯及显示电路图此交通灯采用发光二极管,显示采用数码管显示,由于发光二极管可以被单片机直接点亮所以直接接在单片机上,数码管采用共阳极数码管,及当公共端为高电平,数码管被点亮。本设计通过单片机控制三极管的导通从而控制数码管的亮灭。3.3单片机与PC机通信单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平,可定义为TTL电平,其中高电平为+5V,低电平为0V。计算机的串口为RS232C电平,它是一种负逻辑电平。其中高电平为-12V,低电平为+12V。所以在实现单片机与PC机通讯时需要设计一个转换电路。单片机与PC机通讯转换电路图如图3-4所示。图3-4 单片机与PC机通讯转换电路图这里使用MAX232实现RS-232电平与TTL电平的转换。MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片它的内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232输出所需的+10V电压。所以,采用此芯片接口的串行通信系统只需要单一的+5V电源就可以了。对于没有+12V电源的场合,其适应性更强,加之其价格适中,接口电路简单,所以被广泛的采用。图3-11中电容C4、C5、C6、C8及V+,V-是电源变换电路部分。在实际应用中器件对电源噪声很敏感,因此Vcc必须要对地加去耦电容C7其值为0.1uF,按芯片手册中介绍,电容C4,C5,C6,C8应选用0.1uF/16V的电解电容,经大量实验及实际应用,这四个电容可以选用0.1uF的非极性电容来代替,这四个电容要尽量靠近MAX232芯片,以提高抗干扰能力。3.4键盘电路设计此设计可以根据车流的实际运行情况调整红绿灯的亮灭时间。这里设计了键盘电路,由于黄灯起警告作用其时间是固定不变的,所以只需要修改红灯和绿灯的时间,这里设置了三个按钮,分别为设南北路置键S1,东西路设置S2,数字加键A和数字减键D。当按一下S1键修改南北方向的红灯亮时间,按两次修改绿灯亮的时间。通过增加或者减小键来调整时间。同理按下S2键修改东西方的时间键盘设计电路如图3-5所示。图3-5键盘电路原理图当按下按键后单片机的接口电平被拉低,从而使单片机识别出按键按下,在按键按下后需要注意去除按键的抖动误差。单片机电源电路设计单片机供电电路如图3-6所示。图3-6单片机供电电路这里采用USB给单片机供电。电容主要去除直流电源中的交流分量。4软件设计硬件电路和软件程序是组成一个系统不可缺少的两部分,二者的正确与否将直接影响整个程序的可实现性,在上一章中已经将整个系统的硬件部分作了介绍、在这一章中将就系统的软件部分加以分析说明。由于本系统对时间精度不是很高,这里采用较为简单的可读性好、易于移植的C语言编程。4.1程序总体设计主函数软件设计流程图如图4-1所示。首先系统初始化,在初始化的基础上,先使南北方向红灯,东西方向直行加右拐绿灯点亮延长适当的时间后黄灯闪烁三秒,然后东西路口左拐绿灯点亮。延长一段时间,东西方向黄灯闪烁3秒。这时候东西路口变成红灯,南北方向直行和右转绿灯点亮,延长设定的时间后,南北方向黄灯闪烁3秒,这时候南北方向的左转绿灯点亮,延迟一段时间,这时候南北方向的黄灯开始闪烁3秒,要是按下了按键则读入新的红绿灯时间否则直接跳转到最初状态。倒计时通过数码管显示,时间通过按键设定。由于不同的路段红绿灯的设计时间不同,这里设定直行右转绿灯的时间为35秒。左转绿灯为20秒,黄灯闪烁时间为3秒。图4-1 软件总体设计图4.2 红绿灯显示设计红绿灯软件设计流程图如图4-2所示图4-2红绿灯软件设计图首先系统初始化,在初始化的基础上,先使南北方向红灯,东西方向直行加右拐绿灯点亮延长适当的时间后黄灯闪烁三秒,然后东西路口左拐绿灯点亮。延长一段时间,东西方向黄灯闪烁3秒。这时候东西路口变成红灯,南北方向直行和右转绿灯点亮,延长设定的时间后,南北方向黄灯闪烁3秒,这时候南北方向的左转绿灯点亮,延迟一段时间,这时候南北方向的黄灯开始闪烁3秒,在开始下一次工作状态。4.3键盘电路设计键盘电路软件设计如图4-3所示。 图4-3 键盘识别与检测确定是否有键按下,确实有按键按下,延迟去除按键抖动。再判断是否有键按下。有则表示确实有按键按下。5 设计总结本系统就是充分利用了80C51芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能,红绿灯循环点亮。 系统不足之处:不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现 。本文对MCS-51单片机的多机通信进行一定的探讨,利用单片机多机通信对城市交通灯控制系统实现网络化集中控制。通过该系统的设计,我对单片机 MSC-51 的特点有了更深的理解,实现了交通灯的控制。在程序写好并输入电脑之后,经过检测及调试,程序模拟运行时,已能实现了本设计所需要达到的要求。6结束语通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一份综和性作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。2012年10月,我开始了毕业论文工作,时至今日,论文基本完成。从最初的茫然,到慢慢的进入状态,再到思路逐渐清晰,整个写作过程难以用语言来表达。历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。 这次毕业论文的制作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学期间所学到的知识。我不会忘记这难忘的几个月。毕业论文的制作给了我难忘的回忆。面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;亲手设计梯形图的时间里,记忆最深的是每一步小小思路实现时那幸福的心情。这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。从资料的收集中,我掌握了很多与单片机相关的知识,对所学过的知识有所巩固和提高,并且让我对当今单片机最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。经过这次毕业设计,使我得到了用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,和在常用编程设计思路技巧(特别是C语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。7参考文献1高海生,杨文焕.单片机应用技术大全M.成都:西南交通大学出版社,2008.2胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,2008.3王树勋.MCS一51单片机开发系统与测控分析M.北京:机械工业出版社,2007.4谈根林,李文惠,汪庆保.微机计算机及其在测量中的应用M.计量出版社,2006.5郭天祥.51单片机C语言教程M.北京:电子工业出版社,2009.6李广第.单片机基础M.北京:航天航空大学出版社,2006.附录附录一:系统设计原理图 附录二:系统程序#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit dxg=P20;/数码管位选sbit dxs=P21; /数码管位选sbit nbg=P22; /数码管位选sbit nbs=P23; /数码管位选sbit key1=P24; /键盘sbit key2=P25; /键盘sbit key3=P26; /键盘sbit key4=P27;/键盘uchar num,num1;uchar temp=0xfc,0xfd,0xfb,0xf7,0xcf,0xdf,0xbf,0x7f;/数码管位选num=350;num1=350void display (uchar nanbei)/数码管显示uchar shi,ge;shi=nanbei/10;ge=nanbei%10;dxg=0;dxs=0;nbg=0;nbs=0;P0=tempshi;dxg=1;dxs=0;nbg=0;nbs=0;delay(50);dxg=0;dxs=0;nbg=0;nbs=0;P0=tempge;dxg=0;dxs=1;nbg=0;nbs=0;delay(50);void display1 (uchar dongxi)数码管显示uchar 1shi,1ge;1shi=dongxi/10;1ge=dongxi%10;dxg=0;dxs=0;nbg=0;nbs=0;P0=temp1shi;dxg=0;dxs=0;nbg=1;nbs=0;delay(50);dxg=0;dxs=0;nbg=0;nbs=0;P0=temp1ge;dxg=0;dxs=0;nbg=0;nbs=1;delay(50);void delay(uint xms) /延迟x毫秒uint i,j;for (i=xms;i>0;i-)for(j=110;j>0;j-);void keyscan()/键盘扫描电路if(key1=0)delay(10);if(key1=0)if(key3=0)delay(10);if(key3=0)num+;if(key1=0)delay(10);if(key1=0)if(key4=0)delay(10);if(key4=0)num-;if(key2=0)delay(10);if(key2=0)if(key3=0)delay(10);if(key3=0)num1+;if(key2=0)delay(10);if(key2=0)if(key4=0)delay(10);if(key4=0)num1-; void main()uint i,j;while(1)j=i+300;P1=0X14;for(i=num;i>0;i-)/南北红灯东西直行右转display(i);diaplay1(j);j-; P1=0X12; /南北红灯东西黄灯for(i=50;i>0;i-)display(i);diaplay1(j);j-; P1=0X18; /南北红灯直行左转for(i=200;i>0;i-)display(i);diaplay1(j);j-; P1=0X12;/ 南北红灯东西黄灯for(i=50;i>0;i-)display(i);diaplay1(j);j-;j=num1+300P1=0X41;/东西红灯南北直行右转for(i=num1;i>0;i-)display(i);diaplay1(j);j-;P1=0X21;/黄灯for(i=50;i>0;i-)display(i);diaplay1(j);j-; P1=0X81; /东西红灯南北左转for(i=200;i>0;i-)display(i);diaplay1(j);j-; P1=0X21;/黄灯for(i=50;i>0;i-)display(i);diaplay1(j);j-;