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】クロック選択表 (白の部分が周波数ごとの選択できるクロック) |