No entiendo porque RA4 lo mandas a VCC. ¿Como obtienes los 5V, con un regulador 7805? Si es así te recomiendo que el capacitor sea de 10uF en lugar de 10nF.
Otra cosa que tiene que ver con el retardo de tu programa. Al utilizar cristal de 4MHz, el tiempo de instrucción es de 1uS. Tu rutina de retardo hace 255 * 3 (que son los tres ciclos que toma en decrementar y saltar hacia DEC, mientras el contador TIEMPO sea mayor a 0) + 2 (que serían los dos ciclos de MOVLW y MOVWF) por lo tanto sería 255*3 + 2 --> 767 uS. Creo que podría ser poco tiempo para notar el "movimiento" de los leds |
Tienes razón en todo Angel Gris;
Lo del pin Ra4 fue error en el gráfico que preparé de prisa, en realidad esté con una resistencia pull down y un switch para reset (esto en el montaje en protoboard) por que en el laboratorio entrenador no he checado.
Lo del retardo lo probé con un programa sin bucle, con el puerto A como entrada y el B leyendo y mostrando a través de leds; Cada vez que le mandaba un 1 no encendía el led hasta que acercaba la mano al cable del oscilador.
También le duplique los retardos al programa que te mostré antes asi:
....GOTO INICIO
RETARDO
MOVLW D'255'
MOVFW TIEMPO
DEC DECFSZ TIEMPO
GOTO DEC1
RETURN
DEC1 MOVLW D'255'
MOVFW TIEMPO2
DEC3 DECFSZ TIEMPO2
GOTO DEC3
GOTO DEC
RETURN
END
y de igual manera dependía de que tanto acercaba mi mano
, incluso le conecté un cable a masa y así se veía bonito el efecto pero creo que no debe ir así.
En cuanto a los condensadores que recomiendas lo voy a hacer pero estoy decidido a montar todo en una placa aparte con lo que me indicas por que la alimentación la he estado tomando del laboratorio que comenté. Voy a aislarlo de todo y soldar cada cosa para ir restando posibles causas.
Espero estar probando a mas tardar mañana el circuito montado y poder comentarte como me fué.
Mi admiración por tus conocimientos y mi agradecimiento por el esfuerzo que me dedicas Amigo.
Seguimos.