Red de conocimientos turísticos - Conocimientos sobre calendario chino - Programación MCU. Intente escribir un programa para encender las luces LED una por una durante un segundo. Gracias de antemano.

Programación MCU. Intente escribir un programa para encender las luces LED una por una durante un segundo. Gracias de antemano.

El oscilador de cristal cree que el tiempo de interrupción del temporizador de 12 MHz es de 50 ms y los 20 tiempos de interrupción acumulados son de 1 s

Este programa está sincronizado con precisión, a diferencia de la función de retardo de arriba, que tiene una sincronización inexacta.

#include

#include

unsigned

char

i=0;

vacío

init();

vacío

principal()

{

init( ) ;

mientras

(1)

{

si(i==20)

{

i=0;

P1=_crol_(P1, 1); //Función de desplazamiento circular

Definida en la función intrínseca

}

}

}

void

init()

{

TH0=0x3c;

//Al temporizador se le asigna un valor inicial de 50ms

TL0=0xB0;

TMOD=0x01;

//Establece el modo de trabajo del temporizador en modo 1

EA=1;

//Habilita interrupción total

ET0=1;

//Habilitar bit de habilitación de interrupción

TR0=1;

//Recuento del temporizador

P1=0xfe;

/ /Aquí se supone que la luz LED está conectada al puerto P1 y

//El nivel bajo está activo

}

void

temporizador0()

interrupción

1

{

TH0=0x3c;

TL0=0xB0 ;

//Reasignar valor inicial después del desbordamiento

i;

//El tiempo de interrupción del temporizador es 50 ms

//20 tiempo de interrupción es 1s

}