-16 código fuente
¿#Definición? ¿Uchar? ¿No firmado? Té
#Definición? uint? ¿No firmado? (Igual que las organizaciones internacionales) Organizaciones internacionales
Uchar? Bit=0, Diez=0, Cien=0, Mil=0;
Uchar? ¿Código? espectáculo de luces[10]={? 0x3F, /*0*/
0x06, /*1*/
0x5B, /*2*/
0x4F, /*3*/
0x66, /*4*/
0x6D, /*5*/
0x7D, /*6*/
0x07, /*7*/
0x7F, /*8*/
0x6F, /* 9 */};? //* * *Tubo digital Yin
Wuchal? ¿Código? jz_code[17]={0xff,
0xee, 0xed, 0xeb, 0xe7,
0xde, 0xdd, 0xdb, 0xd7,
0xbe, 0xbd, 0xbb , 0xb7,
0x7e, 0x7d, 0x7b, 0x 77 }; //Código de teclado
uint? ¿Código? Data_square[]={0,
1,4,9,16,
25,36,49,64,
81,100,121,144,
169,196,225,256};//Cuadrado
¿No es válido? retraso (¿sin firmar?char?a)? //Retraso
{
¿Sin firmar? ¿Ciel? i;
cuando(a -)
for(I = 100;i>0;i-);
}
Uchar? Kbscan(void)//Escaneo de teclado
{
¿Sin firmar? ¿Ciel? Colgar, mentir, clave;
p 1 = 0xf 0;
Retraso (5);
mentir = p 1;
p 1 = 0x0f;
retraso(5);
colgar = p 1;
for(clave = 16;clave & gt0;clave-)
{
? if(jz_code[clave]==(colgar|mentir))? Romper;
}
¿Regresar? (Punto clave);
}
¿No válido? data_bcd(nulo)? //El resultado después de la descomposición al cuadrado
{
Uchar? i;
I = kbs can();
if (i!=0)
{
bits = Datos _ cuadrado [Yo]% 10;? //Bit
diez =(Datos _ cuadrado[I]% 100)/10;? //Diez personas
Cientos = (Datos _ cuadrado[I]% 1000)/100; //Cientos
Miles = Datos _ cuadrado[I]/1000;? //Miles
}
}
¿No válido? Pantalla (vacío) // Pantalla de tubo digital, método de depuración: ¿función de fluctuación en el intervalo del tubo digital? Delay (5); el cuarto nivel es para bajar el volumen.
{
datos _ BCD();
P0 = espectáculo led[mil]
P2 _ 0 = 0; /p>
Retraso (5);
P2 _ 0 = 1;
P0 = espectáculo de led[cientos]; 0;
Retraso(5);
P2 _ 1 = 1;
P0 = show de led[Diez];
P2 _ 2 = 0;
Retraso(5);
P2 _ 2 = 1;
P0 = show de led[bit];
P2 _ 3 = 0;
Retraso (5);
P2 _ 3 = 1;
}
¿Nulo? principal (no válido)
{
P2 = 0x ff;
mientras(1)
{
mostrar();
}
}