Red de conocimientos turísticos - Conocimientos sobre calendario chino - No puedo entender el programa en lenguaje C del microcontrolador para luces de conducción LED. Por favor, explíquelo.

No puedo entender el programa en lenguaje C del microcontrolador para luces de conducción LED. Por favor, explíquelo.

①El bucle j for más externo se utiliza para ejecutar 8 flujos de agua (la primera vez, la segunda vez...).

②El bucle interno i for se utiliza para ejecutar cada flujo de agua y cuántos pasos deben ejecutarse (8 pasos la primera vez, 7 pasos la segunda vez...).

③a=_crol_(a,j) es, de hecho, como dijo LZ, desplazado j bits hacia la izquierda, pero requiere usar C para desplazarse hacia la izquierda, es decir, desplazamiento circular, para mover a^7 a a ^0, y se ha asignado a a;

④a=a<<1, este también es un desplazamiento de bits a la izquierda. Para este desplazamiento, use C o elimine a^7. No lo dejes pasar, un ^0 reemplaza a 0; el significado de este cambio es que cada vez que el agua fluye, se agregará una luz. Por supuesto, debe ser un LED de bajo nivel para que sea efectivo.

Un breve análisis del proceso de ejecución es el siguiente: cuando se completa el primer flujo de agua (después de que se enciende la última luz), finaliza el primer bucle i y se ejecuta la última instrucción del bucle i. y se desplaza hacia la izquierda con C, y a regresa a La primera luz está encendida (0xfe = 1111 1110b). Ejecute el desplazamiento hacia la izquierda del punto ③. En este momento, j = 0, lo que equivale a no desplazarse. Luego ejecute el desplazamiento hacia la izquierda del punto ④, a=0xfc (1111 1100), y se convertirá en 2 luces;

El siguiente ciclo i comienza (el segundo proceso), y el número de pasos del proceso es 8- j=7 (j tiene +1), en este momento a son 2 luces. Después de 7 pasos, las luces se encenderán hasta las 2 luces más altas (a=0011 1111). C para moverse hacia la izquierda, a = 0111 1110, y el ciclo termina cuando , el desplazamiento hacia la izquierda con C se realiza en el punto ③. En este momento, j = 1, a = 1111 1100, vuelve al estado inicial durante el. segundo flujo de agua. Ejecute el desplazamiento hacia la izquierda del punto ④ nuevamente, a=1111 1000, que se convierte en 3 luces, y comienza el siguiente ciclo i...hasta que se enciendan 8 luces