Hola a los piclisteros, tengo problemas al pasar mi circuito a tiempo real. mi circuito lo unico que hace es prender un led un segundo y apagarlo un segundo. El programa en Proteus funciona a placer, es cuando lo grabo en el micro cuando veo que no pasa nada o que el led parpadea muy debilmente y no es a un segundo. EStoy usando Pickit2 como software y un grabador usb. Me imagino que el problema está en que en pickit2 no se como seleccionar el oscilador XT de 4mhz que es el que uso en mi protoboard con capacitores de 15pf, pensé que poniéndolo desde directivas en mplab trabjaría pero ni así. Por cierto, veo que la configuration word en Proteus es 3FFB. que me aconsejan? Cambiarla en mplab? Pero he visto que 3ffb corresponde a un oscilador RC. Les dejo el código a ver si encuentran algo para ayudarme, aunque creo que el problema está en la palabra de configuración o en el software Pickit2, si es la palabra de configuración les agradezco una informacón de como manejarla desde programa o en la casilla configuration bits de mplab
ist p=16f877
include "p16f877.inc"
__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON
org 0x00
goto Inicio
org 0x05
Auxiliar EQU 0X21
Inicio ;este programa enciende 1 segundo y apaga un segundo un led en ra1
clrwdt
bsf STATUS,RP0
movlw 0x06
movwf ADCON1 ; pasa al banco 1 y convierte en E/S digitles
movlw 0xFF
movwf TRISB
clrf TRISA ; configura a puertoa como salidas
movlw 0x07
movwf OPTION_REG ; pre-escaler de 1:256 a Tmr0
BCF STATUS,RP0
Ciclo
bsf PORTA,1 ; enciende a ra1 y llama a temporizado de 1 segundo
call Temporizado
bcf PORTA,1
CALL Temporizado ; apaga a ra1 y lla a temporizado de 1 segundo
goto Ciclo
Temporizado
movlw .16
movwf Auxiliar ; debido a que el pic solo llega 16ms se necestia a auxiliar para llegar a 1 segundo
clrf TMR0 ; asocia el valor de 0 a tmr0 para que realice 256 incrementos
Sigue1
bcf INTCON,T0IF ; borra la bandera de desborde de tmr0
Sigue
clrwdt ;refresca el watchdog
btfss INTCON,T0IF ; ya se desbordo tmro?
goto Sigue ; no, sigue con el incremento en la etiqueta Sigue
decfsz Auxiliar,1 ; si, se desbordo , pregunta si auxiliar ya es cero
goto Sigue1 ; no, vuelve a temporizar con tmr0 y decrementa auxiliar una vez mas
return ; ya auxiliar es cero, vuelve al program pral.
end