- •Введение.
- •1.1. Основные характеристики.
- •1.2. Структурная схема микроконтроллера.
- •1.3. Блоки памяти.
- •1.4. Регистры состояния и управления.
- •1.5. Порты ввода-вывода.
- •2.0.Функциональные модули микроконтроллера pic16f873.
- •2.1. Таймеры.
- •2.1.2. Модуль таймера tmr1.
- •2.1.3. Модуль таймера tmr2.
- •2.2. Модуль сср.
- •2.2.2. Режим сравнения.
- •2.2.3. Режим широтно-импульсного преобразователя (шим).
- •2.3. Модуль ацп.
- •2.3.1.Работа модуля осуществляется в следующей последовательности:
- •2.3.2.Временные требования к работе модуля ацп.
- •2.3.4. Последовательность преобразования аналогового сигнала.
- •2.3.5. Выравнивание результата преобразования.
- •2.3.6. Работа модуля ацп в sleep режиме.
- •2.3.7. Пример программирования модуля ацп.
- •2.4.Универсальный синхронно – асинхронный приемопередатчик (usart).
- •2.4.1.Режим асинхронного полного дуплекса.
- •2.4.1.1. Асинхронный передатчик usart.
- •2.4.1.2. Асинхронный приемник модуля usart.
- •2.5.Модуль ведущего синхронного последовательного порта (mssp).
- •2.5.1. Режим ведомого i2c.
- •2.5.1.1.Прием данных.
- •2.5.1.2. Передача данных.
- •2.5.1.3.Поддержка общего вызова.
- •2.5.1.4.Работа в sleep режиме.
- •2.5.2. Режим ведущего i2c.
- •2.5.3. Подключение абонентов к шине i2c.
- •2.6. Прерывания.
- •2.7. Сторожевой таймер.
- •2.8. Система команд микроконтроллера.
- •Incf Прибавить 1 к содержимому регистра f.
- •Incfsz Прибавить 1 к регистру f, пропустить, если 0.
- •Iorlw Побитное «или» регистра w и константы k.
- •Iorwf Побитное “или» регистров w, f.
- •Xorlw Побитное «Исключающее или» константы и регистра w.
- •Xorwf Побитное «исключающее или» регистров w,f.
2.3.1.Работа модуля осуществляется в следующей последовательности:
Настроить модуль АЦП:
- настроить выводы портов А и В на: ввод – для аналоговых каналов и опорных напряжений Vref в соответствии с конкретной задачей, на ввод / вывод для цифровых каналов (см. регистр ADCON1 ),
- выбрать входной канал аналогового сигнала (см. регистр ADCON0),
- выбрать источник тактовых сигналов для преобразователя (регистр ADCON0),
-включить модуль АЦП («1» в 0 разряд регистра ADCON0),
2. Настроить прерывание от модуля АЦП, если это необходимо:
- сбросить бит ADIF (регистр PIR1) в «0»,
- установить бит ADIE (регистр PIE1) в «1»,
- установить бит PEIE (регистр INTCON) в «1»,
- установить бит GIE (регистр INTCON) в «1»,
3. Выдержать паузу для зарядки входного конденсатора АЦП (см. ниже).
4. Начать аналого-цифровое преобразование: установить бит GO/-DONE (регистр ADCON0) в «1».
5. Ожидать окончания преобразования:
- ожидать сброса бита GO/-DONE,
или
- обработать прерывание по окончанию преобразования.
6. Считать результат преобразования из регистра ADRESH – старший байт двоичного числа, из регистра ADRESL – младший байт, сбросить бит ADIF (регистр PIR1)/
7. Для следующего преобразования необходимо:
- сделать выдержку не менее 2TAD, где TAD – время одного преобразования,
- повторить этапы, начиная с пункта 1 или 2.
2.3.2.Временные требования к работе модуля ацп.
На входе модуля имеется накопительный конденсатор CHOLD, необходимый для стабилизации входного сигнала на время преобразования. Поэтому перед включением преобразования необходимо сделать выдержку. Расчетная схема входной части модуля приведена на рис. Временную задержку можно рассчитать по формуле:
TACQ = TAMP + TC + TCOFF , где:
TAMP – время задержки входного усилителя модуля,
TC - время заряда конденсатора CHOLD,
TCOFF – температурный коэффициент.
TAMP = 2MKC;
Tc = CHOLD (RIC + RSS +RS) Ln(1/2047); где:
RIC – входное сопротивление модуля = 1ком,
RSS - входное сопротивление канала = 7ком,
RS – максимальное рекомендуемое внутреннее сопротивление источника аналогового сигнала 10ком.
TCOFF = [(t – 25) (0,05 / t)], где: t температура окружающей среды в градусах.
При подстановке приведенных данных можно получить следующее значение выдержки:
TACQ = 2 + 16,47 + 1,25 = 19,72 мкс.
После очередного преобразования необходимо также сделать выдержку длительностью не менее 2TAD, где TAD – время работы модуля для получения одного бита выходного кода, зависит от частоты входных импульсов преобразователя. Значения TAD для различных режимов приведены в таблице 21.
Таблица 21.
TAD |
FOSC |
|
Режим |
Значения битов ADCS1:ADCS0 |
Максимальное значение частоты |
2TOSC |
00 |
1,25МГц |
8TOSC |
01 |
5МГц |
32TOSC |
10 |
20МГц |
2-6 мкс (RC-генератор модуля АЦП) |
11 |
(см. характеристики модуля) |