51单片机交通灯程序
时间: 2023-08-12 13:04:01 浏览: 88
51单片机交通灯程序,控制数码管、定时器的使用
以下是基于51单片机的交通灯程序:
```c
#include <reg52.h> // 引入51单片机宏定义和寄存器定义
#define uint unsigned int // 定义 uint 为无符号整数类型
#define uchar unsigned char // 定义 uchar 为无符号字符类型
sbit LED1 = P1^0; // 定义 LED1 对应的引脚为 P1.0
sbit LED2 = P1^1; // 定义 LED2 对应的引脚为 P1.1
sbit LED3 = P1^2; // 定义 LED3 对应的引脚为 P1.2
void delay(uint t) // 延时函数
{
uint i, j;
for(i = t; i > 0; i--)
for(j = 110; j > 0; j--);
}
void main()
{
while(1) // 无限循环
{
LED1 = 0; // 绿灯亮
LED2 = 1; // 红灯灭
LED3 = 1; // 黄灯灭
delay(3000); // 等待3秒
LED1 = 1; // 绿灯灭
LED2 = 1; // 红灯灭
LED3 = 0; // 黄灯亮
delay(1000); // 等待1秒
LED1 = 1; // 绿灯灭
LED2 = 0; // 红灯亮
LED3 = 1; // 黄灯灭
delay(3000); // 等待3秒
LED1 = 1; // 绿灯灭
LED2 = 1; // 红灯灭
LED3 = 0; // 黄灯亮
delay(1000); // 等待1秒
}
}
```
该程序中,使用了51单片机的三个引脚控制三个LED灯,实现了红绿黄三色交通灯的基本功能。其中,延时函数 `delay` 控制了各个灯亮灭的时间。程序中通过不断循环实现了交通灯的持续运作。
阅读全文