Você está na página 1de 2

;Conhecendo as portas do PIC

;=--------------------------
#INCLUDE <P16F628A.INC>
__CONFIG 0X3F61
CBLOCK 0X20
TP1
TP2
AUX
AUX2
AUX3
AUX4
ENDC
;TP1 EQU 0X20 outra forma de declarar uma variável
;TP2 EQU 0X021 outra forma de declarar uma variável, note há uma decrementação no nesta
;O número vai até 07f
;
;
ORG 0X00
GOTO INICIO
;------------------------
;------------------------
INICIO:
BSF STATUS,RP0;5 é a mesma coisa que RPO.Mundança para o Banco 1.
MOVLW b'11111110'
MOVWF TRISB
BCF STATUS,RP0;Volta ao banco 0.
CLRF PORTB
CLRF PORTA
;-------------------------------
LOOP_PP:
MAIN:
CALL GERANDO_BEEP
CALL DELAY_400ms
GOTO LOOP_PP
;-------------------------------
GERANDO_BEEP:
CALL DELAY_400ms
MOVLW .241
MOVWF AUX
MOVLW .05
MOVWF AUX2
BEEPS:
MOVLW .1
XORWF PORTB,F
CALL DELAY_166us
DECFSZ AUX,F
GOTO BEEPS
MOVLW .241
MOVWF AUX
DECFSZ AUX2,F
GOTO BEEPS
RETURN
GOTO GERANDO_BEEP;$;FIM este pode substiuir o $,ON_LED
;|||||||||||||||||||||||||||||||||||||||||||||||||||
DELAY_166us:
MOVLW 0X02;0X1;OXFFVALOR EM HEXADECIMAL
MOVWF TP2
CONT2:
MOVLW .25;0XFFFFF;OXFFF 0X40
MOVWF TP1
CONT:
DECFSZ TP1,F
GOTO CONT
DECFSZ TP2,F
GOTO CONT2
NOP
GOTO $+.1
RETURN
;|||||||||||||||||||||||||||||||||||||||||||||||||||
DELAY_400ms:
MOVLW .241
MOVWF AUX3
MOVLW .010
MOVWF AUX4
CONTANDO:
CALL DELAY_166us
DECFSZ AUX3,F
GOTO CONTANDO
MOVLW .241
MOVWF AUX3
DECFSZ AUX4,F
GOTO CONTANDO
RETURN

END

Você também pode gostar