miércoles, 15 de enero de 2014

 

MATERIAL:

1- PIC 16f887.


2- Display cátodo común.


1- Cristal de 8Mhz.
2- Capacitores cerámicos de 22pf.
3- Resistores de 10k.
16- Resistores de 220.
3- Pushbutton.
1- Borne (kulca).
1- Portaintegrados de 40 pines.

El programa del PIC lo realice en lenguaje C en el compilador CCS C, la simulación en  proteus y el PCB en PCBWizard. El circuito se debe alimentar con una fuente de 5v.

CÓDIGO:

#include <16f887.h>
#fuses hs,wdt
#use delay(clock=800000)
#byte trisb=0x86
#byte trisc=0x87
#byte trisd=0x88
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
byte display[10]={0x7B,0x0A,0xB3,0x9B,0xCA,0xD9,0xF9,0x0B,0xFB,0xDB};
byte display_2[10]={0x7B,0x0A,0xB3,0x9B,0xCA,0xD9,0xF9,0x0B,0xFB,0xDB};
int8 a;
int8 b;
void main(){
trisd=0x00;
trisc=0xff;
trisb=0x00;
inicio:
portd=display[0];
portb=display_2[0];
while(true){
if (bit_test(portc,1)==1){
delay_us(100);
a++;
p1:
if(bit_test(portc,1)==1){
portd=display[a];
goto p1;
}
}
if(a==10){
a=0;
b++;
portb=display_2[b];
}
if((b==10)||(bit_test(portc,2)==1)){
a=0;
b=0;
goto inicio;
}
}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int8 a= dato de 8 bits.
int8 b= dato de 8 bits.
a++= incremento del dato a.
b++= incremento del dato b.

Cada vez que se aprieta el pushbutton se incrementa el dato a cuando el dato llega a 10 (es decir a 9 en el primer display)  se incrementa el dato b y se borra el dato a (es decir el numero 10 en los diplays), así hasta que el dato b llega a 10 (es decir a 99 en los displays)  entonces se borran los datos para comenzar de nuevo el conteo.

Para saber el funcionamiento del if, while y los tris checar los siguientes tutoriales:



SIMULACIÓN: 

 

  PCB:

Hoja para imprimir.


Vista real del circuito.


 

DESCARGAR SIMULACIÓN, PCB  Y PROGRAMA EN C:



REFERENCIAS;

  • Compilador C CSS y simulador proteus para microcontroladores PIC, Eduardo García Breijo 



SIGUEME EN FECEBOOK

MI TWITTER

Translate