keil写32个流水灯变换代码
时间: 2024-03-07 10:48:55 浏览: 13
以下是Keil编写32个流水灯变换的示例代码:
```c
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3;
sbit led5 = P2^4;
sbit led6 = P2^5;
sbit led7 = P2^6;
sbit led8 = P2^7;
sbit led9 = P1^0;
sbit led10 = P1^1;
sbit led11 = P1^2;
sbit led12 = P1^3;
sbit led13 = P1^4;
sbit led14 = P1^5;
sbit led15 = P1^6;
sbit led16 = P1^7;
sbit led17 = P0^0;
sbit led18 = P0^1;
sbit led19 = P0^2;
sbit led20 = P0^3;
sbit led21 = P0^4;
sbit led22 = P0^5;
sbit led23 = P0^6;
sbit led24 = P0^7;
sbit led25 = P3^0;
sbit led26 = P3^1;
sbit led27 = P3^2;
sbit led28 = P3^3;
sbit led29 = P3^4;
sbit led30 = P3^5;
sbit led31 = P3^6;
sbit led32 = P3^7;
void delay(uint xms) {
uint i,j;
for(i=xms;i>0;i--) {
for(j=112;j>0;j--);
}
}
void main() {
while(1) {
led1 = 0; delay(50);
led2 = 0; delay(50);
led3 = 0; delay(50);
led4 = 0; delay(50);
led5 = 0; delay(50);
led6 = 0; delay(50);
led7 = 0; delay(50);
led8 = 0; delay(50);
led9 = 0; delay(50);
led10 = 0; delay(50);
led11 = 0; delay(50);
led12 = 0; delay(50);
led13 = 0; delay(50);
led14 = 0; delay(50);
led15 = 0; delay(50);
led16 = 0; delay(50);
led17 = 0; delay(50);
led18 = 0; delay(50);
led19 = 0; delay(50);
led20 = 0; delay(50);
led21 = 0; delay(50);
led22 = 0; delay(50);
led23 = 0; delay(50);
led24 = 0; delay(50);
led25 = 0; delay(50);
led26 = 0; delay(50);
led27 = 0; delay(50);
led28 = 0; delay(50);
led29 = 0; delay(50);
led30 = 0; delay(50);
led31 = 0; delay(50);
led32 = 0; delay(50);
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
led5 = 1;
led6 = 1;
led7 = 1;
led8 = 1;
led9 = 1;
led10 = 1;
led11 = 1;
led12 = 1;
led13 = 1;
led14 = 1;
led15 = 1;
led16 = 1;
led17 = 1;
led18 = 1;
led19 = 1;
led20 = 1;
led21 = 1;
led22 = 1;
led23 = 1;
led24 = 1;
led25 = 1;
led26 = 1;
led27 = 1;
led28 = 1;
led29 = 1;
led30 = 1;
led31 = 1;
led32 = 1;
}
}
```
这是一个简单的流水灯程序,利用了单片机的GPIO口控制LED灯的开关状态,通过循环控制LED灯的亮灭顺序,实现流水灯效果。在程序中,使用了一个延时函数 `delay()`,用于控制每盏LED灯亮灭的时间间隔。注意在使用时需要根据硬件连接情况修改对应的GPIO口定义和延时时间。