5.2 コントロール/ステータスレジスタ(ADCSR)に制御コードを書き込む
表1のレジスタ10個のうち,ADDRAH〜ADDRDLまでの8個は,A/D変換結果のデジタル出力を格納する出力用レジスタです.Hレジスタ/Lレジスタ2個1組で16bitレジスタを構成しA〜Dの4グループがあります.そしてA/D変換出力の10bitデータはこのペアレジスタの 上位10bit に書き込まれます.したがって,Lレジスタの 下位6bitは無効 ですから,データ取り込みのときには注意して下さい.なお,AN0入力をA/D変換した結果はADDRAH〜ADDRALに書き込まれます. 変換器は1個です.入力端子を切り替えながら連続して変換できますが,変換にかかる時間は,1チャネルの変換時間×チャネル数になります.プログラムの介在なしで連続4チャネルの結果を保存できます.結果はADDRA〜ADDRDに端子ごとに記憶されています.入力端子と結果を格納するレジスタの関係は固定です. ・A/D返還結果の格納先 A/D変換するアナログ信号を入力する端子はポート7と兼用です.アナログ入力中はポート7の機能は使えません. |
表5.1 A/Dコンバータの各種レジスタ
アドレス | 名称 | 略記号 | R/W | 初期値 |
H'FFFFE0 | A/DデータレジスタAH | ADDRAH | R | H'00 |
H'FFFFE1 | A/DデータレジスタAL | ADDRAL | R | H'00 |
H'FFFFE2 | A/DデータレジスタBH | ADDRBH | R | H'00 |
H'FFFFE3 | A/DデータレジスタBL | ADDRBL | R | H'00 |
H'FFFFE4 | A/DデータレジスタCH | ADDRCH | R | H'00 |
H'FFFFE5 | A/DデータレジスタCL | ADDRCL | R | H'00 |
H'FFFFE6 | A/DデータレジスタDH | ADDRDH | R | H'00 |
H'FFFFE7 | A/DデータレジスタDL | ADDRDL | R | H'00 |
H'FFFFE8 | A/Dコントロール/ステータスレジスタ | ADCSR | R/(W) | H'00 |
H'FFFFE9 | A/Dコントロールレジスタ | ADCR | R/W | H'7F |
略称 | ADDR*H | ADDR*L | ||||||||||||||
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADDR* | AD9 | AD8 | AD7 | AD6 | AD5 | AD4 | AD3 | AD2 | AD1 | AD0 | - | - | - | - | - | - |
初期値 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
A/D変換した結果のデータ | リザーブビット | |||||||||||||||
A/Dデータレジスタ : ADDR*H, Lのビット配置.(ただし*はA〜Dのいずれかが入る) |
A/Dコントロール/ステータスレジスタ(ADCSR) 動作モードの設定,変換作業開始,割り込み許可/不許可,A/D変換終了フラグの取得等の目的に使われるコントロール兼ステータス(状態監視)レジスタです. |
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
ADCSR | ADF | ADIE | ADST | SCAN | CKS | CH2 | CH1 | CH0 | |
チャネル0のみ,単一モードで使用する場合 | 初期設定(ADCSR初期値) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
AD変換開始 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
AD変換が終了したとき | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
データ取り出し後,フラグをクリア | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
チャネル0-3を,スキャンモードで使用する場合 | 初期設定 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
AD変換開始 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
AD変換終了するとこのようになる | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
データ取り出し後,フラグをクリア | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
AD変換を終了 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
ADCSRの各機能の説明
|
CH2〜0の設定 | ||||
グループ選択 | チャネル選択 | 説明 | ||
CH2 | CH1 | CH0 | 単一モード | スキャンモード |
0 | 0 | 0 | AN0 | AN0 |
0 | 0 | 1 | AN1 | AN0,AN1 |
0 | 1 | 0 | AN2 | AN0,AN1 |
0 | 1 | 1 | AN3 | AN0-AN3 |
1 | 0 | 0 | AN4 | AN4 |
1 | 0 | 1 | AN5 | AN4,AN5 |
1 | 1 | 0 | AN6 | AN4 - AN6 |
1 | 1 | 1 | AN7 | AN4 - AN7 |
・動作モードと変換スタート,変換後の動作を表にまとめて表示します. |
モード | 変換 | スタート | 停止 |
単一モード | 指定した1チャネルのみ | ADST=1 | 変換後自動停止 |
スキャンモード | 指定したチャネルまで最大4チャネルを繰り返し変換 | ADST=1 | プログラムでADSTを0に設定 |