8、用单片机P1口驱动8个 LED 发光二级管D1-D8(按P1.0口接D1...P1.7口接D8的顺序),实现D1-D8轮流点亮(低电平亮)并不断循环的效果,用C51语言完成程序设计
时间: 2023-12-10 17:41:57 浏览: 197
程序演示-单片机流水灯实验
以下是C51语言的程序设计示例:
```
#include <reg52.h> // 引入单片机头文件
sbit LED1 = P1^0; // 定义P1.0口对应的LED1
sbit LED2 = P1^1; // 定义P1.1口对应的LED2
sbit LED3 = P1^2; // 定义P1.2口对应的LED3
sbit LED4 = P1^3; // 定义P1.3口对应的LED4
sbit LED5 = P1^4; // 定义P1.4口对应的LED5
sbit LED6 = P1^5; // 定义P1.5口对应的LED6
sbit LED7 = P1^6; // 定义P1.6口对应的LED7
sbit LED8 = P1^7; // 定义P1.7口对应的LED8
void Delay(unsigned int t)
{
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}
void main()
{
while (1)
{
LED1 = 0; // 点亮LED1
Delay(500); // 延时一段时间
LED1 = 1; // 熄灭LED1
LED2 = 0; // 点亮LED2
Delay(500); // 延时一段时间
LED2 = 1; // 熄灭LED2
LED3 = 0; // 点亮LED3
Delay(500); // 延时一段时间
LED3 = 1; // 熄灭LED3
LED4 = 0; // 点亮LED4
Delay(500); // 延时一段时间
LED4 = 1; // 熄灭LED4
LED5 = 0; // 点亮LED5
Delay(500); // 延时一段时间
LED5 = 1; // 熄灭LED5
LED6 = 0; // 点亮LED6
Delay(500); // 延时一段时间
LED6 = 1; // 熄灭LED6
LED7 = 0; // 点亮LED7
Delay(500); // 延时一段时间
LED7 = 1; // 熄灭LED7
LED8 = 0; // 点亮LED8
Delay(500); // 延时一段时间
LED8 = 1; // 熄灭LED8
}
}
```
以上代码实现了P1口驱动8个LED发光二极管D1-D8轮流点亮并不断循环的效果。程序中使用了一个Delay函数,用于延时一段时间,以便让LED亮和灭的效果更加明显。在主函数中,使用while循环不断重复LED的点亮和熄灭操作。
阅读全文