Hola, no se si esto se parece a lo que pretendias, pero funciona. Esta hecho en Proton PicBasic, que me pareció el lenguaje que has usado:
Config INTRC_OSC_NOCLKOUT,WDT_OFF,MCLRE_off
Device = 12f675
XTAL = 4
symbol cout = CMCON.6
CMCON=%00000001
ANSEL=%00000011 'GP0 y GP1 entradas del comparador, GP2 salida cout
TRISIO = %00011011 'Entradas y salidas
GPIO=%00000000 'salidas a 0
DIM estado as bit
Inicio:
estado = 0 ' estado biestable a 0
main_loop:
if GPIO.3=1 then
call biestable 'Si pulso en GP3, biestable
endif
if GPIO.4=1 then
call temporizada 'Si pulso en GP4, temporiza
endif
goto main_loop
biestable:
if cout=1 then 'Biestable
if estado = 0 then
high GPIO.5
pause 100
estado = 1
else
low GPIO.5
pause 100
estado = 0
endif
else
goto main_loop
endif
temporizada:
if cout=1 then 'Temporizador
high GPIO.5
pause 10000
low GPIO.5
estado = 0
else
goto main_loop
endif
Aparte de definir las directivas de procesador y fuses, para que el programa te funcione, he definido los puertos de entrada/salida.
En tu programa has definido GP0 y GP1 como entradas de comparador y GP2 como salida del mismo, con lo cual puedes monitorizar el resultado de cout en GP02.
En tu programa, el estado de GP5 nunca volvia a 0, una vez lo ponias a 1, asi que siempre se quedaba igual y ni temporizaba ni basculaba.
Salu2