基于单片机的交通灯显示系统代码
时间: 2024-01-11 11:02:26 浏览: 23
以下是一个基于单片机的交通灯显示系统代码,使用的是8051单片机:
```
#include <reg52.h>
// 定义IO口
sbit red1 = P2^0;
sbit yellow1 = P2^1;
sbit green1 = P2^2;
sbit red2 = P2^3;
sbit yellow2 = P2^4;
sbit green2 = P2^5;
void delay(int time) {
int i,j;
for(i=0;i<time;i++)
for(j=0;j<120;j++);
}
void main() {
while(1) {
// 第一组红绿灯
red1 = 1; // 红灯亮
yellow1 = 0;
green1 = 0;
red2 = 0;
yellow2 = 1; // 黄灯亮
green2 = 0;
delay(1000); // 延时1秒
red1 = 0;
yellow1 = 0;
green1 = 1; // 绿灯亮
red2 = 1; // 红灯亮
yellow2 = 0;
green2 = 0;
delay(1000); // 延时1秒
red1 = 0;
yellow1 = 1; // 黄灯亮
green1 = 0;
red2 = 0;
yellow2 = 0;
green2 = 1; // 绿灯亮
delay(1000); // 延时1秒
// 第二组红绿灯
red1 = 0;
yellow1 = 0;
green1 = 0;
red2 = 1; // 红灯亮
yellow2 = 1; // 黄灯亮
green2 = 0;
delay(1000); // 延时1秒
red1 = 1; // 红灯亮
yellow1 = 0;
green1 = 0;
red2 = 0;
yellow2 = 0;
green2 = 1; // 绿灯亮
delay(1000); // 延时1秒
red1 = 0;
yellow1 = 1; // 黄灯亮
green1 = 0;
red2 = 0;
yellow2 = 0;
green2 = 1; // 绿灯亮
delay(1000); // 延时1秒
}
}
```
这个代码实现了两组红绿灯的交替显示,每组红绿灯的时间间隔为1秒。你可以根据实际需要进行修改。