Jay-di, não concordo consigo que programar um pic não é facil.
É claro que é preciso ter noções de eléctronica, e usar um compilador com uma linguagem acecivél, neste aspecto recomendo o CCS é a papinha toda feita.
Para que possam experimentar posso colocar em anexo o dito compilador.
Vou escrever um programa para fazer piscar um led a 1Hz, no porto B PIN0.
#include <16F876A.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES WRT_50% //Lower half of Program Memory is Write Protected
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
seg: output_bit( PIN_B0, 0);
delay_ms (1000);
output_bit( PIN_B0, 1);
delay_ms (1000);
goto seg;
// TODO: USER CODE!!
}
Não se assustem grande parte do codigo é gerado pelo compilador, apenas indicamos a frequencia do cristal e meia duzia de coisas.
É claro que é compilar depos enviar o asm para o PIC com ICprog ou outro, para tal um programador JDM é barato e funciona cinco estrelas.
Não se esqueção de colocar uma resistencia entre o PortoB PIN_0 e o LED no valor de uns 620 homes.
Estou a pensar en comprar um programador JDM já com SOKET ZIF e suporte para ligação USB. Se ouver interessados fica nuns 30 euros.
Um abraço a todos.