Você está na página 1de 1

list p=16f84a ; para indicar ao compilador qual microcontrolador será

usado

#include <p16f84a.inc> ; inclui o arquivo do PIC16F84A


#include 'p16f84a.inc' ; inclui o arquivo do PIC16F84A

_XT_OSC ; indicar que o cristal é de 4MHz

_WDT_OFF ; WDT é responsável por fazer o reset quando alguma coisa especifica
;acontece

_PWRTE_ON_ ; ao inicar o compilador ele aguarda 72ms para a iniciar o


; processamento para que todos os registradores estejam estabilizados

_CP_OFF ; proteção contra cópias do código

#define bank0 bcf STATUS,RP0 ; Cria um mnemônico para o banco 0 de


;memória
#define bank1 bst STATUS,RP0 ; Criar um mnemônico para o banco 1 de
;memória

W: work (registrador de trabalho ou acumulador);


F: file (registradores especiais e/ou de uso geral);
L: literal (constante, número qualquer) Utilizado como L nas instruções e k nos
arumentos);
D: destination (local onde o resultado de uma opração será armazenado);
B: bit (bits dentro dos registradores, dentro de um byte, flags);
T: test (utilizado para teste de bits);
S: skip (pulo, salto, desvio condicional);
S: set (setar, nível lógico alto);
C: clear (limpar, tornar nível baixo); e
Z: zero (testar se é equivalente a zero).

org H'0000' ;origem no endereço 0000h de memória


goto inicio ;desvia do vetor de interrupção

org H'0004' ;todas as interrupções apontam para esse endereço


retfie ;retorna de interrupção

inicio:
bank1 ;seleciona o banco 1 de memória
movlw H'FF' ;W= B'11111111'
movwf TRISA ;TRISA= H'FF'
movlw H'7F' ;W= B'01111111'
movwf TRISB ;TRISB = H'7F' (apenas o RB7 como saida)
bank0 ;seleciona o banco 0 de memória (pedrão do reset)
movlw H'FF' ;W= B'11111111'
movwf PORTB ;RB7 (configurado como saida) inicia em high

goto $ ;segura código nessa linha

end ;final do programa

#define botao1 PORTB,RB0 ;botão 1 ligado em RB0

#define led1 PORTB,RB7 ;led ligado em RB7

Você também pode gostar