struct digitos_separados { // variables en bcd de unidad,decena,centena
int unidad, decena, centena;
} digito;
//************************************************************************************
struct mis_datos { // variables de datos de entrada y salida
int dato1, dato2, resultado;
} numeros;
//************************************************************************************
void separar_digitos(){ // separa resultado en unidad, decena y centena
int temp;
digito.unidad=0;
digito.decena=0;
temp=numeros.resultado;
while(temp>=10){
temp-=10;
digito.decena++;
}
digito.unidad=temp;
}
void mostrar(){ // multiplexa en tres display 7-seg anodo común
int const bcd_7seg[10]= {0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x73};
int contador;
output_low(Q1);
output_low(Q2);
output_low(Q3);
output_low(punto);
for(contador=0;contador<11;contador++){
salida=bcd_7seg[digito.unidad]; // muestra unidad
output_high(Q1);
delay_ms(5);
output_low(Q1);
delay_cycles(4);
salida=bcd_7seg[digito.decena]; // muestra decena
output_high(Q2);
delay_ms(5);
output_low(Q2);
delay_cycles(4);
salida=bcd_7seg[digito.centena]; // muestra centena
output_high(Q3);
output_high(punto);
delay_ms(5);
output_low(Q3);
output_low(punto);
delay_cycles(4);
}
}
...