Hola:
Después de tanto preguntar al foro dudas relacionadas con este mundo insólito de los PIC voy a aportar un pequeño codigo que puede servir como test de prueba de funcionamiento para un display de 7 segmentos. Simplemente lo que hace es aumentar la velocidad progresivamente (de 0 a 9) para luego comenzar de nuevo el ciclo.
El compilador utilizado es CCS
No es gran cosa en comparación con lo que he visto aqui pero es más que no aportar nada. Incluso podriamos crear unos "Ejemplitos PIC16F877A" tal como los que ya existen para otros modelos.
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NOPUT,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
int8 display7seg(int8 valor){
switch (valor){
case 0:
return 0b11111100;
break;
case 1:
return 0b01100000;
break;
case 2:
return 0b11011010;
break;
case 3:
return 0b11110010;
break;
case 4:
return 0b01100110;
break;
case 5:
return 0b10110110;
break;
case 6:
return 0b00111110;
break;
case 7:
return 0b11100000;
break;
case 8:
return 0b11111110;
break;
case 9:
return 0b11100110;
break;}
}
int8 i;
int16 j;
void main(void){
set_tris_b(0x00);
output_b(0x00);
while(1){
i=0;
j=2000;
for(j=500;j>=50;j=j-50){
for(i=0;i<10;i++){
output_b(display7seg(i));
delay_ms(j);
}
}
}
}
un saludo
aitor