346微机原理-基于8086交通灯系统仿真设计

基于 8086 的交通灯系统仿真设计

项目简介

这份交通灯设计已经不只是普通顺序切换,而是包含自动控制和手动应急控制两套逻辑。
系统通过 8255 控制交通灯与动态数码管显示,通过 8253 提供计时节拍,实现南北、东西方向的绿灯、黄灯和红灯顺序切换。除正常模式外,系统还支持紧急状态,一旦进入,四个方向全部切换为红灯,倒计时停止。

这种题目很适合写成状态机课设。
正常循环和紧急覆盖是两套完全不同的规则,程序必须分层处理。

相关资料截图

图一

图二

主要功能

  • 支持十字路口交通灯自动切换控制。
  • 数码管显示当前方向剩余时间。
  • 支持正常状态下的多阶段灯态循环。
  • 支持紧急状态下全方向红灯控制。
  • 通过 8253 提供状态计时。

方案设计

系统整体采用“自动循环加应急覆盖”的方式。
正常状态下,程序按预设时长依次执行全红、南北绿、南北黄、东西绿、东西黄等多个阶段,并同步刷新数码管剩余时间;紧急状态一旦触发,则立即打断当前流程,将所有方向切换为红灯并暂停计时。

这种结构最重要的,不是时长数字本身,而是模式优先级。
应急状态必须拥有最高优先权,否则整个系统就缺少安全边界。

模块设计

1. 交通状态控制模块

红黄绿灯输出负责定义各阶段通行关系。
不同阶段的灯态必须彼此互斥,不能混乱。

2. 计时显示模块

数码管负责显示当前阶段剩余时间。
它让交通状态切换更具可读性。

3. 应急控制模块

紧急状态输入用于强制系统进入全红模式。
这是整套交通灯系统里非常关键的一条安全分支。

程序流程与实现重点

系统启动后先初始化 8253、8255、交通灯输出和数码管显示。
在正常模式下,程序按阶段顺序执行全红、单方向放行和黄灯过渡,并根据剩余时间刷新数码管;若检测到紧急状态按钮触发,则立即中断当前流程,将四个方向全部切为红灯并冻结时间显示,直到应急状态解除。

实现重点主要包括:

  • 正常状态机的阶段顺序必须严格固定。
  • 紧急状态要覆盖当前一切普通流程。
  • 数码管时间显示要始终与当前灯态阶段一致。

调试与分析

交通灯系统调试时,最值得重点看的就是应急模式。
正常循环做出来并不难,真正容易露出问题的是在某一阶段中途切入紧急状态时,系统能不能立刻切到全红、计时能不能及时冻结。安全类边界越清楚,系统越像真正的控制器。

另外,长时间阶段和短时间阶段交替出现时,也要注意显示是否平稳。
特别是黄灯这种过渡阶段,虽然时间短,但恰恰最容易暴露状态切换是否自然。

结语

这套交通灯系统仿真设计的价值,在于它把常规通行和应急管控放进了同一个状态框架里。
不是简单循环亮灯,而是在组织一套有正常逻辑也有强制覆盖逻辑的交通控制过程。

posted @ 2026-04-22 09:43  电子diy爱好者  阅读(22)  评论(0)    收藏  举报