Red de conocimiento informático - Aprendizaje de código fuente - Introducción a la programación de ondas cuadradas

Introducción a la programación de ondas cuadradas

#¿Incluir? ltREG51. H gt

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.

}