Display 7 segmentos contador del 0 al F ascendente y descendente con dos botones con un Microcontrolador PIC18F4550, PIC C
Material:
1 Display 7 segmentos.
7 Resistencia de 220 Ohms.
1 Resistencia de 10 KOhms.
1 Resistencia de 10 KOhms.
3 Push Button
1 Microcontrolador PIC18F4550
1 Cristal de 4MHZ
Simulación en Proteus:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Código en PIC C:
#inlude<18f4550> 18f4550>
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP
#use delay (clock=4000000)
#use delay (clock=4000000)
#use standard_io(B)
#use standard_io(D)
void main(void)
{
signed char i=0; //contador
int contador[16]={0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101, 0b1111101, 0b0000111,0b1111111,0b1100111,0b1110111,0b1111100,0b0111001,0b1011110,0b1111001,0b1110001}; // vector con muneros del 0 1 2 3 4 5 6 7 8 9 A B C D E F
output_b(contador[ i ]); //inicializa display con 0
for( ; ; ){ //bucle...
if(!input(PIN_D0)) //¿se ha pulsado el boton up?
{
delay_ms(100); //SI -> retardo para evitar los rebotes
i++; //incremento contador
if(i>15) //¿se ha mostrado digito 15=F?
i=0; //SI -> restaura valor indice(para mostrar digito 0)
}
if(!input(PIN_D1)) //¿se ha pulsado el boton down?
{
delay_ms(100); //SI -> retardo para evitar los rebotes
i--; //decremento contador
if(i<0 0="" digito="" div="" ha="" mostrado="" nbsp="" se="">0>
i=15; //SI -> restaura valor indice(para mostrar digito 15=F)
}
output_b(contador[ i ]); //muestra por el puerto b lo que tiene el display
}
}

No hay comentarios.:
Publicar un comentario