Programación de tubos digitales MCU
#¿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. . .