• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PICマイコンをアセンブラでAD変換をした時に、、)

PICマイコンをアセンブラでAD変換の結果を出力する方法

このQ&Aのポイント
  • PICマイコンの16f88を用いてアセンブラでAD変換の勉強をしています。AD変換した結果をPORTBに出力させるプログラムを作成しましたが、ADRESLのデータを正しく読み込むことができませんでした。
  • プログラムを書き変えることでADRESLレジスタの中身を出力できるようになりました。バンクの切り替え前にWレジスタをX_Lレジスタに書き込むことと、バンクの切り替え後にWレジスタをX_Lレジスタに書き込むことで結果が同じになります。
  • この方法でプログラムを書き換えると、PORTBにつないだLEDが正しく点灯するようになりました。

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

  • ベストアンサー
  • bug_bug
  • ベストアンサー率78% (36/46)
回答No.1

> 結果が同じになると思うのですが、、、。 書き込み先と読み込み元が別の場所を指していますので, 結果は同じとなりません. ※以下, RP1は0と仮定 上段のプログラムではRP0をセットしたままMOVしてますので, Bank1のGPR(H'A0~H'FF)のどこかに保存されています. RP0をクリアするとBank0のGPR(H'20~H'7F)がアクセス可能となります. PIC16F88のRAM構成(Register File Map)については データシートの2.2.1章(参考URLのp.15)にて図解されています. X_LをH'70~H'7Fの範囲に確保すれば全バンクから参照可能です.

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

お礼

回答していただいてありがとう御座います。確かにおっしゃる通りですね。SFRのバンクはいつも気にしていましたが、GPRのバンクは気にしたことがありませんでした。本当に助かりました。また何かあったらよろしくお願いします。