0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于8255A和8253芯片实现交通红绿灯模拟系统的应用方案

电子设计 来源:中国矿业大学计算机科学 作者:高珩,邱烨,鲍鹏 2021-03-23 14:47 次阅读

作者:高珩,邱烨,鲍鹏,纪永强

本文在综合分析了8255A 及8253 芯片的特点之后,运用二者的特性,进行了交通红绿灯模拟系统设计,在详细阐述了设计思想及电路设计方案之后,对该系统的有效性测试表明了该交通红绿灯模拟系统具有较为可靠的性能,对相关的电子设计具有一定的参考价值。在文章的最后,作者对电子设计的发展前景进行了展望,相信交通控制灯会在其未来的行业应用中发挥更大的作用。

1. 需求分析

本系统的设计首先必须了解交通路灯的亮灭规律。设有一个十字路口,1、3 为南,北方向, 2、4 为东,西方向,初始态为4 个路口的红灯全亮。之后, 1、3 路口的绿灯亮,2、4 路口的红灯亮, 1、3 路口方向通车。延迟一段时间后, 1、3 路口的绿灯熄灭,而1、3 路口的黄灯开始闪烁。闪烁若干次后, 1、3 路口的红灯亮, 同时 2、4 路口的绿灯亮, 2、4 路口方向开始通车。延迟一段时间后, 2、4 路口的绿灯熄灭,而黄灯开始闪烁。闪烁若干次后,再切换到1、3 路口方向。之后,重复上述过程。对于各组灯的亮灭,我们运用的是8255A 的输入输出功能。

2. 对于各组灯亮灭的时间控制方案

A 利用软件 –程序来完成对时间延时的控制。

此方案特点:软件定时是最简单的定时方法,它不需要硬件支持,只要让机器循环执行某一条或一系列指令,这些指令本身并没有具体的执行目的,但由于执行每条指令都需要一定的时间,重复执行这些指令就会占用一段固定的时间。因此,习惯上将这种延时方法称为软件延时。通过正确的选取指令和改变定时时间,灵活方便,而且节省费用。这种方法的缺点明显就是CPU 的利用律太低,在指定的循环期,CPU 不能去做任何其他有用的工作,而仅仅是在反复的循环,等待预定的定时时间到来,在许多情况下这样是不允许的[1]。比如,对动态存储器的定时刷新操作,只要处于开机状态,就需要一直不停地进行下去,显然不能采用软件延时。

B.利用芯片8253 芯片定时控制红绿灯的亮灭时间。

此方案特点:可编程定时器/计数器利用硬件电路和中断的方法控制定时,定时时间和范围完全有软件来确定和改变,并有微处理器时钟信号提供时间基准,因这种时钟信号由晶体震荡器产生,故计时精确稳定。但该时钟信号频率太高,所以要把它送到专门的计数器/定时器芯片进行分频后,才能产生个中所需要的定时信号。用可编程定时器/计数器电路进行定时时,先要根据预定的定时时间,用指令对计数器/定时器芯片设定计算初值,然后启动芯片进行工作。计数器一旦开使工作后,CPU 就可以去做别的工作了,等计数器到了预定的时间,变自动形成一个输出信号,该信号可以向CPU 提出中断请求,通CPU 定时时间已到,使CPU 做相应的处理[2]。或者直接输出信号启动设备去工作。这种方法不但显著提高了CPU 的利用率,而且定时时间由软件来设置,使用起来十分的灵活方便,加上定时时间又很精确,所以获得了广泛的应用。

由上可知,该模拟系统设计的目的是控制车辆的有序流动,CPU 在程序执行过程中并没有其他的工作要做只是单一的使程序正常运行,所以也就不用考虑其利用率的问题的,在从节省资金的方面考虑第一种方案比第二种少用一个8253,而且第一种方案只用一个芯片在维修方面也比第二种方案方便。综合这些因素,我们最终选择第一种方案作为我们的设计方案。

3. 电路设计及功能

3.1 8255 原理及接线图

8255 是一种通用可编程并行输入输出接口芯片,通过对它进行编程,芯片可工作于不同的工作方式,用8255 作接口时,通常不需要附加外部逻辑电路就可直接为CPU 与外设之间提供数据通道,8255 内部包含3 个8 位输入输出端口A,B,C,通过外部24 根输入输出线与外设交换数据或进行通信联络。端口A 和端口B 都可以用作一个8 位的输入口或8 位的输出口,出口既可作8 位输入输出口又可分为两个4 位输入输出口,还常常用来配合A口和B 口工作,用来产生A 口和B 口的端口状态信号,8255A 有两类控制字,一类控制字用来定义各端口的工作方式,称为方式选择控制字,另一类控制字用于对C 端口的任一位置进行置位或者复位操作,称为置位复位控制字对8255A 进行编程时这两种控制字都要写入控制字寄存器中,但方式选择控制字的D7 位总是1,而置位复位控制字的D7 位总是0[3]。

3.2 系统设计应注意的问题

A 。程序中应设定好8255A 的工作模式,使三个端口均工作于方式0,并处于输出态[4]。

B. 8255A 的A 端口地址为:300H, B 端口地址为: 301H, C 端口地址为: 302H, 控制口地址为:303H

C.8255A 可编程并行接口芯片的特性和编程命令: 8255A 具有两个人8 位(A 口和B 口)和两个4 位(C 口高/低4 位)并行I/O 端口。

4. 软件模拟界面

软件模拟界面如图1 所示。

图1 软件模拟界面

5. 软件模拟流程图

软件模拟流程图如图2 所示。

图 2 软件模拟流程图示意

6. 系统核心程序代码

7. 测试与分析

编写次程序的时候遇到的主要问题及解决方案:

A. 延时问题的解决:作者查阅了许多相关资料,最后选中程序中所用到的提取系统时间的这个方法,其原因主要是因为这段语句比较短,不容易出错,但是有一个缺点就是不能使所添入的时间加上系统时间大于等于24:00,要不就会出错,但是这个缺陷可以人工避免。

B. 循环问题的解决:针对该问题作者也尝试了很多方法,但最后选择了GOTO 跳转语句解决这个问题。虽然在高级程序语言中我们并不提倡使用GOTO 语句,但由于我们在此使用的汇编语言需要经常性地与硬件交互[5],使用该语句反而会使得问题解决起来最简单,最方便,程序易懂,且不易出错。

8. 结论

电子设计正在当今社会发挥越来越重要的作用,其采用的软硬件结合技术也逐渐成熟,该模拟系统正是采用软硬相结合的方法实现的。该模拟交通红绿灯的设计实现对于读者了解在我们日常生活中发挥巨大作用的交通指挥系统很有帮助,其对于交通灯原理的揭示对于电子设计的探索研究提供了思路,相信随着时代的发展,我们能见证更多更好的电子设计产品问世。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409117
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92975
  • 定时器
    +关注

    关注

    23

    文章

    3147

    浏览量

    112036
收藏 人收藏

    评论

    相关推荐

    红绿灯控制系统的LED城市路灯方案

    将LED路灯装置与交通红绿灯控制系统结合在一起,利用每一路段红绿灯的转换实现对下一路段灯光强弱的控制。将当前市场上 LED 集灯板上的LED灯分为两组,在满足不同时段照明要求前
    发表于 10-17 14:44 3507次阅读

    用PLC实现交通红绿灯控制方法及原理

    用PLC实现交通红绿灯的控制电路熟悉PLC编程原理及方法。掌握定时器使用方法。
    发表于 03-19 15:15

    红绿灯电路图

    各位谁有关于8255a设计的红绿灯电路图,给小弟指点指点
    发表于 06-18 21:46

    交通红绿灯带仿真和程序

    交通红绿灯带仿真和程序
    发表于 03-29 10:53

    交通红绿灯

    本帖最后由 samuergao 于 2014-7-3 14:13 编辑 交通灯,并显示当前时间和倒计时,包含了单条路遇到人行道的红绿灯,还有十字路口的红绿灯,大家帮看看有的改进没有。
    发表于 07-03 12:12

    如何去实现一种交通红绿灯设计

    1、功能描述观察十字路口红绿灯工作流程,设计交通灯。1、初始时:南北向、东西向直行左转均为红灯2、南北向直行:①南北向直行绿灯亮,延时若干秒②启动南北向左转数码管显示:倒计时6秒;同时南北向直行
    发表于 11-09 09:21

    基于单片机的交通红绿灯控制系统的设计

    前一段时间,做了一个关于基于单片机的交通红绿灯控制系统的设计
    发表于 11-10 06:34

    如何利用单片机设计一个红绿灯

    设计要求利用单片机设计一个红绿灯实现了数显倒计时与灯光变换,其中30秒红灯,25秒绿灯,5秒黄灯,实现东西与南北灯光变换,符合红绿灯逻辑。
    发表于 11-29 06:34

    交通红绿灯PLC控制系统编程方法与技巧

    本文介绍了交通红绿灯基本控制形式,针对带绿闪的红绿灯和带数显的红绿控制和实现方法,详细论述了相应的编程方法和技巧。实验证明编制的程序运行可靠,简单实用。关键
    发表于 08-14 10:31 152次下载

    基于可编程控制的交通红绿灯模拟系统设计

    本文在综合分析了8255A8253 芯片的特点之后,运用二者的特性,进行了交通红绿灯模拟系统
    发表于 05-18 11:03 199次下载
    基于可编程控制的<b class='flag-5'>交通红绿灯</b><b class='flag-5'>模拟</b><b class='flag-5'>系统</b>设计

    基于自定义时钟脉冲的交通红绿灯控制设计

    以三菱FX2N型PLC作为控制核心元件,阐明交通红绿灯的控制设计思路和控制方案。以PLC定时器构成的自定义时钟脉冲程序段作为程序基本单元设计的交通红绿灯控制程序
    发表于 06-19 11:42 5895次阅读
    基于自定义时钟脉冲的<b class='flag-5'>交通红绿灯</b>控制设计

    将VR技术应用于交通红绿灯

    大家都知道,不管是行人还是汽车,在过路口的时候,一般都会有红绿灯的存在,如果没有红绿灯的话,那整个交通都会混乱,交通事故绝对是层出不穷,而且堵车也会堵得水泄不通,所以
    发表于 12-22 09:38 3675次阅读

    中文编程鸿蒙Hi3861开发基础案例之-03交通红绿灯

    中文编程鸿蒙Hi3861开发模拟交通红绿灯亮与灭控制
    的头像 发表于 05-11 11:27 1411次阅读
    中文编程鸿蒙Hi3861开发基础案例之-03<b class='flag-5'>交通红绿灯</b>

    用树莓派控制交通红绿灯(简洁版)

    前面我们通过控制LED灯和读取按钮状态,简单演示了树莓派如何通过GPIO来与外部世界沟通。今天我们要用树莓派模拟一个控制交通红绿灯,让大家进一步学习如何通过程序和计算机的I/O来解决实际问题。
    的头像 发表于 07-02 15:08 1206次阅读
    用树莓派控制<b class='flag-5'>交通红绿灯</b>(简洁版)

    用树莓派控制交通红绿灯(进阶版)

    哇奥,今天才发现上一次建造的红绿灯居然不对,绿灯一般在下方,当红灯变绿灯时黄灯闪烁,我做的是绿灯变红灯时黄灯闪烁!。这在我们开发时也会碰到,就像找bug一样,对于发现的问题要及时修正。
    的头像 发表于 07-02 15:10 1028次阅读
    用树莓派控制<b class='flag-5'>交通红绿灯</b>(进阶版)