00
|
LP – генератор
|
НЧ генератор для экономичных приложений
|
01
|
XT – генератор
|
Стандартный кварцевый генератор
|
10
|
HS – генератор
|
ВЧ кварцевый генератор
|
11
|
RC – генератор
|
RC генератор с внешней RC цепью
|
Кратко опишем суть рабочих битов.
Бит защиты памяти программ CP. Используя программатор мы записываем программу в МК. С помощью программатора можно прочитать записанную программу и продублировать её на другом МК. Если установлен бит защиты, то прочитать записанную программу невозможно (защита от копирования). В примерах бит защиты отключен.
Бит разрешения работы таймера включения питания –PWRTE. После включения МК требуется некоторое время для стабилизации частоты кварцевого генератора и стабилизации напряжения. С помощью таймера включения осуществляется задержка на время 72мс (типовое время). В примерах таймер включен.
Бит разрешения работы сторожевого таймера WDT. Суть работы сторожевого таймера заключается в периодическом сбросе МК, после чего МК начинает выполнение программы с начала. Используется в тех случаях, когда к устройству на МК предъявляются высокие требования к отказоустойчивости. Используя сторожевой таймер, в текст программы периодически необходимо вставлять команду CLRWDT – сброс сторожевого таймера. Сторожевой таймер имеет дополнительные настройки связанные с интервалами между сбросами. В примерах сторожевой таймер отключен.
Биты выбора типа генератора OSC. Существуют различные типы генераторов, отличающиеся конструктивным исполнением, способом подключения, частотой генерации и стабильности. В наших примерах мы используем стандартный кварцевый генератор.
Как для директивы __CONFIG определить число конфигурации?
Сначала записываем бинарное число в соответствии с нашими настройками:
111111111 – неиспользуемые девять бит в состоянии 1;
1 – защита выключена;
0 – выдержка при включении;
0 – сторожевой таймер отключен;
01 – стандартный кварцевый генератор.
Получается число 11111111110001 которое либо в конвертере BinHexDec, либо в стандартном калькуляторе переводим в 16-тиричное – h3FF1. Число, полученное таким образом, указывается после директивы __CONFIG.
Шестнадцатеричное число конфигурации можно определить иначе, без использования конвертера или калькулятора. Открываем в MPLAB меню Configure -> Configuration Bits… Здесь мы можем выбрать для проекта значения опций конфигурирования МК.

Число в колонке "Value" является искомым числом.
В этом разделе мы также рассмотрим конфигурирование МК путем использования битов конфигурации в явном виде. Биты конфигурации как и регистры специального назначения описаны в файле с расширением *.INC (путь – C:_Program Files_Microchip_MPASM Suite), например, в файле P16F84A.INC . Файл *.INC является обычным текстовым файлом, который можно посмотреть с помощью стандартного текстового редактора "Блокнот" из Windows.
Итак, после строчки с записью LIST P=PIC16F84A необходимо записать две строчки следующего вида
#include P16F84A.INC
__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
С помощью #include мы прописываем файл P16F84A.INC с описаниями регистров и битов (с сопоставлениями). Этот файл должен находиться либо в папке MPASM Suite, либо в папке с проектом.
После директивы __CONFIG идёт перечисление соответствующих битов конфигурации. Расшифровку сокращенных наименования битов конфигурации предлагаем вам разобрать самостоятельно.
Какой вариант конфигурирования использовать – это дело личных предпочтений. Мне нравится "короткая" запись типа __CONFIG H3FF1. Длинная запись более наглядна, но требует наличия и прописывания файла типа *.INC. С другой стороны, с прописанным файлом *.INC в шапке программы не требуется сопоставлять регистры специального назначения. В наших дальнейших примерах мы не будем прописывать файл *.INC . Мы будем использовать "короткую" запись для конфигурирования МК и будем вручную сопоставлять регистры специального назначения с тем, чтобы вы обращались к первоисточникам и привыкали к наименованиям регистров специального назначения.