prueva este programa
es sencillo quizas te sirva.
#include"p16f84a.inc"
;programa contador ascedente del 0 al 9
;multiplos de 2 enciende el led que esta localizaco en rb7
;enciendo con cero el anodo va a 5v
;el display es de anodo comun el comun va a 5v
;el display va al puertob
;la tabla1 no enciende el led
;la tabla2 enciende el led.
;todo numero impar no es multiplo de 2 y siempre su ultimo bits es 1
ejm 5 = 0101
8 = 1000
9= 1001
por eso btfss cont,0
;definicion de registros
status equ 03
porta equ 05
portb equ 06
trisb equ 86
trisa equ 85
cont equ 0c
pcl equ 02
reg1 equ 10
reg2 equ 11
reg3 equ 12
org 00
goto inicio
inicio bsf status,5
clrf trisb
movlw b'11111111'
movwf trisa
bcf status,5
goto increm
increm clrf cont
ciclo1 movf conta,0
call tabla1
movwf portb
call retardo
incf cont,1
btfss cont,0
goto par
movf cont,0
call tabla1
movwf portb
call retardo
goto A
par movf cont,0
call tabla2
movwf portb
call retardo
A movlw d'10'
subwf cont,w
btfss status,2
goto ciclo1
clrf conta
movf conta,0
call tabla2
movwf portb
call retardo
goto increm
tabla1 TABLA ADDWF PCL,1
RETLW B'11000000'
RETLW B'11111001'
RETLW B'10100100'
RETLW B'10110000'
RETLW B'10011001'
RETLW B'10010010'
RETLW B'10000010'
RETLW B'11111000'
RETLW B'10000000'
RETLW B'10011000'
tabla2 TABLA ADDWF PCL,1
RETLW B'01000000'
RETLW B'01111001'
RETLW B'00100100'
RETLW B'00110000'
RETLW B'00011001'
RETLW B'00010010'
RETLW B'00000010'
RETLW B'01111000'
RETLW B'00000000'
RETLW B'00011000'
RETARDO MOVLW .9
MOVWF REG1
DEC3 MOVLW .9
MOVWF REG2
DEC2 MOVLW .5
MOVWF REG3
DEC1 DECFSZ REG3,1
GOTO DEC1
DECFSZ REG2,1
GOTO DEC2
DECFSZ REG1,1
GOTO DEC3
RETURN
end
suerte