Introducción a la programación de ondas cuadradas
sbit? wave=p1^0;
¿No es válido? SetupTimer0()
{
¿TMOD? amplificador=?0XF0? //Conserve únicamente la información T1.
TMOD? |=?0X02? //Establecer T0:? Función de temporización, modo 2, temporizador/contador de 8 bits con recarga automática.
¿TH0? =?256-250; //El tiempo interrumpe cada 0,25 milisegundos
TL0? =?256-250;
TR0? =?1; //Iniciar temporizador
ET0? =?1; //La interrupción del temporizador 0 está activada
}
?
¿Datos? ¿No firmado? ¿Ciel? us250
datos? ¿No firmado? int? ms;
bits? Wave; //Se utiliza para recordar el estado actual de la ola.
¿Anulado? Temporizador0_ISR()? ¿interrumpir? 1?//Programa de servicio de interrupción de tiempo para proporcionar servicios para eliminar la fluctuación de teclas.
{
¿Y si? (nosotros 250lt;4)?regreso;?
nosotros 250 = 0;? ms;
¿Si? (ms lt10)?Return;
//La forma de onda cambia cada 10 ms y una forma de onda se completa en 20 ms, por lo que la forma de onda es de 50 Hz.
ms = 0;
ONDA = ~ ¿ONDA? wave = wave; //salida de onda cuadrada
}
¿No es válido? main()
{?
us 250 = ms = 0;
WAVE = WAVE = 0
temporizador de configuración 0( );
EA? =?1; // La interrupción global está habilitada
while(1); //Realiza la salida de onda cuadrada en la función de interrupción.
}