微机原理课程设计-交通信号灯的控制.doc
文本预览下载声明
交通信号灯的控制
一、设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
二、设计要求
1.通过8255A并口来控制LED发光二极管的亮灭。2.A口控制红灯,B口控制黄灯,C口控制绿灯。3.输出为0则亮,输出为1则灭。4.用8253定时来控制变换时间 。要求:
设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到1、3路口方向。之后,重复上述过程。工作原理说明:此方案是通过并行接口芯片8255A和8088计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。硬件连接红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。8088工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,通过地址锁存器,接到3译码器,译码后分别连到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2OUT1产生30秒定时信号;OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0基本输入输出方式,红绿灯的转换由软件编程实现。地址线只用低八位,即AD0~AD7,该地址线通过分时复用,先送出地址,通过地址锁存器74LS373锁存以后,再送出数据。其中A7、A6通过一个与门产生一个信号,A5、A4通过一个与门产生一个信号,将这两个信号再通过一个与非门产生一个74LS138的高位C相连输入信号,A3、A2分别与译码器B、A相连,作
为片选信号。而A1、A0则直接与8255和8253的A1、
A0相连。而8255和8253的片选信号CS分别接Y1和
Y0。由上述可知A7A6A5A4=1111,由此可得各端口地
址如表1所示:
2)LED灯与8255的连接
设计要求给出,当8255的端口输出低电平时,LED灯
亮,当输出高电平时,LED灯灭,由此可将LED灯的阳极通过
一电阻与电源VCC相连,阴极与8255的端口直接相连,则可
满足上述要求。右图给出了连接示意图(具体连接图见附件
一)。
3)8253的连接
8253共有3个相同的计数器。考虑到最小频率要求为1Hz,
8255 PA口 00F4H PB口 00F5H PC口 00F6H 控制字寄存器 00F7H 8253 CLK0口 00F0H CLK1口 00F1H CLK2口 00F2H 控制字寄存器 00F3H 表1 8255和8253各端口地址
当输入为1Mz时,要求计数器的初始值为1000000,而8253计数值最大值只能为65536,因而考虑将1Mz的时钟输入计数器0,再将计数器0的输出信号作为计数器1和计数器2的输入,则可以产生最小为1Hz的信号。而计数器1和计数器2可以分别用于30s定时和黄灯闪烁。
基于以上分析,计数器0应工作于方式3,计数初始值为10000,则输出信号周期为0.01s;再以此作为输入,让计数器1工作于方式0,计数初值为3000,也即定时30s,供绿灯向黄灯转换的定时之用;而黄灯要求以1Hz的频率闪烁5次,则可考虑用方波信号和8255的PB口信号一起通过一个与门来控制黄灯的熄灭,达到闪烁的目的,频率为1Hz,则计数初值为100,工作方式为3。
三个计数器的GATE端都直接接高电平,OUT1接PC7口,供定时检测;OUT2接PC6口,供闪烁次数检测。
4)完整的硬件连接图
见附录一。
四、软件方案说明
1)程序流程图
易知程序应该实现循环,即各路口在绿灯、黄灯和红灯之间实现切换。以下给出总的程序流程图,之后再对程序的关键点进行说明。
2)各端口地址定义
在数据段中将各端口地址用变量进行定义,以便在程序中使用,也便于修改。定义如下:
DATA SEGMENT ;定义8255和8253各端口地址数据
PA8255 EQU 00F4H
PB8255 EQU 00F5H
P
显示全部