```c
include
// 延时函数,用于产生固定的延时时间
void Delay(unsigned int t) {
while (t--);
}
// 主函数
void main() {
unsigned char i;
unsigned char temp;
unsigned char led_state = 0xFE; // 初始状态为0xFE,即所有LED亮
while (1) { // 无限循环
P1 = led_state; // 将当前LED状态输出到P1口
// 循环左移LED状态
for (i = 0; i < 7; i++) { // 7次循环,因为最高位不变
temp = led_state; // 保存当前状态
led_state <<= 1; // 左移一位
led_state |= 0x01; // 将最低位设置为1,实现循环左移
}
Delay(10000); // 延时10000微秒,即10秒
}
}
```
代码解释
头文件 :`include ` 包含了8051单片机的定义和函数库。延时函数:
`void Delay(unsigned int t)` 用于产生固定的延时时间,通过循环减1的方式实现。
主函数
延时函数:
`void Delay(unsigned int t)` 用于产生固定的延时时间,通过循环减1的方式实现。
主函数
`unsigned char led_state = 0xFE;` 初始化LED状态为所有LED亮。
`while (1)` 创建一个无限循环。
`P1 = led_state;` 将当前LED状态输出到P1口。
`for (i = 0; i < 7; i++)` 循环7次,每次循环左移LED状态一位,并通过`led_state |= 0x01;` 将最低位设置为1,实现循环左移。
`Delay(10000);` 延时10秒。
这个程序简单易懂,适合初学者学习和使用。你可以根据自己的需求调整延时时间和循环次数。