プロが教えるわが家の防犯対策術!

現在PICの16F88に書きこむプログラムをアセンブラで書いてます。4番ピンのMCLRをRA5として使いたいのですが、MPLABのWATCHの機能を使って、ポートAの動きを見てみると、ポートAが出力になっているはずなのに、何をしてもポートAの0~4がHにならず、ポートAのRA5はBSF,BCFの命令が利きません。コンフィグの設定が怪しいと思うのですが、自分には理由が分からないので、誰か教えてください。お願いします。(下に書いたプログラムはテスト用に書いたプログラムなので特に目的はありません)

;外部発振,セラロック20MHz使用
LIST P=PIC16F88
INCLUDE P16F88.INC
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF

BSF STATUS,RP0
MOVLW B'000000'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
BCF STATUS,RP0
MAIN
CLRF PORTA
MOVLW B'11111111'
MOVWF PORTA
MOVWF PORTB
BSF PORTA,0
BCF PORTA,0
BSF PORTA,1
BCF PORTA,1
BSF PORTA,2
BCF PORTA,2
BSF PORTA,3
BCF PORTA,3
BSF PORTA,4
BCF PORTA,4
BSF PORTA,5
BCF PORTA,5
GOTO MAIN
END

A 回答 (1件)

通りすがりの独り言程度にとらえてください.自信はそんあにありません.



PORTAではなくてBでは問題なく動くんですよね?
初期設定では,アナログセレクトレジスタ(ANSEL)に全て1のため,アナログI/Oモードとなっています.
なので,0を書き込んでデジタルI/Oモードにしてみてはいかがでしょう?

次に,RA5は入力のみとなっています.
BSF,BCFの言うことを聞かない理由はしりませんが,BSFとしても出力できないのでは?

参考URL:http://ww1.microchip.com/downloads/en/DeviceDoc/ …
    • good
    • 0
この回答へのお礼

有り難うございました。原因は、ご指摘の通りだったようで「CLRF ANSEL」を書いたところPORTAを正常に使う事が出来ました。RA5は入力としてしか使えないんですね。勉強になりました。
最後に本当に有り難うございました。助かりました。

お礼日時:2009/11/10 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!