编写51单片机交通灯代码
时间: 2024-01-25 12:03:44 浏览: 66
下面是一个简单的51单片机交通灯代码,使用的是循环方式控制交通灯的变化。
```
#include <reg52.h>
sbit red1 = P1^0; //定义红灯1
sbit yellow1 = P1^1; //定义黄灯1
sbit green1 = P1^2; //定义绿灯1
sbit red2 = P1^3; //定义红灯2
sbit yellow2 = P1^4; //定义黄灯2
sbit green2 = P1^5; //定义绿灯2
void delay(unsigned int xms) //延时函数
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
while(1)
{
red1 = 1; //红灯1亮
green2 = 1; //绿灯2亮
delay(5000); //延时5秒
yellow1 = 1; //黄灯1亮
red1 = 0; //红灯1灭
delay(2000); //延时2秒
green1 = 1; //绿灯1亮
yellow1 = 0; //黄灯1灭
delay(5000); //延时5秒
yellow2 = 1; //黄灯2亮
green2 = 0; //绿灯2灭
delay(2000); //延时2秒
}
}
```
这个代码使用了一个`delay()`函数来进行延时,所以需要在程序开头定义这个函数。在循环中,交通灯的变化是按照红绿黄的顺序进行的,每个灯亮的时间可以根据实际情况进行调整。
阅读全文