TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: soymoe en 29 de Agosto de 2010, 11:07:17
-
Estoy haciendo un pequeño proyecto con el PIC 12c509A y al tratar de configurar el regsitro option, este siempre queda en 00H :5]. Aqu le paso el programa principal.
LIST p=12c509A
STATUS EQU 03H
GPIO EQU 06H
Bandera EQU 08H; INDICA SI SE PULSA UNA TECLA
TMRO EQU 01H
ORG 00H
__CONFIG 0FFAH
GOTO PROGRAMA
#INCLUDE "pulso.inc"
PROGRAMA
BCF Bandera,0;BORRO LA BANDERA
CLRF TMRO;
MOVLW b'11111101' ;GP0 ENTRADA,GP1 SALIDA
TRIS GPIO
MOVLW b'1100101'
OPTION ;TRANSFIERO AL OPCION
MOVLW b'11111101'
MOVWF GPIO
LEER CALL pulso
BTFSS Bandera,0;ME INDICA SI SE PULSO UNA TECLA
GOTO LEER
BSF GPIO,1;SE PONE EN UNO SI PULSO LA TECLA
NOP
GOTO LEER
END
-
El registro OPTION es de solo escritura,
como sabes que no lo puedes configurar. Creo que no se puede leer el estado de ese registro, solo lo escribes.
Edito el mensaje, me equivoqué, si se puede saber el estado, en la simulación con mplab o con ISIS, lo he probado.
En la parte del programa que colocaste debería escribir el valor correcto. Tal vez lo estás sobreescribiendo con 0 en alguna otra parte del código.
Verifica que en el archivo pulso.inc no lo escribas con 0
-
Hola, gracias. Lo simule en el MPlab y el OPTION_REG aparece como 00H. Aqui les dejo la rutina "pulso".Tengo que estar seguro de que se programa el OPTION antes de grabarlo en el PIC.
pulso
BCF Bandera,0;BIT CERO ES BANDERA
BTFSC GPIO,0
GOTO NADA
NOSOLTO BTFSS GPIO,0
GOTO NOSOLTO
BSF Bandera,0;PULSO TECLA
NADA NOP
RETLW 00H
-
Que raro, que se carge con 00H, ya que en el momento del reset se carga con FFh. y la única instrucción que te carga es OPTION. Lo compilé y lo simulé y haciendo un step by step, después de la instrucción OPTION y se carga correctamente el valor del registro OPTION_REG. Esperemos a ver si a alguien le sucedió algo parecido. En Configure/Select device, tienes configurado correctamente el pic 12c509a?. Cuando compilás el programa, te tira algun warning?
-
Yo estoy usando el mplab 6.4, si al poner view->special funcion register el OPTION_REG queda siempre en 00H.Será el mplab?
-
Tal vez sea el mplab. Yo estoy usando la versión 8.4
-
Hola:
La isntruccion OPTION esta obsoleta. Reemplazá la línea por
movwf OPTION_REG
asegurate de que estas usando la directiva
#include "pic12c509.inc"
para no tener que definir la posicion de memoria de los registros
-
El registro OPTION no tiene una direccion asignada en este PIC. Voy a probar actualizar el MPlab.
-
Si tienes el isis proteus, prueba simularlo ahí y ver si cambia registro.