;**********************************************************************
list p=12c508
#include <p12c508.inc>
;**********************************************************************
__CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC
;**********************************************************************
#DEFINE LED1 GPIO,0
#DEFINE LED2 GPIO,1
#DEFINE BOTAO2 GPIO,2
#DEFINE BOTAO1 GPIO,3
#DEFINE LED3 GPIO,4
#DEFINE LED4 GPIO,5
;**********************************************************************
CBLOCK 0X07
TEMP1
TEMP2
ENDC
;**********************************************************************
ORG 0x1FF
;**********************************************************************
ORG 0x000
GOTO CONFIGU
;**********************************************************************
CONFIGU
MOVWF OSCCAL
MOVLW B'00001100'
TRIS GPIO
MOVLW B'00000000'
MOVWF GPIO
;**********************************************************************
MAIN
BTFSS BOTAO1
CALL VERDADE1
CALL FALSO
NOP
BTFSS BOTAO2
CALL VERDADE2
CALL FALSO
NOP
GOTO MAIN
;**********************************************************************
FALSO
MOVLW 0X00
MOVWF GPIO
NOP
RETURN
;**********************************************************************
VERDADE1
BSF LED2
CALL DELAY
BSF LED1
BCF LED2
CALL DELAY
BSF LED1
RETURN
;**********************************************************************
VERDADE2
BSF LED4
CALL DELAY
BSF LED3
BCF LED4
CALL DELAY
BSF LED3
RETURN
;**********************************************************************
DELAY ; 100ms delay
MOVLW 0X1E
MOVWF TEMP1
MOVLW 0X4F
MOVWF TEMP2
DELAY_0
DECFSZ TEMP1, F
GOTO $+2
DECFSZ TEMP2, F
GOTO DELAY_0
GOTO $+1
NOP
RETURN
;**********************************************************************
END
;**********************************************************************