Análisis de programación de linternas LED y linternas felices.
// Supongamos que el oscilador de cristal es de 12 MHZ y P1 controla 8 LED para que se enciendan a un nivel bajo.
#Contiene " reg51.h "
Unsigned int YSJS = 0;
Carácter firmado LED = 0XFE
Administrador no válido (No válido )
{
TMOD | = 0x 10; //Temporizador 1 modo de trabajo 1 y temporizador de 16 bits.
th 1 = 0x Fe; //Tiempo de temporización del temporizador1 = 500uS
TL 1 = 0X0C;
et 1 = 1; .
tr 1 = 1;
EA = 1; //Activar la interrupción del host
mientras(1)
{ p >
}
}
Voidtimer 1 (Void) Interrupción 3//La función de interrupción Timer1 utiliza el grupo de registros predeterminado.
{
th 1 = 0x Fe; //Tiempo de temporización del temporizador1 = 500us
TL 1 = 0X0C
ysjs++;
if(YSJS = = 2000)//500 us * 2000 = 1000000 us = 1S
{
p 1 = LED;
LED = LED & lt& lt1;
LED=LED 1
si(LED = = 0x ff)LED = 0x Fe;
YSJS = 0
}
}