stc89C51 utiliza el puerto serie para enviar un número a la computadora, comenzando desde 0 y contando hacia arriba. Si no se presiona ninguna tecla en 5 segundos, se agrega un número en 1 segundo.
Después de iniciar el mecanismo de vigilancia en el programa principal, el mecanismo de vigilancia se actualizará continuamente en el bucle del programa principal. Una vez que el mecanismo de vigilancia deje de actualizarse, se restablecerá. El programa es el siguiente:
#include lt; reg51.hgt;
sbit k1=P3^3; //pulsación de tecla
sfr WDT_CONTR = 0xE1; //definir el registro de vigilancia del microcontrolador STC89C51
unsigned char t0n; // T0 interrumpe 20 veces durante 1 segundo
unsigned char s5;/temporizador de 5 segundos
unsigned char second; // Segundo temporizador
main()
{
segundo=0xFF;
TMOD=0x21; /p>
p>
TH1 =0xFD; //Frecuencia del oscilador de cristal=11.
TH1 =0xFD; //Frecuencia del oscilador de cristal=11.0592, velocidad en baudios=9600
TL1 =0xFD;
SCON=0x50;
TH0 =0x4B; //Frecuencia del oscilador de cristal=11.0592, temporización 50 ms
TL0 =0xFD;
EA ?=1;
ET0 =1;
TR0 =1; p>WDT_CONTR=0x30; // EN_WDT=1; inicia el mecanismo de vigilancia, CLR_WDT=1, borra el mecanismo de vigilancia
mientras(1)
{
WDT _CONTR|=0x10; //Actualizar vigilancia
if(k1==0)
{
s5=0; clear 0
while(k1==0)WDT_CONTR|=0x10; //Espera a que se suelte la tecla para actualizar el mecanismo de vigilancia
}