51单片机交通灯c语言程序
时间: 2023-10-28 12:01:07 浏览: 106
下面是一个简单的51单片机交通灯的C语言程序:
```
#include <reg51.h>
// 定义IO口
sbit red1=P1^0;
sbit yellow1=P1^1;
sbit green1=P1^2;
sbit red2=P1^3;
sbit yellow2=P1^4;
sbit green2=P1^5;
// 函数声明
void delay(unsigned int x);
void main()
{
while(1)
{
green1=1; // 第一路绿灯亮
red2=1; // 第二路红灯亮
delay(5000); // 延时5秒
yellow1=1; // 第一路黄灯亮
delay(2000); // 延时2秒
green1=0; // 第一路绿灯灭
yellow1=0; // 第一路黄灯灭
red1=1; // 第一路红灯亮
yellow2=1; // 第二路黄灯亮
delay(2000); // 延时2秒
red2=0; // 第二路红灯灭
yellow2=0; // 第二路黄灯灭
green2=1; // 第二路绿灯亮
delay(5000); // 延时5秒
}
}
// 延时函数
void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
```
这个程序使用了51单片机的6个IO口,分别对应两组红黄绿交通灯。在程序中,我们使用了一个无限循环,每次循环都是一次完整的红黄绿交替过程。在每个阶段,我们使用延时函数控制灯的亮灭时间。
阅读全文