problema de frecuencia con pic 16F877A

hola, tengo un problema grabe... tengo un pic 16F877A al cual quiero cargarle un programa para hacer un cartel matricial,pero como en primera vez que utilizo este pic decidi primero hacer un programa simple para aprender bien como se utiliza... el programa hace parpadear un led en el bit 7 del puerto b con una rutina de ratardo de 200ms,osea que en 1 segundo debe cambiar de estado 5 veces...el programa es el siguiente:

PORTB EQU 0X06
PORTA EQU 0X05
TRISA EQU 0X85
TRISB EQU 0X86
REG2 EQU 0X20
REG1 EQU 0X21
STATUS EQU 0X03

ORG 0X00
GOTO INICIO
ORG 0X05

;SUBRUTINAS

MS movwf REG1
ms1 movlw .250
movwf REG2
ms2 nop
decfsz REG2
goto ms2
decfsz REG1
goto ms1
return

INICIO
BSF STATUS,5
CLRF TRISB
BCF STATUS,5

HOLA
BSF PORTB,7
MOVLW .200
CALL MS
BCF PORTB,7
MOVLW .200
CALL MS
GOTO HOLA
END


ok,el hardware es sencillo,tiene una resistencia de un 1k que va a positivo y al mclr de el pic(pin1) luego un cristal de 4mhz con 2 capacitores de 12pf a massa,en el puerto b un uln2803 conectado a todas las saldas del pueto b y en el bit 7 un led con una resistencia a positivo,y la alimentación de el pic de 5v... el MALDITO PROBLEMA es que el led no cambia de estado cada 200ms si no que se tarda muchisimo mas.. no medi el tiempo pero deben ser 3 o 4 segundos...(osea que hace lo que quiero segun el programa pero no se que pasa con el tiempo)estoy loco ya no se que puede ser... la rutina de retardo la use MUCHAS VECES en otros programas asi que se que anda...un amigo lo simulo en el proteus y funciona correctamente, el cristal ya lo cambie varias veces,probe con otro pic y con otro programador y otra plaqueta y pasa LOS MISMO...los bit de configuracion del pic puse el oscilador en XT el lvp desactivado el power up timmer habilitado, ayúdenme POR FAVOR
 
Atrás
Arriba