通过单片机的10口P1控制8个LED模拟霓虹灯 显示,当S1没有按下时,8个LED全亮 写出c语言的程序
时间: 2023-06-09 15:03:52 浏览: 98
以下是所需的C语言程序:
```c
#include <reg51.h> // 8051 片内型号头文件
sbit S1 = P0^0; // 定义按键S1
sbit LED1 = P1^0; // 定义LED1
sbit LED2 = P1^1; // 定义LED2
sbit LED3 = P1^2; // 定义LED3
sbit LED4 = P1^3; // 定义LED4
sbit LED5 = P1^4; // 定义LED5
sbit LED6 = P1^5; // 定义LED6
sbit LED7 = P1^6; // 定义LED7
sbit LED8 = P1^7; // 定义LED8
void delay(int t) { // 延时函数,t的值决定了灯的闪烁速度
int i, j;
for(i = 0; i < t; i++)
for(j = 0; j < 120; j++);
}
void main() {
S1 = 1; // S1 没有按下时默认为 1,即高电平。
while(1) {
LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 1; // 全亮
if(S1 == 0) { // S1按下时进行模拟
LED1 = 0;
delay(5); // 延时
LED1 = 1;
LED2 = 0;
delay(5);
LED2 = 1;
LED3 = 0;
delay(5);
LED3 = 1;
LED4 = 0;
delay(5);
LED4 = 1;
LED5 = 0;
delay(5);
LED5 = 1;
LED6 = 0;
delay(5);
LED6 = 1;
LED7 = 0;
delay(5);
LED7 = 1;
LED8 = 0;
delay(5);
LED8 = 1;
}
}
}
```
程序是用来模拟霓虹灯的效果,其中 S1 是控制是否启用模拟的按键,当它为 0 时,8个LED将会像霓虹灯一样循环闪烁,否则全部常亮。
阅读全文