评论区有工程文件,自取
设计目标:
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