;****************************** 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

Codigo ASM display Microcontrolador PIC

  • 1.
    ;****************************** Igualdades ********************************** ; List p=16F628A radixHex 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
  • 2.
    retardo CLRWDT MOVLW D'200' ;antes2 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