Problema para programar o 12F629

Galera,
Estou programando o 12F629 para gerar um sinal quadrado na saída GP0 mas na hora da simulação no MPLAB o pino GP0 fica sempre em 0, mesmo dando um bsf no bit 0 do registro GPIO (veja a linha 7 do Programa Principal).
Veja abaixo o código que fiz. Alguém consegue encontrar algum erro?
;----------------CRISTAL DE 4MHz----------------------
;----------------DEFINIÇÕES DO PIC-------------------
list p=12F629
include <P12F629.inc> ;define o P12F629 como mc
org 0 ;inicia a gravação no endereço 00h
PDel0 EQU 0x20 ;define PDel0 na pos 0x20
bsf STATUS,RP0 ;seta o RP0 do STATUS como 1 (banco 2)
bcf TRISIO,0 ;habilita como saída o GPIO, bit 0
bcf STATUS,RP0 ;reseta o RP0 do STATUS
;-------------------------------------------------------
; Programa principal
;-------------------------------------------------------
Main:
bcf GPIO,0 ;seta em 0 o pino GP0
nop
nop
nop
call PDelay ;chama subrotina de atraso
bsf GPIO,0 ;seta em 1 o pino GP0
nop
call PDelay
goto Main ; volta para Main
;-------------------------------------------------------
; Subrotina de atraso (1ms)
;-------------------------------------------------------
PDelay movlw .248 ; 1 set numero de repeticion
movwf PDel0 ; 1 |
PLoop0 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?
goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
end
Valeu!
Estou programando o 12F629 para gerar um sinal quadrado na saída GP0 mas na hora da simulação no MPLAB o pino GP0 fica sempre em 0, mesmo dando um bsf no bit 0 do registro GPIO (veja a linha 7 do Programa Principal).
Veja abaixo o código que fiz. Alguém consegue encontrar algum erro?
;----------------CRISTAL DE 4MHz----------------------
;----------------DEFINIÇÕES DO PIC-------------------
list p=12F629
include <P12F629.inc> ;define o P12F629 como mc
org 0 ;inicia a gravação no endereço 00h
PDel0 EQU 0x20 ;define PDel0 na pos 0x20
bsf STATUS,RP0 ;seta o RP0 do STATUS como 1 (banco 2)
bcf TRISIO,0 ;habilita como saída o GPIO, bit 0
bcf STATUS,RP0 ;reseta o RP0 do STATUS
;-------------------------------------------------------
; Programa principal
;-------------------------------------------------------
Main:
bcf GPIO,0 ;seta em 0 o pino GP0
nop
nop
nop
call PDelay ;chama subrotina de atraso
bsf GPIO,0 ;seta em 1 o pino GP0
nop
call PDelay
goto Main ; volta para Main
;-------------------------------------------------------
; Subrotina de atraso (1ms)
;-------------------------------------------------------
PDelay movlw .248 ; 1 set numero de repeticion
movwf PDel0 ; 1 |
PLoop0 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ?
goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
end
Valeu!