El microcontrolador 51 utiliza interrupciones internas. ¿Cómo escribir un programa en C con una interrupción de 1 segundo?
Supongamos que su oscilador de cristal externo es de 12 M (la frecuencia de reloj es de 1 M), use el método de sincronización compuesta, es decir, apile tiempos de valores pequeños void t0() interrupción 1 {rutina de servicio de interrupción;} función principal: TMOD= 0x01; //Establecer el modo de trabajo del temporizador 0 1for(t=20;tgt;0;t--){ TH0=(65536-50000)/256; value Crea un temporizador de 50 ms TR0=1; //Abre el temporizador t0 while(!TF0); //Espera la configuración TR0=0; //Cerra el temporizador TF0=0; Para configurar TF0 usted mismo, el requisito previo para activar la interrupción es IE = 0x82; // Si desea activar el bit de habilitación EA y ET0 con mayor precisión, la operación de configuración de la interrupción tomará de 3 a 8 ciclos de reloj; puede aumentar el valor inicial en 3 ~ 8, es decir, TH0=(65536-49997)/256; TL0=(65536-49997)256 también se puede depurar mediante software de compilación (primero configure el valor del oscilador de cristal externo en 12M) para medir el tiempo de retraso