当前位置:文档之家› 毕业论文:交通灯控制系统设计

毕业论文:交通灯控制系统设计

毕业论文(设计)内容介绍

摘要: (1)

Abstract: (1)

1. 引言 (2)

2. 交通灯设计的简介 (2)

3.交通灯的设计方案 (3)

3.1电路原理 (3)

3.2.系统原理 (6)

3.2.1 8259A的结构原理 (6)

3.2.2 8255A的工作原理 (6)

3.3 74LS138工作原理 (8)

3.3.1 74LS138与74HC的引脚图 (8)

3.3.2 3线-8线译码器74LS138的功能表 (9)

4.交通灯系统的安装与调试 (10)

4.1调试过程及相应问题的记录 (10)

4.1.1、软件延时与定时器计时 (10)

4.1.2、使用中断 (11)

4.2调试结果 (11)

5.程序流程图 (12)

6.设计过程与总结 (13)

7. 附源程序 (14)

参考文献: (18)

交通灯控制系统设计

张强

摘要:随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用。多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。本设计是基于微机原理与接口技术的简单应用。运用所学的微机原理和接口技术知识完成交通灯控制系统。通过硬件与软件的结合,用我们刚刚学过的汇编语言编写程序模拟分析了现代城市交通控制与管理问题的现状,结合交通的实际情况总结了交通灯控制系统的工作原理,想出了一种简单实用的交通灯控制系统的硬件、软件电路设计方案。该系统适用于单主干道的十字路口。可随意进行更改双向的通行时间,该功能能实现加中断控制和手动控制的方式进行,红绿灯切换时有闪烁功能以警示车辆和行人将进行红绿灯切换。当有交通堵塞或紧急状况时可进行中断手动控制,使交通安全与交通流畅度得以保证。

关键词:延迟 8255 交通灯控制设计

Design of traffic light control system

Zhang Qiang

Abstract:With the development of electronic technology, computers in the development of modern science and technology play an increasingly important Effect .The course design is based on Microcomputer Principle and Interface Technology for simple applications. We have just learned to use the assembly language program to simulate the conditions of modern urban traffic control and management of the status quo. The actual situation with traffic light control system described working principle, software The system is suitable for a single main road intersection.Two-way free passage of time changes .This feature can achieve plus interrupt control and manual control of the way, Flashing traffic light switching functions as a warning to vehicles and pedestrians will be traffic lights switch. When there is traffic congestion or an emergency manual control can be interrupted, so that the degree of traffic safety and traffic flow can be guaranteed.

Key words: Delayed 8255 Traffic Light Control Design

1. 引言

交通灯控制系统设计是电子技术学习中一个非常重要的环节,是将理论知识和实践能力相结合的环节,是真正锻炼学生能力的环节。交通灯能保证行人过马路时的安全,因为有控制交通状况等优点受到人们的欢迎,所以在很多场合得到广泛的应用。

交通灯控制系统通过编写的汇编语言程序,控制计算机的使用。红灯停,绿灯行的交通规则,广泛用于十字路口,车站等公共场所,成为人们外出生活中必不可少的物品,由于成熟与计算机技术的广泛应用,交通灯功能的多样化,远远超过了旧式交通灯, 通过数字化给生产生活带来了极大的便利。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,以上这些都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给有红绿色盲的人以声音警示的人性化设计。现在的交通灯控制系统很多都增加了智能控制环节,例如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。

要将交通灯控制系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。

2. 交通灯设计的简介

目前,在国内的很多城市都是采用的自动红绿灯控制系统,它不仅具有固定的红绿灯过渡区间,而且还能自动切换。它由通行与停止时间控制显示、红黄绿三色信号灯和方向指示灯三部分组成。通常在红绿交通灯的通行与停止时间控制显示中, A、B两方向分别50秒;但也可以根据交通规律,B方向60秒,A方向40秒,时间控制都是固定的。红绿灯的时间控制显示,以固定时间值预先存储在在单片机中,每次以一定周期交替变化。然而,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还要受到不确定因素的影响。采用定时控制容易造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它无法顾及当前道路上交通车辆数的实际情况变化,其最大的缺陷就是当路况发生变化时,不能正确满足司机与路人的实际需要。

目前,有一种使用“模糊控制”技术控制红绿灯的方法,能够根据十字路口两个方向上车辆和行人的浮动状况,自行判断红绿灯时间间隔,来确保最大车流量,减少路口的交通堵塞。定时控制能用数字显示器显示当前灯色的剩余时间,

驾驶员能随时清楚自己的驾驶动作,以便于及时停车或启动。

3.交通灯的设计方案

在本方案中使用了8259A中断控制器,8255A可编程并行接口实现对A、B 方向交通的分别计时和控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意更改双向的通行时间。

城市中的十字路口红绿灯控制系统主要负责控制A道和B道的红绿灯的转换顺序和状态,关键是进行适当的时间延时和各个状态之间的转换,基于以上想法,采用如下设计:

A、B组的交通指示灯工作过程:

1.初始状态为A、B道都是红灯亮。当控制系统启动后,A道的绿灯亮,B道

的红灯亮。

2.当延时25秒后,A、B道的黄灯同时变亮,且延时5秒。

3.延时后,B道转为绿灯,A道转为红灯,且延时25秒。

4.25秒后,转为A、B道的黄灯亮,延时5秒后,回到第一步,以次重复进

行,不断循环。

5.当遇到道路障通,或紧急情况时,A、B道全为红灯。

3.1电路原理

本方案的设计可以由实验平台上的一些功能模块电路组成,因为各模块电路内部已经连接,所以用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计与实现相对简单一点。具体的系统硬件连接如图1所示。硬件电路由R-S 触发器电路、发光二极管模块、8255A可编程并行接口模块和紧急中断模块8259A 组成。

实验的对应接线关系图如2下所示:

图1 交通灯硬件连线图

图2 交通灯内部电路图

3.2.系统原理

3.2.1 8259A的结构原理

1、数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。可以传送CPU与8259A之间的控制命令信息、状态信息以及中断类型信息。

2、读/写控制逻辑:CPU对8259A的读/写操作通过它实现。

3、级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。

4、控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。

5、中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当响应的中断请求输入脚有中断请求时,该寄存器的相应位置1。

6、中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。当其中某位置“0“时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。该寄存器的内容为8259A 的操作命令字OCW1,可以由程序设置或改变。

7、中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。

8、用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。

3.2.2 8255A的工作原理

1、8255A的内部结构如图3:

图3 8255A内部结构图

1)数据总线缓冲器:这是一个8位双向三态数据缓冲器,是微机系统数据总线与8255A的接口。可以传送CPU输出的控制字、输入输出的数据以及CPU输入的状态信息。

2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

3) A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C 口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。

4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

2、引脚信号

8255A的引脚如图4所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。

(chip select):片选信号线,低电平有效时,芯片被选中。

A1, A0(port address):地址线,用来选择内部端口。

(read):读出信号线,低电平有效时,允许数据读出。

(write):写入信号线,低电平有效时,允许数据写入。

RESET(reset):复位信号线,高电平有效时,

所有内部寄存器(包括控制寄存器)将清0。

PA7~PA0(port A):A口输入/输出信号线。

PB7~PB0(port B):B口输入/输出信号线。

PC7~PC0(port C):C口输入/输出信号线。

VCC:+5V电源。 GND:电源地线。

3、8255A的工作方式:

方式0---基本输入输出方式;图4 8255A的引脚方式1---选通输入输出方式;

方式2---双向选通输入输出方式。

3.3 74LS138工作原理

3.3.1 74LS138与74HC的引脚图

用与非门组成的3线-8线译码器74LS138

图5与非门组成的74LS138

3.3.2 3线-8线译码器74LS138的功能表

图6 74LS138的功能表

从上图我们可以看到74LS138的八个输出引脚,任何时刻要不全为高电平1—芯片处于不工作状态,要不只有一个为低电平0,其余7个输出引脚全为高电平1。如果出现两个输出引脚同时为0的情况,说明该芯片已经损坏。

当附加控制门的输出为高电平(S=1)时,可由逻辑图写出

图7 逻辑图

由上式可以看出,同时又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。

74LS138有三个附加的控制端,输出为高电平(S=1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平。这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。带控制输入端的译码器又是一个完整的数据分配器。如果把作为“数据”输入端(同时),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。这就不难理解为什么叫做地址输入了。例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此数据以反码的形式输出,而不会被送到其他任何一个输出端上。

4.交通灯系统的安装与调试

4.1调试过程及相应问题的记录

4.1.1、软件延时与定时器计时

软件延时,设计简单,使用方便,但是无法进行精确计时,无法在实际应用中进行使用,本次设计采用了定时器0进行计时,每10ms产生一个脉冲信号,可以准确的计时并方便8段数码管进行显示

4.1.2、使用中断

使用中断比较麻烦,在试验中需要两次加载初始化程序和中断服务程序,并且需要手工指定中断服务地址和中断向量号;但是使用中断可以进行多样化设计,强化程序功能与执行效率。

4.2调试结果

A、B组的交通灯工作过程为:

1.初始状态为A、B道都是红灯亮。当控制系统启动后,A道的绿灯亮,B道

的红灯亮。

2.当延时25秒后,A、B道的黄灯同时变亮,且延时5秒。

3.延时后,B道转为绿灯,A道转为红灯,且延时25秒。

4.25秒后,转为A、B道的黄灯亮,延时5秒后,回到第一步,以次重复进

行,不断循环。

5.当遇到道路障碍,或紧急情况时,A、B道全为红灯。

5.程序流程图

图8 交通灯程序流程图

6.设计过程与总结

此次实习可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在程序中添加了黄灯闪烁,更加醒目。另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。在系统加电调试中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。

通过对交通灯控制系统的设计,我熟练掌握了什么是编程、编程工作的基本过程及其各部分的基本任务,了解了编程的生成过程、构造工具及其相关的技术,熟悉了关于编程的总流程和设计框图,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。通过在计算机上实现算法的内容和算法的执行顺序,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解,而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的命令去除

7. 附源程序

MODEL TINY

PCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址, 也为DMA & 32 BIT RAM板卡上的8237提供基地址)

Vendor_ID EQU 10EBH ;厂商ID号

Device_ID EQU 8376 ;设备ID号

STACK 100

DATA

COM_ADD DW 00F3H ;控制口偏移量

PA_ADD DW 00F0H ;PA口偏移量

PB_ADD DW 00F1H ;PB口偏移量

PC_ADD DW 00F2H ;PC口偏移量

LED_Data DB 10111110B ;东西绿灯,南北红灯

DB 11111111B ;

DB 11011101B ;东西南北黄灯

DB 11101011B ;东西红灯,南北绿灯

.CODE

START: MOV AX,@DATA

MOV DS,AX

NOP

CALL InitPCI

CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址

mov dx,com_add

mov al,80H ;PA、PB、PC为基本输出模式

OUT DX,AL

MOV DX,PA_ADD ;红灯亮

MOV AL,10111011B

OUT DX,AL

CALL DL5s

LEA BX,LED_Data

START1: MOV DX,PA_ADD

MOV AL,0

XLAT

OUT DX,AL ;东西绿灯,南北红灯

CALL DL25S

MOV CX,5

START2: MOV AL,1

XLAT

OUT DX,AL

CALL DL500ms

MOV AL,2

XLAT

OUT DX,AL

CALL DL5s;东西南北黄灯

MOV AL,3

XLAT

OUT DX,AL ;东西黄灯亮,南北红灯

CALL DL25S

MOV AH,06H

MOV DL,0FFH

INT 21H

JZ START1

JMP Exit

DL500ms PROC NEAR

PUSH AX

PUSH DX

MOV DX,500 ;延时500ms

MOV AH,0FFH ;星研公司提供的软中断

INT 21H

POP DX

POP AX

RET

DL500ms ENDP

DL5S PROC NEAR

PUSH CX

MOV CX,10

DL5S1: CALL DL500ms

LOOP DL5S1

POP CX

RET

ENDP

DL25S PROC NEAR

PUSH CX

MOV CX,50

DL25S1: CALL DL500ms

LOOP DL5S1

POP CX

RET

ENDP

InitPCI PROC NEAR

MOV AH,00H

MOV AL,03H

INT 10H ;清屏

MOV AH,0B1H

MOV AL,01H

INT 1AH

CMP AH,0

JZ InitPCI2

LEA DX,msg0

InitPCI1: MOV AH,09H

INT 21H

JMP Exit

InitPCI2: MOV AH,0B1H

MOV AL,02H

MOV CX,Device_ID

MOV DX,Vendor_ID

MOV SI,0

INT 1AH

JNC InitPCI3 ;是否存在Star PCI9052板卡

LEA DX,msg1

JMP InitPCI1

InitPCI3: MOV DI,PCIBAR3

MOV AH,0B1H

MOV AL,09H

INT 1AH ;读取该卡PCI9052基地址

JNC InitPCI4

LEA DX,msg2

JMP InitPCI1

InitPCI4: AND CX,0FFFCH

MOV IO_Bit8_BaseAddress,CX

RET

InitPCI ENDP

ModifyAddress PROC NEAR

ADD COM_ADD,CX

ADD PA_ADD,CX

ADD PB_ADD,CX

ADD PC_ADD,CX

RET

ModifyAddress ENDP

Exit: MOV AH,4CH

INT 21H

END START

相关主题
相关文档 最新文档