#include <p16f877a.inc>
CONF_ADCON1 equ b'00000110' ;PA entrada digital
CONF_OPT equ 0xF8 ;Valor al TMR0
unidades equ 0x20 ;Variable
decenas equ 0x21
org 0x000
clrf STATUS
clrf PCLATH
goto ini
org 0x004 ;ISR ira aqui luego
nop
ini
bsf STATUS,RP0
bcf STATUS,RP1
movlw CONF_ADCON1 ;PA como entrada digital
movwf ADCON1
movlw 0xFF
movwf TRISA ;PA entrada
clrf TRISC ;PD salida
clrf TRISD ;PC salida
movlw CONF_OPT
movwf OPTION_REG ;Configuracion del TMRO
bcf STATUS,RP0
bcf STATUS,RP1
clrf TMR0
clrf conta
loop
movf TMR0,W
call calcularDigitos
movf unidades,W
movwf PORTC
movf decenas,W
movwf PORTD
goto loop
;*****************************
;SUBRUTINAS
;*****************************
calcularDigitos
movwf unidades
clrf decenas
otraDecena
movlw .10
subwf unidades,f
btfss STATUS,C
goto done
incf decenas,F
xorwf decenas,W
btfsc STATUS,Z
clrf decenas
goto otraDecena
done
addwf unidades,f
return
END