单片机沙漏led灯的代码
时间: 2023-12-15 11:02:07 浏览: 32
下面是一个使用单片机控制LED灯实现沙漏效果的代码。
```c
#include <reg52.h>
sbit LED = P0^0;
void delay(unsigned int count) {
unsigned int i, j;
for(i = 0; i < count; i++) {
for(j = 0; j < 120; j++);
}
}
void main() {
unsigned int i;
while(1) {
LED = 0; // 打开LED灯
delay(500); // 延时0.5秒
LED = 1; // 关闭LED灯
delay(500); // 延时0.5秒
for(i = 0; i < 3; i++) {
LED = 0; // 打开LED灯
delay(200); // 延时0.2秒
LED = 1; // 关闭LED灯
delay(200); // 延时0.2秒
}
for(i = 0; i < 3; i++) {
LED = 0; // 打开LED灯
delay(100); // 延时0.1秒
LED = 1; // 关闭LED灯
delay(100); // 延时0.1秒
}
for(i = 0; i < 3; i++) {
LED = 0; // 打开LED灯
delay(50); // 延时0.05秒
LED = 1; // 关闭LED灯
delay(50); // 延时0.05秒
}
}
}
```
这段代码使用了单片机的延时函数来控制LED灯的开关状态,实现了沙漏灯效果。这里利用延时函数产生不同的延时时间来控制LED灯不同的闪烁速度与间隔。