《交通灯系统设计-毕设论文.doc》由会员分享,可在线阅读,更多相关《交通灯系统设计-毕设论文.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录前 言1第1章 绪论31.1课题的背景及意义31.2 课题研究的主要内容4第2章 总体方案设计52.1本课题研究主要内容52.2本课题的设计思路52.3 方案论证与比较52.4总体方案组成和说明7第3章 硬件电路设计83.1 单片机最小系统83.1.1 AT89C51单片机概述93.1.2 AT89C51晶振连接电路设计93.1.3 AT89C51复位电路设计103.2按键接口电路的设计113.3指示电路的设计123.4 显示电路的设计123.5 电源电路设计13第4章 软件设计144.1 软件流程图144.1.1 主程序的设计144.1.2 按键扫描处理子程序的设计144.2 Prot
2、eus professional软件仿真15结论与致谢17参考文献18附录A 硬件部分连接图19附录B 软件程序清单20前言放眼当今世界技术领域,自动化技术是实际应用最广泛、发展势头最强劲、经济效益最明显的技术之一。尤其当计算机技术、信息技术与自动化技术融为一体的时候,更显示出这项技术所具有的独特优势和无比强大的生命力。本次设计以单片机为基础进行控制技术的实现,就是因为它不但有普通集成电路无可比拟的实用价值,而且在当今国内外自动控制技术领域中占有相当重要的地位和作用。实用单片机控制技术,是自动化控制中应用最为广泛的重要控制方法,是提高自动化控制水平和产品技术含量必备手段。单片机的大量应用,已经
3、引发了自动控制领域的一场重大的革命。在当代自动化领域中,没有计算机、单片机的控制就是一种不完善的控制,因此研究和应用单片机控制技术,具有重要的实际意义。此外单片机具有其体积小、功能齐全、价格低廉、可靠性高等特点,在各个领域中都得到了广泛的应用,特别在工业控制、智能化仪器仪表、产品自动化、分布式控制系统中都已取得了可喜的成果。单片机已经成为衡量工业发展水平的标志之一,是产品更新换代、发展新技术、改造老产品的主要手段。电子计算机的发展经历了从电子管、晶体管、集成电路到大规模集成电路共四个阶段。通用型单片机是一种基本芯片,它的内部资源丰富,性能全面且适用性强,能覆盖多种应用需求。用户可以根据需要设计
4、成各种不同应用的控制系统,即通用单片机有一个在设计的过程,通过用户的进一步设计才能组建成一个以通用单片机芯片为核心在配以其它外围电路的应用控制系统。随着我国城市现代化进程的不断推进,交通问题是影响我国社会经济发展的一个大问题,而城市道路交通问题的核心就是对十字交叉路口交通信号的控制。因此,国外一些发达国家把城市交通信号控制研究的重点放在城市交通干线和区域的控制上,可是控制效果并不明显。人们对十字路口交通信号的控制方法大致有如下两种方式:其一是建立城市交通流的数学模型,提出优化算法,但由于十字路口不同时刻车辆的流量是复杂的、随机的和不确定的,所以数学模型难以建立,控制策略中的最优目标也很难实现,
5、且算法复杂、计算量大,实践证明控制效果不理想,实时性较差;二是根据模糊控制的方法,根据十字路口交通的车辆数确定某一相位的绿灯初始时间和绿灯延长时间,对交通灯的控制实现了一定的模糊化,但是在控制过程中相位转换的顺序不变,因而面对我国城市如此复杂的交通系统,难以保证其灵活性和实时性。因此,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统是当前的主要任务,以最大限度地减少了十字路口的车辆平均延误时间,提高了路口通行能力,从而达到缓解交通拥挤的目的。本次设计的模拟交通灯控制系统是以MCS-51系列AT89C52单片机为核心,通过Proteus professional软件
6、进行模拟仿真,完成了交通灯控制系统的基本功能,东西南北四个方向各有红绿黄三只发光二极管和一个二位数码管,由发光二极管显示红绿黄灯,用数码管模拟时间显示,并且通过按键有效的控制等待时间的长短。从而,完成了对十字路口交通运行状态的智能模拟。该系统具有运行可靠,成本低,操作方便,适用性强的特点,可以得到广泛应用。由此可见,单片机的应用有利于产品的小型化、多功能化和智能化 ,有利于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。更重要的意义在于单片机应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使
7、用单片机通过软件方法实现了。这种以软件取代硬件并能提高系统性能的控制系统软件技术为微机技术。是对传统控制技术的一次革命,是一种全新的概念。随着单片机应用的推广普及,微型控制技术必将不断发展、日益完善和更加充实。第1章 绪论本设计系统是基于单片机的模拟交通灯控制系统,具有一定的实际意义。本课题的目的是以单片机为核心,通过LED数码管显示和LED灯完成了十字路口的工作状态的模拟,并且通过按键有效的控制等待时间的长短。其运行可靠,操作方便,适用性强,可以广泛应用于城市路口,具有较大的推广价值。系统的设计是先是通过第2章,方案的论证,确定系统的元器件。第3章,硬件电路的设计,硬件的设计是通过元器件的功
8、能和使用方法进行的。第4章,软件程序的设计,系统的软件设计是根据单片机对其它元器件的控制进行设计的,并且通过Proteus professional软件进行模拟仿真,以实现交通灯控制系统的模拟功能。1.1 课题的背景及意义近年来,随着汽车数量的猛增,我国大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题。在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制
9、系统已经成为当前的主要任务。和谐的城市交通具有很重要的现实意义。城市交通是城市经济生活的命脉,是衡量一个城市文明进步的标志,对于城市经济的发展和人民生活水平的提高起着十分重要的作用。作为城市交通网的重要组成部分, 交叉口是道路通行能力的瓶颈和交通阻塞及事故的多发地。城市的交通拥堵,大部分是由于交叉口的通行能力不足或没有充分利用造成的,这导致车流中断、事故增多、延误严重。对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市交通问题的有效途径。所以,改变和完善我国现有的交通系统已成为当务之急。1.2 课题研究的主要内容本设
10、计以单片机为核心,通过Proteus professional软件进行模拟仿真,以此来实现交通灯控制系统的模拟功能,从而达到有效的控制交通状况的目的。设计内容及要求:利用单片机的定时器/计数器定时,用LED数码管倒计时显示时间,计时到0令红、绿灯交替点亮和熄灭,并且红灯点亮前黄灯要闪烁。针对以上要求,着重要完成以下几个方面的内容:对于系统的硬件设计,主要包括: (1)单片机基本系统电路设计;(2)显示、按键电路设计;(3)电源电路设计;对于系统的软件设计,主要包括:(1)系统主程序的设计;(2)系统几个中断子程序的设计;(3)系统软件流程图;(4)Proteus professional软件的
11、模拟仿真等内容;针对本次设计中所存在的问题,提出部分改进意见和下一步所要研究的目标。最后,总结了设计过程的收获与不足并展望了未来。第2章 总体方案设计本设计的重点是交通灯的现实电路的设计,另外还包含了单片机的最小系统,电源电路以及设计的核心单元单片机。在设计前要先对各部分电路设计方案进行选择,本章对采用哪种方案及如何选择芯片做出了具体的说明,并最终给出了总体框图和设计思路。2.1 本课题研究主要内容(1)单片机基本系统电路设计;(2)显示、按键电路设计;(3)电源电路设计;(系统电源为+5v)(4)软件设计。(5)Proteus professional软件的模拟仿真2.2本课题的设计思路图2
12、-1 交叉路口结构图交叉字路口是城市交通运输的咽喉,如何使各种交通流顺畅地通过是城市交通信号控制系统成功与否的关键。随着现代城市的发展,交通流量的增加,现在的大中城市都以六车道居多,本方案即以六车道为控制对象,其结构如图2-1所示:本设计主要是关于交通灯的智能控制,车辆行驶时共有直行、左转、右转三个方向,通过数码管对倒计时间的显示和红、绿、黄三色灯的指示,以达到交通顺畅通行的目的。同时,可以通过按键来控制倒计时的长短,实现智能控制人流高峰和低谷时,交通灯运行的状态。2.3 方案论证与比较方案一:采用可编程控制器,可编程控制器又称PLC是一种数字运算操作的电子系统,专为在工业环境下的应用而设计。
13、它采用可编程的存储器,存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的面向用户的指令,并能通过数字或模拟输入输出模块,控制各种类型的机械或生产过程。PLC控制一般具有可靠性高、易操作、维修、编程简单、灵活性强等特点。PLC的主要特点:(1)可靠性:对维修的产品,可靠性包括产品的有效性和可维修性;(2)易操作性:对PLC的操作包括程序输入和更改的操作。大多数PLC采用编程器进行输入和更改的操作。编程器至少提供了输入信息的显示,对大中型的PLC,编程器采用了CRT屏幕显示,因此,程序的输入直接可以显示。更改程序的操作也可以直接根据所需要的地址编号或接点号进行搜索或顺序寻找,然后进行更改。更
14、改的信息可在液晶屏或CRT上显示。(3)编程方便。PLC有多种程序设计语言可供使用。(4)灵活性:PLC采用的编程语言有梯形图,布尔助记符、功能表图、功能模块和语句描述编程语言编程方法的多样性使编程方便,应用面拓展。扩展灵活性是它的一个重要特点。它可根据应用的规模不同,即可进行容量的扩展、功能的扩展、应用和控制范围的扩展。但是PLC的价格过于昂贵,不易拓展和升级,无法实现大众化,所以控制系统将向单片机控制系统逐渐过度。方案二:采用FPGA(现场可编程门阵列)作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所以器件集中在一块芯片上,减小了体积,提高了稳定性,并且可一应用
15、EDA软件仿真、调试,易于进行功能扩展。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。但由于本设计对数据处理的速度要求不高,FPGA的高速处理优势得不到充分体现,并且由于起集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案三:采用单片机编程控制的方式。随着大规模集成电路技术的发展,微型计算机也在不断的进步,而其中就包含单片机技术。单片机主要应用于控制领域,用以实现各种测试和控制功能。单片机的特点:(1)控制系统在线作用。单片机的控制作用可分为两个方面:一是离线控制,二是在线控制。(2)软硬件结合
16、。单片机的引入使控制系统大大“软化”,相比其他计算机应用问题,单片机控制应用中的硬件内容较多,所以单片机控制应用有软硬结合的特点。(3)应用现场环境恶劣。通常单片机应用现场的环境比较恶劣,电磁干扰、电源波动、冲击振动、高低温等因素都会影响系统的工作的稳定。此外,无人值守的环境也会对单片机系统的稳定性和可靠性提出更高的要求。所以稳定和可靠在单片机的应用中具有格外重要的意义。(4)应用的广泛性。在生活和生产的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现。其应用领域包括工业自动化方面、仪器仪表方面、家用电器方面、信息和通信产品方面以及军事装备方面。综上所述,单片机的稳定性,可靠性都有着
17、很好的保证,它也具有一定的精度,且低电压、低功耗。从经济方面考虑,也最为合适。所以此次设计选用单片机为核心控制器。在本系统的开发和设计中,选择ATMEL 公司的AT89C52单片机最合适。 2.4 总体方案组成和说明单片机模块是整个系统的核心部分,在这样一个模拟交通灯系统中,需要有时钟电路模块提供基准震荡频率以及单片机基本系统、指示电路、显示电路、键盘电路、电源电路、下载线电路设计。系统基本原理方框图如图2-2所示:单片机数码显示电 源复 位 下载线按 键LED指示 图2-2系统基本原理方框图由上总体方框图可以看到此次设计硬件电路有六大部分所构成,围绕以主控部分发挥各自的功能。只有这几部分有机
18、结合才可以很好的实现本次设计的目的。第3章 硬件电路设计及描述本系统的硬件结构主要由单片机系统、键盘电路、电源电路、显示电路、LED指示电路等五部分组成。下面对以上六部分进行逐一介绍。3.1 单片机最小系统单片机最小系统主要组成部分包括:AT89C52单片机、时钟电路、复位电路。单片机是本设计的核心部分,它是整个系统能够正常运行的控制中心。3.1.1 AT89C52单片机概述系统采用美国ATMEL公司的AT89C52单片机,其内部含有可重复编程的Flash存储器,可进行1000次擦写操作,故在开发过程中可以十分容易进行程序的修改,大大缩短了开发周期。AT89C52是一种带8K字节闪烁可编程可擦
19、除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。下面是对单片机AT89C52主要特性进行了一些描述。 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Fla
20、sh允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机
21、一切工作停止,直到下一个中断或硬件复位为止。AT89C52芯片引脚图见图3-1。系统结构框图如图3-2所示:图3-1 AT89C52的引脚图图3-2 AT89C52系统结构框图3.1.2 AT89C52晶振连接电路设计AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图3-4。在本设计系统中采用的是内部振荡电路连接法,如图3-3所示。 图3-3 内部振荡电路连接图 图3-4 外部振荡电路连接图外接晶体以及电容C1、C2构
22、成并联谐振电路,接在放大器的反馈回路中,内部振荡器产生自激振荡,一般晶振可在212MHz之间任选。对外接电容值虽然没有严格的要求,但电容的大小多少会影响振荡频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。外接晶体时,C1和C2通常选30pF左右;外接陶瓷谐振器时,C1和C2的典型值为47pF。3.1.3 AT89C52复位电路设计单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。51的RST引脚是复位信号的输入端。复位电平是高电平有效,持续时间要有24个时钟周期以0上。本系统中单片机时钟频率为6MHz则复位脉冲至少应为4us。
23、方案一:上电复位电路上电瞬间,RST端的电位与Vcc相同,随着电容的逐步充电,充电电流减小,RST电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上二个机器周期,在这段时间里,振荡建立时间不超过10ms。复位电路的典型参数为:C取10uF,R取2k,故时间常数=RC=1010210=20ms足以满足要求。其电路如图3-5所示。 图3-5 上电复位电路连接图方案二:外部复位电路按下开关时,电源通过电阻对外接电容进行充电,使RES端为高电平,复位按钮松开后,电容通过下拉电阻放电,逐渐使RET端恢复低电平。 图3-6 手动上电复位电路连接图考虑到电路对复位电路的要求不高,且尽量使电路简单,故采
24、用方案一:上电复位电路。3.2按键接口电路的设计单片机使用的键盘分为独立式和矩阵式两种。方案一:矩阵式键盘适用于按键数量较多的场合,它有行线和列线组成,按键位于行、列的交叉点上。行、列线分别连接到按键开关的两端,而有键按下时,行线电平状态将由与此行线相连的列线电平决定,列线电平如果为低,则行线电平为低;反之,则为高。这一点是识别矩阵键盘按键是否被按下的关键。矩阵式键盘各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。方案二:矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵。独立式键盘就是各按键相互独立,每个按键各接一根输入线,一根输入
25、线上的按键工作状态不会影响其他输入线上的工作状态。因次,通过检测输入线的电平状态可以很容易的判断哪个按键被按下了。独立式按键电路配置灵活,软件结构简单。但每个按键需占用一根输入口线,此种按键电路适用于按键较少或操作速度教高的场合独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的I/O口连接,连接方法就是每个按键独立一条口线,各按键之间状态不会影响且接口简单。考虑到这个控制器中,设定的按键不多,为了使系统简单明了,在这里选择独立式按键。如图所示,SET键用来设置倒计时时间,SELECT用来选择“+”“”。图3-7 独立的按键电路连接图3.3 指示电路的设计指示很简单,采用LED(发光二
26、极管),考虑到单片机端口常态是高电平,设计采用低电平点亮发光管,如图3-8所示。I/O口的灌电流最大30mA左右,假设每根线20mA,C系列都低于20mA,假设单个发光管耐压2V(不同的管子不同,相差不多),系统采用5V供电,则限流电阻R的阻值为:实际选择200,实验发现发光二极管显示正常。通过程序来控制指示灯红、绿、黄的通断来模拟交通灯的指示作用。其电路图如图3-8所示。图3-8 指示电路部分电路图3.4 显示电路的设计数码管显示电路有多种方式,按照数据传输方式有两种:并行形式和串行形式,下面针对两种方式进行说明。本设计采用单片机设计,由于口线不足,而需要多位数码管显示,因此,为了更大的利用
27、资源,节省地址线,本设计采用74LS164串行形式来控制数码管显示。74LS164是8位移位寄存器,采用串行输入,并行输出, 当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁 止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。其真值表如图3-9所示,与单片机接口电路硬件连接图如图3-10所示。图3-9 74LS164真值表图3-10 显示部分连接图3.5 电源电路设计本设计对电源部分的要
28、求不是太高,因此对于电源的设计就是普通的5V电源,利用了典型的三端稳压管W7805,来得到5V的直流稳压电源用于给整个系统几各个芯片供电。其电路原理图形如图3-11下:图3-11 电源电路图第4章 软件设计4.1 软件流程图按交通灯的功能,系统程序必须具备按键扫描处理、实时数码管显示等任务。4.1.1 主程序的设计系统在上电复位后,先对档位寄存器赋默认值,并进行清除超时标志位,设置定时器及中断系统的工作方式等初始化工作。图4-1 主程序流程图4.1.2 按键扫描处理子程序的设计按键扫描处理子程序负责设置东西、南北走向的等待时间按,若有键按下,则作出相应处理。图4-2所示为按键扫描子程序流程图。
29、图4-2 按键扫描子程序流程图4.2 Proteus professional软件仿真Proteus7.2是目前最好的模拟单片机外围器件的工具,可以仿真51 系列、AVR,PIC 等常用的MCU 及其外围电路。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。本次设计通过Proteus7.2对交通灯模拟系统进行仿真,进行软件和模拟硬件的结合调试,得到了比较比较理想的效果,如图4-3模拟仿真的结果.图4-3 Proteus7.2模拟仿
30、真图结论与致谢经历一个星期的时间,本次课程设计设计:交通灯控制模拟系统的设计已经圆满完成。通过这次的毕业设计,我基本上掌握了一般的设计步骤:首先明确设计任务,通过讨论思考及必要的简单实验和实际考查完成对总体设计指标的系统了解;进而要对整个设计系统经过深入的方案论证、计算以及联系实际的工作环境等一系列条件,确立自己的设计方案,然后就是对自己确立的方案进行硬件实现,包括所用元器件选型,以及控制部分整个单片机系统的硬件选型与设计,Protel绘制出整体的硬件原理图等。接下来进行了软件部分的设计,经过流程图绘制,搞清楚各个部分实现的功能,进而对整个系统进行软件编程实现,并通过Proteus profe
31、ssional软件仿真,到此基本上这个系统设计已经完成大半,最后就是要经过实践的检验,确定我们的设计具有的运用价值。本设计系统是基于单片机的模拟交通灯控制系统,具有一定的实际意义。通过本次设计很好的完成了以单片机为核心,通过LED数码管显示和LED灯完成了十字路口的工作状态的模拟,并且通过按键有效的控制等待时间的长短的目的.其运行可靠,操作方便,适用性强,可以广泛应用于城市路口,具有较大的推广价值。由于时间比较紧张,其中不免出现一些不足的地方,但是,在短暂的时间内,从对题目的分析到方案的确定,再到软件的模拟,最后通过硬件的调试,都达到了预想的效果。最后,在本次课程设计过程以及这两年的学习中,王
32、冠凌老师给予了我极大的帮助与耐心的指导,在设计过程中不仅帮我解决了许多设计存在的问题,而且帮我弥补了许多知识漏洞,从而使得自己的课程设计能顺利完成。在此,对于王冠凌的帮助和指导表示最衷心的感谢。同时,我非常感谢电子协会的兄弟们!在我设计迷茫时,总能从他们身上看到一种坚韧的品质,鞭笞我上进!参考文献1XIA Xiaonan. The Control of the Temperature and Humidity of TemperatureBox Based on Single Chip MicrocomputerD.2005,215(24):117-1182韩志军等编著.单片机应用系统设计M.
33、北京:机械工业出版社,2005.13李广弟等编著.单片机基础M.北京:北京航空航天大学出版社,2001.74楼然苗,李光飞编著.单片机课程设计指导M.北京: 北京航空航天大学出版社,2007.75周慈航著.单片机应用程序设计技术M.北京:北京航空航天大学出版社, 2001.126严天峰编著.单片机应用系统设计与仿真调试M.北京:北京航空航天大学 出 版社,2005.87 R.L.Geiger,P.E.Allen,N.R.Strader.VLSI.DLSI Design Techniques for Analog And Digital Ciruits.McGraw-Hill Inc.19908
34、 N.R.Mallik.Electronic Ciruits-Analysis Simulation and DesignPrentice Hall,1995.9 何立民.单片机高级教程应用与设计.北京航空航天大学出版社附录A: 硬件部分连接总图附录B: 软件程序清单SECOND1EQU30H;东西路口计时寄存器SECOND2EQU31H;南北路口计时寄存器 DBUFEQU40H;显示码缓冲区1TEMPEQU44H;显示码缓冲区2KEY_SETBITP3.2;按键定义KEY_SET1BITP3.3;按键定义LED_G1BITP2.1;东西路口绿灯LED_Y1BITP2.2;东西路口黄灯LED_
35、R1BITP2.3;东西路口红灯LED_G2BITP2.4;南北路口绿灯LED_Y2BITP2.5;南北路口黄灯LED_R2BITP2.6;南北路口红灯ORG0000HLJMPSTARTORG0003HLJMPINT_INT0ORG0100HSTART:MOVTMOD,#01H;置T0为工作方式1MOVTH0,#3CH;置T0定时初值50msMOVTL0,#0B0HSETBEA;开总中断SETBEX0;外中断0允许CLRTF0SETBTR0;启动T0CLRAMOVP1,A;关闭不相关的LED;*LOOP:MOVR2,#20;置1s计数初值,50ms*20=1sMOVR3,#20;红灯亮20sM
36、OVSECOND1,#25;东西路口计时显示初值25sMOVSECOND2,#25;南北路口计时显示初值25sLCALLDISPLAYLCALLSTATE1;调用状态1WAIT1:JNBTF0,WAIT1;查询50ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50msMOVTL0,#0B0HDJNZR2,WAIT1;判断1s到否?未到继续状态1MOVR2,#20;置50ms计数初值 DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT1;状态1维持20s;*MOVR2,#5;置50ms计数初值5*4
37、=20MOVR3,#3;绿灯闪3sMOVR4,#4;闪烁间隔200msMOVSECOND1,#5;东西路口计时显示初值5sMOVSECOND2,#5;南北路口计时显示初值5sLCALLDISPLAYWAIT2:LCALLSTATE2;调用状态2JNBTF0,WAIT2;查询50ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值50msMOVTL0,#0B0HDJNZR4,WAIT2;判断200ms到否?未到继续状态2CPLLED_G1;东西绿灯闪MOVR4,#4;闪烁间隔200msDJNZR2,WAIT2;判1s到否?未到继续状态2MOVR2,#5;置50ms计数初值DECSECON
38、D1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT2;状态2维持3s;*MOVR2,#20;置50ms计数初值MOVR3,#2;黄灯闪2sMOVSECOND1,#2;东西路口计时显示初值2sMOVSECOND2,#2;南北路口计时显示初值2sLCALLDISPLAYWAIT3:LCALLSTATE3;调用状态3JNBTF0,WAIT3;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT3;判断1s到否?未到继续状态3MOVR2,#20;置100ms计数
39、初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT3;状态3维持2s;*MOVR2,#20;置50ms计数初值MOVR3,#20;红灯闪20sMOVSECOND1,#25;东西路口计时显示初值25sMOVSECOND2,#25;南北路口计时显示初值25sLCALLDISPLAYWAIT4:LCALLSTATE4;调用状态4JNBTF0,WAIT4;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT4;判断1s到否?未到继续状态4MO
40、VR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT4;状态4维持20s;*MOVR2,#5;置50ms计数初值MOVR4,#4;红灯闪20msMOVR3,#3;绿灯闪3sMOVSECOND1,#5;东西路口计时显示初值5sMOVSECOND2,#5;南北路口计时显示初值5sLCALLDISPLAYWAIT5:LCALLSTATE5;调用状态5JNBTF0,WAIT5;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJN
41、ZR4,WAIT5;判断200ms到否?未到继续状态5CPLLED_G2;南北绿灯闪MOVR4,#4;闪烁200msDJNZR2,WAIT5;判断1s到否?未到继续状态5MOVR2,#5;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT5;状态5维持3s;*MOVR2,#20;置50ms计数初值MOVR3,#2;红灯闪2sMOVSECOND1,#2;东西路口计时显示初值2sMOVSECOND2,#2;南北路口计时显示初值2sLCALLDISPLAYWAIT6:LCALLSTATE6;调用状
42、态6JNBTF0,WAIT6;查询100ms到否CLRTF0MOVTH0,#3CH;恢复T0定时初值100msMOVTL0,#0B0HDJNZR2,WAIT6;判断1s到否?未到继续状态6MOVR2,#20;置100ms计数初值DECSECOND1;东西路口显示时间减1sDECSECOND2;南北路口显示时间减1sLCALLDISPLAYDJNZR3,WAIT6;状态6维持2sLJMPLOOP;大循环;*;外中断处理程序,用来设置交通等待时间;*INT_INT0: PUSH ACC PUSH PSW CLR EALOOP1:MOVA,P3CJNEA,#0FFH,LP0;键盘去抖JMPLOOP1
43、LP0:ACALLDELAY1MOVA,P3CJNEA,#0FFH,LP1JMPLOOP1LP1:JNBP3.2,SSETJNBP3.3,SSET1JMPINT_RETI;设置东西走向的等待时间SSET:ACALLDELAY1JNBP3.2,ETJNBP3.3,SET1JMPSSETET:INCSECOND1MOVA,SECOND1CJNEA,#100,SSETMOVSECOND1,#0JMPSSETSET1:JMPINT_RETI;设置南北走向的等待时间SSET1:ACALLDELAY1JNBP3.2,INT_RETIJNBP3.3,ETT1JMPSSET1ETT1:INCSECOND2MOVA,SECOND1CJNEA,#100,SSET1MOVSECOND2,#0JMPSSET1INT_RETI:LCALLDI