Você está na página 1de 2

#INCLUDE <P16F627.

INC>;# especificao do controlador a usar


ORG 0x40 ; Definir o endereo para que o microcontrolador
deve ir quando se liga a alimentao
COUNT EQU 0x20 ; Varivel para utilizar no ciclo delay
ORG 0X00
CLRF PORTA ; inicializa PORTA
MOVLW 0x07
MOVWF CMCON ; Comparadores off
CAR EQU 0x22 ; CAR = 0x22

START
BCF STATUS, RP1
BSF STATUS, RP0 ; Selecciona Banco 1 (para acesso ao registo TRI
S)
MOVLW 0x00
MOVWF TRISB ; Configura todos os pinos de PORTB como sadas
;-------------------DEFINE ENTRADAS
BSF TRISA, 1 ; DEFINE O BOTAO ON/OFF (RA1)
BSF TRISA, 2 ; DEFINE SENSOR ENTRADA (RA2)
BSF TRISA, 3 ; DEFINE SENSOR DE SAIDA (RA3)
;------------ DEFINE SAIDAS
BCF TRISA, 6 ; DEFINE LUZ DE OCUPADO (RA6)
BCF TRISA, 7 ; DEFINE A LUZ LIVRE (RA7)
BCF STATUS, RP0
BCF STATUS, RP1 ; Selecciona o banco 0 (para acesso PORTB)
MOVF CAR, 0x00
;-------{ LUZ VERDE INTERMITENTE
CICLO:
BSF PORTA, 7 ; LIGA
BCF PORTA, 7 ; DESLIGA
BTFSS PORTA, 1 ; SE O BOTAO ESTIVER ON[]
GOTO CICLO
BTFSC PORTA, 2 ; (RA2 Entrada) Salta se no ligado
INCF CAR, 1
BTFSC PORTA, 3 ; (RA3 Sada) Salta se no ligado
DECF CAR, 1
;-------{ PROCEDIMENTO CONVERTE
; MOVF CAR, NUM
CALL CONVERTE
MOVWF PORTB ; Envia o valor para o PORTB
CALL LL ; Reset PCL
GOTO CICLO

;RETLW B'00111111' ; Cdigo para o '0''


;RETLW B'00000110' ; Cdigo para o '1'
;RETLW B'01011011' ; Cdigo para o '2'
;RETLW B'01001111' ; Cdigo para o '3'
;RETLW B'01100110' ; Cdigo para o '4'
;RETLW B'01101101' ; Cdigo para o '5'
;RETLW B'01111101' ; Cdigo para o '6'
;RETLW B'00000111' ; Cdigo para o '7'
;RETLW B'01111111' ; Cdigo para o '8'
;RETLW B'01101111' ; Cdigo para o '9'

;se F=0 o resultado fica em W


;se F=1 o resultado fica em F
;se F=1 o resultado fica em PCL

CONVERTE:
MOVLW 0x00
MOVWF PCLATH
MOVF 0x22, W; 0x22 = CAR
ADDWF PCL, F; F acumulador ; PCLATH so os ltimos 5 bits mais altos d
o PCL, coloca bits a 00000
RETLW 0x3F
RETLW 0x06
RETLW 0x5B
RETLW 0x4FA
RETLW 0x66
RETLW 0x6D
RETLW 0x7D
RETLW 0x07
RETLW 0x7F
RETLW 0x6F

LL:
RETURN

CICLODELAY:
INCFSZ COUNT, 1
GOTO CICLODELAY
RETURN
END

Você também pode gostar