交通灯控制器的设计与实现_第1页
交通灯控制器的设计与实现_第2页
交通灯控制器的设计与实现_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、交通灯控制器的设计与实现、实验目的1 了解交通灯管理的根本工作原理。2 熟悉 8253 计数器 / 定时器、 8259A 中断控制器和 8255A 并行接口的工作方式及应用编程。3.掌握多位LED显示的方法。、 实验内容与要求设计一个用于十字路口的交通灯控制器。1. 根本要求:1东西和南北方向各有一组红 ,黄,绿灯用于指挥交通 , 红,黄,绿的持续时间分别为 25s,5s,20s 。2当有紧急情况如消防车时,两个方向均为红灯亮,计时停止,当特殊情况结 束后,控制器恢复原来状态,正常工作。3一组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。2 .提高局部:1实时修改交通灯的持续时间。

2、2根据不同时段对主要交通方向的信号进行调整。3可以使用 LCD 显示提示信息。三、实验报告要求1 .设计目的和内容2 总体设计3 硬件设计:原理图接线图及简要说明4软件设计框图及程序清单5 设计结果和体会包括遇到的问题及解决的方法四、总体设计交通灯的工作过程如下:设十字路口的 1、3 为南,北方向, 2、4 为东西方向,初始态 为 4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮, 2、4 路口的红灯亮, 1、3 路口方向 通车, 2 个路口的 LED 数码管开始倒计时 25 秒。延迟 20 秒后, 1、3 路口的绿灯熄灭,而 1,3路口的黄灯开始闪烁 1HZ 。闪烁 5次后,1、3路口的红

3、灯亮,同时 2、4路口的绿 灯亮, 2、4 路口方向开始通车, 2 个路口的 LED 数码管重新开始倒计时 25 秒。延迟 20 秒 时间后, 2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁 5次后,再切换到 1、 3路口方向。之后,重复上述过程。当有紧急情况时,2个方向都红灯亮,倒计时停止,车辆禁止通行,当紧急情况结束后,控制器恢复以前的状态继续工作。在设计中采用6个发光二极管来模拟 2个路口的黄红绿灯,每个路口用2个数码管来显 示通行或禁止剩余的时间。 紧急情况用一个单脉冲发生单元申请中断来模拟,紧急情况结束后,再发一个中断来恢复以前的状态。根据前面的介绍,本设计硬件由定时模块、发光二极管模块

4、、数码管显示模块和紧急中断模块组成。定时模块采用硬件定时和软件定时相结合的方法,用8253定时/计数器定时100ms,再用软件计时实现所需的定时。发光二极管模块由8255控制发光二极管来实现。数码管显示模块由实验平台上的LED显示模块实现。紧急中断模块是由单脉冲发生单元和8279中断控制器组成。程序主要是由定时子程序、发光二极管显示子程序、 数码管显示子程序和中断效劳程序组成。包括对8253、8255以及8259等可编程器件的编程。五、硬件设计本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单

5、。完 整系统的硬件连接如图 1所示。硬件电路由定时模块、发光二极管模块、 数码管显示模块和紧急中断模块组成。定时模块是由8253的计数器0来实现定时100ms。Clk0接实验平台分频电路输出 Q6, f = 46875hz。GATE0接8255的PA0,由8255输出来控制计数器的起停。 OUT0接8259的 IRQ2,定时完成申请中断,进入中断效劳程序。发光二极管显示模块由 8255输出来控制发光二极管的亮灭。 8255输出为低电平时,对 应的发光二极管就点亮,否那么就熄灭。8255的接口电路如图 2所示。交通灯的对应关系如下:L7L6L5L2L1L0PC7PC6PC5PC2PC1PC013

6、红灯13黄灯13绿灯24红灯24黄灯24绿灯实验平台上提供一组六个 LED数码管。插孔CS1用于数码管段选的输出选通,插孔CS2用于数码管位选信号的输出选通。本设计用4个数码管来倒计时。紧急中断模块是由单脉冲发生单元和8259中断控制器,单脉冲发生单元主要用来请求中断,然后做出紧急情况处理。PC BUS图1系统硬件电路图图2 8255接口电路六、软件设计根据交通灯的工作过程和电路连接情况,交通灯的工作状况见下表所示。正常工作时交通灯在前4个状态间运行,出现紧急情况进入状态5,紧急情况结束后,恢复原状态。序号交通灯工作情况PC输出数据持续时间下个状态113绿灯亮,24红灯亮C3H20s2213黄

7、灯闪烁,24红灯亮A3H, E3H5s3313红灯亮,24绿灯亮66H20s4413红灯亮,24黄灯闪烁65H,67H5s15所有红灯亮紧急情况63H不确定恢复原状态1.软件设计思路本程序由主程序、定时中断子程序和外部中断子程序组成。主程序主要负责系统初始化和等待中断。定时中断子程序主要负责数码管显示刷新和红绿黄灯各种状态切换。外部中断子程序负责紧急情况处理和处理完恢复。8253计数的起停由 8255的PAO控制,8255的PAO输出1时,8253开始计数,交通灯 按正常状态切换工作,PA0输出0时,计数器停止工作,交通灯不再按正常状态切换。8253开始计数后每100ms发出一个中断申请信号,

8、 在中断子程序中先刷新数码管,然后判断当前状态,进入相应的处理程序进行处理。当有紧急情况时进入外部中断效劳子程序,先让8253停止计数,然后点亮所有的红灯,下一次外部中断处理时,恢复原来的交通灯状况,启动8253开始工作。2. 主程序设计主程序负责系统的初始化,然后数码管数据输出显示,同时检测PC键盘按键,有按键就退出程序。主程序的流程图如图3所示。系统初始化包括8253的初始化,8255的初始化,中断向量初始化以及设置交通灯工作 的初始状态。8253定时的时间是 100ms, clk0的输入时钟f = 46875hz,所以计数初值为 124FH3. 定时中断子程序定时中断子程序是本设计的重点

9、,负责完成数码管输出数据刷新和各个状态的处理切 换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图 所示。开始数码管输出数据处理状态比拟跳转1rr11状态1处理 程序状态2处理 程序状态3处理 程序状态4处理 程序V中断恢复中断返回图4定时中断效劳子程序数码管输出数据刷新子程序是实现倒计时 25s,用LEDOU表示输出的数据,ent用来软 件计时1s,就是计数10个100ms。LED输出是要将输出的数据转化为段选码。 LED数码管倒 计时显示子程序的流程图如图 5所示。图5 LED倒计时显示子程序根据当前的状态跳转到相应的处理程序,在处理程序中完成定时和状态的切换。状态和3的流程是一样的,先点亮对应的交通灯,再判断定时到了就可以切换了。状态2和4要实现黄灯的闪烁,间隔点亮和熄灭就可以了。状态1和3处理程序的流程图以状态 1为例如图6所示,其中NUM是状态1对应的PC 口输出,见前面的表中介绍。状态2和4处理程序以状态 1为例的流程图如图 7所示,其中NUM1和NUM2是状态1对应的PC 口输出。State1处理程序YVCNP? 一8255PC 口输 出数据NUMn rCNT+CNT=200?N辛State= 2CNT = 0|退出图6状态1处理程序流程图4. 外部中断效劳子程序外部中断效劳子程序主要用来处理紧急情况,将2个方向的车都停

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论