Programación de tubos digitales MCU

# incluir & ltreg52.h & gt

#¿Incluir? & ltintrins.h & gt

#¿Definición? ¿Uchar? ¿No firmado? Té

#Definición? ¿sin firmar? (Igual que las organizaciones internacionales) Organizaciones internacionales

sbit? llevado=p3^3;? //P3 3-LED-Fuente de alimentación, conectada de tal forma que se ilumine en intensidad baja.

//P0 está conectado al tubo digital de esta sección

//P2 está conectado al bit del tubo digital.

//* * *Definición de segmento de tubo digital de cátodo, 0~9.

//?Uchar? ¿Código? superficie[]? =?{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

//* * *Definición de segmento de tubo digital, 0~9.

¿Uchar? ¿Código? superficie[]? =?{0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x 90};

¿No es válido? retraso(uint?n){

mientras(n -)

//?void? retardo 1 ms()//@ 11,0592 MHz

{

¿Sin firmar? ¿Ciel? I,? j;

_ nop _();

¿Yo? =?2;

j? =?199;

Hazlo

{

¿Cuándo? (-j);

}?¿Cuándo? (-I);

}

}

¿Anulado? Principal(inválido){

Uchar? j? =?10,?m = 0;

mientras(1){

P2? =?1;//* *Yang. Si * * * es yin, toma el lado opuesto.

¿P0? =?Tabla[j/10% 10] //?j? Decenas del valor

Retraso(5);

P2? =?2;//* *Yang. Si * * * es yin, toma el lado opuesto.

¿P0? =?Tabla[j % 10]; //j? Un dígito del valor

Delay(5);

m++;

If(m==97){//La visualización anterior tardó unos 10 milisegundos. entonces 100 veces es 1 segundo.

If(j==0){//Cuente regresiva hasta 0.

P2 = 0; //Apaga el tubo digital

for(m = 0;?m<5;?M++){//El LED parpadea.

led = 0;

Retraso(100);

led = 1;

Retraso(100);

p>

}

j = 11

}

j-; /p>

}

}

}//Probado. . .