Red de conocimiento informático - Material del sitio web - ¿Cómo hacer un cronómetro simple de 9 segundos usando un microcontrolador de 51 y un solo tubo digital?

¿Cómo hacer un cronómetro simple de 9 segundos usando un microcontrolador de 51 y un solo tubo digital?

Supongamos que P0 está conectado al tubo digital, el programa es el siguiente:

#include

#define uchar unsigned char

# define uint unsigned int

uchar a=0;

uchar b=9;

//***Tubo digital Yin código de siete segmentos

tabla de códigos uchar[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};

retraso nulo (uchar aa)//subrutina de retraso

{

uchar bb,cc;

for(bb=aa;bb>0;bb--)

for(cc=200;cc>0;cc--);

}

void main(void)//programa principal

{

TMOD=0x01; // Temporizador 0 modo de trabajo 1

ET0=1;

EA=1;

TH0=(65536- 50000)/256;//Tiempo 50ms

TL0=(65536-50000)%256;

TR0=1;//Inicio

while(b >0)

{

P0= tabla[b]

retraso(5);

}

P0=0;

TR0=0;

mientras(1);

}

/ /Interrumpir subrutina

void Timer0(void) interrupción 1

{

TH0=(65536-50000)/256;

TL0 =(65536- 50000)%256;

a++;

if(a==20) {a=0;b--;}

}