Você está na página 1de 3

LIST P=16F84A

#INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC

REG1 equ 12H


REG2 equ 13H
REG3 equ 14H
conta equ 15H

reset org 00h


goto inicio
org 05h

inicio
bsf STATUS,5 ;elige el banco 1 pone a 1 RP0
movlw b'00000000' ;configura portB como salida
movwf TRISB
movlw b'00011000' ;configura portA como salida
movwf TRISA
bcf STATUS,RP0 ;elige el banco 0
CLRF PORTB
CLRF PORTA
bsf PORTA,0
bsf PORTA,1
borrar_conta
clrf conta
movf conta,w
movwf PORTB
call retardo500ms
pulsadores
btfss PORTA,4
goto conta_incre
btfss PORTA,3
goto conta_decre
goto pulsadores
conta_incre
incf conta
movf conta,w
xorlw 0AH
btfsc STATUS,Z
goto borrar_conta
movf conta,w
movwf PORTB
call retardo500ms
goto pulsadores
conta_decre
movf conta,w ;carga el valor de conta a w
xorlw 00H ;identifica si conta es cero si w?0 z=0 si w=0 z=1
btfss STATUS,2 ;salta si z=1 sino lee la sgte linea
goto decre_conta ;z=0 resultado de xor ?0
movlw 09H ;carga el valor 9 a w
movwf conta ;valor 9 a conta si este es 0
movf conta,w ;carga conta a w
movwf PORTB ;mueve el valor de conta a w para ver en diplay
call retardo500ms
goto pulsadores
decre_conta
decf conta
movf conta,w
movwf PORTB
call retardo500ms
goto pulsadores

retardo100ms
movlw .180
movwf REG1

cargarREG2
movlw .185
movwf REG2

decre1
decfsz REG2
goto decre1
decfsz REG1
goto cargarREG2
return

retardo500ms
movlw 05h
movwf REG3
decreREG3
call retardo100ms
decfsz REG3
goto decreREG3
return

END

Você também pode gostar