c51实现往返流水灯代码
时间: 2024-06-18 13:03:04 浏览: 13
C51单片机实现往返流水灯代码可以通过以下步骤实现:
1. 定义需要使用的IO口,例如P1口,可以定义为:sbit LED1=P1^0; sbit LED2=P1^1; sbit LED3=P1^2; sbit LED4=P1^3; sbit LED5=P1^4; sbit LED6=P1^5; sbit LED7=P1^6; sbit LED8=P1^7;
2. 初始化端口,例如可以在主函数中使用LED1-LED8对应的IO口设置为输出模式,例如:LED1=LED2=LED3=LED4=LED5=LED6=LED7=LED8=0;
3. 编写流水灯往返的代码,例如:
void main() {
unsigned char i, j;
while (1) {
for (i = 0; i < 8; i++) {
LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 0;
switch (i) {
case 0: LED1 = 1; break;
case 1: LED2 = 1; break;
case 2: LED3 = 1; break;
case 3: LED4 = 1; break;
case 4: LED5 = 1; break;
case 5: LED6 = 1; break;
case 6: LED7 = 1; break;
case 7: LED8 = 1; break;
}
for (j = 0; j < 20; j++) {
delay(100);
}
}
for (i = 7; i > 0; i--) {
LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = LED8 = 0;
switch (i) {
case 0: LED1 = 1; break;
case 1: LED2 = 1; break;
case 2: LED3 = 1; break;
case 3: LED4 = 1; break;
case 4: LED5 = 1; break;
case 5: LED6 = 1; break;
case 6: LED7 = 1; break;
case 7: LED8 = 1; break;
}
for (j = 0; j < 20; j++) {
delay(100);
}
}
}
}
4. 程序中delay函数需要自行编写,例如可以使用以下代码实现:
void delay(unsigned int t) {
unsigned int i, j;
for (i = t; i > 0; i--) {
for (j = 110; j > 0; j--);
}
}