交通灯控制器的设计与实现_第1页
交通灯控制器的设计与实现_第2页
交通灯控制器的设计与实现_第3页
交通灯控制器的设计与实现_第4页
交通灯控制器的设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

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

2、部分: 1)实时修改交通灯的持续时间。 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 路口的绿灯熄灭

3、,而 1,3路口的黄灯开始闪烁( 1HZ )。闪烁 5次后,1、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的接

6、口电路如图 2所示。交通灯的对应关系如 下: L7 L6 L5 L2 L1 L0 PC7 PC6 PC5 PC2 PC1 PC0 13红灯 13黄灯 13绿灯 24红灯 24黄灯 24绿灯 实验平台上提供一组六个 LED数码管。插孔CS1用于数码管段选的输出选通,插孔CS2 用于数码管位选信号的输出选通。本设计用4个数码管来倒计时。 紧急中断模块是由单脉冲发生单元和8259中断控制器,单脉冲发生单元主要用来请求 中断,然后做出紧急情况处理。 PC BUS 图1系统硬件电路图 图2 8255接口电路 六、软件设计 根据交通灯的工作过程和电路连接情况,交通灯的工作状况见下表所示。正常工作时交 通灯

7、在前4个状态间运行,出现紧急情况进入状态5,紧急情况结束后,恢复原状态。 序号 交通灯工作情况 PC输出数据 持续时间 下个状态 1 13绿灯亮,24红灯亮 C3H 20s 2 2 13黄灯闪烁,24红灯亮 A3H, E3H 5s 3 3 13红灯亮,24绿灯亮 66H 20s 4 4 13红灯亮,24黄灯闪烁 65H,67H 5s 1 5 所有红灯亮(紧急情况) 63H 不确定 恢复原状态 1.软件设计思路 本程序由主程序、定时中断子程序和外部中断子程序组成。主程序主要负责系统初始化 和等待中断。定时中断子程序主要负责数码管显示刷新和红绿黄灯各种状态切换。外部中断 子程序负责紧急情况处理和处

8、理完恢复。 8253计数的起停由 8255的PAO控制,8255的PAO输出1时,8253开始计数,交通灯 按正常状态切换工作,PA0输出0时,计数器停止工作,交通灯不再按正常状态切换。8253 开始计数后每100ms发出一个中断申请信号, 在中断子程序中先刷新数码管,然后判断当前 状态,进入相应的处理程序进行处理。当有紧急情况时进入外部中断服务子程序,先让8253 停止计数,然后点亮所有的红灯,下一次外部中断处理时,恢复原来的交通灯状况,启动 8253开始工作。 2. 主程序设计 主程序负责系统的初始化,然后数码管数据输出显示,同时检测PC键盘按键,有按键 就退出程序。主程序的流程图如图3所

9、示。 系统初始化包括8253的初始化,8255的初始化,中断向量初始化以及设置交通灯工作 的初始状态。8253定时的时间是 100ms, clk0的输入时钟f = 46875hz,所以计数初值为 124FH 3. 定时中断子程序 定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切 换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图 所示。 开始 数码管输出 数据处理 状态比较跳转 1 r r 1 1 状态1处理 程序 状态2处理 程序 状态3处理 程序 状态4处理 程序 V 中断恢复 中断返回 图4定时中断服务子程序 数码管输出数据刷新子程序

10、是实现倒计时 25s,用LEDOU表示输出的数据,ent用来软 件计时1s,就是计数10个100ms。LED输出是要将输出的数据转化为段选码。 LED数码管倒 计时显示子程序的流程图如图 5所示。 图5 LED倒计时显示子程序 1 根据当前的状态跳转到相应的处理程序,在处理程序中完成定时和状态的切换。状态 和3的流程是一样的,先点亮对应的交通灯,再判断定时到了就可以切换了。状态2和4 要实现黄灯的闪烁,间隔点亮和熄灭就可以了。状态1和3处理程序的流程图(以状态 1 为例)如图6所示,其中NUM是状态1对应的PC 口输出,见前面的表中介绍。状态2和 4处理程序(以状态 1为例)的流程图如图 7所示,其中NUM1和NUM2是状态1对应的 PC 口输出。 State1处理程 序 Y VCNP? 一 8255PC 口输 出数据NUM n r CNT+ CNT=200? N辛 State= 2 CNT = 0 | 退出 图6状态1处理程序流程图 4. 外部中断服务子程序 外部中断服务子程序主要用来处理紧急情况,将2个方向的车都停止运行,

温馨提示

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

评论

0/150

提交评论