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: 
			
		
	
								
								
									
	
								
							
							 
   
				 
						 
 
		 
 
		 
 
		 
			 
 
		 
 
		