模拟交通灯控制系统的设计
- 格式:doc
- 大小:206.00 KB
- 文档页数:21
贵州师范学院
电子课程设计报告书
班级 11级 1班
学生姓名 王旭东
学号 11030540094
专业 电子信息科学与技术
院系 物电学院
2014年6 月20 日 I
摘 要
随着城市人口的快速增长和机动车数量的大量增加,城市交通灯作为缓解交通压力、提高道路通行效率的重要手段,其作用越来越重要。因此,如何改进交通灯的设计,使其更好的适应城市交通的发展也成为一个重要课题。红绿灯控制系统是利用8253A定时/计数器芯片的定时功能,向8259A中断控制器芯片发出定时中断请求,驱动8255A可编程并行接口芯片改变路口的LED灯的亮灭。系统采用DVCC-598JH+微机原理与接口技术实验箱作为测试与运行的平台,8086汇编语言作为编程语言,并用MASM5.0作为汇编语言开发环境。
关键词:红绿灯控制系统 8253A定时器 8259A中断控制器 8255A可编程并行接口 DVCC-598JH+
目 录
摘 要 ........................................... 201
1.十字路口基本情况分析 ........................... 201
2.交通灯状态转换分析 .............................. III
3.紧急通行情况分析 ................................. 5
4.硬件功能分析 ..................................... 6
4.1 8253A定时/计数器芯片 ........................... 6
4.2 8259A中断控制器芯片 ............................ 7
4.3 8255A可编程并行接口芯片 ........................ 9
5.系统设计 ........................................ 10
5.1硬件设计 ....................................... 10 北京理工大学珠海学院计算机学院课程设计
II 5.1.1 电路分析 ..................................... 10
5.1.2 电路连接设计 ................................. 10
5.2软件设计 ....................................... 12
5.2.1 程序总体设计 ................................. 12
5.2.2 程序流程设计 ................................. 13
5.2.3 重要代码分析 ................................ XII
6.系统实现 ...................................... XVII
6.1 软件开发与运行环境 ............................. 10
6.2 系统硬件环境 ................................... 20
6.3 系统运行步骤 ................................... 20
6.4 系统测试结果 ................................... 20
参考文献 .......................................... 21
心得体会 .......................................... 22
1 十字路口基本情况分析
设有一个十字路口,1、3为东西方向,2、4为南北方向,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,
而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。 北京理工大学珠海学院计算机学院课程设计
III 2 交通灯状态转换分析
合理的设置每个路口、每个方向的交通灯的通行时间,对车辆能否及时疏散,有着决定性的作用。
状态1 的时候:1、3路口的绿灯熄灭,1、3路口的黄灯开始亮,当通行时间剩下5秒结束时,LED会闪烁,而同时2、4路口的红灯亮
状态2的时候:1、3 路口红灯亮, 而同时2、4路口的绿灯亮,2、4路口方向通车;
状态3的时候:1、3 路口红灯亮, 而同时2、4路口的黄灯亮;
状态4 的时候:1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。整个状态转换的过程见表2-1。
表2-1 路口四个状态和相互转换过程
状态 每个路口灯的点亮情况 通行时间 路口1 路口2 路口3 路口4
状态1(ZT1) 黄 红 黄 红 5s
状态2(ZT2) 红 绿 红 绿 15s
状态3(ZT3) 红 黄 红 黄 5s
状态4(ZT4) 绿 红 绿 红 15s
完成四个状态的一次循环需要40秒, 红灯亮20秒 、绿灯亮15秒 、黄灯亮5秒
完成了在适当的时间限度内,有效的疏散较大的通行量的目的。
3 紧急通行情况分析
手动拨动单脉冲一次,则产生一个优先级高一级的中断,程序转而执行此中断处理程序,处理完后返回继续执行低级中断。整个执行过程见图3-1
循环值入栈
红灯全亮 北京理工大学珠海学院计算机学院课程设计
IV
图3-1 紧急中断程序
4 硬件功能分析
4.1 8253A定时/计数器芯片
8253A定时/计数器具有定时、计数双功能。它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1和计数器2。每个计数器计数频率为0-2MHZ。
其内部数据总线缓冲器为双向三态,故可直接连在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值。读写控制逻辑,当选中该芯片时,根据读写命令和送来的地址信息控制整个芯片工作。其工作方式通过控制字确定。控制字寄存器用于接收数据总线缓冲器的信息。当写入控制字时,控制计数器的工作方式;当写入数据时则装入计数初值。控制寄存器为8位,只能写入不能读出。8253A内部结构见图4-1。
当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方波发生器方式。是否中断
继续执行主程序 结束中断服务程序
循环值出栈
继续处理未完成的低级中断 北京理工大学珠海学院计算机学院课程设计
V
图 4-1 8253A内部结构图
4.2 8259A中断控制器芯片
8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源和提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。
8259A的内部结构见图4-2。它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路、级联缓冲器和比较器组成。
图 4-2 8259A的内部结构 计数器0 CLK0
GATE0
OUT0
计数器1 CLK1
GATE1
OUT1
计数器2 CLK2
GATE2
OUT2 数据总线缓冲器
读/写逻辑
控制字寄存器 D0-D7
-RD -WR A0 A1 -CS
控制逻辑
服务寄存器 优先级分析器 中断请求中断屏蔽寄存器IMR 内部总线 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 数据总线控制器
读写电路
级联缓冲器/比较器 CAS0 CAS1 CAS2 D0-D7
-RD -WR A0 -CS
SP/-EN INT -INTA 北京理工大学珠海学院计算机学院课程设计
VI
对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的循环等待中断工作方式。
4.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的内部逻辑结构见图4-3。