hola jfranco,aca te dejo otros dos ejemplos que a mi me funcionan tambien,espero te funcionen y cualquier cosa me avisas.
programa 1#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT,
#use delay(clock=4000000)
#byte porta=5
void main()
{
set_tris_b(0b11110000);
set_tris_a(0xff);
output_b(0);
while(true)
{
if(bit_test(porta,0)==0) //aca pregunto por el bit RA0 de PORTA de otra manera
{
output_high(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
delay_ms(500); //aqui le puse medio segundo para visualizarlo mejor
output_low(pin_b0);
}
if(bit_test(porta,1)==0)
{
output_low(pin_b0);
output_high(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
}
if(bit_test(porta,2)==0)
{
output_low(pin_b0);
output_low(pin_b1);
output_high(pin_b2);
output_high(pin_b3);
}
}
}
fin de programa 1programa 2#include <16f84a.h>
#fuses XT,NOWDT,NOPROTECT,
#use delay(clock=4000000)
void main()
{
set_tris_b(0b11110000);
set_tris_a(0xff);
output_b(0);
while(true)
{
if(input(pin_a0)==0) //aca pregunto por el pin RA0 de PORTA de otra manera SIN
//EL SIGNO DE ADMIRACION q puse en el programa anterior
{
output_high(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
delay_ms(500); //aqui le puse medio segundo para visualizarlo mejor
output_low(pin_b0);
}
if(input(pin_a1)==0)
{
output_low(pin_b0);
output_high(pin_b1);
output_low(pin_b2);
output_low(pin_b3);
}
if(input(pin_a2)==0)
{
output_low(pin_b0);
output_low(pin_b1);
output_high(pin_b2);
output_high(pin_b3);
}
}
}
fin de programa 2bueno jfranco espero haberte ayudado.
de todas maneras te recomiendo que bajes este manual del compilador de CCS C COMPILER en español
http://www.megaupload.com/?d=M5RIWX0Dy q tambien te descargues este archivo q alli esta un libro que te podra ayudar a empezar y entender muchas cosas
http://www.taringa.net/posts/taringa/2425914/Todo-Para-Programar-Pic-en-C-y-Basic.htmly la clave de este archivo es: and_nitro
espero te ayude colega,cualquier cosa pide ayuda,chau y suerte