Hola de nuevo. He hecho un programa sencillo, que es el parpadeo de un led, y el retardo deberia de ser de unos 62,5 ms segun el programa para cada cambio de estado del led, sin embargo el tiempo real es de mas o menos un segundo. Os muestro el programa:
LIST P=PIC16F88
INCLUDE <P16F88.INC>
; CONFIG1
; __config 0x2F09
__CONFIG _CONFIG1, _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CCPMX_RB3 & _CP_OFF
; CONFIG2
; __config 0x3FFC
__CONFIG _CONFIG2, _FCMEN_OFF & _IESO_OFF
ORG H'00'
BANCO0 MACRO
BCF STATUS,RP0
BCF STATUS,RP1
ENDM
BANCO1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1
ENDM
#DEFINE CUENTA1 H'20'
#DEFINE CUENTA2 H'21'
BANCO1
MOVLW H'00'
MOVWF TRISB
BANCO0
INICIO BSF PORTB,0
CALL RETARDO
BCF PORTB,0
CALL RETARDO
GOTO INICIO
RETARDO MOVLW D'250'
MOVWF CUENTA1
VUELVE2 MOVLW D'250'
MOVWF CUENTA2
VUELVE1 DECFSZ CUENTA2
GOTO VUELVE1
DECFSZ CUENTA1
GOTO VUELVE2
RETURN
END