multisim简易交通灯电路仿真设计 功能1: 1.状态00:东西方向绿灯亮,南北方向红灯亮,持续时间20s; 2.状态01:东西方向黄灯亮,南北方向红灯亮,持续时间5s; 3.状态10:东西方向红灯亮,南北方向绿灯亮,持续时间20s; 4.状态11:东西方向红灯亮,南北方向黄灯亮,持续时间5s; 5.一组数码管显示; 资料包含:仿真源文件+原理说明书+演示视频 功能2: 1.状态00:东西方向绿灯亮,南北方向红灯亮,持续时间20s; 2.状态01:东西方向黄灯亮,南北方向红灯亮,持续时间5s; 3.状态10:东西方向红灯亮,南北方向绿灯亮,持续时间20s; 4.状态11:东西方向红灯亮,南北方向黄灯亮,持续时间5s; 5.二组数码管显示; 资料包含:仿真源文件+原理说明书+演示视频 功能3: 1.状态00:东西方向绿灯亮,南北方向红灯亮,持续时间30s; 2.状态01:东西方向黄灯亮,南北方向红灯亮,持续时间5s; 3.状态10:东西方向红灯亮,南北方向绿灯亮,持续时间30s; 4.状态11:东西方向红灯亮,南北方向黄灯亮,持续时间5s; 5.二组数码管显示; 6.交通灯红绿灯时间可以通过拨码开关进行修改,任意置数。 资料包含:仿真源文件+原理说明书+演示视频 功能4: 1.状态00:东西方向绿灯亮,南北方向红灯亮,持续时间30s; 2.状态01:东西方向黄灯亮,南北方向红灯亮,持续时间5s; 3.状态10:东西方向红灯亮,南北方向绿灯亮,持续时间30s; 4.状态11:东西方向红灯亮,南北方向黄灯亮,持续时间5s; 5.二组数码管显示; 6.交通灯红绿灯时间可以通过拨码开关进行修改,任意置数。 资料包含:仿真源文件+原理说明书+演示视频 功能5: 1.状态00:东西方向绿灯亮,南北方向红灯亮,持续时间35s; 2.状态01:东西方向黄灯亮,南北方向红灯亮,持续时间5s; 3.状态10:东西方向红灯亮,南北方向绿灯亮,持续时间35s; 4.状态11:东西方向红灯亮,南北方向黄灯亮,持续时间5s; 5.二组数码管显示; 6.交通灯红绿灯时间可以通过拨码开关进行修改,任意置数。 7.当黄灯亮时,黄灯进行闪烁,1HZ频率。 资料包含:仿真源文件+原理说明书+演示视频 功能6: 1.主支干道轮流通行,主道每次放行30S,支道每次放行20S. 2.绿灯亮表示放行,红灯亮表示禁止。 3.每次绿灯变红灯前,黄灯先亮5S,黄灯亮时,另一干道的红 灯按照1HZ频率闪烁,成为等待状态。 4.时间显示系统以秒作单位,按减计数法。 5.红,绿,黄灯亮时间能在0-99S内任意设定。 资料包含:仿真源文件+原理说明书+演示视频
嘿,各位技术爱好者们!今天来跟大家唠唠Multisim里简易交通灯电路仿真设计这有趣的玩意儿。咱们这设计可有不少功能,一起来瞧瞧。
功能1 - 基础款交通灯
- 状态切换:
- 状态00:东西方向绿灯亮,南北方向红灯亮,持续20s。这就好比东西方向的车可以欢快地通行啦,南北方向的车就得乖乖等着。
- 状态01:东西方向黄灯亮,南北方向红灯亮,持续5s。黄灯亮起,就提醒东西方向的车要准备停车咯。
- 状态10:东西方向红灯亮,南北方向绿灯亮,持续20s。现在轮到南北方向的车驰骋啦。
- 状态11:东西方向红灯亮,南北方向黄灯亮,持续5s。南北方向的车也该准备刹车咯。
- 还有一组数码管显示,虽然简单,但能让大家清楚看到倒计时。
功能2 - 两组数码管的小升级
功能2和功能1很相似,只不过把数码管从一组升级到了两组,显示可能会更清晰直观。
功能3 - 时间变长且可拨码修改
- 状态时间调整:
绿灯亮的时间变成了30s,整个周期时间变长,车流量大的时候可能更实用。
- 拨码开关修改时间:
这就厉害了,通过拨码开关能任意设置红绿灯时间。比如在代码层面,咱们可以这样写(这里以简单的伪代码示例):
# 假设定义拨码开关的输入引脚 dip_switch_input = get_dip_switch_value() # 根据拨码开关的值来设置绿灯时间 if dip_switch_input == 0b001: green_light_time = 20 elif dip_switch_input == 0b010: green_light_time = 25 else: green_light_time = 30这里通过获取拨码开关的值,来动态设置绿灯时间,灵活性大大增加。
功能4 - 同功能3
功能4和功能3几乎一样,再次强调了这个实用的功能组合。
功能5 - 黄灯闪烁新花样
- 黄灯闪烁:
在功能3的基础上,当黄灯亮时,它可不是一直亮着,而是以1HZ的频率闪烁。代码实现上,咱们可以用定时器来控制:
// 假设使用51单片机,定义定时器0 TMOD = 0x01; // 定时器0工作在模式1 TH0 = (65536 - 50000) >> 8; // 50ms定时初值 TL0 = (65536 - 50000) & 0xff; ET0 = 1; // 允许定时器0中断 EA = 1; // 开总中断 TR0 = 1; // 启动定时器0 // 定时器0中断服务函数 void timer0_ISR(void) interrupt 1 { static unsigned char count = 0; TH0 = (65536 - 50000) >> 8; TL0 = (65536 - 50000) & 0xff; count++; if (count == 20) { // 20次50ms就是1s count = 0; // 反转黄灯状态 P1^=0x02; // 假设黄灯连接在P1.1口 } }这段代码通过定时器0实现了1s的定时,每1s反转黄灯的状态,实现闪烁效果。
功能6 - 主支干道轮流放行
- 主支干道逻辑:
主道每次放行30S,支道每次放行20S。绿灯变红灯前,黄灯先亮5S,而且另一干道的红灯按照1HZ频率闪烁。
- 时间显示与设定:
时间显示按减计数法,红、绿、黄灯亮时间还能在0 - 99S内任意设定。这就需要更复杂的逻辑代码来实现,不过思路还是类似,通过各种输入来控制时间和状态的切换。
每个功能都提供了仿真源文件、原理说明书和演示视频,这对于咱们学习和研究可太有帮助啦。无论是新手想了解交通灯的基本原理,还是老手想优化代码逻辑,这些资料都能派上用场。大家不妨自己动手在Multisim里实践实践,说不定能发现更多有趣的点子呢!