按下开关,绿灯闪三秒,黄灯闪两秒,红灯亮单片机51 代码
时间: 2023-07-02 10:18:46 浏览: 104
51单片机红绿灯 仿真+代码
以下是8051单片机的代码,实现按下开关,绿灯闪三秒,黄灯闪两秒,红灯亮:
```
#include <reg52.h> // 引入8051单片机的寄存器定义文件
sbit LED_GREEN = P1^0; // 定义绿灯连接的GPIO引脚
sbit LED_YELLOW = P1^1; // 定义黄灯连接的GPIO引脚
sbit LED_RED = P1^2; // 定义红灯连接的GPIO引脚
sbit SWITCH = P3^2; // 定义按键连接的GPIO引脚
void delay(unsigned int ms) // 延时函数,参数为延时时间,单位为毫秒
{
unsigned int i, j;
for(i=0; i<ms; i++)
{
for(j=0; j<120; j++);
}
}
void main()
{
while(1)
{
if(SWITCH == 0) // 如果按键被按下
{
LED_GREEN = 1; // 绿灯亮
delay(3000); // 延时3秒
LED_GREEN = 0; // 绿灯灭
LED_YELLOW = 1; // 黄灯亮
delay(2000); // 延时2秒
LED_YELLOW = 0; // 黄灯灭
LED_RED = 1; // 红灯亮
}
else
{
LED_RED = 0; // 红灯灭
}
}
}
```
这段代码实现了一个简单的按键控制LED灯的功能。当按键被按下时,绿灯会亮3秒,黄灯会亮2秒,红灯会一直亮;当按键没有被按下时,所有灯都会灭。
阅读全文