Але спочатку подивимося, що можна прочитати в довідці до мікроконтролера PIC16F887

Конвертер генерує 10и-бітовий результат методом послідовного наближення і запамятовує його в регістрах АЦП (ADRESL і ADRESH)

Ми не будемо зараз розглядати роботу АЦП з переривання, хоча така можливість є

Опорна напруга АЦП вибирається програмно, найбільша напруга – це напруга живлення, до висновків опорного напруги може прикладатися зовнішня напруга

При конфігуруванні АЦП і при використанні модуля повинні бути продумані наступні функції:

·              Конфігурація порту

·              Вибір каналу

·              Вибір опорного напруги АЦП

·              Джерело тактової частоти перетворювача АЦП

·              Управління перериванням

·              Форматування результату

Грунтуючись на описі, розглянемо запропоновані пункти

Конфігурація порту

АЦП може використовуватися для перетворення як аналогового, так і цифрового сигналу При перетворенні аналогового сигналу висновки входу-виходу повинні бути налаштовані для аналогового входу установкою повязаних бітів TRIS і ANSEL Детальніше це описано в розділі роботи з портами

Вибір каналу

Біти CHS регістра ADCON0 визначають, який канал підключений до випробуваної ланцюга

При виборі каналів потрібно пауза, перш ніж почнеться наступне перетворення Нижче це буде описано докладніше

Опорна напруга АЦП

Біти VCFG регістра ADCON0 пропонують незалежне управління позитивним і негативним опорною напругою Позитивне опорна напруга може бути VDD або напругою зовнішнього джерела Також негативний напруга може бути VSS або напругою зовнішнього джерела

Генератор тактової частоти перетворювача

Тактова частота перетворення може бути обрана програмно битами ADCS регістра ADCON0 Є чотири можливих варіанти:

·              FOSC/2

·              FOSC/8

·              FOSC/32

·              FRC (виділений внутрішній генератор)

Час перетворення одного біта визначається як TAD Одне повне 10и-бітове перетворення вимагає 11 TAD періодів

Для правильного перетворення слід задати відповідне значення TAD У таблиці нижче наведені приклади відповідного вибору тактової частоти АЦП

Рис 511 Таблиця налаштування і вибору частоти перетворення

І, пропустивши роботу по перериванню, розглянемо формат виведення результату

Форматування результату

10и-бітове перетворення може відображатися у двох форматах: з лівим або правим приведенням Біти ADFM регістра ADCON0 управляють форматом виводу Малюнок нижче показує різницю в цих форматах

Рис 512 Два формату виводу результату перетворення

Запуск перетворення

Для дозволу роботи модуля АЦП біт ADON регістра ADCON0 повинен бути встановлений в «1» Установка біта GO / DONE регістра ADCON0 в «1» почне перетворення

Коли перетворення завершено, модуль АЦП:

·              Очистить біт GO / DONE

·              Встановить прапор ADIF

·              Оновить значення регістрів ADRESH: ADRESL новим результатом перетворення

Приклад процедур перетворення

1 Конфігуріруем порт:

·                Забороняємо вихід (в регістрі TRIS)

·                Конфігуріруем висновок як аналоговий

2 Конфігуріруем модуль АЦП:

·                Вибираємо частоту перетворення

·                Конфігуріруем опорна напруга

·                Вибираємо канал входу

·                Вибираємо формат виведення

·                Включаємо модуль АЦП

3 Конфігуріруем переривання по АЦП (якщо потрібно):

·                Очищаємо прапор переривання по АЦП

·                Дозволяємо переривання по АЦП

·                Дозволяємо периферійні переривання

·                Дозволяємо глобальні переривання

4 Очікуємо час, необхідний для ініціалізації

5 Починаємо перетворення установкою біта GO / DONE

6 Очікуємо завершення перетворення одним із способів:

·                Опитуванням біта GO / DONE

·                Очікуванням переривання (якщо використовували)

7 Читаємо результат перетворення

8 Очищаємо прапор переривання (якщо використовували переривання)

І, нарешті, регістри, що беруть участь в роботі модуля АЦП: ADCON0

Рис 513 Регістр управління перетворенням

Біти 7-6 ADCS <1:0>: біти вибору тактової частоти перетворення 00 = FOSC / 2

01 = FOSC/8

10 = FOSC/32

11 = FRC (частота від вбудованого генератора = 500 kHz max)

Біти 5-2 CHS <3:0>: біти вибору аналогового каналу 0000 = AN0

0001 = AN1

0010 = AN2

0011 = AN3

0100 = AN4

0101 = AN5

0110 = AN6

0111 = AN7

1000 = AN8

1001 = AN9

1010 = AN10

1011 = AN11

1100 = AN12

1101 = AN13

1110 = CVREF

1111 = Fixed Ref (06 вольт фіксованого напруги)

Біт 1 GO / DONE: біт стану перетворення

1 = відбувається цикл перетворення Установка цього біта починає цикл перетворення Цей біт автоматично скидається апаратно, коли перетворення завершується

0 = перетворення завершено / не відбувається

Біт 0 ADON: біт дозволу роботи АЦП 1 = робота АЦП дозволена

0 = АЦП заборонено, і струм не споживається на операції ADCON1

Рис 514 Другий регістр управління

Біт 7 ADFM: біт вибору формату виведення результату 1 = праве приведення

0 = ліве приведення

Біт 5 VCFG1: біт опорного напруги 1 = VREF-висновок

0 = VSS

Біт 4 VCFG0: біт опорного напруги 1 = VREF + висновок

0 = VDD

ADRESH: ADRESL – Регістри виведення результату

Джерело: Гололобов ВН, – Самовчитель гри на паяльнику (Про електроніці для школярів і не тільки), – Москва 2012