51单片机交通灯程序
时间: 2023-08-12 14:04:01 浏览: 86
51单片机实现交通灯程序
5星 · 资源好评率100%
以下是一个简单的51单片机交通灯程序:
```
#include<reg52.h> //头文件
sbit R1=P1^0; //定义红灯引脚
sbit Y1=P1^1; //定义黄灯引脚
sbit G1=P1^2; //定义绿灯引脚
sbit R2=P1^3; //定义红灯引脚
sbit Y2=P1^4; //定义黄灯引脚
sbit G2=P1^5; //定义绿灯引脚
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) //循环执行
{
R1=1; //红灯亮
Y1=0; //黄灯灭
G1=0; //绿灯灭
R2=0; //红灯灭
Y2=0; //黄灯灭
G2=1; //绿灯亮
delay(5000); //绿灯持续时间5秒
R1=1; //红灯亮
Y1=1; //黄灯亮
G1=0; //绿灯灭
R2=0; //红灯灭
Y2=1; //黄灯亮
G2=0; //绿灯灭
delay(2000); //黄灯持续时间2秒
R1=0; //红灯灭
Y1=0; //黄灯灭
G1=1; //绿灯亮
R2=1; //红灯亮
Y2=0; //黄灯灭
G2=0; //绿灯灭
delay(5000); //绿灯持续时间5秒
R1=1; //红灯亮
Y1=1; //黄灯亮
G1=0; //绿灯灭
R2=0; //红灯灭
Y2=1; //黄灯亮
G2=0; //绿灯灭
delay(2000); //黄灯持续时间2秒
}
}
```
以上程序实现了两组交通灯的循环控制,每组交通灯包括红灯、黄灯和绿灯。其中,绿灯持续时间为5秒,黄灯持续时间为2秒,红灯持续时间为绿灯和黄灯之和。程序中的延时函数使用了简单的循环延时方式,实际应用中可以使用定时器来更精确地控制时间。
阅读全文