Você está na página 1de 2

;-------------------------------------------------------------------

; TÍTULO DO PROGRAMA
;-------------------------------------------------------------------
;AUTOR: ________________________ ÚLTIMA REVISÃO: XX/XX/XX
;-------------------------------------------------------------------
; DESCRIÇÃO RESUMIDA
;-------------------------------------------------------------------
;Este programa foi desenvolvido para o microcontrolador PIC16FXXX e
;tem por finalidade...
;-------------------------------------------------------------------
; ARQUIVOS DE DEFINIÇÕES
;-------------------------------------------------------------------
#INCLUDE <P16Fxxx.INC> ;Arquivo padrão microchip para o PIC16Fxxx
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;-------------------------------------------------------------------
; PAGINAÇÃO DE MEMÓRIA
;-------------------------------------------------------------------
#DEFINE BANCO_0 BCF STATUS,RP0 ;Habilita BANCO 0 de memória
#DEFINE BANCO_1 BSF STATUS,RP0 ;Habilita BANCO 1 de memória
;-------------------------------------------------------------------
; DECLARAÇÃO DE VARIÁVEIS
;-------------------------------------------------------------------
CBLOCK 0x(end.RAM) ;Endereço inicial da memória RAM
W_TEMP ;Registradores temporários para
STATUS_TEMP ;salvaguardar o contexto do programa
;princial
ENDC ;Fim do bloco de memória
;-------------------------------------------------------------------
; FLAGS INTERNOS
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; CONSTANTES
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; ENTRADAS
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; SAÍDAS
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; VETOR DE RESET
;-------------------------------------------------------------------
ORG 0x00 ;Endereço inicial da mem de programa
GOTO INICIO ;Label de início da rotina principal
;-------------------------------------------------------------------
; INÍCIO DA INTERRUPÇÃO
;-------------------------------------------------------------------
;Endereço de desvio das interrupções. A primeira tarefa é salvar os
;conteúdos de "W" e "STATUS" para recuperação futura
ORG 0x04 ;Endereço inicial da interrupção
MOVWF W_TEMP ;Copia o conteúdo de W para W_TEMP
SWAPF STATUS,W
MOVWF STATUS_TEMP ;Copia STATUS para STATUS_TEMP
;-------------------------------------------------------------------
; ROTINAS DE INTERRUPÇÃO
;-------------------------------------------------------------------

;-------------------------------------------------------------------
; ROTINA DE SAÍDA DA INTERRUPÇÃO
;-------------------------------------------------------------------
;Os valores de "W" e "STATUS" devem ser recuperados antes de retor-
;narem da rotina de interrupção
SAI_INT
SWAPF STATUS_TEMP,W
MOVWF STATUS ;Move STATUS_TEMP para STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W ;Move W_TEMP para W
RETFIE
;-------------------------------------------------------------------
; SUB-ROTINAS
;-------------------------------------------------------------------
;-------------------------------------------------------------------
; INICIO DA ROTINA PRINCIPAL
;-------------------------------------------------------------------
INICIO
BANCO_0 ;
MOVLW B'xxxxxxxx' ;
MOVWF TRISA ;
MOVLW B'xxxxxxxx'
MOVWF TRISB ;
MOVLW B'xxxxxxxx'
MOVWF OPTION_REG ;
MOVLW B'xxxxxxxx'
MOVWF INTCON ;
BANCO_1 ;
;-------------------------------------------------------------------
; INICIALIZAÇÃO DAS VARIÁVEIS
;-------------------------------------------------------------------

;-------------------------------------------------------------------
; ROTINA PRINCIPAL
;-------------------------------------------------------------------

;-------------------------------------------------------------------
; FIM DO PROGRAMA
;-------------------------------------------------------------------
END ;Marca final de compilação

Você também pode gostar