You are on page 1of 1

__CONFIG _CP_OFF & _CPD_OFF & _DEBUG_OFF & _LVP_OFF &

_WRT_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_ON & _XT_OSC


CBLOCK 0X20
DIGITO0
DIGITO1
DIGITO2
DIGITO3
FILTRO_BOTOES
INDICE_VARRE_DISPLAY
ENDC
CBLOCK 0X70
STATUS_TEMP
WORK_TEMP
FSR_TEMP
PCLATH_TEMP
ENDC

#include <P16F877A.INC>

#DEFINE BANK1 BSF STATUS,RP0
#DEFINE BANK0 BCF STATUS,RP0
FILTRO_TECLA EQU .200

ORG 0x000
GOTO CONFIGURACAO

ORG 0x004 SALVA_CONTEXTO
MOVWF WORK_TEMP
SWAPF STATUS,W MOVWF
STATUS_TEMP MOVF
PCLATH,W
MOVWF PCLATH_TEMP

CLRF PCLATH
CLRF STATUS
GOTO INT_TMR0

TABELA_DISPLAY_7_SEG
ANDLW B'00001111'
ADDWF PCL,F
RETLW B'00111111' ; 0h - 0
RETLW B'00000110' ; 1h - 1
RETLW B'01011011' ; 2h - 2
RETLW B'01001111' ; 3h - 3
RETLW B'01100110' ; 4h - 4
RETLW B'01101101' ; 5h - 5
RETLW B'01111101' ; 6h - 6
RETLW B'00000111' ; 7h - 7
RETLW B'01111111' ; 8h - 8
RETLW B'01101111' ; 9h - 9
RETLW B'00000000' ; Ah - BLANK
RETLW B'00000000' ; Bh - BLANK
RETLW B'00000000' ; Ch - BLANK
RETLW B'00000000' ; Dh - BLANK
RETLW B'00000000' ; Eh - BLANK
RETLW B'00000000' ; Fh - BLANK

TABELA_MUX
ADDWF PCL,F
RETLW B'00010000'
RETLW B'00100000'
RETLW B'01000000'
RETLW B'10000000'

INT_TMR0
INCF INDICE_VARRE_DISPLAY,F
MOVLW B'00000011'
ANDWF INDICE_VARRE_DISPLAY,F
MOVF INDICE_VARRE_DISPLAY,W

CLRF PORTD
MOVLW B'00001111' ANDWF
PORTB,F MOVF
INDICE_VARRE_DISPLAY,W
CALL TABELA_MUX
IORWF PORTB,F GOTO
$+1
MOVF INDF,W
CALL TABELA_DISPLAY_7_SEG MOVWF
PORTD

SAI_INT_TMR0
BCF INTCON,T0IF
MOVF PCLATH_TEMP,W
MOVWF PCLATH
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF WORK_TEMP,F
SWAPF WORK_TEMP,W
RETFIE

CONFIGURACAO
BANK1
MOVLW B'00001111'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISD
MOVLW B'11011111'
MOVWF OPTION_REG
MOVLW B'00100000'
MOVWF INTCON
BANK0
CLRF PORTB
CLRF PORTD
CLRF DIGITO0
CLRF DIGITO1
CLRF DIGITO2
CLRF DIGITO3
BSF INTCON,GIE

VARRE
CLRWDT
BTFSS PORTB,0
GOTO TRATA_BOTAO_0
BTFSS PORTB,1
GOTO TRATA_BOTAO_1
BTFSS PORTB,2
GOTO TRATA_BOTAO_2
BTFSS PORTB,3
GOTO TRATA_BOTAO_3
MOVLW FILTRO_TECLA
MOVWF FILTRO_BOTOES
GOTO VARRE

TRATA_BOTAO_0
MOVF FILTRO_BOTOES,F
BTFSC STATUS,Z
GOTO VARRE
DECFSZ FILTRO_BOTOES,F
GOTO VARRE
INCF DIGITO3,F
MOVLW .10
XORWF DIGITO3,W
BTFSC STATUS,Z
CLRF DIGITO3
GOTO VARRE

TRATA_BOTAO_1
MOVF FILTRO_BOTOES,F
BTFSC STATUS,Z
GOTO VARRE
DECFSZ FILTRO_BOTOES,F
GOTO VARRE
INCF DIGITO2,F
MOVLW .10
XORWF DIGITO2,W
BTFSC STATUS,Z
CLRF DIGITO2
GOTO VARRE

...

END

You might also like