Está en la página 1de 2

;****************************** Igualdades

**********************************
;

List p=16F628A
radix Hex

w equ 0
f equ 1
PCL equ 0x02
Estado equ 0x03
PuertaA equ 0x05 ;Pone a la puerta A en el banco 0
PuertaB equ 0x06 ;Pone a la puerta B en el banco 0
VALOR equ 0x0C ;Registro Auxiliar
contador equ 0x0D
loops equ 0x0E
loops2 equ 0x0F
Z equ 0x02

;<<<<<<---------------------- VECTOR DE RESET ------------------------


>>>>>

org 0 ;Inicio del PC (reset)


goto Empiezo
org 5 ;Comienzo del programa en direcci�n
5(para
;saltar el vector de interrupci�n

;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL -------------------


>>>>>

Empiezo bsf Estado,5 ;Selecci�n del Banco 1


clrw
movwf PuertaB ;Se configura Puerto B como salida
movlw 0xff ;Configura RA0, RA1 como entradas
movwf PuertaA ;Configura como entrada
bcf Estado,5 ;Elige banco 0
reinicio clrf contador
Explora btfss PuertaA,0 ;
goto Explora
call retardo
btfss PuertaA,0 ;
goto Explora
incf contador
movfw contador
xorlw .10
BTFSC Estado,Z
goto reinicio

visual
movwf PuertaB
goto Explora
retardo
CLRWDT
MOVLW D'200' ;antes 2
MOVWF loops
top2 MOVLW D'220' ;antes 3
MOVWF loops2
top CLRWDT
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ loops2,1 ;pregunta si termino 1 ms
GOTO top
DECFSZ loops,1 ;pregunta si termina el retardo
GOTO top2
RETLW 0

END

También podría gustarte