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.
/*---------------------------------- --------------
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;
}