关于#c语言#的问题:先让LED2和LED9闪烁4次,然后LED3和LED8闪烁3次,然后LED4和LED7闪烁2次,LED5和LED6闪烁1次,然后LED2和LED9又闪烁5次以此循环

先让LED2和LED9闪烁4次,然后LED3和LED8闪烁3次,然后LED4和LED7闪烁2次,LED5和LED6闪烁1次,然后LED2和LED9又闪烁5次以此循环


#include <reg52.h>

sbit LED2 = P1^0;
sbit LED3 = P1^1;
sbit LED4 = P1^2;
sbit LED5 = P1^3;
sbit LED6 = P1^4;
sbit LED7 = P1^5;
sbit LED8 = P1^6;
sbit LED9 = P1^7;

void delay(unsigned int ms) {
    unsigned int i, j;
    for (i = ms; i > 0; i--) {
        for (j = 110; j > 0; j--);
    }
}

void blinkLED(int led1, int led2, int times) {
    int i;
    for (i = 0; i < times; i++) {
        led1 = 1;
        led2 = 0;
        delay(500);
        led1 = 0;
        led2 = 1;
        delay(500);
    }
}

void main() {
    while (1) {
        blinkLED(LED2, LED9, 4);
        blinkLED(LED3, LED8, 3);
        blinkLED(LED4, LED7, 2);
        blinkLED(LED5, LED6, 1);
        blinkLED(LED2, LED9, 5);
    }
}

首先定义了8个LED的引脚,使用sbit关键字,表示单片机上的一个位,可以用来控制一个IO口的输出。
定义了delay函数,用来实现延时,这里采用了一个简单的计时循环来实现。
定义了blinkLED函数,用来让两个LED闪烁指定的次数,这里使用了一个循环来实现。
在main函数中,使用一个无限循环来不断执行LED的闪烁,按照题目要求依次闪烁不同的LED,直到程序被停止。
在每次闪烁时,调用blinkLED函数,传入两个LED的引脚和闪烁的次数,让这两个LED交替闪烁指定的次数。
在blinkLED函数中,使用一个循环来控制LED的闪烁次数,每次先让一个LED亮,另一个LED灭,然后延时一段时间,再让另一个LED亮,一个LED灭,再延时一段时间,这样就完成了一次闪烁。循环指定的次数后,LED就会停止闪烁,函数返回到main函数中。
在main函数中,每次调用blinkLED函数时,传入不同的LED引脚和闪烁次数,实现了题目要求的LED闪烁顺序。循环执行完一次后,又从头开始执行,实现了LED的循环闪烁。