Que tal, primero agradezco a las personas que contribuyen y aportan a este gran foro, he aprendido y sigo aprendiendo mucho.
Ahora, desde hace unos meses comencé con esto de la programación de PIC´s y la verdad es muy interesante, ya leí la información que aqui han puesto y me he asesorado con otras personas sobre el tema.
Yo en lo particular, para realizar y compilar mi programa utilizo el software SOURCEBOOST y lo simulo en PROTEUS, para el tipo de prácticas que he realizado (sencillas) no he tenido problemas y en cuanto al programación, incluso compré un MASTERPROG de los que venden en Mercado Libre pero he tenido algunos problemas.
Bueno, una sencilla aportación que les dejo es esta: Es un programa que mediante un dip switch muestra 3 contadores (uno de 15 a 0, otro de 0 a 15 de 3 en 3 y uno mas de 0 a 9) el conteo se muestra en un display de 7 segmentos conectado al puerto B del PIC.
OJO: Utilicé el PIC16F84A pero es lo mismo para el PIC16F877A
Como apenas comienzo en esto mi programa está "paso a paso", supongo que debe haber formas más sencillas de hacerlo y en eso estoy, aprendiendo poco a poco.
Saludos desde Guanajuato México y espero les sirva
Ahora, desde hace unos meses comencé con esto de la programación de PIC´s y la verdad es muy interesante, ya leí la información que aqui han puesto y me he asesorado con otras personas sobre el tema.
Yo en lo particular, para realizar y compilar mi programa utilizo el software SOURCEBOOST y lo simulo en PROTEUS, para el tipo de prácticas que he realizado (sencillas) no he tenido problemas y en cuanto al programación, incluso compré un MASTERPROG de los que venden en Mercado Libre pero he tenido algunos problemas.
Bueno, una sencilla aportación que les dejo es esta: Es un programa que mediante un dip switch muestra 3 contadores (uno de 15 a 0, otro de 0 a 15 de 3 en 3 y uno mas de 0 a 9) el conteo se muestra en un display de 7 segmentos conectado al puerto B del PIC.
OJO: Utilicé el PIC16F84A pero es lo mismo para el PIC16F877A
PHP:
#include <system.h>
void main()
{
trisa = 0x07;//Configura a RA0, RA1 y RA2 del puerto A como entradas
trisb = 0x00;//Configura el puerto B como salida
while(1)//Para que el programa se repita
{
if(porta==0)//Con esta condición se inicia el contador de 15 a 0
{
portb = 0x71;//Se le asigna al puerto B el numero 15 letra F
delay_ms(1000);
portb = 0x79;//numero 14 letra E
delay_ms(1000);
portb = 0x5E;//número 13 letra D
delay_ms(1000);
portb = 0x39;//número 12 letra C
delay_ms(1000);
portb = 0x7C;//número 11 letra B
delay_ms(1000);
portb = 0x77;//número 10 letra A
delay_ms(1000);
portb = 0x67;//número 9
delay_ms(1000);
portb = 0x7F;//número 8
delay_ms(1000);
portb = 0x07;//número 7
delay_ms(1000);
portb = 0x7D;//número 6
delay_ms(1000);
portb = 0x6D;//número 5
delay_ms(1000);
portb = 0x66;//número 4
delay_ms(1000);
portb = 0x4F;//número 3
delay_ms(1000);
portb = 0x5B;//número 2
delay_ms(1000);
portb = 0x06;//número 1
delay_ms(1000);
portb = 0x3F;//número 0
delay_ms(1000);
}
if(porta==1)//Con esta condición se inicia el contador de 0 a 15 de 3 en 3
{
portb = 0x3F;
delay_ms(1000);
portb = 0x4F;
delay_ms(1000);
portb = 0x7D;
delay_ms(1000);
portb = 0x67;
delay_ms(1000);
portb = 0x39;
delay_ms(1000);
portb = 0x71;
delay_ms(1000);
}
if(porta==2)//Con esta condición se inicia el contador de 9 a 0
{
portb = 0x67;
delay_ms(1000);
portb = 0x7F;
delay_ms(1000);
portb = 0x07;
delay_ms(1000);
portb = 0x7D;
delay_ms(1000);
portb = 0x6D;
delay_ms(1000);
portb = 0x66;
delay_ms(1000);
portb = 0x4F;
delay_ms(1000);
portb = 0x5B;
delay_ms(1000);
portb = 0x06;
delay_ms(1000);
portb = 0x3F;
delay_ms(1000);
}
}
}
Como apenas comienzo en esto mi programa está "paso a paso", supongo que debe haber formas más sencillas de hacerlo y en eso estoy, aprendiendo poco a poco.
Saludos desde Guanajuato México y espero les sirva
Última edición por un moderador: