Programación de cuenta regresiva LED de dos dígitos en ambiente KEIL usando 51
bandera de caracteres sin firmar1=0;
contador de caracteres sin firmar=0;
primero carácter sin firmar=0;
segundo carácter sin firmar=0;
código de carácter sin firmar dptable[]= {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
main()
{
TMOD=0x10; //Temporizador T1, modo 1
TH1=0xfa; es 3.6864MHz, ingrese interrupción cada 5ms
TL1=0x00
TR1=1
ET1=1
EA=; 1;
while(1)
{
P1_0=1; //El puerto P1 está seleccionado
P2=dptable[ second]; //El puerto P2 es la selección de segmento
P1_0=0;
while(flag1==0); //Escaneo dinámico, cada tubo de dígito se ilumina durante 5 ms p>
bandera1= 0;
P1_0=1;
P2=dptable[primero]
P1_1=0; p> while(bandera1==0);
bandera1=0;
P1_1=1
}
} p>
anular interT1() interrupción 3//5ms ingresar interrupción
{
TH1=0xfa;
TL1=0x00;
flag1=1;
contador
if(counter==200)// Temporizador a 1s
{
contador=0;
primero--;
if(first==255)
{
primero=9; p>
p>
segundo--;
}
if(segundo= =255)
{
segundo=7;
primero=9
}
}
}
} p>