みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PIC16F88の使い方?に関する質問(アセンブラ)

現在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

投稿日時 - 2009-11-04 23:14:07

QNo.5422617

すぐに回答ほしいです

質問者が選んだベストアンサー

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

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

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

参考URL:http://ww1.microchip.com/downloads/en/DeviceDoc/30487c.pdf

投稿日時 - 2009-11-08 15:59:44

お礼

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

投稿日時 - 2009-11-10 22:28:23

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問