Buenos días amigos, les escribo porque no entiendo el por que no funciona este código para pic 16F877a, está hecho en ensamblador y se trata de un contador ascendente y descendente.
Se utilizan dos botones, uno conectado al puerto A en el pin 0 y otro en el puerto A en el pin 1.
Este código daría a conocer por donde va una cuenta en binario a través del puerto B.
Este es el código ensamblador.
Se utilizan dos botones, uno conectado al puerto A en el pin 0 y otro en el puerto A en el pin 1.
Este código daría a conocer por donde va una cuenta en binario a través del puerto B.
Este es el código ensamblador.
Código:
List p=16F877A ;Tipo de procesador
include "P16F877A.INC" ;Definiciones de registros internos
org 0x00 ;Vector de Reset
goto Inicio
Inicio
dato equ 0x20
movlw 0x6
movwf dato
clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000110'
movwf ADCON1 ;Puerta A digital
clrf TRISB ;Puerta B se configura como salida
movlw b'00001111'
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0
movlw 0x0
movwf PORTB
programa
btfsc PORTA,0
goto precontar
btfsc PORTA,1
goto predescontar
goto programa
precontar
btfss PORTA,0
goto contar
goto precontar
predescontar
btfss PORTA,0
goto descontar
goto predescontar
contar
movlw 0x02
addwf dato,1
movlw dato
movwf PORTB
goto programa
descontar
movlw 0x02
subwf dato,1
movlw dato
movwf PORTB
goto programa
end
Última edición por un moderador: