LED回路 工作部屋 > PIC16F688 A/D変換の使い方 【最終更新日:2011/7/28】
PIC16F688 A/D変換の使い方
A/D変換の設定手順

※PIC16F688は基準電圧の下限値はVss固定である

@ A/D変換に使用するポートを入力にする (TRIS設定)

A A/D変換に使用するポートをアナログにする (ANSEL設定)

B ADCON0の設定
   ADFM、VCFG、ADONを"1"にしてA/D変換を使用可能にする

C ADCON1の設定
   ADCSA選択

D 選択されたチャンネルでアクィジションする (20μSほど?Wait)

E CHSの選択(使用チャンネル)をして、ADCON0のGO/DONEを"1"すると変換開始。終了すると自動で"0"に戻る
   btfsc ADCON0,GO で検査

F 結果がADRESH、ADRESLに出力される

G 再度A/D変換する際はDへ戻る

PIC16F886 のピン配置図

PIC16F688 のA/D変換図
主に使用するレジスタ
Bank0
ADRESH A/D Result Register High Byte
ADCON0 ADFM VCFG - CHS2 CHS1 CHS0 GO/DONE ADON
Bank1
ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0
ADRESL A/D Result Register Low Byte
ADCON1 - ADCS2 ADCS1 ADCS0 - - - -
レジスタの説明
ADRESH A/D変換結果(10bit)の格納場所
ADFM = 0 (左詰め) で<7:0>に上位8bit格納
ADFM = 1 (右詰め) で<1:0>に上位2bit格納
ADFM A/D変換結果(10bit)の格納パターン選択
0 = 左詰め (ADRESHに8bit、ADRESLに2bit格納)
1 = 右詰め (ADRESHに2bit、ADRESLに8bit格納)
VCFG 基準電圧(上限)選択
0 = VDD (VDDの電圧を上限に指定)
1 = VREF pin (VREF pinの電圧を上限に指定)
CHS アナログチャンネル選択ビット
CHS<2:0>
000 = CN0
001 = CN1
010 = CN2
011 = CN3
100 = CN4
101 = CN5
110 = CN6
111 = CN7
GO/DONE A/D変換開始ビット
"1"(set)でA/D変換開始。変換終了後、自動で"0"(リセット)になる
ADON A/D使用開始ビット
1 = A/D変換を使用する
0 = A/D変換を使用しない
※A/D変換の設定をしても、ここが"1"じゃないとA/D変換は使用できないので注意!!
ANSEL ポートのアナログ・デジタル選択
0 = アナログ
1 = デジタル
ADRESH A/D変換結果(10bit)の格納場所
ADFM = 0 (左詰め) で<7:6>に下位2bit格納
ADFM = 1 (右詰め) で<7:0>に下位8bit格納
ADCS A/D変換クロック選択ビット
ADCS<1:0>
000 = Fosc/2
101 = Fosc/8
010 = Fosc/32
x11 = FRC
100 = Fosc/4
101 = Fosc/16
110 = Fosc/64
※【図1】参照。1.6μS〜6.4μsの範囲でで選択
【図1】クロック選択表 (白の部分が周波数ごとの選択できるクロック)