PICマイコンのプログラムについての質問(PORTAから入力できない)

現在PICマイコンを使ってLEDの点滅回路の基盤を作成していますがAポートから入力することができません。Aポートの各入力電圧を確認しましたがONで約5V、オフで約0Vで問題はなさそうです。(プログラムの問題なのだと思います)
プログラムの入力部分を1部記述すると(PORTA入力部分)
movlw 0ffh
movwf TRISA ;Aポートを入力とする
movf PORTA,w
andlw 00fh  ;(APORTは下4桁のみ使用)
movwf t_work3
ここでAポートに何を入力してもt_work3の値が0となってしまいます
全くの初心者のため原因がよくわかりません
よろしくお願いいたします

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/11/11 22:33:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ykanzaki No.2

回答回数267ベストアンサー獲得回数8

ポイント200pt

PICのAポートはデフォルトでアナログ入力ポートになっているものが多くあります。ADCON1レジスタで必要なピットをディジタルI/Oに設定する必要があります。

使用している型番のデータシートを確認してみてください

その他の回答1件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

ポイント100pt

PICの型番はなんでしょうか。

コンフィギュレーションビットは適切に設定されているか確認してください。

(デフォルト値に任せず、全部手動で設定したほうがいいです。例えばLVPなど使わないものは無効に)

id:yasuji_58

回答ありがとうございます
PICの型番はPIC16F877A-I/Pです
コンフィギュレーションビットは以下の通りです
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
で設定しています
よろしくお願いいたします

2011/11/11 22:07:22
id:ykanzaki No.2

回答回数267ベストアンサー獲得回数8ここでベストアンサー

ポイント200pt

PICのAポートはデフォルトでアナログ入力ポートになっているものが多くあります。ADCON1レジスタで必要なピットをディジタルI/Oに設定する必要があります。

使用している型番のデータシートを確認してみてください

  • id:Kumappus
    ついでに回路図も出してくれるとなおよいかも。
  • id:windofjuly
    うぃんど 2011/11/10 01:42:30
    検索でもしてみれば判りますけど ANDLW 00Fh はよく見かけますし、
    今回、エラーは出てないようですけど・・・
     
    何にしても、コンフィギュレーションや回路についての返答待ちですが、
    仮に質問のコードそのままの形で組み込まれているのだとすれば、
    PICの初期化(電源投入直後に行う処理)と、
    実行(この場合であればポートAからの入力待ちと結果格納)という、
    処理フローチャートが出来てないような気もしたりします・・・
     
    movf PORTA,w が「BASICのINPUTのように入力待ちになる」なんて、
    勘違いもよくあります・・・よね(?)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません