El profesor de microcontroladores nos pidió que controláramos las luces LED para aumentar lentamente el brillo.
# include & ltreg52.h & gt//Incluye archivos de encabezado y generalmente no es necesario cambiarlos. El archivo de encabezado contiene definiciones de registros de funciones especiales.
sbit led0=p1^0; //Utilice la palabra clave sbit para definir el LED para el puerto P1.0. Los LED son símbolos definidos arbitrariamente y fáciles de recordar.
Retraso no válido(entero sin signo t); //Declaración de función
/* -
Funciones principales
- */< / p>
Gerente general no válido (no válido)
{
Período entero sin signo = 600, PWM _ LOW = 0 // Definir el período y asignar un valor.
Mientras (1) // Bucle principal
{
led 0 = 1
Retraso (60000); retrasado, se puede ver el proceso de extinción.
for(PWM_LOW = 1; PWM_LOW & lt loop; PWM_LOW++){ //PWM_LOW representa el nivel bajo.
//Tiempo de nivel, la duración del nivel bajo en este ciclo se acumula de 1 al valor de CYCLE (ciclo), que es 600 veces.
LED0 = 0 //Enciende el LED.
DELAY(PWM_LOW); //Duración del retardo, aumentando de 1 a 599 en 600 ciclos.
led 0 = 1; //Apagar LED
Delay(Period-PWM_Low); //Duración del retardo, 600 ciclos reducidos de 599 a 1.
}
LED0 = 0
for(PWM _ LOW = CYCLE-1;PWM _ LOW & gt0;PWM _ LOW-){//y El proceso de cambio de fase gradual.
LED0 = 0
DELAY(PWM_LOW);
LED0 = 1
DELAY(CYCLE-PWM_LOW) nivel);
}
//Agregue otros programas que necesiten funcionar todo el tiempo en el bucle principal.
}
}
/* -
Función de retardo, el parámetro de entrada es un entero t sin signo y no hay retorno valor.
Unsigned int es una variable entera sin signo cuyo rango de valores es
0~65535
- */
Retraso no válido (entero sin signo t)
{
mientras(-t);
}