基于51单片机实现红绿灯功能

该博客介绍了使用51单片机设计的交通信号灯控制系统,包括东西南北方向的红绿灯控制,按键调节功能,夜间模式以及实时剩余时间显示。设计中利用了中断、定时器和数码管动态显示技术,实现了不同模式下的信号灯切换和时间控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

评论区有工程文件,自取

设计目标:

1、东西方向、南北方向均有红、黄、绿三种信号灯,初始红灯30秒,黄灯闪烁3秒,绿灯30秒,东西方向红灯时刻,南北方向绿灯,南北方向绿灯,东西方向红灯。

2、按键调节与控制功能,通过按键,可以控制某一个方向长时间绿灯,另一个方向长时间红灯;通过按键可以调整某一个方向的红灯时长,比如调整东西方向红灯40秒,绿灯20秒,于此同时,南北方向红灯20秒,绿灯40秒。

3、夜间模式按钮按下,所有方向显示黄灯闪烁。

4、实时提醒灯亮的剩余时间。

设计内容:

(1)我们将东西南北四个方向的led红绿灯分为两组(东西和南北)接到51单片机的P2口,利用P2口上引脚的高低电平对led灯的 亮灭实现控制
(2)我们的数码管采用动态显示的方式,将数码管串联(除了引脚5,10控制为分为两组)接入到P0引脚,用数码管的控制位(即5,10引脚)对数码管实现片选,分别给数码管的个位和十位送不同的数字,快速显示,实现动态显示的功能。
(3)我们使用了单片机的四个中断,包括外部中断0,定时/计数器中断0,外部中断1,定时/计数器中断1。定时计数器中断0主要实现计数功能,定时计数器中断0主要实现夜间模式功能。两个外部中断,实现仅限东西通行或者仅限南北通行。采用了6个按键实现加减,模式转换,确定,东西同行,南北通行。

 

#include<reg51.h>
char count0,count1;//定时器0中断次数
sbit green_nb=P2^0;
sbit yellow_nb=P2^1; 
sbit red_nb=P2^2;
sbit 
观察十字路口红绿灯工作流程,设计交通灯1、初始时:南北向、东西向直行左转2南北向直行: ①南北向直行绿灯亮,延时若干秒 ②启动南北向左转数码管显示:倒计时6秒;同时南北向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向直行绿灯灭,南北向直行灯亮,延时3秒 ③南北向左转数码管倒计时显示结束,关闭;同时南北向直行灯灭,南北向直行灯亮 3、南北向左转: ①南北向左转绿灯亮,延时若干秒 ②启动东西向直行数码管显示:倒计时6秒;同时南北向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后南北向左转绿灯灭,南北向左转灯亮,延时3秒 ③东西向直行数码管倒计时显示结束,关闭;同时南北向左转灯灭,南北向左转灯亮 4、东西向直行: ①东西向直行绿灯亮,延时若干秒 ②启动东西向左转数码管显示:倒计时6秒;同时东西向直行绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向直行绿灯灭,东西向直行灯亮,延时3秒 ③东西向左转数码管倒计时显示结束,关闭;同时东西向直行灯灭,东西向直行灯亮 5、东西向左转: ①东西向左转绿灯亮,延时若干秒 ②启动南北向直行数码管显示:倒计时6秒;同时东西向左转绿灯闪烁3下,灭亮灭亮灭亮共3秒,然后东西向左转绿灯灭,东西向左转灯亮,延时3秒 ③南北向直行数码管倒计时显示结束,关闭;同时东西向左转灯灭,东西向左转灯亮
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大青蛙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值