LIST P=PIC16F84A
#INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
CBLOCK 0CH
work,stat,contador
ENDC
#DEFINE banco0 bcf STATUS,RP0
#DEFINE banco1 bsf STATUS,RP0
org 00H ;vector de reset
goto inicio
org 04H ;vector de interrupcion
;---------------------------------------------ISR
bcf INTCON,T0IF ;bajamos la bandera
movwf work ;guardamos el estado de w
movf STATUS,w
movwf stat ;guardamos STATUS
decfsz contador,f
goto hecho
movlw 09H
movwf contador
hecho
movf stat,w
movwf STATUS
swapf work,f
swapf work,w
retfie
;-------------------------------programa principal
inicio
banco1
movlw b'00000111' ;configuramos todos los reg
movwf OPTION_REG
movlw b'10100000'
movwf INTCON
movlw 00H
movwf TRISB ;todo puertoB como salida
banco0
bucle
movf contador,w
call tabla
banco0
movwf PORTB
goto bucle
tabla
ADDWF PCL,f ;cargamos el valor del acumulador en el registro
RETLW 40H ;Para mostrar el 0
RETLW 79H ;Para mostrar el 1
RETLW 24H ;Para mostrar el 2
RETLW 30H ;Para mostrar el 3
RETLW 19H ;Para mostrar el 4
RETLW 12H ;Para mostrar el 5
RETLW 02H ;Para mostrar el 6
RETLW 78H ;Para mostrar el 7
RETLW 00H ;Para mostrar el 8
RETLW 10H ;Para mostrar el 9
END