"
Como você que ler o portb se ele é todo saída? O compilador faz a mudança de direção para tí como faz o CCS?"
O que ele está usando é o compilador CCS!!! O portb pode se comportar como entrada também!!! Ali não está lendo o portb!!!
SET_TRIS_A(0xFF); deixa todos os pinos do PORTA como entrada.
SET_TRIS_B(0x00); deixa todos os pinos do PORTB como saida.
if (input(PIN_A0)) lê o estado do bit A0 do PORTA.
"
E quem desliga o pino A0?"
É um pushbottom não precisa ficar apertado, aperta-se apenas uma vez e solta!!!
Quem garante que o pino do botão não fique "flutuando" é o resistor de pullup ou pulldown, dependendo da configuração.
"
Como está ligado a chave? Pro VCC ou pro GND?"
Resistor de pulldown de 10K (resistor para GND) e chave para VCC.
Se quizer inverter, colocar o resistor de pullup e botão para GND, terá que mudar no código
if (input(PIN_A0)) para
if (!input(PIN_A0)).
"
Ah, o PIC16F84 já trabalha a 40 MHz? No meu tempo, malemal dava 4 MHz..."
Este PIC esta rodando a 4MHz = 4000000!!! Mas com o oscilador interno neste exemplo, sem cristal!!!
Foi definido pelos Fuses!!!
#FUSES INTRC_IO = oscilador interno por RC.
Segue o exemplo do vídeo, não o fiz inteiro,
falta a função void letra_B(); !!!
http://www.4shared.com/rar/osmxGvijba/M ... lay_4.htmlObs: Eu não sou o autor ou dono do código original!!!