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;
}
}
}
#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.
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:
http://microcontroladores-ing-elec-rh.blogspot.mx/2013/10/programando-pics-en-lenguaje-c-en-ccs.html
http://microcontroladores-ing-elec-rh.blogspot.mx/2013/11/programando-pics-en-lenguaje-c-en-ccs.html
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
Etiquetas:
practicas simuladas,
proyectos
|
6
comentarios
Suscribirse a:
Entradas (Atom)