Cómo utilizar el microcontrolador C51 para crear el siguiente programa "Cuenta regresiva del cronómetro, cuenta regresiva desde 100 segundos, usando un tubo digital para mostrar el valor de tiempo actual en tiempo real"
Supongamos que P0 y P2 están conectados al tubo digital y controlados estáticamente. El programa es el siguiente:
include
#define uchar unsigned char
.#define uint unsigned int
uchar num= 100;
uchar time=0;
//**** Código de siete segmentos de tubo digital negativo
tabla de códigos uchar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};
void Delay1ms( uint i) //programa de retraso de 1 ms
{
uint j;
for(;i>0;i--)
{
for(j=0;j<164;j++)
{;}
}
}
void main(void )//programa principal
{
TMOD=0X01;
ET0=1;
EA=1;
TH0=(65536-50000)/256; //cronometrado 50 ms
TL0=(65536-50000)%256;
TR0 =1;
while(1)
{
P0=tabla[num/10];
Retraso1ms(2);
P2 =tabla[núm%10];
Retraso1ms(2);
}
}
}
void TIMER0()interrupción 1//interrupción del programa
{
TH0=(65536-50000)/256;
TL0=(65536-50000) %256;<
tiempo++;
si (tiempo==20)
{
tiempo=0;
num--;
}
if (num==0)
{
número=100;
p>}
}