Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo escribir este programa para el microcontrolador STC89C54RD: la primera luz se enciende durante 1 segundo, la segunda luz se enciende durante 2 segundos, la tercera luz se enciende durante 5 segundos y luego se invierte a la segunda luz siempre encendida.

Cómo escribir este programa para el microcontrolador STC89C54RD: la primera luz se enciende durante 1 segundo, la segunda luz se enciende durante 2 segundos, la tercera luz se enciende durante 5 segundos y luego se invierte a la segunda luz siempre encendida.

#includelt;reg52.hgt;

/*---------------------------------- --------------

Función de retardo de EE. UU., el parámetro de entrada es el carácter sin signo t, sin valor de retorno

El carácter sin signo se define como Variable de carácter sin signo, el rango de valores es

0~255. Aquí se utiliza el oscilador de cristal 12M. Utilice el ensamblaje para un retraso aproximado.

La longitud es la siguiente: T. =tx2 5 nosotros

------------------------------- -- --------* /

void delayus(unsigned char t)

{

while(--t);

}

/*------------------------------------- ------------ --

Función de retardo de mS, incluido el parámetro de entrada unsigned char t, sin valor de retorno

unsigned char se define como un carácter sin signo variable y su rango de valores es

0~255 Aquí se utiliza el oscilador de cristal 12M

------------ ------. ----------------- -------------*/

retrasos nulos(unsigned int t)

{

while(t--)

{

//retraso aproximado 1mS

delayus(245); /p>

delayus(245);

}

}

void main()

{

P1=0xff; // Apaga todas las luces

delayms(2000);

P1= 0xfe; // Enciende la primera luz

delayms(1000); // Retraso de un segundo

P1=0xfd; //encender la segunda luz

delayms(2000); //retraso de dos segundos

P1=0xfb; //tercera luz

delayms (5000); //retraso 5 segundos

while(1)//bucle muerto, largo en la segunda luz

P1=0xfd;

}