当前位置:文档之家› 红绿灯控制文档

红绿灯控制文档

红绿灯控制文档
红绿灯控制文档

红绿灯控制系统的设计

目录

引言 (1)

一、系统分析 (1)

(一)十字路口基本情况分析 (1)

(二)交通灯状态转换分析 (2)

(三)硬件功能可行性分析 (3)

二、系统设计 (6)

(一)硬件设计 (7)

1.电路需求分析 (7)

2.电路连接设计 (7)

(二)软件设计 (8)

1.程序总体设计 (8)

2.程序流程设计 (10)

3.重要代码分析 (12)

三、系统实现 (15)

(一)软件开发和运行环境 (15)

(二)系统硬件环境 (15)

(三)系统运行步骤 (15)

(四)系统测试结果 (16)

四、系统开发总结 (16)

参考文献 (18)

附录 (19)

(一)重要源代码 (19)

致谢 (21)

引言

随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。1914年,电气启动的红绿灯出现在美国,这种红绿灯由红、绿、黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。利用红外线红绿灯,当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路,红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

黄色信号灯的发明者是我国的胡汝鼎。他在美国通用电器公司任职的时候,想到在红、绿灯中间再加上一个黄色信号灯,作为红灯和绿灯之间的缓冲,提醒人们注意安全。于是红、黄、绿三色信号灯即成为了一个完整的指挥信号家族。

城市路口交通信号控制系统大体上分为三种类型:定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。具体采用哪种类型,应根据其应用场合及特点加以确定。其中,第一种类型以其成本低、设计简单、安装及维护方便等特点得到了广泛应用。本文讨论的交通灯控制系统就属于该种类型。

城市机动车量的不断增加使许多大中城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,如何改进交通灯的设计、有效的疏导交通,使其更好的适应城市交通的发展也成为了一个重要课题。

本论文正是在以上背景下探讨和设计一个交通灯控制系统。

一、系统分析

(一)十字路口基本情况分析

图1-1是一个典型的十字路口示意图。分别用1、2、3、4表明东、南、西和北四个流向的主车道,每个主车道置有一个交通灯,用于指示对面车辆的左转、右转和直行。比如,1号路口的左转灯亮时,即表示对面3号路口的车可以向左转行驶。

每个路口的情况都不尽相同,要根据具体的情况来设置各个方向的放行时间。假

设,1、3方向是主干道,车流量比较大,可以将1、3路口的直行灯亮的时间设得比较长;而2、4路口是一般道路,那么2、4路口直行灯亮的时间可以设得短一点。左转灯和右转灯放行的时间一般应比直行灯放行的时间要短。通常情况下,主干道直行时间应在40-60秒左右;左转和右转通行时间应在15-30秒之间。每个路口应设置时间指示灯,用来显示剩余的通行时间,并在时间快用尽时,交通灯闪烁一定的次数,用来提醒行人。完成一个循环应在2分钟以内,以免引起车辆等待过长的时间。

图1-1 十字路口示意图

(二)交通灯状态转换分析

合理的设置每个路口、每个方向的交通灯的通行时间,对车辆能否及时疏散,有着决定性的作用。

在本系统中,路口共设有四个状态,分别用来表示不同时间路口的通行状况。

状态1的时候,2、4两个路口的直行灯亮,东西方向行驶的车辆通行45秒。2、4方向步行的行人,也可以同时通过路口。当通行时间快结束的时候,LED灯会闪烁,提醒车辆和行人通行时间快到了。

状态2的时候,1、3两个路口左转灯亮,2、4两个路口右转灯亮15秒。在本状态的时候,四个路口的车辆可以同时进行疏散,并且不发生冲突,大大地加快了车辆通行的速度。这样的设置,在南京市新街口的十字路口有类似这样的设置。通过在十字路口

中间设置相应的行车线,行人也可以和车辆同时地经过路口。当通行时间快结束的时候,LED灯会闪烁,提示通行时间即将结束。

类似于状态2,状态3的时候,1、3两个路口右转灯亮,2、4两个路口左转灯亮15秒。通过在十字路口中间设置相应的行车线,行人也可以和车辆同时地经过路口。当通行时间快结束的时候,LED灯会闪烁,提醒车辆和行人注意安全。

类似于状态1,状态4 的时候,1、3两个路口的直行灯亮,东西方向行驶的车辆通行45秒。1、3方向步行的行人,也可以同时通过路口。完成四个状态的一次循环需要120秒,完成了在适当的时间限度内,有效的疏散较大的通行量的目的。

整个状态转换的过程见表1-1。

表1-1 路口四个状态和相互转换过程

(三)硬件功能可行性分析

1.8253A定时/计数器芯片

8253A定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1和计数器2。每个计数器计数频率为0-2MHZ。

其内部数据总线缓冲器为双向三态,故可直接连在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值。读写控制逻辑,当选中该芯片时,根据读写命令和送来的地址信息控制整个芯片工作。其工作方式通过控制字确定。控制字寄存器用于接收数据总线缓冲器的信息。当写入控制字时,控制计数器的工作方式;当写入数据时则装入计数初值。控制寄存器为8位,只能写入不能读出。8253A内部结构见图1-2。

当8253A执行计数功能时,计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数。每来一个脉冲减1,当计数值减为0时,由OUT 端输出一个标志信号。

当8253A执行定时功能时,计数器装入初值后,当GATE为高电平时,由CLK脉冲触

发开始自动计数。当计数到零时,发计数结束定时信号。

8253A可以工作在方式0到方式5,常用的有方式2频率发生器方式和方式3方波发生器方式。在方式2时,当初值装入后,OUT变为高;计数结束,OUT变为低。该方式下如果计数未结束,但GATE为低时,立即停止计数,将OUT变为高;当GATE再变高时,便启动一次新的计数周期。在方式3时,当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。在本系统中,8253A工作于方式3方波发生器方式。

图1-2 8253A内部结构图

2.8259A中断控制器芯片

8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源和提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。

8259A的内部结构见图1-3。它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路、级联缓冲器和比较器组成。

图1-3 8259A的内部结构

对8259A编程和初始化的时候,首先要写初始化命令字ICW1-ICW4。

写ICW1以确定中断请求信号类型,清除中断屏蔽寄存器,进行中断优先级排队和确定系统是用单片还是多片。

写ICW2用来定义中断向量的高五位类型码。

ICW3可以定义主片8259A中断请求线上IR0-IR7有无级联的8259A从片。

写ICW4用来定义8259A工作时用8085模式还是8088模式,以及中断服务寄存器复位方式等。

初始化命令字写完以后,要写8259A的控制命令字,它包括OCW1-OCW3。

写OCW1可以设置或清除对中断源的屏蔽。

写OCW2设置优先级是否进行循环、循环的方式和中断结束的方式。8259A复位时自动设置IR0优先权最高,IR7优先权最低。

写OCW3用来设置查询方式和特殊屏蔽方式,并可以读取8259A中断寄存器的当前状态。

在本系统中,使用8259A的循环等待中断工作方式。

3.8255A可编程并行接口芯片

8255A是一种可编程的芯片,它采用双列直插封装,用+5V电源供电。内部有3个8位的I/0端口:A口、B口和C口。这三个端口也可以分为各有12位的两组:A组和B 组。A组包含A口8位和C口的高四位,B组包含B口8位和C口的低四位;A组控制和

B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内部寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。8255A的内部逻辑结构见图1-4。

图1-4 8255A的内部结构

8255A有三种工作方式:方式0、方式1和方式2。它通过对控制寄存器写入不同的方式选择控制字来决定其三种不同的工作方式。

方式0是基本输入输出方式。该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC4-PC7)和低4位(PC0-PC3)两组,也有控制字决定其输入或输出。需要注意的是,该方式下,只能将C口其中一组的四位全部置为输入或输出。

方式1选通输入输出方式,又叫单向输入输出方式。它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。数据口的输入输出都是锁存的,与方式0不同,由控制字来决定它是作为输入还是输出。C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

方式2为双向输入输出方式。本方式只有A组可以使用。此时A口为输入输出双向口,C口中的5位(PC3-PC7)作为A口的控制位。

在本系统中,8255A的三个端口均工作于方式0,全部为输出口。

二、系统设计

(一)硬件设计

1.电路需求分析

本系统要实现的功能是模拟十字路口红绿灯的工作状况。按照预先设定并优化的交通灯规则,控制LED指示灯的亮灭,同时在实验箱的数码管显示屏上显示剩余的时间。当时间递减到0的时候,改变LED灯的状态,并刷新显示屏显示的时间。

为了实现以上功能需求,本系统需要12个LED指示灯,来分别代表四个路口的直行、左转和右转灯;两个双位的数码管显示屏,用来显示1、3路口和2、4路口剩余的时间。

为了实时地更新数码管显示屏上的数字,需要使用8255A可编程芯片来即时地改变显示屏每个笔划的电平高低,从而准确地将需要显示的数字显示在数码管显示屏上。

由于交通灯需要按秒进行计数,所以需要一个均匀地时钟发生器。8253A芯片是个功能丰富、使用简单的定时/计数器。它可以根据需要设置不同的显示初值,从而产生所需频率的时钟脉冲,为系统提供计时和驱动其他事件的发生。8259A中断控制器芯片可以在收到8253A发出的时钟脉冲时,产生定时的中断,在中断服务程序中,更新显示缓冲区,并调用8255A芯片来执行相关程序,从而更新LED灯和数码管显示屏。

本系统使用集成的电路和实验环境,以方便进行电路的连接和测试,同时减少由于电路的复杂性而产生的错误。

2.电路连接设计

本系统所使用到的硬件包括8253A芯片、8259A芯片、8255A芯片、LED指示灯和数码管显示屏。

在电路连接的时候,将8255A芯片的PB4-PB7连接至四个路口的直行灯, PC0-PC3连接至四个路口的右转灯,PC4-PC7连接至四个路口的左转灯。通过改变8255A的PB口和PC口的值来实时地控制每个LED灯的亮灭,从而改变十字路口的交通状态。将8255A 的CS插孔CS-8255接译码输出Y7插孔。

将8253A的T2CLK插孔连接至1MHZ的分频输出插孔。分频输出插孔所输出的频率是将系统的主频分解为一定的频率,以供其他硬件或者软件使用。8253A从分频插孔得到1MHZ的固定频率,再根据芯片内部设定的计数初值,从而产生需要频率的时钟脉冲,由T2OUT口输出,供其他芯片使用。

将8253A的T2OUT插孔连接至8259A的IRQ3插孔上。8259A的IRQ3中断口每隔固定的时间便会收到8253A发送过来的时钟脉冲,作为中断源来执行中断服务程序。在中断服务程序中,完成更新数码管显示值和改变交通灯状态的功能。

硬件的连接见图2-1和图2-2。

(二)软件设计

1.程序总体设计

本系统采用“自上而下总体规划、自下而上应用开发”的策略进行总体设计和开发。先根据其功能需要,设定需要的功能模块,确定需要编写的子程序,从而使程序结构清晰,便于阅读和调试,加快了系统完成的速度。结构化的程序设计方法很适合用来开发汇编语言程序,因为汇编语言的特性决定了其无法使用面向对象的程序开发方法;使用瀑布程序开发模型,从开始的时候把系统的需求分析透彻,对系统的功能和各个模块进

行清晰的规划,从而缩短系统开发所用的时间。

为了完成系统的功能,系统的程序部分应包含以下几个模块(见图2-3)。各个模块有的为一个子程序,有的为几个子程序的集合,有的为一段代码,但是其功能却是相互独立和便于调用的。

程序定义模块。它用来定义系统的代码段、数据段、堆栈段、所使用到的常量和变量、8253A、8255A和8259A的各控制口和数据口地址,以及系统的储存地址的偏移量。汇编语言所编写的程序开头有固定的格式,为下面程序的运行建立必须的条件。

芯片初始化模块用来初始化各个芯片,分为以下几个步骤:写8253A芯片的控制字,选用方波发生器方式,并设定其使用通道2进行工作;定义8255A的工作方式,使A、B、C三个端口均工作于方式0,且为输出口;写8259A的ICW1、ICW2、ICW3和ICW4,设定其工作方式为循环等待中断方式。

地址赋初值模块(FORMAT)用来定义数字对应的显示字符,便于转换模块将时间缓冲区中的数值转换为便于数码管显示的字符;定义“ERR“显示区,供INT7中断服务程序调用;定义初始显示缓冲区中的字符,用于系统初始运行的时候,直接从此取值进行显示;定义显示缓冲区,用于存放系统运行时剩余时间所对应的显示字符;定义交通灯的初始状态、初始时间缓冲区的值,便于系统开始运行时从此数值开始递减,LED灯也按照这里定义的状态值进行点亮。

等待模块(WATING)在中断请求没有到来的时候,根据交通灯所处的状态,判断应调用哪个交通灯状态程序,从而点亮相应的LED灯;有中断请求时,调用相应的中断服务程序。

交通灯状态模块存放着四个交通灯状态子程序ZT1、ZT2、ZT3、ZT4,供等待模块调用。当某个子程序被调用时,便点亮相应的LED灯。

中断处理程序分为两个子程序。其中INT7是在中断源电平信号不符合规定要求时,自动转到7号中断,在数码管显示屏上显示“Err”;INT3是主要的中断服务程序,用来对8253A发来的时钟脉冲进行计数,到达一定次数后,调用NEWTIME、CONVERS和LEDDISP 模块。

更新时间缓冲区模块(NEWTIME)每次被调用的时候,将时间缓冲区中的时间减1,所以数码管显示屏上的数字才能够不断的减少。

更新显示缓冲区模块(CONVERS),用来将时间缓冲区中值转换为适合在数码管上显示的字符,并存入显示缓冲区。

显示模块(LEDDISP)使用8255A将显示缓冲区的字符逐位显示在数码管显示屏上,完成显示数值的更新。

图2-3 系统模块图

2.程序流程设计

程序运行的流程图见图2-4。

开始运行的时候,调用FORMAT初始化程序,给初始显示区和电平错误显示区赋初值,这样系统会在初始显示和电平有错误的时候,显示相应的字符;定义数值对应的显示字符,便于转换程序取到时间数值对应的字符;定义显示缓冲区的地址,便于系统运行的时候,把时间转换成的显示字符存到相应的单元中;定义时间缓冲区初值,系统运行后时间将从该处的值开始减小;定义系统初始状态,便于运行后LED灯工作于相应的状态。

接着对8253A、8255A和8259A进行初始化。定义8253A使用通道2,工作于方式3,其计数初值为3C50,每隔20ms向8259A发出一个时钟脉冲;8255A的A、B、C三个端口均工作于输出方式;8259A工作于循环等待中断方式。

进入等待程序WATING后,首先打开中断,等待8259A发出的中断请求。当无中断的时候,判断系统所处的状态,并调用相应的交通灯状态子程序,使LED灯相应的点亮。

图2-4 程序流程图

当有中断的时候,则转到相应的中断服务程序,本系统主要为INT3程序。INT3程序首先关闭中断,判断中断计数器DATA6单元所存储的中断次数是否达到20次,如果没有则直接调用INTR2程序,打开中断,并中断返回。如果达到20次,则将中断计数器清零;再调用显示程序LEDDISP把当前时间显示出来;接着调用时间缓冲区更新程序NEWTIME将剩余时间减1;进入状态判断程序P1-P4,当相应状态的剩余时间未减到0的时候,调用CONV程序,更新显示缓冲区并中断返回,否则改变状态,并将新状态将持续的时间写入时间缓冲区,再调用CONV程序,更新显示缓冲区并中断返回等待程序,执行相应的交通灯状态子程序。

3.重要代码分析

(1)中断服务程序INT3是本系统的程序最核心的子程序。它用来计算收到8353A 发来的中断次数,当次数达到20的时候,就自动将次数清零、调用LEDDISP显示程序、NEWTIME时间缓冲区更新程序、状态修改程序P1-P4和中断返回程序,完成数码显示屏上时间的更新和LED灯状态的改变。

以下是该程序的代码分析,并注有详细的功能说明。

INT3: ;定义函数名称

CLI ;处理中断时先关中断

PUSH AX ;保存堆栈

PUSH DX

MOV AL,DS:[DATA6] ;DATA6用于保存收到的中断次数,取当前中断次数 INC AL ;将中断次数加1

MOV DS:[DATA6],AL ;将加1后的中断次数写回DATA6存储单元

CMP AL,20H ;将中断次数与20进行比较

JAE NEXT ;大于等于20时,清零,并转向状态判断程序,中断返回

JMP INTRE2 ;小于时直接中断返回

NEXT:

MOV BYTE PTR DS:[DATA6],00H ;将DATA6清零

CALL LEDDISP ;调用显示程序,将显示缓冲区中的数字显示出来 CALL NEWTIME ;调用时间缓冲区更新程序,将时间缓冲区DATA8,DATA9减1 P1: CMP BYTE PTR DS:[STATUS],01H ;判断是否是状态一

JNZ P2 ;如果不是状态一,则转P2

CMP BYTE PTR DS:[DATA8],00H ;如果是状态一,看时间否已经减到0 JNE CONV ;如果未减到0,则更新显示缓冲区,并中断返回 MOV BYTE PTR DS:[STATUS],02H ;如果减到0,则设置系统为状态二 MOV BYTE PTR DS:[DATA9],15H ;设定状态二时,路口的显示初始值 MOV BYTE PTR DS:[DATA8],15H

JMP CONV

;P2-P4类似于P1,在此略去。

CONV: CALL CONVERS ;把时间缓冲区中的时间转换到显示缓冲区中

INTRE2: MOV AL,20H ;写8259控制口 ,并中断返回

MOV DX,INTPORT1

OUT DX,AL

POP DX ;弹出堆栈

POP AX

STI ;开中断

IRET ;中断返回

(2)交通灯状态程序也是本系统中一个非常重要的子程序。它通过改变8255A的PB和PC口的值来控制特定LED灯的亮灭。下面以状态1所对应的子程序为例,来分析一下如何用8255A来控制交通灯的亮灭。

ZT1: PUSH AX

PUSH DX

MOV AL,01010000B ;设置2,4路口直行灯亮

MOV DX,BPort ;BPort为8255A的PB口的地址

OUT DX,AL ;更改PB口的值,从而改变LED灯显示的状态

MOV AL,00H ;设置四个路口左转灯,右转灯全部关闭

MOV DX,CPort ;CPort为8255A的PC口的地址

OUT DX,AL ;更改PC口的值,从而改变LED灯显示的状态

POP DX

POP AX

RET

ZT1F: ;状态一闪烁程序: 2、4路口直行灯闪烁

PUSH AX

PUSH DX

MOV CX,12H ;定义闪烁12次

ZT1Flash:MOV AL,00H ;灯灭

MOV DX,BPort

OUT DX,AL

CALL DELAY2 ;短延时

MOV DX,BPort

MOV AL,01010000B ;灯亮

OUT DX,AL

CALL DELAY2 ;短延时

LOOP ZT1Flash ;循环

POP DX

POP AX

JMP WATING ;跳转到等待程序

(3)显示子程序

LEDDISP:

PUSH AX ;将当前寄存器保存到堆栈中

PUSH BX

PUSH CX

PUSH DX

MOV SI,DATA4 ;将显示缓冲区的首地址0520h存入SI

MOV AL,90H ;初始显示时 DATA3 EQU 0518H

MOV DX,CONTPORT ;写8255控制口

OUT DX,AL

MOV BYTE PTR DS:[DATA5],00H ;DATA5单元中保存当前显示到第几位LED1: CMP BYTE PTR DS:[DATA5],05H ;看是否显示到第5位

JA LED2 ;如果显示完5位后,返回

MOV BL,DS:[DATA5]

MOV BH,0H

MOV AL,CS:[BX+SI] ;将当前位的显示缓冲区的地址写入AL

MOV DX,DATAPORT ;写8255A数据口,以此改变显示值

OUT DX,AL

ADD BYTE PTR DS:[DATA5],01H ;显示下一位

JNZ LED1

LED2: POP DX ;弹出堆栈并返回

POP CX

POP BX

POP AX

RET

另外,时间缓冲区更新子程序CONVERS和时间缓冲区更新子程序NEWTIME在本系统中也有很重要的作用。它们的具体代码见附录。

三、系统实现

(一)软件开发与运行环境

本系统的代码使用8086汇编语言编写,所以代码编写环境可以使用任何文本编辑器。如系统自带的记事本、DOS下的编辑工具EDIT和文本编辑工具UltraEdit等。

本系统使用了DVCC-8086JHN实验箱附带的DV88联机软件。它可以读取其他编辑软件生成的MASM格式的汇编语言文件(*.ASM),也可以作为汇编代码的编辑、测试、运行环境。在显示代码的时候,可以把常用的汇编指令显示为蓝色,数值显示为红色,注释显示为绿色,从而使论文清晰易读,并容易发现代码中的错误。

DV88联机软件同样可以作为系统的运行环境。系统运行的时候需要将ASM源程序编译产生的OBJ文件传送到实验箱,由实验箱上的处理器和各个芯片负责执行。

(二)系统硬件环境

交通灯控制系统采用的DVCC-8086JHN通用微机原理及接口实验系统,集成了8253A 计数/定时器芯片、8255A可编程并行接口芯片和8259A中断控制器芯片,并把大部分的引脚进行了封装,方便直接进行使用;并设有12个LED显示灯;系统分频器可以产生特定频率的时钟脉冲;固定的导线接口,方便使用导线把各芯片进行连接;并设有键盘,可以随时控制程序的运行,方便进行调试。

实验箱使用串行口连接线与PC机的串口相连,然后使用DV88联机软件与实验箱进行连接并传送运行的程序。

(三)系统运行步骤

系统的代码编写完毕的时候,便可以进行程序的联机调试了。

将实验箱的电源线连接好,使用串口通信线将实验箱上的串口与PC机上的串口相连。将各个芯片和LED灯按照硬件连接设计图上的图示进行连接。

打开实验箱的电源,数码管显示屏上显示DVCC—86,提示实验箱初始化成功。

在PC机上打开DV88联机软件,调用编辑好的程序代码。首先进行编译,系统会自动调用MASM程序对代码进行编译。若没有提示错误,便可以点击连接按钮,调用LINK 程序把编译生成的OBJ文件进行连接,生成EXE文件。再点进调试按钮,把生成的可执行文件传送到实验箱,进行调试状态,此时屏幕会显示实验箱各个寄存器的值。最后点击连续运行按钮,实验箱上的数码显示管和LED灯便会按照设计的要求进行工作。

在运行的过程中可以随时按实验箱上的RESET键,中断程序的执行,以便进行代码的修改或者结束系统的运行。

(四)系统测试结果

按照表1-1中交通灯四个状态所对应的秒数,在程序中为各个状态子程序设定相应的时间初值。测试运行的结果如下:

开始运行时,系统在状态一下工作,两个显示屏显示剩余时间为45秒,并不断递减,同时LED灯的2、4路口的直行灯点亮;当状态一的剩余时间减至零的时候,系统自动切换到状态二,显示屏显示剩余时间变为15秒并递减,同时1、3路口的左转灯和2、4路口的右转灯点亮;状态二结束时,系统切换到状态三,显示屏的剩余时间变更为15秒,1、3路口的右转灯和2、4路口的左转灯点亮;状态三结束时,进入状态四,显示屏剩余时间变为45秒,同时1、3路口的直行灯点亮。状态四结束时,自动切换到状态一循环执行。

四、系统开发总结

本文分析了设计高效交通灯系统的必要性,并从硬件和软件两方面分析其实现的可行性。在深入分析功能需求的前提下,本文详细地介绍了交通灯控制系统硬件的选择和连接,以及软件各模块的流程和重要代码的分析。最后介绍了系统的开发环境以及测试运行的具体步骤和结果。本系统在DVCC-86JHN实验平台上,利用汇编语言对8253A、8255A 和8259A进行编程,实现在数码显示屏上的秒数变化时,动态地改变LED灯的点亮状态,从而模拟交通红绿灯的工作过程。

当然,这次系统开发由于硬件条件的限制以及时间的限制等原因,系统还存在很多

需要完善的地方。如系统设置的交通灯状态数量较少也较为简单,程序代码的编写不够简练等。

经过近三个月的努力,我在指导老师的帮助和指导下完成了红绿灯控制系统的开发任务。在做毕业设计之前我对硬件芯片编程的了解并不是很深刻,实际的开发经验比较少。在整个开发过程中,遇到了很多程序编写和硬件设计上的问题,但经过老师的指导和帮助,并查看相应的资料,最终达到了设计目的。

在整个毕业设计的过程中,我学会了三种常用的可编程芯片的编程方法,对硬件编程有了初步的理解,对论文的写作也有了良好的认识。经过毕业设计的三个月,我学到了很多,比如如何把找工作和毕业设计的时间安排好,两者都是大四很重要的内容;如何在遇到问题的时候进行原因的分析和解决;怎么样去学自己以前从未接触过的东西等。

参考文献:

[1]郑学坚:《微型计算机原理及应用实验指导(第二版)》,清华大学出版社,2001年。

[2]宋杰:《微机原理与接口技术课程设计》,机械工业出版社,2005年。

[3]马平:《微机原理及应用》,中国电力出版社,2003年。

[4]崔应留:《微机原理与接口技术实验指导书》,南京审计学院自编教材,2006年。

[5]万福君:《单片微机原理系统设计与应用》,中国科学技术大学出版社,2001年。

[6]喻萍:《单片机原理与接口技术》,化学工业出版社,2006年。

[7]刘兵:《微型计算机通信与接口技术》,中国水利水电出版社,2005年。

[8]王让定:《汇编语言与接口技术》,清华大学出版社,2006年。

[9]郑毛祥:《单片机应用基础》,人民邮电出版社,2006年。

[10]范立南:《单片机原理及应用教程》,北京大学出版社,2006年。

[11]杨汉祥:《利用单片机改进交通灯控制系统》,北京电子科技学院学报,第13 卷第4期。

[12]蔡伟智:《LED 道路交通灯的研制》,液晶与显示,第20 卷第5 期。

[13]吴凌云:《基于PLC的十字路口交通灯模拟控制器的设计与实现》,PLC&FA,2005年10月刊。

[14]Robert.H.Dependahl:《Microcomputer Principles and Applications》. Willian Brown,1988.

附录

(一)重要源代码

1.CONVERS子程序,用于将时间缓冲区中的数值转换到显示缓冲区。CONVERS:

MOV AL,BYTE PTR DS:[DATA9]

CALL CONVERS2

ADD WORD PTR DS:[DATA10],03H

MOV AL,BYTE PTR DS:[DATA8]

CALL CONVERS2

MOV WORD PTR DS:[DATA10],DATA4

RET

CONVERS2:

PUSH AX

CALL CONVERS1

MOV BX,WORD PTR DS:[DATA10]

MOV DS:[BX],AL

ADD WORD PTR DS:[DATA10],01H

POP AX

PUSH CX

MOV CL,4H

SHR AL,CL

POP CX

CALL CONVERS1

MOV BX,WORD PTR DS:[DATA10]

MOV DS:[BX],AL

RET

CONVERS1:

MOV BH,0H

AND AL,0FH

MOV BL,AL

MOV AL,CS:[BX+DATA2]

RET

2.NEWTIME子程序,用于将时间缓冲区中的数值减1。

NEWTIME:

MOV AL,BYTE PTR DS:[DATA9]

SUB AL,01D

DAS

MOV BYTE PTR DS:[DATA9],AL

MOV AL,BYTE PTR DS:[DATA8]

SUB AL,01D

DAS

十字路口红绿灯控制系统讲解

课 程 设 计 2015 年 7 月 30 日 设计题目 学 号 专业班级 学生姓名指导教师 十字路口自动红绿灯指挥系统

目录 一、主要指标及要求 (1) 二、方案选择 (1) 三、工作原理分析 (1) 四、单元模块设计及分析 (2) 4.1时钟信号脉冲发生器设计 (2) 4.2定时器设计 (4) 4.3 延时电路设计 (5) 4.4状态转换电路设计 (6) 4.5置数组合逻辑设计 (7) 五、总电路图 (9) 六、设计心得 (9) 七、参考文献 (10)

十字路口自动红绿灯指挥系统 班级:指导老师: 学生: 学号: 一、主要指标及要求 1.自动完成绿-黄-红-绿-……工作循环; 2.每种信号灯亮的时间不等,如:绿灯亮20秒-黄灯亮5秒-红灯亮15秒,如此循环; 3.用倒计时的方法,数字显示当前信号的剩余时间,提醒行人和司机; 4.(*) 信号灯的时间分别可调,以适应不同路口,不同路段交通流量的需求。 二、方案选择 三、工作原理分析 本电路分为五个模块,即时钟信号脉冲发生器、定时器、延时电路、状态转换电路、置数组合逻辑电路。其中由555定时器组成的时钟信号脉冲发生器为由两片74LS192计数器组成的定时器电路提供1Hz的脉冲信号,使计时器能够正常计数。由三片双四选一数据选择器组成的置数组合逻辑电路分别为计数器置

19s、4s、14s和0s等不同的数。当计数归零时,计数器的溢出信号使双D触发器的状态发生跳转,同时控制着绿黄红灯的亮灭,使得绿黄红灯亮时,定时器分别置19s、4s、14s。延时电路起到延时作用,当计数器计数归零时,溢出信号通过延时电路先使触发器状态发生翻转,再加载LD信号,使计数器置一个新数。 四、单元模块设计及分析 4.1时钟信号脉冲发生器 时钟信号脉冲发生器选用555定时器主要用来产生秒脉冲信号。脉冲信号的频率可调,所以可以采用555组成多谐振荡器,其输出脉冲作为下一级的时钟信号。555定时器是一种模拟和数字功能相结合的中规模集成器件。555定时器的电源电压范围宽,可在5~16V工作,最大负载电流可达200mA。555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。 555定时器构成多谐振荡器,组成信号产生电路接通电源后,VCC通过电阻R1、R2给电容C充电,充电时间常数为(R1+R2),电容上的电压vC按指数规律上升,当上升到VREF1=2VCC/3时,比较器C1输出高电平,C2输出低电平,RS=10,触发器被复位,放电管T28导通,此时v0输出低电平,电容C开始通过R2放电,放电时间常数约为R2C,vC下降,当下降到VREF2=VCC/3时,比较器C1输出低电平,C2输出高电平,RS=01,触发器被置位,放电管T28截止,v0输出高电平,电容C又开始充电,当vC上升到时VREF1=2VCC/3,触发器又开始翻转。如此周而复始,输出矩形脉冲。其电路原理图如下:

交通灯控制模拟程序

交通灯控制模拟程序设计 ;*************定义数据段*********************************************** data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ;数据保存区 yellow db ? ;黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ;************************主程序段********************************************** data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ;初始化标题 q0: call mode1 ;模式选择自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间

单片机控制红绿灯系统

关键词:AT89C51;7448,LED 2方案论证 2.1设计任务 设计基于单片机的智能交通红绿灯控制系统,要求能通过按键或遥控器设置系统参数,系统运行时,“倒计时等信息”能通过数码管或点阵发光管显示,设计时应考虑交通红绿灯控制的易操作性及智能性。以单片机的最小系统为基础设计硬件,用汇编语言、或C语言设计软件。通过本设计可以培养学生分析问题和解决问题的能力,掌握Mcs51单片机的硬件与软件设计方法,从而将学到的理论知识应用于实践中,为将来走向社会奠定良好的基础。 东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行,黄灯亮时车辆及行人小心通过。红灯的设计时间为45秒,绿灯为40秒,黄灯为5秒。 2.2 方案介绍 方案1设计思想: 采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状 态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计 数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输 入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选 择和主干道的置数选择。 方案2 设计思想: 由两个传感器监视南北方向即A道与东西方向即B道的车辆来往情况,设开关K=1 为有车通过,K=0为没有车通过。则有以下四种情况: Ka=1时:Kb=0,表示A有车B没有车,则仅通行B道: Kb=1,表示A有车B有车,则优先通行A道; Ka=0时:Kb=0表示A没有车B也没有车,同样优先通行A道; Kb=1表示A没有车B有车,则仅通行B道。 方案比较: 方案1用了模块设计,而方案2采用逻辑设计,相比之下1有较强的可读性和较强 的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供

十字路口交通灯控制设计

网络教育学院 《可编程控制器》大作业 题目:十字路口交通灯控制设计 学习中心:辽宁彰武电大学习中心 层次:高中起点专科 专业:电力系统自动化技术 年级: 2015 年秋季 学号: 151524228206 学生姓名:陈润泽

题目五:十字路口交通灯控制设计 起动后,南北红灯亮并维持30s。在南北红灯亮的同时,东西绿灯也亮,东西绿灯亮25s后闪亮,3s后熄灭,东西黄灯亮,黄灯亮2s后,东西红灯亮,与此同时,南北红灯灭,南北绿灯亮。南北绿灯亮25s后闪亮,3s后熄灭,南北黄灯亮,黄灯亮2s后,南北红灯亮,东西红灯灭,东西绿灯亮。依次循环。 十字路口交通灯控制示意图及时序图如下图所示。 设计要求:(1)首先对可编程序控制器(PLC)的产生与发展、主要性 能指标、分类、特点、功能与应用领域等进行简要介绍; (2)设计选用西门子S7-200 系列PLC,对其I/O口进行分配, 并使用STEP7-MicroWIN编程软件设计程序梯形图(梯形图 截图后放到作业中); (3)总结:需要说明的问题以及设计的心得体会。

1 设计背景 1.1 背景概述 本文对十字路口交通信号灯控制系统,运用可编程逻辑器件PLC做了软件与硬件的设计,能基本达到控制要求。系统仅实现了小型PLC系统的一个雏形,在完善各项功能方面都还需要进一步的分析、研究和调试工作。如果进一步结合工业控制的要求,形成一个较为成型的产品,则需要作更多、更深入的研究。 1.2 可编程逻辑控制器简介 可编程逻辑控制器(Programmable Logic Controller,简称 PLC) 根据国际电工委员会(IEC)在1987年的可编程控制器国际标准第三稿中,对其作了如下定义:“可编程控制器是一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用可编程序的存储器,用来在其内部存储执行逻辑运算,顺序控制,定时,计数与算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。可编程控制器及其有关外部设备,都应按易于使工业控制系统形成一个整体,易于扩充其功能的原则设计。”可编程控制器作为目前工业自动化的重要基础设备,被称为“工业自动化三大支柱性产业之一”,在各工业生产领域发挥着愈来愈大的作用。 2 十字路口交通信号灯PLC控制系统简介 2.1 控制对象及要求 2.1.1 控制对象 本系统的控制对象有八个,分别是: 东西方向红灯(R—EW)两个; 南北方向红灯 (R—SN) 两个; 东西方向黄灯(Y—EW)两个; 南北方向黄灯 (Y—SN) 两个; 东西方向绿灯(G—EW)两个;

51单片机用C语言实现交通灯(红绿灯)源程序

51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。源程序如下: /* 1、程序目的:使用定时器学习倒计时红绿灯原理主要程序和倒计时一样 2、硬件要求:数码管、晶振12M */ #include bit red,green,yellow,turnred; //定义红、黄、绿及转红标志 code unsigned char tab[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 0-9 unsigned char Dis_Shiwei;//定义十位 unsigned char Dis_Gewei; //定义个位 void delay(unsigned int cnt) //用于动态扫描数码管的延时程序 { while(--cnt); } main() { TMOD |=0x01;//定时器设置 10ms in 12M crystal定时器0,工作方式1,16位定时器 TH0=0xd8; //65535-10000=55535=D8F0(十六进制) TL0=0xf0; IE= 0x82; //中断控制,EA=1开总中断,ET0=1:定时器0中断允许 TR0=1; //开定时器0中断 P1=0xfc;//红灯亮,根据红黄绿接灯的顺序。 red =1; while(1) { P0=Dis_Shiwei;//显示十位,这里实现用8位数码管,即左1位 P2=0; delay(300);//短暂延时 P0=Dis_Gewei; //显示个位,左数,2位 P2=1; delay(300);

交通灯控制系统

1选题背景 今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。 关键词:AT89C51;7448,LED 2方案论证 2.1设计任务 设计基于单片机的智能交通红绿灯控制系统,要求能通过按键或遥控器设置系统参数,系统运行时,“倒计时等信息”能通过数码管或点阵发光管显示,设计时应考虑交通红绿灯控制的易操作性及智能性。以单片机的最小系统为基础设计硬件,用汇编语言、或C语言设计软件。通过本设计可以培养学生分析问题和解决问题的能力,掌握Mcs51单片机的硬件与软件设计方法,从而将学到的理论知识应用于实践中,为将来走向社会奠定良好的基础。 东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、黄、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行,黄灯亮时车辆及行人小心通过。红灯的设计时间为45秒,绿灯为40秒,黄灯为5秒。 2.2 方案介绍 方案1设计思想: 采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状 态的转换,由于每一个模块的计数多不是相同,这里的各模块是以预置数和计数器计 数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输 入要产生相应状态的下一个状态的预置数,如图中A道和B道,分别为次干道的置数选 择和主干道的置数选择。 方案2 设计思想: 由两个传感器监视南北方向即A道与东西方向即B道的车辆来往情况,设开关K=1 为有车通过,K=0为没有车通过。则有以下四种情况: Ka=1时:Kb=0,表示A有车B没有车,则仅通行B道:

红绿灯控制文档

红绿灯控制系统的设计 目录 引言 (1) 一、系统分析 (1) (一)十字路口基本情况分析 (1) (二)交通灯状态转换分析 (2) (三)硬件功能可行性分析 (3) 二、系统设计 (6) (一)硬件设计 (7) 1.电路需求分析 (7) 2.电路连接设计 (7) (二)软件设计 (8) 1.程序总体设计 (8) 2.程序流程设计 (10) 3.重要代码分析 (12) 三、系统实现 (15) (一)软件开发和运行环境 (15) (二)系统硬件环境 (15) (三)系统运行步骤 (15) (四)系统测试结果 (16) 四、系统开发总结 (16) 参考文献 (18) 附录 (19) (一)重要源代码 (19) 致谢 (21)

引言 随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。1914年,电气启动的红绿灯出现在美国,这种红绿灯由红、绿、黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。利用红外线红绿灯,当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路,红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。 黄色信号灯的发明者是我国的胡汝鼎。他在美国通用电器公司任职的时候,想到在红、绿灯中间再加上一个黄色信号灯,作为红灯和绿灯之间的缓冲,提醒人们注意安全。于是红、黄、绿三色信号灯即成为了一个完整的指挥信号家族。 城市路口交通信号控制系统大体上分为三种类型:定周期的信号机、多时段且具有无电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。具体采用哪种类型,应根据其应用场合及特点加以确定。其中,第一种类型以其成本低、设计简单、安装及维护方便等特点得到了广泛应用。本文讨论的交通灯控制系统就属于该种类型。 城市机动车量的不断增加使许多大中城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,如何改进交通灯的设计、有效的疏导交通,使其更好的适应城市交通的发展也成为了一个重要课题。 本论文正是在以上背景下探讨和设计一个交通灯控制系统。 一、系统分析 (一)十字路口基本情况分析 图1-1是一个典型的十字路口示意图。分别用1、2、3、4表明东、南、西和北四个流向的主车道,每个主车道置有一个交通灯,用于指示对面车辆的左转、右转和直行。比如,1号路口的左转灯亮时,即表示对面3号路口的车可以向左转行驶。 每个路口的情况都不尽相同,要根据具体的情况来设置各个方向的放行时间。假

十字路口红绿灯控制系统

课 程 设 计 2015 年 7 月 30 日 设计题目 学 号 专业班级 学生姓名指导教师

目录 一、主要指标及要求 (1) 二、方案选择 (1) 三、工作原理分析 (1) 四、单元模块设计及分析 (2) 4.1时钟信号脉冲发生器设计 (2) 4.2定时器设计 (4) 4.3 延时电路设计 (5) 4.4状态转换电路设计 (6) 4.5置数组合逻辑设计 (7) 五、总电路图 (9) 六、设计心得 (9) 七、参考文献 (10)

十字路口自动红绿灯指挥系统 班级:指导老师: 学生: 学号: 一、主要指标及要求 1.自动完成绿-黄-红-绿-……工作循环; 2.每种信号灯亮的时间不等,如:绿灯亮20秒-黄灯亮5秒-红灯亮15秒,如此循环; 3.用倒计时的方法,数字显示当前信号的剩余时间,提醒行人和司机; 4.(*) 信号灯的时间分别可调,以适应不同路口,不同路段交通流量的需求。 二、方案选择 三、工作原理分析 本电路分为五个模块,即时钟信号脉冲发生器、定时器、延时电路、状态转换电路、置数组合逻辑电路。其中由555定时器组成的时钟信号脉冲发生器为由两片74LS192计数器组成的定时器电路提供1Hz的脉冲信号,使计时器能够正常计数。由三片双四选一数据选择器组成的置数组合逻辑电路分别为计数器置19s、4s、14s和0s等不同的数。当计数归零时,计数器的溢出信号使双D触发器的状态发生跳转,同时控制着绿黄红灯的亮灭,使得绿黄红灯亮时,定时器分别置19s、4s、14s。延时电路起到延时作用,当计数器计数归零时,溢出信号通过延时电路先使触发器状态发生翻转,再加载LD信号,使计数器置一个新数。 四、单元模块设计及分析 4.1时钟信号脉冲发生器 时钟信号脉冲发生器选用555定时器主要用来产生秒脉冲信号。脉冲信号的频率可调,所以可以采用555组成多谐振荡器,其输出脉冲作为下一级的时钟信号。555定时器是一种模拟和数字功能相结合的中规模集成器件。555定时器的电源电压范围宽,可在5~16V工作,最大负载电流可达200mA。555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。 555定时器构成多谐振荡器,组成信号产生电路接通电源后,VCC通过电阻R1、R2给电容C充电,充电时间常数为(R1+R2),电容上的电压vC按指数规律上升,当上升到VREF1=2VCC/3时,比较器C1输出高电平,C2输出低电平,RS=10,

自动控制交通灯C语言程序

#include #define uchar unsigned char #define uint unsigned int const uchar SMG[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F}; uchar NUM,SIGN=10,TIM,TIM2; bit FLAG,FLAG2; sbit hong_D=P1^0; sbit lv_D=P1^1; sbit huang_D=P1^2; sbit hong_B=P1^3; sbit lv_B=P1^4; sbit huang_B=P1^5; sbit BEEP=P3^4; sbit EN1=P2^3; sbit DIG1=P2^6; sbit DIG2=P2^7; sbit EN2=P2^2; sbit DIG3=P2^4; sbit DIG4=P2^5; sbit KEY1=P3^0; sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3;

sbit KEY5=P2^0; sbit KEY6=P2^1; void keyscan(); uint M,N; void delay(uint n) { uint x,y; for(x=n;x>0;x--) for(y=110;y>0;y--); } void seg1(uint x) { DIG1=0; P0=SMG[x/10]; delay(1); DIG1=1; P0=0X00; DIG2=0; P0=SMG[x%10]; delay(1); DIG2=1; P0=0X00; } void seg2(uint x)

课程设计-基于PLC控制的交通红绿灯系统设计

《机电一体化》课程设计交通红绿灯PLC控制系统 班级:工学院机电1003班 指导老师: _________ 小组成员: __________________________ __________________________ __________________________ 日期: 2013年6月28日

【摘要】随着社会经济的快速发展和人们消费水平的不断提高,私家车不断增加,城市人多、车多道路少的交通状况越来越引起人们的关注。为了实现交通道路的管理,在各个道口安装红路灯已经成为了疏导交通车辆最为常见和最有效的手段。PLC控制系统可以实现了按车流量规模给定绿灯时长,达到最大限度的车辆放行,减少十字路口的车辆滞流,缓解交通拥挤以实现最优控制,从而提高交通控制系统的效率。 PLC具有结构简单、编程方便、可靠性高等优点,并广泛用于工业过程的自动控制中。由于PLC具有对使用环境适应性强的特性,同时其内部的定时器资源十分丰富,可对目前较为普遍使用的“渐进式”信号灯进行精确控制,能够方便实现对多岔路口红绿灯的控制,因此PLC被越来越多地应用于交通灯系统中。 PLC还具有通讯联网功能,可将同一条道路上的信号灯连成一局域网进行统一调度管理,缩短车辆通行等候时间,实现科学化管理。在实时检测和自动控制PLC应用系统中,PLC大都是作为一个核心部件来设计使用的。 【关键词】 PLC;交通灯;控制系统

目录 第一章绪论 (1) 1.1 PLC及WinCC介绍 (1) 1.1.1 PLC简单概述 (1) 1.1.2 WinCC介绍 (2) 1.2 十字路口交通灯控制任务 (3) 1.3 研究目的和意义 (4) 1.4 方案设计 (4) 第二章交通信号控制系统实况 (5) 2.1十字路口交通灯控制实际情况描述 (5) 2.1.1 控制任务要求 (5) 2.2 结合十字路口交通灯的路况画出模拟图 (5) 2.3交通灯控制流程图 (6) 第三章可编程控制器程序设计 (7) 3.1可编程控制器I/O端口分配 (7) 3.2 PLC的外部接线图 (7) 3.2.1输入/输出接线列表 (7) 3.2.2 PLC外部接线原理图 (7) 3.3程序梯形图及其说明 (8) 第四章十字路口交通灯的组态控制过程 (12) 4.1工程的建立和变量定义 (12) 4.1.1 工程的建立 (12) 4.1.2 变量的定义 (12) 4.2组态画面的建立 (12) 4.3 MOVEX1~MOVEY2的脚本编辑 (13) 第五章小组总结 (15) 参考文献 (15) 附表:PLC梯形图指令表 (16) 附图:交通红绿灯PLC控制系统实验相片 (18)

交通红绿灯的控制程序教案

【课题】交通红绿灯控制程序设计【时间】2012.10.19下午第三节【班级】八(1)班【地点】八(1)班教室【执教】孙守思【教学目标】 1、初步了解单片机端口及端口的基本应用;学习慧烁单片机图形程序(代码程序)的基本结构及设计方法;体验程序对单片机端口的控制方法; 2、通过点亮交通红绿灯课题,锻炼学生单片机基本电路和基本程序的设计能力以及动手操作能力,从而培养学生分析和解决实际问题的能力。 3、通过生动形象的教学让学生在学习中获得成功的喜悦,增强自信心;同时培养学生的团队合作能力及创新意识。 【教学重点】设计方案编制程序对交通红绿灯的控制方法; 【教学难点】慧烁单片机流程图与C语言程序的基本结构及设计方法。 【教学准备】课件、电脑、慧烁单片机学习套件等。 【教学流程】第一环节情景导入→第二环节基础探究→第三环节方案制定→第四环节方案实施→第五环节项目拓展→第六环节小结与评价。 【设计说明】 1、教材: 本课教材是以梅拢中学编写的校本教材为背景,以我校拓展课慧烁单片机学习套件为试验器材,完成交通红绿灯电路的控制程序的设计以及调试运行。对老师、学生、教材、学具都是全新的领域,自然具有一定的挑战性。另一方面,由于单片机、LED发光彩灯、显示屏应用的广泛性、工具性、基础性和进行单片机教育的普及性,所以说教材内容安排是迎合了学生的需求,符合他们的心理特点。我遵循了八年级探究新课程的标准、以兴趣爱好加任务为动力,面向全体学生的基本理念。让学生在积极思考、主体参与体验中,达到本课的教学目标。 2、学生: 本班是我校八年级(1)学生,该班学生课堂发言积极,动手动脑灵活。有3位同学已掌握单片机编成知识,会使用电脑下载自编单片机程序进行调试修改,了解简单的程序设计步骤和方法。 缺点:单片机理论知识和电路结构十分陌生,部分学生学习主动性不高。优点:学生思维比较活跃,喜欢动手操作。 3、学法 在教、学、做一体化教学中,学生是课堂教学的主体,所以在教学中要不断鼓励学生主动参与、勤于动手、动脑,培养学生分析问题和解决问题的能力。 4、教法: 猜想、尝试、探究法;仿真教学法、项目教学法和课堂的迁移学习法。(“引-激-拓”教学法)

十字路口交通灯控制系统(终)

安徽三联学院 学年论文 十字路口交通灯控制系统Crossroads traffic lights control system 专业:电气工程及其自动化 姓名: 学号: 指导老师: 2010年12 月15 日 信息与通信技术系

【摘要】根据8051单片机的特点及交通灯在实际控制中的特点,本文提出一种用单片机自动控制交通灯及时间显示的方法。同时给出了软硬件设计方法,设计过程包括硬件电路设计和程序设计两大步骤,对在单片机应用中可能遇到的重要技术问题都有涉足。本文对十字路口状态预设为两种,一种是正常状态,另一种是故障或紧急状态,通过按键来实现。通过按键可以调节时间的显示;以及红绿灯亮的时间;还可以设置交通忙碌时间;当时间达到忙碌的时间,程序则进入忙碌时间。在此设计中用LCD1602来作为人机相联的显示屏,数码管作倒计时,双色LED作为红绿黄三种交通控制灯,四个按键当为设置和急停用。 【关键词】单片机;交通灯;时间显示器;数码管。 【Abstract】8051 features and characteristics of traffic lights in the actual control, this paper proposes a single-chip automatic control of traffic lights and time display. Given hardware and software design methods, the two steps of the design process including the hardware circuit design and programming have to get involved on important technical issues that may be encountered in the SCM application. Crossroads state default two, one is the normal state, another is a failure or emergency button. Button can adjust the time display; and traffic lights bright; can also set the traffic busy time; time to reach a busy time, the program is to enter a busy time. In this design, using LCD1602 as a display of human-computer linked digital tube to make countdown, the two-color LED as red, green and yellow three traffic control lights, four buttons to use for the set and emergency stop. 【Key words】SCM; traffic lights; time display; digital tube.

出入口红绿灯智能控制系统说明

出入口红绿灯智能控制系统说明 停车场红绿灯智能控制系统主要是运用在: 双向通行、中间不能会车的通道,根据单向通道的长度、能见度以及现场情况,可以实现多种方案的控制功能。其中常见两种控制方式有以下两种: 一、单辆车通行控制方式 本方案适用于: 通道较短,对进、出车辆的通行效率要求不高、单车道双向通行通道的红绿灯控制。其中控制方式说明如下: 1、当入口没有车辆进入或外出时,入口和出口的两端均为绿灯亮,表示车辆可以刷卡进入或外出; 2、当入口车辆先压到入口车辆检测器时: (即车辆进入方向优先时) 出、入口立即变为红灯,禁止其他车辆进入该通道,当车辆经过出口红绿灯检测器后,出、入口两端重新恢复为绿灯; 3、当出口有车辆外出比入口先压到出口车辆检测器时: (即车辆外出优先时) 出、入口立即变为红灯,禁止其他车辆进入该通道,当车辆经过入口红绿灯检测器后,出、入口两端重新恢复为绿灯; 4、系统具有自动复位、及人工强行复位功能,当红绿灯智能引导系统因为特殊原因误判车辆长时间在出入口通道内时(此时出入口均为红灯亮,严禁车辆进出通行),系统能够根据现场设定的系统复位时间,自动(或人工手动、遥控器遥控等方式)将出入口红绿灯复位,重新将出入口复位到绿灯亮的初始状态; 二、连续进车通行控制方式

本方案适用于: 通道比较狭长,同时由于拐弯或其他原因造成进出口车辆不能相互看到,为了提高通道的通行效率,可以在单方向优先的前提下,单向连续进车通道的红绿灯智能控制系统。其中控制方式如下: 1、出入口两边没有车辆压到车辆检测器时,出口、入口两边的绿灯亮; 2、入口车辆先压到车辆检测器时: (即车辆进入优先时)入口绿灯亮,同时出口红灯亮,让车通行;当入口一侧检测到车辆驶离入口并进入狭长通道后系统开始对进入通道的车辆计数,入口绿灯仍亮保持不变,车辆可以连续进入,当车辆压到出口车辆检测器并驶离通道后,系统自动对通道内剩余的车辆计数,并在确保从入口进入通道内部的所有车辆全部都驶出后,系统自动将出、入口同时恢复为绿灯亮。 3、出口车辆先压到车辆检测器时: (即车辆外出优先时)出口绿灯亮,同时入口红灯亮;让车通行;当出口一侧检测到车辆驶离出口并进入狭长通道后系统开始对进入通道的车辆计数,出口绿灯仍亮保持不变,车辆可以连续外出,当车辆压到入口车辆检测器并驶离通道后,系统自动对通道内剩余的车辆计数,并在确保从出口进入通道内部的所有车辆全部都驶出后,系统自动将出、入口同时恢复为绿灯亮。 4、系统具有自动复位、及人工强行复位功能,当停车场红绿灯智能控制系统因为特殊原因误判车辆长时间在出入口通道内时(本系统无论是在进优先还是出优先的情况下,都可以根据您设定的时间,以最后一辆进入通道的车辆开始计时,超过设定的时间后系统仍然没有驶出通道,系统将强行复位位),系统能够根据现场设定的系统复位时间,自动(或人工手动、遥控器遥控等方式)将出入口红绿灯复位,重新将出入口复位到绿灯亮的初始状态; 5、以上功能仅为参考,可根据用户的要求进行全方位、多功能的任意调整,直至采用最适用现场通行条件的系统方案。 6、如果在本通道内同时安装自动刷卡系统并且道闸也安装在通道内时,那么您就要千万注意并考虑到一个问题,否则就会出现。。。。。

交通灯控制模拟程序

交通灯控制模拟程序设计 data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ; 数据保存区 yellow db ? ; 黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ?************************ J data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ; 初始化标题 q0: call mode1 ; 模式选择 自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间 ?************* 定义数据段 *********************************************** 主程序段 **********************************************

带数码管显示的十字路口交通灯控制 C 程序

一.课程设计目的 用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。 ⒈了解交通灯管理的基本工作原理 ⒉熟悉8259A中断控制器的工作原理和应用编程 ⒊熟悉8255A并行接口的各种工作方式和应用 ⒋熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法 二.课程设计任务 本次课程设计的内容为交通信号灯的实时控制和管理。 某交通干线车行道和人行横道的交通信号灯设置如图所示: 其中:表示红灯、表示黄灯、表示绿灯 具体要求如下: 1.东西方向车辆放行60秒钟。即东西方向的绿灯和南北方向的红灯同时点亮1分钟; 2.1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从65减为0。 3.东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。即东西方向的红灯和南北方向的绿灯同时点亮20秒钟; 4.南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。 5.南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。如此循环重复。 三.总体设计方案 1.用实验系统8255A实现对信号灯的控制(所用端口自定);2位数码显示用8255A实现控制。

2. 用实验系统8235的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的1分钟、5秒钟和20秒的定时。 实验系统8235的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V; 定时采用软硬件相结合的方式实现。 ⒊用实验系统的发光二极管模拟红绿灯。 注:8259A的端口地址为:218H、219H 8255A的端口地址为:端口A-200H、端口B-201H、端口C-202H、控制端口-203H 8253的端口地址为:计数器0-208H、计数器1-209H、计数器2-20aH、控制寄存器0-20bH。 四.部分电路设计及功能解说 设计数器0的计数初值为25000,由于CLK0接脉冲信号,频率为2.5MHZ,所以每10ms中断一次。利用CX对不同的状态时间计数,用来实现计数器0对1分钟,20秒钟,5秒钟的定时。中断子程序分为数码显示刷新部分和红绿黄灯各种状态切换部分。每进入中断即刷新LED显示。用对于东西车道和南北车道黄灯闪烁利用标志位判断实现,满足比较条件就暗,不满足条件就亮。 五.程序设计流程图

单片机控制红绿灯程序

LED EQU P1 ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H LCALL S1 ;南北绿灯,东西红灯 LCALL S2 ;南北黄灯,东西红灯 LCALL S3 ;南北红灯,东西绿灯 LCALL S4 ;南北红灯,东西绿灯闪转黄灯LJMP START S1: MOV A,#0CH ;南北绿灯,东西红灯 MOV LED,A MOV R2,#100 ;延时10秒 LCALL DELAY RET S2: MOV A,#14H ;南北灯黄灯,东西红灯 MOV LED,A MOV R2,#20 ;延时2秒 LCALL DELAY RET S3: MOV A,#21H ;南北红灯,东西绿灯 MOV LED,A MOV R2,#100 ;延时10秒 LCALL DELAY RET S4: MOV A,#22H ;南北红灯,东西黄灯 MOV LED,A MOV R2,#20 ;延时2秒 LCALL DELAY RET DELAY: PUSH 02H ;延时子程序PUSH 01H PUSH 00H DELAY1: MOV R1,#00H DELAY2: MOV R0,#0C2H DJNZ R0,$ DJNZ R1,DELAY2 ;延时100ms DJNZ R2,DELAY1 POP 00H POP 01H POP 02H RET END

················· LED EQU P1 ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H LCALL S1 LCALL S2 LCALL S3 LCALL S4 LCALL S5 LCALL S6 LCALL S7 LCALL S8 LCALL S9 LCALL S10 LCALL S11 LCALL S12 LJMP START S1: MOV A,#0CH MOV LED,A MOV R2,#80 LCALL DELAY RET S2: MOV A,#04H MOV LED,A MOV R2,#5 LCALL DELAY RET S3: MOV A,#0cH MOV LED,A MOV R2,#5 LCALL DELAY RET S4: MOV A,#04H MOV LED,A MOV R2,#5 LCALL DELAY RET S5: MOV A,#0cH MOV LED,A

红绿灯控制

昆明理工大学信息工程与自动化学院学生实验报告 (20 16—2017学年第二学期) 课程名称:嵌入式系统在生医中的应用开课实验室:信自111 实验日期:2017.5.9 一、实验内容、原理 主体电路红绿灯自动控制模块。本电路利用单片机的P3.2,P3.3,P3.4作为输出口,分别控制红、黄、绿三个灯亮的顺序及时间,红灯亮4秒,黄灯亮1秒,绿灯亮5秒,重复执行。 二、相关知识 1、芯片STC8951 AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。主要特性:与MCS-51 兼容,4K字节可编程FLASH存储器,寿命:1000写/擦循环,数据保留时间:10年,全静态工作:0Hz-24MHz,三级程序存储器锁定128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。 2、单片机I/O端口 (1)特点 锁存器加引脚结构。I/O复用结构:P0口作并行扩展时为三态双向口;P3口为功能复用I/O口,由内部控制端控制。准双向结构:P0-P3口作普通I/O口使用时均为准双向口,典型结构如P1口。输入时读引脚,输出时为写锁存器。(2) I/O端口应用特性 端口的自动识别:P0、P2总线复用、P3功能复用,内部资源自动选择。端口锁

存器的读、改、写操作:都是一些逻辑运算、置位/清除、条件转移等指令。读引脚的操作指令:I/O端口被指定为源操作数即为读引脚操作。例如,执行“MOV A,P1”时,P1口的引脚状态传送到累加器中;而相对应的“MOV P0, A”指令则是将累加器的内容传送到P1口锁存器中。准双向口的使用:端口作输入时,读入时应先对端口置“1”,然后再读引脚。P0口作普通口使用;此时必须加上拉电阻。I/O驱动特性:P0口可驱动8个LSTTL输入端,P1-P3口可驱动4个LSTTL 输入端。 三、程序设计及说明 1、主程序 ORG 0000H ;以下程序从0单元开始 AJMP MAIN ORG 0030H MAIN: clr p3.2 ;红灯亮4秒 setb p3.3 ;黄灯不亮 setb p3.4 ;绿灯不亮 lcall delay1s ;延时1秒 lcall delay1s ;延时1秒 lcall delay1s;延时1秒 lcall delay1s ;延时1秒 setb p3.2 ;红灯不亮 clr p3.3 ;黄灯亮1秒 setb p3.4 ;绿灯不亮 lcall Delay1s ;延时1秒 setb p3.2 ;红灯不亮 setb p3.3 ;黄灯不亮 clr p3.4 ;绿灯亮5秒 lcall Delay1s ;延时1秒 lcall Delay1s ;延时1秒 lcall Delay1s ;延时1秒 lcall Delay1s ;延时1秒 lcall Delay1s ;延时1秒 AJMP MAIN ;跳转到MAIN处 delay1s: ;1秒延时子程序 mov r5,#9 mov r7,#0 mov r6,#195

交通信号灯自动控制系统说明书

交通信号灯自动控制系统说明书 课程设计2008-12-28 16:34:46 阅读1674 评论4 字号:大中小订阅 1 概述 1.1 设计目的 (1)掌握CPU与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力; (2)通过对交通灯信号自动系统的模拟控制,进一部提高应用8255A并行接口技术,8253定时功能,8259A中断管理控制器的综合应用能力; (3)掌握基本汇编源程序编制方法,学会综合考虑各种设计方案的对比和论证。 1.2 设计要求 交通信号灯自动控制系统须满足下列要求和功能: (1)首先车行道亮绿灯45s,同时人行道亮红45s; (2)45s后,车行道黄灯闪烁3次,亮、灭各1s,此时人行道仍维持红灯; (3)6s后,转为人行道亮绿灯20s,车行道亮红灯20s; (4)20s后,再转到第(1)步,如此循环往复; (5)当有车闯红灯时,能实现报警信号持续3 s的扩展功能。 1.3 设计方法及步骤 1、设计系统硬件部分 (1)先进行方案论证,确定最终采取硬件定时还是软件定时,是查询方式还是中断方式; (2)在具体甄选设计过程中可能要设计的芯片,分析它们的功能特点,确定它们的工作模式; (3)按照各芯片的使用特点以及本系统的设计要求逐步连接,画出系统硬件连接图。 2、设计系统的软件部分 (1)先进行程序编制方式的方案论证,讨论分析,确定是采用宏程序调用还是子程序调用模式; (2)确定本系统设计可能涉及的源程序各个模块,明确各个模块的各自功能,分清它们相互之间的调用关系; (3)画出各个模块的程序流程图; (4)依据流程图,编制出交通信号灯自动控制系统的完整汇编源程序。 1.4 设计说明 (1)本设计采用共阳极的发光二极管模拟对应的交通信号灯的型式,参见后面“系统硬件部分设计”中“总体设计”这一节; (2)本设计关于有车闯红灯报警的扩展功能,是通过红外线接收装置实现的,具体分析见后面“可编程芯片说明及其地址范围确定”中“8254定时/计数器”这一节; (3)在本设计的最初方案中,本来是有电子眼拍摄闯红灯车牌号的这一很实用、很现实化的扩展功能的,但由于实现这种功能的电路芯片资料难以搜集,芯片电路连接复杂以及芯片工作模式,工作环境,工作特点的难以确定,最终被舍弃,只留下报警功能; (4)本设计在很多方面,比如译码器的选择,定时器选型,程序调用方式等等尽量做到不与本组其他成员雷同,程序编制力求简便清晰,硬件连接图在保证每根具体用到的管脚线都能被表示出来的同时,力求线路连接清晰明确,尽量不使线与线之间过于缠绕。 2 方案论证 2.1 软件定时与硬件定时 本任务要求交通信号灯能实现自行定时、延时、切换等功能,即能实现交通信号灯自动控制。一般计算机控制系统实现定时或延时有两种基本方法:利用软件定时 或使用可编程硬件芯片,即硬件定时。

相关主题
文本预览
相关文档 最新文档