Programación de tiempo compartido

De hecho, esta función se puede implementar sin interrumpir el tiempo:

# include ltreg 51.h gt; función principal

Unsigned char tab[]={0xc0, 0xf9, 0xa4, 0xb0 , 0x99, 0x92, 0x82, 0xf8, 0x80, 0x 90}; Definir matriz 0-9

Variable definida int sin signo tmp

Retraso vacío (unsigned int xms) define la función de retraso .

{unsigned int j, I;

for(I = 0; i ltxmsi)

for(j = 0; j lt100; j); /p>

}

Void disp() define una subfunción.

{

p 1 = tmp

Retraso(1);

P2 = 0x ff; >tmp=tmplt. lt1;

}

void main()

{

Carácter sin signo z, s=00, m=00, h = 00 le da al reloj un valor inicial

while(1)

{

for(z = 0; z lt100; z )

{

tmp = 0x 01;

P2 = tab[h/10]; visualización de hora

disp();

P2 = tab[h 10];

disp();

P2 = tab[m/10]; Visualización de minutos

disp();

p>

P2 = tab[m 10];

disp();

P2 = tab[s/10]; >

disp ();

P2 = pestaña[s 10];

disp();

}

s ;

Mientras(s==60) avanza un bit por segundo y se borra a 60.

{

m

s = 00

}

Mientras (m==60) cada uno El minuto avanza un dígito y se borra 60.

{

h

m = 00

}

Mientras(h==24) cada uno La hora avanza un dígito y se pone a cero a las 24 horas.

{

h=00

}

}

}