Вы находитесь на странице: 1из 91

Конфигурирование.

Оглавление

Общие положения.
Числовая форма конфигурирования
1. Структура слова конфигурации PIC16F84/84A и варианты их конфигурирования
2. Структура слова конфигурации PIC12F629/675, PIC16F630/676 и варианты их
конфигурирования
3. Структура слова конфигурации PIC16F628/628A и варианты их конфигурирования
(с учётом неодинаковости их “конфигослов”)
4. Структура слова конфигурации PIC16F873/874/876/877 и варианты их
конфигурирования
5. Структура слова конфигурации PIC16F873A/874A/876A/877A и варианты их
конфигурирования
6. Структура слова конфигурации PIC16F631/677/685/687/689/690, PIC12F683 и варианты их
конфигурирования
Символьная форма конфигурирования
1А. Варианты конфигурирования PIC16F84/84A
2А. Варианты конфигурирования PIC12F629/675, PIC16F630/676
3А. Варианты конфигурирования PIC16F628/628A (с учётом неодинаковости их “конфигослов”).
4A. Варианты конфигурирования PIC16F873/874/876/877
5A. Варианты конфигурирования PIC16F873A/874A/876A/877A
6A. Варианты конфигурирования PIC16F631/677/685/687/689/690, PIC12F683
“Гибридная” форма конфигурирования (общие положения)

Общие положения

Конфигурирование это изначальное задание тех “глобальных правил игры”, которые


будут использованы в процессе отработки программы.
Текстовое оформление конфигурирования производится в “шапке” программы (после
задания типа ПИКа).
В соответствии с ним (оформлением), в начале процесса “прошивки” ПИКа, эти
“глобальные правила игры вводятся в энергонезависимую, долговременную
эксплуатацию”.
В ПИКах базового и среднего семейства, записать/подтвердить/изменить параметры
конфигурации можно только путём “прошивки” (в частности, слово конфигурации можно “зашить”
отдельно от остального).
То есть, по ходу исполнения программы, программно изменить ранее установленные
“конфигонастройки" нельзя (в отличие от ПИКов 18-й серии и выше).
Мотивация: “конфигослово адресно дислоцируется” вне пользовательской памяти
программ (2007h. Это ниже пользовательской PC) и обратиться к нему можно только в режиме
программирования ПИКа.
Во всех типах ПИКов базового и среднего семейства, “битность конфигослова”
(его “масса”) = 14-ти битам (№13 … №0) и имеются, если так можно выразиться,
“ширпотребные биты общего применения”, управляющие
 PC и EEPROM-защитой à CPx, CPD (примечание: в “конфигослове” PIC16F84/84A, бита CPD нет),
 таймером включения питания à -PWRTE,
 сторожевым таймером à WDTE,
 выбором типа тактового генератора à FOSC1, FOSC0 (а если этого не хватает, то
добавляется FOSC2. См. PIC16F62x, PIC12F629/675).
Эти управляющие “конфигобиты” (без учёта защиты) “дислоцируются” в правой части
“конфигослова” (начиная от бита №0 и левее).

Примечание: в PIC12F683, “конфигослово” состоит не из 14-ти (№13 … №0), а из 16-ти битов (№15 … №0), но по
причине того, что биты №15 и №14 не используются, можно условно считать, что “конфигослово” PIC12F683 состоит
из 14-ти битов (№13 … №0). То есть, биты №15 и №14 можно проигнорировать.

1
По причине того, что технические возможности различных типов ПИКов различны,
остальная “начинка конфигослова варьируется” в зависимости от типа ПИКа.
Даже в приложении к конкретному типу ПИКа (не говоря уж о нескольких типах ПИКов), возникает
многовариантность “конфигонастроек”, выбор одной из которых “не страдает могучей
комфортабельностью”.
Ниже осуществлена попытка “повышения уровня этой комфортабельности” (а заодно и
“сведения до системной кучи разбросанного там-сям”), что позволит уменьшить трудозатраты,
связанные с выбором нужных “конфигонастроек” и минимизировать “уровень
конфигоошибок”, допущенных по-невнимательности, по-недоразумению и т.п. (эти ошибки ох
как дорого стОят!).

Примечание: по причине того, что я не вижу веских оснований для выключения PWRT (за исключением редких
случаев), во всех “нижележащих” вариантах “конфигослов”, таймер включения питания работает (это нужная
“штуковина”). Выбранный Вами вариант “конфигослова” нужно просто скопировать в текст программы.
Например:
__CONFIG 3FF1H ; Защита выключена, PWRT включен, WDT выключен,
; XT - генератор.

Цвета фона и символов, в текстовый редактор MPLAB, не копируются (“DOC-разукрасил” для удобства ориентации.
Как индейца на тропе войны. Люблю колоритные образы. Они легче запоминаются).
В него будет скопировано строго содержимое того, о чём сказано выше, причём, сугубо в чёрном цвете и в
моноширном, MPLABовском шрифте Courier. Так что копируйте без опасений (“бяк” не будет).
Общее замечание: содержимое защищённого PC/EEPROM массива (массивов) считывается программатором в виде
массива (массивов), состоящего из нолей.
Снятие защиты (с помощью программатора) приводит к уничтожению защищённых (от считывания) данных.

“Конфигонастройка” может быть произведена в числовой или в символьной форме.


Есть ещё и “гибридная”. Это на выбор конструктора.

Числовая форма конфигурирования


Она такова: __CONFIG <число>
(непосредственно перед дрективой CONFIG нужно “настукать” 2 подчерка подряд, то есть, без пробела) .

1. Структура слова конфигурации PIC16F84/84A и варианты их


конфигурирования
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP CP CP CP CP CP CP CP CP CP -PWRTE WDTE FOSC1 FOSC0

№ бита Название Функция


13…4 -CP Биты защиты памяти 1 à защита памяти программ выключена
программ 0 à защита памяти программ включена
3 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
2 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
11 à RC-генератор (внешняя RC-цепочка)
1…0 FOSC1…FOSC0 Биты выбора режима работы 10 à HS-генератор (ВЧ)
тактового генератора 01 à XT-генератор (стандарт)
00 à LP-генератор (НЧ)

Защита выключена, WDT выключен


CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 0 0 3FF0h
__CONFIG 3FF0h ; Защита выключена, PWRT включен, WDT выключен,
; LP - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 0 1 3FF1h
__CONFIG 3FF1h ; Защита выключена, PWRT включен, WDT выключен,
; XT - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 1 0 3FF2h
__CONFIG 3FF2h ; Защита выключена, PWRT включен, WDT выключен,
; HS - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 1 1 3FF3h
__CONFIG 3FF3h ; Защита выключена, PWRT включен, WDT выключен,
; RC - генератор.

2
Защита выключена, WDT включен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 0 0 3FF4h
__CONFIG 3FF4h ; Защита выключена, PWRT включен, WDT включен,
; LP - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 0 1 3FF5h
__CONFIG 3FF5h ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 1 0 3FF6h
__CONFIG 3FF6h ; Защита выключена, PWRT включен, WDT включен,
; HS - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 1 1 3FF7h
__CONFIG 3FF7h ; Защита выключена, PWRT включен, WDT включен,
; RC - генератор.
Защита включена, WDT выключен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0h
__CONFIG 0h ; Защита включена, PWRT включен, WDT выключен,
; LP - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1h
__CONFIG 1h ; Защита включена, PWRT включен, WDT выключен,
; XT - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 1 0 2h
__CONFIG 2h ; Защита включена, PWRT включен, WDT выключен,
; HS - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 1 1 3h
__CONFIG 3h ; Защита включена, PWRT включен, WDT выключен,
; RC - генератор.
Защита включена, WDT включен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 0 0 4h
__CONFIG 4h ; Защита включена, PWRT включен, WDT включен,
; LP - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 0 1 5h
__CONFIG 5h ; Защита включена, PWRT включен, WDT включен,
; XT - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 1 0 6h
__CONFIG 6h ; Защита включена, PWRT включен, WDT включен,
; HS - генератор.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 1 1 7h
__CONFIG 7h ; Защита включена, PWRT включен, WDT включен,
; RC - генератор.

2. Структура слова конфигурации PIC12F629/675, PIC16F630/676


и варианты их конфигурирования
13 12 11 10 9 8 7 6 5 4 3 2 1 0
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0

№ бита Название Функция


Биты калибровки сброса по 00 à Uпороговое = 2,0 в.
13…12 BG1, BG0 снижению Uпит. (сброс BOR 11 à Uпороговое = 2,1 в.
происходит, если длительность См. табл. 12-4 даташита (стр. 100).
снижения более 100 мкс.) BG1, BG2 работают, если BODEN = 1.
11…9 Не используются Запись в них невозможна. Читаются как “1”.

8 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена


данных 0 à EEPROM-защита включена
7 CP Бит защиты памяти программ 1 à PC-защита выключена
0 à PC-защита включена
6 BODEN Управление сбросом по 1 à сброс BOR разрешён
снижению Uпит. 0 à сброс BOR запрещён
Управление режимом работы
вывода ..3/MCLR 1 à работа в качестве MCLR
5 MCLRE Для PIC12F629/675
0 à работа в качестве ..3 (с внутренним

3
..3 à GP3 MCLR). Так как ..3 мультиплицирован с MCLR, то
Для PIC16F630/676 ..3 работает только “на вход”.
..3 à RA3
4 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
3 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
111 à RC-генератор.
Внешняя RC-цепочка подключается к ..5.
На ..4 присутствует сигнал с Fosc/4.

110 à RC-генератор.
Биты выбора режима работы Внешняя RC-цепочка подключается к ..5.
тактового генератора ..4 работает как канал ввода/вывода.

Для PIC12F629/675 101 à INTOSC-генератор.


2…0 FOSC2…FOSC0 ..4 à GP4 ..5 работает как канал ввода/вывода.
..5 à GP5 На ..4 присутствует сигнал с Fosc/4.
Для PIC16F630/676
..4 à RA4 100 à INTOSC-генератор.
..5 à RA5 ..5 и ..4 работают как каналы ввода/вывода.

011 à EC-генератор.
На ..5 подаётся внешний такт.
..4 работает как канал ввода/вывода.

010 à HS-генератор (ВЧ)


001 à XT-генератор (стандарт)
000 à LP-генератор (НЧ)

Примечание: В “пустышные” биты №11…9 ничего записать нельзя. Они всегда читаются как “1”.
Пусть в них будут якобы “записываться” единицы (см. выделенное тёмно-серым цветом).

Пояснение: обратите внимание на то, что в “вышележащей” таблице применены символьные


обозначения ..3, ..4 и ..5 (выделено жёлтым и светло-серым цветом).
Для PIC12F629/675
..3 à GP3
..4 à GP4
..5 à GP5
Для PIC16F630/676
..3 à RA3
..4 à RA4
..5 à RA5
“Нижележащие” варианты конфигурирования “заточены” под PIC12F629/675 (работа с GP…).
Если же речь идёт о PIC16F630/676, то нужно просто банально заменить (в заголовках и в комментариях)
GP… на RA…

Защита выключена, WDT выключен, сброс BOR запрещён, вывод GP3


работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 0 0 0 0FA0h
__CONFIG 0FA0h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, LP - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 0 0 1 0FA1h
__CONFIG 0FA1h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, XT - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 0 1 0 0FA2h
__CONFIG 0FA2h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, HS - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 0 1 1 0FA3h
__CONFIG 0FA3h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, EC - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 1 0 0 0FA4h
__CONFIG 0FA4h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 и GP4 работают как каналы ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 1 0 1 0FA5h
__CONFIG 0FA5h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, INTOSC – генератор

4
; (GP5 работает как канал ввода/вывода.На GP4 присутствует
; сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 1 1 0 0FA6h
__CONFIG 0FA6h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5.GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 0 1 1 1 0FA7h
__CONFIG 0FA7h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 0 0 0 0FA8h
__CONFIG 0FA8h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, LP - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 0 0 1 0FA9h
__CONFIG 0FA9h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, XT - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 0 1 0 0FAAh
__CONFIG 0FAAh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, HS - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 0 1 1 0FABh
__CONFIG 0FABh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, EC - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 1 0 0 0FACh
__CONFIG 0FACh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 и GP4 работают как каналы ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 1 0 1 0FADh
__CONFIG 0FADh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 работает как канал ввода/вывода.На GP4 присутствует
; сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 1 1 0 0FAEh
__CONFIG 0FAEh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5.GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 1 0 1 1 1 1 0FAFh
__CONFIG 0FAFh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR запрещён, вывод GP3
работает как канал ввода (MCLR внутренне подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 0 0 0 0F80h
__CONFIG 0F80h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, LP-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 0 0 1 0F81h
__CONFIG 0F81h ; Защита выключена, PWRT выключен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, XT-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 0 1 0 0F82h
__CONFIG 0F82h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, HS-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 0 1 1 0F83h
__CONFIG 0F83h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, EC-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 1 0 0 0F84h
__CONFIG 0F84h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR

5
; запрещён, вывод GP3 работает как канал ввода,
; INTOSC–генератор(GP5 и GP4 работают как каналы ввода/вывода)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 1 0 1 0F85h
__CONFIG 0F85h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода,
; INTOSC–генератор (GP5 работает как канал ввода/вывода.
; На GP4 присутствует сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 1 1 0 0F86h
__CONFIG 0F86h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 0 1 1 1 0F87h
__CONFIG 0F87h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод GP3 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 0 0 0 0F88h
__CONFIG 0F88h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, LP-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 0 0 1 0F89h
__CONFIG 0F89h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, XT-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 0 1 0 0F8Ah
__CONFIG 0F8Ah ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, HS-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 0 1 1 0F8Bh
__CONFIG 0F8Bh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, EC-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 1 0 0 0F8Ch
__CONFIG 0F8Ch ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода,
; INTOSC–генератор(GP5 и GP4 работают как каналы ввода/вывода)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 1 0 1 0F8Dh
__CONFIG 0F8Dh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода,
; INTOSC–генератор (GP5 работает как канал ввода/вывода.
; На GP4 присутствует сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 1 1 0 0F8Eh
__CONFIG 0F8Eh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 0 0 0 1 1 1 1 0F8Fh
__CONFIG 0F8Fh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR разрешён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 0 0 0 0FE0h
__CONFIG 0FE0h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, LP - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 0 0 1 0FE1h
__CONFIG 0FE1h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, XT - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 0 1 0 0FE2h
__CONFIG 0FE2h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, HS - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 0 1 1 0FE3h

6
__CONFIG 0FE3h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, EC - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 1 0 0 0FE4h
__CONFIG 0FE4h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 и GP4 работают как каналы ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 1 0 1 0FE5h
__CONFIG 0FE5h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 работает как канал ввода/вывода.На GP4 присутствует
; сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 1 1 0 0FE6h
__CONFIG 0FE6h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5.GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 0 1 1 1 0FE7h
__CONFIG 0FE7h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR разрешён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 0 0 0 0FE8h
__CONFIG 0FE8h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, LP - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 0 0 1 0FE9h
__CONFIG 0FE9h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, XT - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 0 1 0 0FEAh
__CONFIG 0FEAh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, HS - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 0 1 1 0FEBh
__CONFIG 0FEBh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, EC - генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 1 0 0 0FECh
__CONFIG 0FECh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 и GP4 работают как каналы ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 1 0 1 0FEDh
__CONFIG 0FEDh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, INTOSC – генератор
; (GP5 работает как канал ввода/вывода.На GP4 присутствует
; сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 1 1 0 0FEEh
__CONFIG 0FEEh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5.GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 1 0 1 1 1 1 0FEFh
__CONFIG 0FEFh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как MCLR, RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR разрешён, вывод GP3
работает как канал ввода (MCLR внутренне подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 0 0 0 0FC0h
__CONFIG 0FC0h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, LP-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 0 0 1 0FC1h
__CONFIG 0FC1h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, XT-генератор.

7
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение

0 0 1 1 1 1 1 1 0 0 0 0 1 0 0FC2h

__CONFIG 0FC2h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, HS-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 0 1 1 0FC3h
__CONFIG 0FC3h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, EC-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 1 0 0 0FC4h
__CONFIG 0FC4h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода,
; INTOSC–генератор(GP5 и GP4 работают как каналы ввода/вывода)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 1 0 1 0FC5h
__CONFIG 0FC5h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода,
; INTOSC–генератор (GP5 работает как канал ввода/вывода.
; На GP4 присутствует сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 1 1 0 0FC6h
__CONFIG 0FC6h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 0 1 1 1 0FC7h
__CONFIG 0FC7h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR разрешён, вывод GP3 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 0 0 0 0FC8h
__CONFIG 0FC8h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, LP-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 0 0 1 0FC9h
__CONFIG 0FC9h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, XT-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 0 1 0 0FCAh
__CONFIG 0FCAh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, HS-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 0 1 1 0FCBh
__CONFIG 0FCBh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, EC-генератор.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 1 0 0 0FCCh
__CONFIG 0FCCh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода,
; INTOSC–генератор(GP5 и GP4 работают как каналы ввода/вывода)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 1 0 1 0FCDh
__CONFIG 0FCDh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода,
; INTOSC–генератор (GP5 работает как канал ввода/вывода.
; На GP4 присутствует сигнал с Fosc/4).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 1 1 0 0FCEh
__CONFIG 0FCEh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. GP4 работает как
; канал ввода/вывода).
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 1 1 1 0FCFh
__CONFIG 0FCFh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).

Защита PC и EEPROM включена (CPD = CP = 0)

8
Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CPD и CP), а затем, с помощью
любого HEX-калькулятора (рекомендую универсальный, “майкрософтовский” калькулятор calc. Он имеется на
CD: папка Программы à папка Калькуляторы à calc), вычесть, из числа, с которым работает
директива CONFIG, число 180h (110000000), после чего заменить число, с которым
работает директива CONFIG, на результат этого вычитания.
Например, пусть будет такая “мать” (00111111001111):
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 1 1 0 0 1 1 1 1 0FCFh
__CONFIG 0FCFh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
FCFh – 180h = E4Fh (00111001001111)
Получается такая “дочь”:
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 0 0 1 0 0 1 1 1 1 0E4Fh
__CONFIG 0E4Fh ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс
; BOR разрешён, вывод GP3 работает как канал ввода,
; RC–генератор (внешняя RC-цепочка подключается к GP5. На GP4
; присутствует сигнал с Fosc/4).
Защита PC включена, защита EEPROM выключена (CP = 0, CPD = 1)
В данном случае, нужно вычесть 80h.
“Привяжусь” к указанной выше “матери”.
FCFh – 80h = F4Fh (00111101001111)
Получается такая “дочь”:
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 1 0 1 0 0 1 1 1 1 0F4Fh
__CONFIG 0F4Fh ; PC-защита включена, EEPROM-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод GP3 работает как
; канал ввода, RC–генератор (внешняя RC-цепочка подключается к
; GP5. На GP4 присутствует сигнал с Fosc/4).
Защита EEPROM включена, защита PC выключена (CPD = 0, CP = 1)
В данном случае, нужно вычесть 100h.
“Привяжусь” к указанной выше “матери”.
FCFh – 100h = EСFh (00111011001111)
Получается такая “дочь”:
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
0 0 1 1 1 0 1 1 0 0 1 1 1 1 0ECFh
__CONFIG 0ECFh ; EEPROM-защита включена, PC-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод GP3 работает как
; канал ввода, RC–генератор (внешняя RC-цепочка подключается к
; GP5. На GP4 присутствует сигнал с Fosc/4).

Установка верхнего предела калибровки


Примечание: разговор о сбросе BOR уместен в том случае, если сброс по снижению напряжения питания разрешён
(BODEN = 1).

В “вышележащих конфиговариантах”, установлен нижний предел калибровки


(BG1 = BG0 = 0).
Для того чтобы установить верхний предел калибровки (BG1 = BG0 = 1), нужно сделать то
же самое, о чём говорилось выше, но не вычитать “поправочный коэффициент”, а
приплюсовать его к числу, с которым работает директива CONFIG.
В данном случае, нужно приплюсовать “поправочный коэффициент” 3000h.
FCFh + 3000h = 3FCFh (11111111001111)
Получается такая “дочь”:
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 1 1 1 3FCFh
__CONFIG 3FCFh ; Защита выключена, PWRT включен, WDT включен, сброс
; BOR разрешён, вывод GP3 работает как канал ввода,
; RC–генератор (внешняя RC-цепочка подключается к GP5. На GP4
; присутствует сигнал с Fosc/4).

Комплексные варианты
Комбинаций может быть несколько.
Для объяснения сути, на мой взгляд, достаточно одного примера.
“Привяжусь” к указанной выше “матери” (для Вашего удобства, дублирую):
9
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение

0 0 1 1 1 1 1 1 0 0 1 1 1 1 0FCFh
__CONFIG 0FCFh ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод GP3 работает как канал ввода, RC–генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Допустим, что вдобавок к этому, нужно
 выставить PC и EEPROM защиты,
 установить верхний предел калибровки.
FCFh (“мать”) – 180h (PC и EEPROM защиты включены) + 3000h (установка верхнего предела калибровки) = 3E4Fh
(11111001001111)
Получается “дочь”, которая соответствует вожделеемому:
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 0 0 1 0 0 1 1 1 1 0FCFh
__CONFIG 3E4Fh ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс
; BOR разрешён, вывод GP3 работает как канал ввода,
; RC–генератор (внешняя RC-цепочка подключается к GP5. На GP4
; присутствует сигнал с Fosc/4). Верхний предел BOR-калибровки

Таким образом, имеется некая “основа” (“мать”), которая, путём внесения в неё
корректирующих поправок (если это необходимо), “трансформируется в вожделеемое
конфигослово”.
Таблица “конфигопоправок” для PIC12F629/675, PIC16F630/676
Варианты Действия Поправки
Защита PC и EEPROM включена (CPD=CP=0) вычесть 180h
Защита PC включена, защита EEPROM выключена (CP=0, CPD=1) вычесть 80h
Защита EEPROM включена, защита PC выключена (CPD=0, CP=1) вычесть 100h
Установка верхнего предела калибровки приплюсовать 3000h

3. Структура слова конфигурации PIC16F628/628A и варианты их


конфигурирования
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0
Для PIC16F628A
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0

Для PIC16F628
№ бита Название Функция
11 à PC-защита выключена
Биты защиты памяти 10 à PC-защита включена для PC-ячеек с
13…10 CP1, CP0 программ адресами 400h…7FFh
Пары CP1, CP0 (биты №13, 12 01 à PC-защита включена для PC-ячеек с
и биты №11, 10) должны иметь адресами 200h…7FFh
одинаковое значение 00 à PC-защита включена для PC-ячеек с
адресами 000h…7FFh
9 Не используется Запись в него невозможна. Читается как “1”.

8 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена


данных 0 à EEPROM-защита включена
7 LVP Бит управления низковольт- 1 à режим LVP включен
ным программированием 0 à режим LVP выключен
Управление сбросом по 1 à сброс BOR разрешён
снижению Uпит. (сброс BOR 0 à сброс BOR запрещён
6 BODEN происходит, если длительность Если BODEN = 1, то Uпорога = 3,65 … 4,35 в
снижения более 100 мкс.) (типовое значение 4,0 в)
1 à работа в качестве MCLR
Управление режимом работы 0 à работа в качестве RA5 (с внутренним
5 MCLRE вывода RA5/MCLR MCLR). Т.к. RA5 мультиплицирован с MCLR, то
RA5 работает только “на вход”.
4 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
3 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен

10
111 à ER-генератор.
Внешний R подключается к RA7.
На RA6 присутствует сигнал с Fosc/4.

110 à ER-генератор.
Внешний R подключается к RA7.
RA6 работает как канал ввода/вывода.

101 à INTRC-генератор.
2…0 FOSC2…FOSC0 RA7 работает как канал ввода/вывода.
На RA6 присутствует сигнал с Fosc/4.
Биты выбора режима работы
тактового генератора 100 à INTRC-генератор.
RA6 работает как канал ввода/вывода.
RA7 работает как канал ввода/вывода.

011 à EC-генератор.
На RA7 подаётся внешний такт.
RA6 работает как канал ввода/вывода.

010 à HS-генератор (ВЧ)


001 à XT-генератор (стандарт)
000 à LP-генератор (НЧ)

Для PIC16F628A
№ бита Название Функция
13 CP Бит защиты памяти 1 à PC-защита выключена
программ 0 à PC-защита включена
12…9 Не используются Запись в них невозможна. Читаются как “1”.

8 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена


данных 0 à EEPROM-защита включена
7 LVP Бит управления низковольт- 1 à режим LVP включен
ным программированием 0 à режим LVP выключен
Управление сбросом по 1 à сброс BOR разрешён
снижению Uпит. (сброс BOR 0 à сброс BOR запрещён
6 BOREN происходит, если длительность Если BOREN = 1, то Uпорога = 3,65 … 4,35 в
снижения более 100 мкс.) (типовое значение 4,0 в)
1 à работа в качестве MCLR
Управление режимом работы 0 à работа в качестве RA5 (с внутренним
5 MCLRE вывода RA5/MCLR MCLR). Т.к. RA5 мультиплицирован с MCLR, то
RA5 работает только “на вход”.
4 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
3 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
111 à ER-генератор.
Внешний R подключается к RA7.
На RA6 присутствует сигнал с Fosc/4.

110 à ER-генератор.
Внешний R подключается к RA7.
RA6 работает как канал ввода/вывода.

101 à INTRC-генератор.
2…0 FOSC2…FOSC0 Биты выбора режима работы RA7 работает как канал ввода/вывода.
тактового генератора На RA6 присутствует сигнал с Fosc/4.

100 à INTRC-генератор.
RA6 работает как канал ввода/вывода.
RA7 работает как канал ввода/вывода.

011 à EC-генератор.
На RA7 подаётся внешний такт.
RA6 работает как канал ввода/вывода.

010 à HS-генератор (ВЧ)


001 à XT-генератор (стандарт)
000 à LP-генератор (НЧ)

Примечание 1: В “пустышные” биты №9 (для PIC16F628) №12…9 (для PIC16F628A) ничего записать нельзя. Они
всегда читаются как “1”. Пусть в них будет якобы “записываться” единица (см. выделенное тёмно-серым цветом).
Примечание 2: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB4/PGM работает как канал ввода/вывода).

Защита выключена, WDT выключен, сброс BOR запрещён, вывод RA5


работает как MCLR
11
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 0 0 3F20h
__CONFIG 3F20h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 0 1 3F21h
__CONFIG 3F21h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 1 0 3F22h
__CONFIG 3F22h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 1 1 3F23h
__CONFIG 3F23h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 0 3F30h
__CONFIG 3F30h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 1 3F31h
__CONFIG 3F31h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 0 3F32h
__CONFIG 3F32h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 1 3F33h
__CONFIG 3F33h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).

12
Защита выключена, WDT включен, сброс BOR запрещён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 0 0 3F24h
__CONFIG 3F24h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, LP – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 0 1 3F25h
__CONFIG 3F25h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 1 0 3F26h
__CONFIG 3F26h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 1 1 3F27h
__CONFIG 3F27h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 0 3F34h
__CONFIG 3F34h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 1 3F35h
__CONFIG 3F35h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 0 3F36h
__CONFIG 3F36h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 1 3F37h
__CONFIG 3F37h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как MCLR, ER – генератор
13
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR запрещён, вывод RA5 работает как канал ввода (MCLR
внутренне подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 0 0 3F00h
__CONFIG 3F00h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 0 1 3F01h
__CONFIG 3F01h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 1 0 3F02h
__CONFIG 3F02h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 1 1 3F03h
__CONFIG 3F03h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 0 0 3F10h
__CONFIG 3F10h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 0 1 3F11h
__CONFIG 3F11h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 1 0 3F12h
__CONFIG 3F12h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 1 1 3F13h

14
__CONFIG 3F13h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод RA5 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 0 0 3F04h
__CONFIG 3F04h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 0 1 3F05h
__CONFIG 3F05h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 1 0 3F06h
__CONFIG 3F06h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 1 1 3F07h
__CONFIG 3F07h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 0 0 3F14h
__CONFIG 3F14h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 0 1 3F15h
__CONFIG 3F15h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 1 0 3F16h
__CONFIG 3F16h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
15
1 1 1 1 1 1 0 0 0 1 0 1 1 1 3F17h

__CONFIG 3F17h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR разрешён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 0 0 3F60h
__CONFIG 3F60h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 0 1 3F61h
__CONFIG 3F61h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 1 0 3F62h
__CONFIG 3F62h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 1 1 3F63h
__CONFIG 3F63h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 0 3F70h
__CONFIG 3F70h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 1 3F71h
__CONFIG 3F71h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 0 3F72h
__CONFIG 3F72h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628

16
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 1 3F73h
__CONFIG 3F73h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR разрешён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 0 0 3F64h
__CONFIG 3F64h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 0 1 3F65h
__CONFIG 3F65h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 1 0 3F66h
__CONFIG 3F66h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 1 1 3F67h
__CONFIG 3F67h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 0 3F74h
__CONFIG 3F74h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 1 3F75h
__CONFIG 3F75h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 0 3F76h
__CONFIG 3F76h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. RA6 работает как

17
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVPBOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 1 3F77h
__CONFIG 3F77h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как MCLR, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR разрешён, вывод RA5 работает как канал ввода (MCLR
внутренне подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 0 0 3F40h
__CONFIG 3F40h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 0 1 3F41h
__CONFIG 3F41h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 1 0 3F42h
__CONFIG 3F42h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 1 1 3F43h
__CONFIG 3F43h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 0 0 3F50h
__CONFIG 3F50h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 0 1 3F51h
__CONFIG 3F51h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 1 0 3F52h
__CONFIG 3F52h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
18
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 1 1 3F53h
__CONFIG 3F53h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR разрешён, вывод RA5 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 0 0 3F44h
__CONFIG 3F44h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, LP - генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 0 1 3F45h
__CONFIG 3F45h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, XT – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 1 0 3F46h
__CONFIG 3F46h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, HS – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 1 1 3F47h
__CONFIG 3F47h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, EC – генератор.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 0 0 3F54h
__CONFIG 3F54h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA6 и RA7 работают как каналы ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 0 1 3F55h
__CONFIG 3F55h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, INTRC – генератор
; (RA7 работает как канал ввода/вывода.На RA6 присутствует
; сигнал с Fosc/4).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 0 3F56h
__CONFIG 3F56h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
19
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода).
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 1 3F57h
__CONFIG 3F57h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).

Для PIC16F628

Защита PC и EEPROM включена (CP1 = CP0 = CPD = 0)


Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CP1, CP0, CPD), а затем, с помощью
любого HEX-калькулятора (рекомендую универсальный, “майкрософтовский” калькулятор calc. Он имеется на
CD: папка Программы à папка Калькуляторы à calc), вычесть, из числа, с которым работает
директива CONFIG, число 3D00h (11110100000000), после чего заменить число, с которым
работает директива CONFIG, на результат этого вычитания.
Например, пусть будет такая “мать” (11111101010111):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 1 3F57h
__CONFIG 3F57h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
3F57h – 3D00h = 257h (00001001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 1 0 0 1 0 1 0 1 1 1 257h
__CONFIG 257h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита PC включена, защита EEPROM выключена (CP1 = CP0 = 0, CPD = 1)
В данном случае, нужно вычесть 3C00h.
“Привяжусь” к указанной выше “матери”.
3F57h – 3C00h = 357h (00001101010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 1 1 0 1 0 1 0 1 1 1 357h
__CONFIG 357h ; PC-защита включена, EEPROM-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод RA5 работает как канал
; ввода, ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4).
Защита EEPROM включена, защита PC выключена (CPD = 0, CP1 = CP0 = 1)
В данном случае, нужно вычесть 100h.
“Привяжусь” к указанной выше “матери”.
3F57h – 100h = 3E57h (11111001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 0 0 1 0 1 0 1 1 1 3E57h
__CONFIG 3E57h ; EEPROM-защита включена, PC-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод RA5 работает как канал
; ввода, ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4).

20
Для случаев защиты части памяти программ
400h … 7FFh
Защита EEPROM включена, защита PC включена для ячеек с адресами
400h…7FFh (CPD = 0, CP1 = 1, CP0 = 0)
В данном случае, нужно вычесть 1500h.
“Привяжусь” к указанной выше “матери”.
3F57h – 1500h = 2A57h (10101001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 0 1 0 1 0 0 1 0 1 0 1 1 1 2A57h
__CONFIG 2A57h ; EEPROM-защита включена, PC-защита включена для ячеек с
; адресами 400h-7FFh, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует сигнал
; с Fosc/4).
Защита EEPROM выключена, защита PC включена для ячеек с адресами
400h…7FFh, (CPD = 1, CP1 = 1, CP0 = 0)
В данном случае, нужно вычесть 1400h.
“Привяжусь” к указанной выше “матери”.
3F57h – 1400h = 2B57h (10101101010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 0 1 0 1 1 0 1 0 1 0 1 1 1 2B57h
__CONFIG 2B57h ; EEPROM-защита выключена, PC-защита включена для ячеек с
; адресами 400h-7FFh, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует сигнал
; с Fosc/4).

200h … 7FFh
Защита EEPROM включена, защита PC включена для ячеек с адресами
200h…7FFh (CPD = 0, CP1 = 0, CP0 = 1)
В данном случае, нужно вычесть 2900h.
“Привяжусь” к указанной выше “матери”.
3F57h – 2900h = 1657h (01011001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
0 1 0 1 1 0 0 1 0 1 0 1 1 1 1657h
__CONFIG 1657h ; EEPROM-защита включена, PC-защита включена для ячеек с
; адресами 200h-7FFh, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует сигнал
; с Fosc/4).
Защита EEPROM выключена, защита PC включена для ячеек с адресами
200h…7FFh, (CPD = 1, CP1 = 0, CP0 = 1)
В данном случае, нужно вычесть 2800h.
“Привяжусь” к указанной выше “матери”.
3F57h – 2800h = 1757h (01011101010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
0 1 0 1 1 1 0 1 0 1 0 1 1 1 1657h
__CONFIG 1757h ; EEPROM-защита выключена, PC-защита включена для ячеек с
; адресами 200h-7FFh, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует сигнал
; с Fosc/4).

Таким образом, имеется некая “основа” (“мать”), которая, путём внесения в неё
корректирующих поправок (если это необходимо), “трансформируется в вожделеемое
конфигослово”.
Таблица “конфигопоправок” для PIC16F628
21
Варианты Действия Поправки

Защита PC и EEPROM включена вычесть 3D00h

(CP1=CP0=CPD=0)
Защита PC включена, защита EEPROM выключена вычесть 3C00h

(CP=CP1=0, CPD=1)
Защита EEPROM включена, защита PC выключена вычесть 100h

(CPD=0, CP1=CP0=1)
Защищается часть памяти программ

400h … 7FFh
Защита EEPROM включена, защита PC включена для ячеек с вычесть 1500h
адресами 400h…7FFh (CPD=0, CP1=1, CP0=0)

Защита EEPROM выключена, защита PC включена для ячеек с вычесть 1400h


адресами 400h…7FFh (CPD=1, CP1=1, CP0=0)

Защищается часть памяти программ


200h … 7FFh
Защита EEPROM включена, защита PC включена для ячеек с вычесть 2900h
адресами 200h…7FFh (CPD=0, CP1=0, CP0=1)

Защита EEPROM выключена, защита PC включена для ячеек с вычесть 2800h


адресами 200h…7FFh (CPD=1, CP1=0, CP0=1)

Для PIC16F628A

Защита PC и EEPROM включена (CP = CPD = 0)


Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CP, CPD), а затем, с помощью любого
HEX-калькулятора, вычесть, из числа, с которым работает директива CONFIG, число
2100h (10000100000000), после чего заменить число, с которым работает директива
CONFIG, на результат этого вычитания.
Например, пусть будет такая “мать” (11111101010111):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 1 3F57h
__CONFIG 3F57h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
3F57h – 2100h = 1E57h (01111001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
0 1 1 1 1 0 0 1 0 1 0 1 1 1 1E57h
__CONFIG 1E57h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR
; разрешён, вывод RA5 работает как канал ввода, ER – генератор
; (внешний R подключается к RA7. На RA6 присутствует
; сигнал с Fosc/4).
Защита PC включена, защита EEPROM выключена (CP = 0, CPD = 1)
В данном случае, нужно вычесть 2000h.
“Привяжусь” к указанной выше “матери”.
3F57h – 2000h = 1F57h (01111101010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение

22
0 1 1 1 1 1 0 1 0 1 0 1 1 1 1F57h
__CONFIG 1F57h ; PC-защита включена, EEPROM-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод RA5 работает как канал
; ввода, ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4).
Защита EEPROM включена, защита PC выключена (CPD = 0, CP = 1)
В данном случае, нужно вычесть 100h.
“Привяжусь” к указанной выше “матери”.
3F57h – 100h = 3E57h (11111001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 0 0 1 0 1 0 1 1 1 3E57h
__CONFIG 3E57h ; EEPROM-защита включена, PC-защита выключена, PWRT включен,
; WDT включен, сброс BOR разрешён, вывод RA5 работает как канал
; ввода, ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4).

Таблица “конфигопоправок” для PIC16F628A


Варианты Действия Поправки
Защита PC и EEPROM включена (CP=CPD=0) вычесть 2100h
Защита PC включена, защита EEPROM выключена (CP=0, CPD=1) вычесть 2000h
Защита EEPROM включена, защита PC выключена (CPD=0, CP=1) вычесть 100h

4. Структура слова конфигурации PIC16F873/874/876/877 и варианты их


конфигурирования
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0

№ бита Название Функция


Для PIC16F873/874/876/877
11 à PC-защита выключена

Для PIC16F873/874 (4 PC-килослова)


10 à PC-защита включена для PC-ячеек с
адресами 0F00h…0FFFh
Биты защиты памяти 01 à PC-защита включена для PC-ячеек с
13,12 CP1, CP0 программ адресами 0800h…0FFFh
Пары CP1, CP0 (биты №13, 12 00 à PC-защита включена для PC-ячеек с
и биты №5, 4) должны иметь адресами 0000h…0FFFh
одинаковое значение
Для PIC16F876/877 (8 PC-килослов)
10 à PC-защита включена для PC-ячеек с
адресами 1F00h…1FFFh
01 à PC-защита включена для PC-ячеек с
адресами 1000h…1FFFh
00 à PC-защита включена для PC-ячеек с
адресами 0000h…1FFFh
Бит управления режимом 1 à внутрисхемная отладка выключена
внутрисхемной отладки RB6, RB7 работают как каналы ввода/вывода
11 DEBUG (для случая работы с 0 à внутрисхемная отладка включена
программатором-отладчиком RB6, RB7 используются программатором-
типа PicKit2 и ему подобных) отладчиком, при условии его поддержки PIC16F87x
10 Не используется Запись в него невозможна. Читается как “1”.

9 WRT Бит управления записью во 1 à Flash-запись разрешена


Flash-память программ 0 à Flash-запись запрещена
8 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена
данных 0 à EEPROM-защита включена
7 LVP Бит управления низковольт- 1 à режим LVP включен
ным программированием 0 à режим LVP выключен
Управление сбросом по 1 à сброс BOR разрешён
снижению Uпит. (сброс BOR 0 à сброс BOR запрещён
6 BODEN происходит, если длительность Если BODEN = 1, то Uпорога = 3,7 … 4,35 в (типовое
снижения более 100 мкс.) значение 4,0 в)
5,4 CP1, CP0 Биты защиты памяти См. биты 13,12
программ
3 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
2 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
11 à RC-генератор.
Внешняя RC-цепочка подключается к OSC1.

23
На OSC2 присутствует сигнал с Fosc/4.
Примечание: для PIC16F873/876, OSC1 - вывод 9,
Биты выбора режима работы а OSC2 - вывод 10.
1,0 FOSC1, FOSC0 тактового генератора Для PIC16F874/877, OSC1 - вывод
13, а OSC2 - вывод 14.

10 à HS-генератор (ВЧ)
01 à XT-генератор (стандарт)
00 à LP-генератор (НЧ)

Примечание 1: В “пустышный” бит №10 ничего записать нельзя. Он всегда читается как “1”.
Пусть в него будет якобы “записываться” единица (см. выделенное тёмно-серым цветом).
Примечание 2: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB3/PGM работает как канал ввода/вывода).

Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись


запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 0 0 3D30h
__CONFIG 3D30h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 0 1 3D31h
__CONFIG 3D31h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 1 0 3D32h
__CONFIG 3D32h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 1 1 3D33h
__CONFIG 3D33h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 0 0 3D34h
__CONFIG 3D34h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 0 1 3D35h
__CONFIG 3D35h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 1 0 3D36h
__CONFIG 3D36h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 1 1 3D37h
__CONFIG 3D37h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 0 0 3D70h
__CONFIG 3D70h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
24
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 0 1 3D71h
__CONFIG 3D71h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 1 0 3D72h
__CONFIG 3D72h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 1 1 3D73h
__CONFIG 3D73h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 0 0 3D74h
__CONFIG 3D74h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 0 1 3D75h
__CONFIG 3D75h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 1 0 3D76h
__CONFIG 3D76h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 1 1 3D77h
__CONFIG 3D77h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 0 0 3530h
__CONFIG 3530h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 0 1 3531h
__CONFIG 3531h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 1 0 3532h
__CONFIG 3532h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 1 1 3533h
__CONFIG 3533h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0

25
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 0 0 3534h
__CONFIG 3534h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 0 1 3535h
__CONFIG 3535h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 1 0 3536h
__CONFIG 3536h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 1 1 3537h
__CONFIG 3537h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 0 0 3570h
__CONFIG 3570h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 0 1 3571h
__CONFIG 3571h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 1 0 3572h
__CONFIG 3572h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 1 1 3573h
__CONFIG 3573h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 0 0 3574h
__CONFIG 3574h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 0 1 3575h
__CONFIG 3575h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 0 3576h
__CONFIG 3576h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 1 3577h
__CONFIG 3577h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.

26
Защита PC и EEPROM включена (CP1 = CP0 = CPD = 0)
Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CP1, CP0, CPD), а затем, с помощью
любого HEX-калькулятора, вычесть, из числа, с которым работает директива CONFIG,
число 3130h (11000100110000), после чего заменить число, с которым работает директива
CONFIG, на результат этого вычитания.
Например, пусть будет такая “мать” (11010101110111):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 1 3577h
__CONFIG 3577h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
3577h – 3130h = 447h (00010001000111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 1 0 0 0 1 0 0 0 1 1 1 447h
__CONFIG 447h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
Защита PC включена, защита EEPROM выключена (CP1 = CP0 = 0, CPD = 1)
В данном случае, нужно вычесть 3030h.
“Привяжусь” к указанной выше “матери”.
3577h – 3030h = 547h (00010101000111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 1 0 1 0 1 0 0 0 1 1 1 547h
__CONFIG 547h ; PC-защита включена, EEPROM-защита выключена, PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.
Защита EEPROM включена, защита PC выключена (CPD = 0, CP1 = CP0 = 1)
В данном случае, нужно вычесть 100h.
“Привяжусь” к указанной выше “матери”.
3577h – 100h = 3477h (11010001110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 0 0 1 1 1 0 1 1 1 3477h
__CONFIG 3477h ; EEPROM-защита включена, PC-защита выключена, PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.

Для случаев защиты части памяти программ


0F00h … 0FFFh (для PIC16F873/874 à 4 PC-килослова)
1F00h … 1FFFh (для PIC16F876/877 à 8 PC-килослов)
Защита EEPROM включена, защита PC включена (CPD = 0, CP1 = 1, CP0 = 0)
В данном случае, нужно вычесть 1110h.
“Привяжусь” к указанной выше “матери”.
3577h – 1110h = 2467h (10010001100111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 0 0 1 0 0 0 1 1 0 0 1 1 1 2467h
__CONFIG 2467h ; EEPROM-защита включена, PC-защита включена для части PC-ячеек
; (см. “вышележащие”, адресные пояснения), PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.
Защита EEPROM выключена, защита PC включена (CPD = 1, CP1 = 1, CP0 = 0)
В данном случае, нужно вычесть 1010h.
“Привяжусь” к указанной выше “матери”.
3577h – 1010h = 2567h (10010101100111)

27
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 0 0 1 0 1 0 1 1 0 0 1 1 1 2567h
__CONFIG 2567h ; EEPROM-защита выключена, PC-защита включена для части PC-ячеек
; (см. “вышележащие”, адресные пояснения), PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.

0800h … 0FFFh (для PIC16F873/874 à 4 PC-килослова)


1000h … 1FFFh (для PIC16F876/877 à 8 PC-килослов)
Защита EEPROM включена, защита PC включена (CPD = 0, CP1 = 0, CP0 = 1)
В данном случае, нужно вычесть 2120h.
“Привяжусь” к указанной выше “матери”.
3577h – 2120h = 1457h (01010001010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
0 1 0 1 0 0 0 1 0 1 0 1 1 1 1457h
__CONFIG 1457h ; EEPROM-защита включена, PC-защита включена для части PC-ячеек
; (см. “вышележащие”, адресные пояснения), PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.
Защита EEPROM выключена, защита PC включена (CPD = 1, CP1 = 0, CP0 = 1)
В данном случае, нужно вычесть 2020h.
“Привяжусь” к указанной выше “матери”.
3577h – 2020h = 1557h (01010101010111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
0 1 0 1 0 1 0 1 0 1 0 1 1 1 1557h
__CONFIG 1557h ; EEPROM-защита выключена, PC-защита включена для части PC-ячеек
; (см. “вышележащие”, адресные пояснения), PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись запрещена,
; внутрисхемная отладка включена, RC - генератор.

Разрешение Flash-записи
В данном случае, нужно прибавить 200h.
“Привяжусь” к указанной выше “матери”.
3577h + 200h = 3777h (11011101110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 1 3777h
__CONFIG 3777h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.

Комплексные варианты
Комбинаций может быть несколько.
Для объяснения сути, на мой взгляд, достаточно одного примера.
“Привяжусь” к указанной выше “матери” (для Вашего удобства, дублирую):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 1 3577h
__CONFIG 3577h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись запрещена, внутрисхемная отладка
; включена, RC - генератор.
Допустим, что вдобавок к этому, нужно
 выставить PC и EEPROM защиты,
 разрешить Flash-запись.
3577h (“мать”) – 3130h (PC и EEPROM защиты включены) + 200h (разрешение Flash-записи) = 647h (00011001000111)
Получается “дочь”, которая соответствует вожделеемому:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 1 1 0 0 1 0 0 0 1 1 1 647h
__CONFIG 647h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR

28
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.

Таким образом, имеется некая “основа” (“мать”), которая, путём внесения в неё
корректирующих поправок (если это необходимо), “трансформируется в вожделеемое
конфигослово”.
Таблица “конфигопоправок” для PIC16F873/874/876/877
Варианты Действия Поправки
Защита PC и EEPROM включена вычесть 3130h
(CP1=CP0=CPD=0)
Защита PC включена, защита EEPROM выключена вычесть 3030h
(CP1=CP0=0, CPD=1)
Защита EEPROM включена, защита PC выключена вычесть 100h
(CPD=0, CP1=CP0= 1)
Защищается часть памяти программ
0F00h … 0FFFh (для PIC16F873/874 à 4 PC-килослова)
1F00h … 1FFFh (для PIC16F876/877 à 8 PC-килослов)
Защита EEPROM включена, защита PC включена вычесть 1110h
(CPD=0, CP1=1, CP0=0)
Защита EEPROM выключена, защита PC включена вычесть 1010h
(CPD=1, CP1=1, CP0=0)
Защищается часть памяти программ
0800h … 0FFFh (для PIC16F873/874 à 4 PC-килослова)
1000h … 1FFFh (для PIC16F876/877 à 8 PC-килослов)
Защита EEPROM включена, защита PC включена вычесть 2120h
(CPD=0, CP1=0, CP0=1)
Защита EEPROM выключена, защита PC включена вычесть 2020h
(CPD=1, CP1=0, CP0=1)
Разрешение Flash-записи приплюсовать 200h

5. Структура слова конфигурации PIC16F873A/874A/876A/877A и варианты


их конфигурирования
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0

№ бита Название Функция


13 CP Бит защиты памяти программ 1 à PC-защита выключена
0 à PC-защита включена
12 Не используется Запись в него невозможна. Читается как “1”.
Бит управления режимом 1 à внутрисхемная отладка выключена
внутрисхемной отладки RB6, RB7 работают как каналы ввода/вывода
11 DEBUG (для случая работы с 0 à внутрисхемная отладка включена
программатором-отладчиком RB6, RB7 используются программатором-
типа PicKit2 и ему подобных) отладчиком, при условии его поддержки
PIC16F87xA
11 à Flash-запись разрешена по всему
“объёму” PC

Для PIC16F873A/874A (4 PC-килослова)


10 à Flash-запись разрешена для PC-ячеек
с адресами 0100h…0FFFh
01 à Flash-запись разрешена для PC-ячеек
Биты управления записью во с адресами 0400h…0FFFh
10, 9 WRT1, WRT0 Flash-память программ 00 à Flash-запись разрешена для PC-ячеек
с адресами 0800h…0FFFh

Для PIC16F876A/877A (8 PC-килослов)


10 à Flash-запись разрешена для PC-ячеек
с адресами 0100h…1FFFh
01 à Flash-запись разрешена для PC-ячеек
с адресами 0800h…1FFFh
00 à Flash-запись разрешена для PC-ячеек
с адресами 1000h…1FFFh
8 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена
данных 0 à EEPROM-защита включена
7 LVP Бит управления низковольт- 1 à режим LVP включен
ным программированием 0 à режим LVP выключен
Управление сбросом по 1 à сброс BOR разрешён
снижению Uпит. (сброс BOR 0 à сброс BOR запрещён
6 BOREN происходит, если длительность Если BOREN = 1, то Uпорога = 3,65 … 4,35 в

29
снижения более 100 мкс.) (типовое значение 4,0 в)
5,4 Не используется Запись в них невозможна. Читаются как “1”.

3 -PWRTEN Бит управления таймером 1 à PWRT выключен


включения питания 0 à PWRT включен
2 WDTEN Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
11 à RC-генератор.
Внешняя RC-цепочка подключается к OSC1.
На OSC2 присутствует сигнал с Fosc/4.
Примечание: для PIC16F873/876, OSC1 - вывод 9,
а OSC2 - вывод 10.
1,0 FOSC1, FOSC0 Биты выбора режима работы
Для PIC16F874/877, OSC1 - вывод 13,
тактового генератора
а OSC2 - вывод 14.

10 à HS-генератор (ВЧ)
01 à XT-генератор (стандарт)
00 à LP-генератор (НЧ)

Примечание 1: В “пустышные” биты №12, 5, 4 ничего записать нельзя. Они всегда читаются как “1”.
Пусть в них будет якобы “записываться” единица (см. выделенное тёмно-серым цветом).
Примечание 2: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB3/PGM работает как канал ввода/вывода).

Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись


разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 0 3F30h
__CONFIG 3F30h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 1 3F31h
__CONFIG 3F31h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 0 3F32h
__CONFIG 3F32h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 1 3F33h
__CONFIG 3F33h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 0 3F34h
__CONFIG 3F34h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 1 3F35h
__CONFIG 3F35h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 0 3F36h
__CONFIG 3F36h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 1 3F37h
__CONFIG 3F37h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; выключена, RC - генератор.
30
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 0 3F70h
__CONFIG 3F70h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 1 3F71h
__CONFIG 3F71h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 0 3F72h
__CONFIG 3F72h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 1 3F73h
__CONFIG 3F73h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 0 3F74h
__CONFIG 3F74h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 1 3F75h
__CONFIG 3F75h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 0 3F76h
__CONFIG 3F76h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 1 3F77h
__CONFIG 3F77h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; выключена, RC - генератор.
Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 0 0 3730h
__CONFIG 3730h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 0 1 3731h
__CONFIG 3731h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 1 0 3732h
__CONFIG 3732h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение

31
1 1 0 1 1 1 0 0 1 1 0 0 1 1 3733h
__CONFIG 3733h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 0 0 3734h
__CONFIG 3734h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 0 1 3735h
__CONFIG 3735h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 1 0 3736h
__CONFIG 3736h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 1 1 3737h
__CONFIG 3737h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; запрещён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 0 0 3770h
__CONFIG 3770h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 0 1 3771h
__CONFIG 3771h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 1 0 3772h
__CONFIG 3772h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 1 1 3773h
__CONFIG 3773h ; Защита выключена, PWRT включен, WDT выключен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 0 0 3774h
__CONFIG 3774h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 0 1 3775h
__CONFIG 3775h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 0 3776h
__CONFIG 3776h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
32
; включена, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 1 3777h
__CONFIG 3777h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.

Защита PC и EEPROM включена (CP = CPD = 0)


Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CP, CPD), а затем, с помощью любого
HEX-калькулятора, вычесть, из числа, с которым работает директива CONFIG, число
2100h (10000100000000), после чего заменить число, с которым работает директива
CONFIG, на результат этого вычитания.
Например, пусть будет такая “мать” (11011101110111):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 1 3777h
__CONFIG 3777h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
3777h – 2100h = 1677h (01011001110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
0 1 0 1 1 0 0 1 1 1 0 1 1 1 1677h
__CONFIG 1677h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
Защита PC включена, защита EEPROM выключена (CP = 0, CPD = 1)
В данном случае, нужно вычесть 2000h.
“Привяжусь” к указанной выше “матери”.
3777h – 2000h = 1777h (01011101110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
0 1 0 1 1 1 0 1 1 1 0 1 1 1 1777h
__CONFIG 1777h ; PC-защита включена, EEPROM-защита выключена, PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись разрешена,
; внутрисхемная отладка включена, RC - генератор.
Защита EEPROM включена, защита PC выключена (CPD = 0, CP= 1)
В данном случае, нужно вычесть 100h.
“Привяжусь” к указанной выше “матери”.
3777h – 100h = 3677h (11011001110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 0 0 1 1 1 0 1 1 1 3677h
__CONFIG 3677h ; EEPROM-защита включена, PC-защита выключена, PWRT включен, WDT
; включен, сброс BOR разрешён, Flash-запись разрешена,
; внутрисхемная отладка включена, RC - генератор.

В “вышележащих” примерах, Flash-запись разрешена по всему “объёму” PC (WRT1 = WRT0 = 1).


Если Flash-запись нужно разрешить для части PC, то это выглядит так:

Для случаев разрешения Flash-записи в часть памяти программ


0100h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова)
0100h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)
В данном случае, нужно вычесть 200h.
“Привяжусь” к указанной выше “матери”.
3777h – 200h = 3577h (11010101110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 1 3577h

33
__CONFIG 3577h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена в часть PC, внутрисхемная
; отладка включена, RC - генератор.

0400h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова)


0800h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)
В данном случае, нужно вычесть 400h.
“Привяжусь” к указанной выше “матери”.
3777h – 400h = 3377h (11001101110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 0 1 1 0 1 1 1 0 1 1 1 3377h
__CONFIG 3377h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена в часть PC, внутрисхемная
; отладка включена, RC - генератор.

0800h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова)


1000h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)
В данном случае, нужно вычесть 600h.
“Привяжусь” к указанной выше “матери”.
3777h – 600h = 3177h (11000101110111)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 0 0 1 0 1 1 1 0 1 1 1 3177h
__CONFIG 3177h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена в часть PC, внутрисхемная
; отладка включена, RC - генератор.

Комплексные варианты
Комбинаций может быть несколько.
Для объяснения сути, на мой взгляд, достаточно одного примера.
“Привяжусь” к указанной выше “матери” (для Вашего удобства, дублирую):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 1 3777h
__CONFIG 3777h ; Защита выключена, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена, внутрисхемная отладка
; включена, RC - генератор.
Допустим, что применяется PIC16F873A, и вдобавок к этому, нужно
 выставить PC и EEPROM защиты,
 разрешить Flash-запись в PC-ячейки с адресами 0100h…0FFFh.
3777h (“мать”) – 2100h (PC и EEPROM защиты включены) - 200h (разрешение Flash-записи в PC-ячейки с адресами 0100h…
0FFFh) = 1477h (01010001110111)
Получается “дочь”, которая соответствует вожделеемому:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
0 1 0 1 0 0 0 1 1 1 0 1 1 1 1477h
__CONFIG 1477h ; PC/EEPROM-защиты включены, PWRT включен, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена в часть PC, внутрисхемная
; отладка включена, RC - генератор.
Таким образом, имеется некая “основа” (“мать”), которая, путём внесения в неё
корректирующих поправок (если это необходимо), “трансформируется в вожделеемое
конфигослово”.
Таблица “конфигопоправок” для PIC16F873A/874A/876A/877A
Варианты Действия Поправки
Защита PC и EEPROM включена (CP=CPD=0) вычесть 2100h
Защита PC включена, защита EEPROM выключена (CP=0, CPD=1) вычесть 2000h
Защита EEPROM включена, защита PC выключена (CPD= 0, CP= 1) вычесть 100h
Flash-запись разрешена в PC-ячейки
0100h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова) вычесть 200h
0100h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)
Flash-запись разрешена в PC-ячейки
0400h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова) вычесть 400h
34
0800h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)
Flash-запись разрешена в PC-ячейки
0800h … 0FFFh (для PIC16F873A/874A à 4 PC-килослова) вычесть 600h
1000h … 1FFFh (для PIC16F876A/877A à 8 PC-килослов)

6. Структура слова конфигурации PIC16F631/677/685/687/689/690, PIC12F683


и варианты их конфигурирования
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0

№ бита Название Функция


13,12 Не используются Запись в них невозможна. Читаются как “1”.
1 à мониторинг включен
0 à мониторинг выключен

Так называемый монитор (устройство слежения


за работой тактового генератора), если он
включен (FCMEN = 1), работает во всех режимах
11 FCMEN Бит управления монитором тактового генератора, за исключением
внутреннего тактирования (режим INTOSC) и
позволяет устройству продолжить работу при
отказах/сбоях в работе тактовых генераторов,
сконфигурированных как LP, XT, HS, EC, RC
(в любом из его RC-подрежимов), за счёт
переключения с внешнего источника
тактирования на внутренний (частота программно
задаётся битами IRCF<2:0> регистра OSCCON).
1 à ускоренный запуск разрешён
0 à ускоренный запуск запрещён

Ускоренный запуск (после сброса POR, окончания


отработки PWRT и “ SLEEP-пробуждения”)
минимизирует время отработки процессов (плюс,
соответствующее снижение энергопотребления).
Бит управления ускоренным
10 IESO запуском
Он применим для тактовых генераторов,
сконфигурированных как LP, XT, HS.
В иных случаях, ускоренный запуск аппаратно
заблокирован.
При работе в спящем режиме (SLEEP),
ускоренный запуск уменьшает время
“пробуждения”, а переход в SLEEP будет
осуществляться без ожидания окончания
стабилизации тактового генератора.
11 à сброс BOR разрешён
10 à сброс BOR, в спящем режиме (SLEEP),
автоматически выключается, а после
Управление сбросом по выхода из него, автоматически включается
9,8
BOREN1,BOREN0 снижению Uпит. (сброс BOR (это уменьшает энергопотребление)
происходит, если длительность 01 à сброс BOR разрешается/запрещается
снижения более 100 мкс.) битом SBOREN регистра PCON
00 à сброс BOR запрещён

Uпорога BOR = 2,0…2,2 в


7 CPD Бит защиты EEPROM-памяти 1 à EEPROM-защита выключена
данных 0 à EEPROM-защита включена
6 CP Бит защиты памяти программ 1 à PC-защита выключена
0 à PC-защита включена
Управление режимом работы
вывода ..3/MCLR 1 à работа в качестве MCLR
Для
5 MCLRE PIC16F631/677/685/687/689/690
0 à работа в качестве ..3 (с внутренним
MCLR). Т.к. ..3 мультиплицирован с MCLR, то ..3
..3 à RA3
работает только “на вход”.
Для PIC12F683
..3 à GP3
4 -PWRTE Бит управления таймером 1 à PWRT выключен
включения питания 0 à PWRT включен
3 WDTE Бит управления сторожевым 1 à WDT включен
таймером 0 à WDT выключен
111 à RC-генератор.
Внешняя RC-цепочка подключается к ..5.
На ..4 присутствует сигнал с Fosc/4.

110 à RC-генератор.
Внешняя RC-цепочка подключается к ..5.

35
Биты выбора режима работы ..4 работает как канал ввода/вывода.
тактового генератора
Для 101 à INTOSC-генератор.
PIC16F631/677/685/687/689/690 ..5 работает как канал ввода/вывода.
2,0 FOSC2…FOSC0 ..4 à RA4 На ..4 присутствует сигнал с Fosc/4.
..5 à RA5
Для PIC12F683 100 à INTOSC-генератор.
..4 à GP4 ..5 и ..4 работают как каналы ввода/вывода.
..5 à GP5
011 à EC-генератор.
На ..5 подаётся внешний такт.
..4 работает как канал ввода/вывода.

010 à HS-генератор (ВЧ)


001 à XT-генератор (стандарт)
000 à LP-генератор (НЧ)

Примечание: в “пустышныe” биты №13…12 ничего записать нельзя. Они всегда читаются как “1”.
Пусть в них будут якобы “записываться” единицы (см. выделенное тёмно-серым цветом).

Пояснение: обратите внимание на то, что в “вышележащей” таблице применены символьные


обозначения ..3, ..4 и ..5 (выделено светло-серым и жёлтым цветом).
Для PIC16F631/677/685/687/689/690
..3 à RA3
..4 à RA4
..5 à RA5
Для PIC12F683
..3 à GP3
..4 à GP4
..5 à GP5
“Нижележащие” варианты конфигурирования “заточены” под PIC16F631/677/685/687/689/690 (работа с
RA…). Если же речь идёт о PIC12F683, то нужно просто банально заменить RA… на GP…

Защита выключена, мониторинг выключен, ускоренный режим запуска


запрещён, WDT выключен, сброс BOR запрещён, RA3 работает как MCLR
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 0 0 30E0h
__CONFIG 30E0h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 0 1 30E1h
__CONFIG 30E1h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 1 0 30E2h
__CONFIG 30E2h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 1 1 30E3h
__CONFIG 30E3h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, EC - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 0 0 30E4h
__CONFIG 30E4h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, INTOSC – генератор (RA5 и RA4 работают
; как каналы ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 0 1 30E5h
__CONFIG 30E5h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, INTOSC – генератор (RA5 работает как
; канал ввода/вывода. На RA4 присутствует сигнал с Fosc/4).
13 12 11 10 9 8 7 6 5 4 3 2 1 0

36
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 1 0 30E6h
__CONFIG 30E6h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, RC – генератор (внешняя RC-цепочка
; подключается к RA5. RA4 работает как канал ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 1 1 30E7h
__CONFIG 30E7h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, RC – генератор (внешняя RC-цепочка
; подключается к RA5. На RA4 присутствует сигнал с Fosc/4).
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT включен, сброс BOR запрещён, RA3 работает как MCLR
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 0 0 30E8h
__CONFIG 30E8h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 0 1 30E9h
__CONFIG 30E9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 1 0 30EAh
__CONFIG 30EAh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 1 1 30EBh
__CONFIG 30EBh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, EC - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 0 0 30ECh
__CONFIG 30ECh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, INTOSC – генератор (RA5 и RA4 работают
; как каналы ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 0 1 30EDh
__CONFIG 30EDh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, INTOSC – генератор (RA5 работает как
; канал ввода/вывода. На RA4 присутствует сигнал с Fosc/4).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 1 0 30EEh
__CONFIG 30EEh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, RC – генератор (внешняя RC-цепочка
; подключается к RA5. RA4 работает как канал ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 1 1 30EFh
__CONFIG 30EFh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как MCLR, RC – генератор (внешняя RC-цепочка
; подключается к RA5. На RA4 присутствует сигнал с Fosc/4).
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT выключен, сброс BOR запрещён, RA3 работает как канал
ввода (MCLR внутренне подключен к +Uпит.)
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 0 0 30C0h
__CONFIG 30C0h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод

37
; RA3 работает как канал ввода, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 0 1 30C1h
__CONFIG 30C1h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 1 0 30C2h
__CONFIG 30C2h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 1 1 30C3h
__CONFIG 30C3h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, EC - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 0 0 30C4h
__CONFIG 30C4h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, INTOSC – генератор (RA5 и RA4
; работают как каналы ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 0 1 30C5h
__CONFIG 30C5h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, INTOSC – генератор (RA5 работает
; как канал ввода/вывода. На RA4 присутствует сигнал с Fosc/4).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 1 0 30C6h
__CONFIG 30C6h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, RC – генератор (внешняя RC-цепочка
; подключается к RA5. RA4 работает как канал ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 1 1 30C7h
__CONFIG 30C7h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT выключен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, RC – генератор (внешняя RC-цепочка
; подключается к RA5. На RA4 присутствует сигнал с Fosc/4).
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT включен, сброс BOR запрещён, RA3 работает как канал
ввода (MCLR внутренне подключен к +Uпит.)
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 0 30C8h
__CONFIG 30C8h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, LP - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 1 30C9h
__CONFIG 30C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 1 0 30CAh
__CONFIG 30CAh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, HS - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 1 1 30CBh
__CONFIG 30CBh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, EC - генератор.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение

38
1 1 0 0 0 0 1 1 0 0 1 1 0 0 30CCh
__CONFIG 30CCh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, INTOSC – генератор (RA5 и RA4
; работают как каналы ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 0 1 30CDh
__CONFIG 30CDh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, INTOSC – генератор (RA5 работает
; как канал ввода/вывода. На RA4 присутствует сигнал с Fosc/4).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 1 0 30CEh
__CONFIG 30CEh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, RC – генератор (внешняя RC-цепочка
; подключается к RA5. RA4 работает как канал ввода/вывода).
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 1 1 30CFh
__CONFIG 30CFh ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, RC – генератор (внешняя RC-цепочка
; подключается к RA5. На RA4 присутствует сигнал с Fosc/4).

Защита PC и EEPROM включена (CPD = CP = 0)


Для того чтобы это сделать, сначала, из “вышележащего” списка, нужно выбрать
нужную Вам конфигурацию (не обращая внимания на биты CPD и CP), а затем, с помощью
любого HEX-калькулятора, вычесть, из числа, с которым работает директива CONFIG,
число C0h, после чего заменить число, с которым работает директива CONFIG, на
результат этого вычитания.
Например, пусть будет такая “мать” (11000011001001):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 1 30C9h
__CONFIG 30C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
30C9h – C0h = 3009h (11000000001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 0 0 0 0 1 0 0 1 3009h
__CONFIG 3009h ; PC/EEPROM-защиты включены, мониторинг выключен, ускоренный режим
; запуска запрещён, PWRT включен, WDT включен, сброс BOR запрещён,
; вывод RA3 работает как канал ввода, XT - генератор.
Защита PC включена, защита EEPROM выключена (CP = 0, CPD = 1)
В данном случае, нужно вычесть 40h.
“Привяжусь” к указанной выше “матери”.
30C9h – 40h = 3089h (11000010001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 0 0 0 1 0 0 1 3089h
__CONFIG 3089h ; PC-защита включена, EEPROM-защита выключена, мониторинг
; выключен, ускоренный режим запуска запрещён, PWRT включен, WDT
; включен, сброс BOR запрещён, вывод RA3 работает как канал ввода,
; XT - генератор.
Защита EEPROM включена, защита PC выключена (CPD = 0, CP = 1)
В данном случае, нужно вычесть 80h.
“Привяжусь” к указанной выше “матери”.
30C9h – 80h = 3049h (11000001001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 0 1 0 0 1 0 0 1 3049h
__CONFIG 3049h ; EEPROM-защита включена, PC-защита выключена, мониторинг
; выключен, ускоренный режим запуска запрещён, PWRT включен, WDT
; включен, сброс BOR запрещён, вывод RA3 работает как канал ввода,

39
; XT - генератор.
Разрешение мониторинга
В данном случае, нужно прибавить 800h.
“Привяжусь” к указанной выше “матери”.
30C9h + 800h = 38C9h (11100011001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 0 0 0 1 1 0 0 1 0 0 1 38C9h
__CONFIG 38C9h ; Защита выключена, мониторинг включен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
Разрешение ускоренного запуска
В данном случае, нужно прибавить 400h.
“Привяжусь” к указанной выше “матери”.
30C9h + 400h = 34C9h (11010011001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 1 0 0 1 1 0 0 1 0 0 1 34C9h
__CONFIG 34C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; разрешён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
Разрешение мониторинга и ускоренного запуска
В данном случае, нужно прибавить C00h.
“Привяжусь” к указанной выше “матери”.
30C9h + C00h = 3CC9h (11110011001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 0 0 1 1 0 0 1 0 0 1 3CC9h
__CONFIG 3CC9h ; Защита выключена, мониторинг включен, ускоренный режим запуска
; разрешён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
Разрешение сброса BOR (BOREN1 = BOREN0 = 1)
В данном случае, нужно прибавить 300h.
“Привяжусь” к указанной выше “матери”.
30C9h + 300h = 33C9h (11001111001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 1 1 1 1 0 0 1 0 0 1 33C9h
__CONFIG 33C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR разрешён, вывод
; RA3 работает как канал ввода, XT - генератор.
Вариант сброса BOR (BOREN1 = 1, BOREN0 = 0)
В данном случае, нужно прибавить 200h.
“Привяжусь” к указанной выше “матери”.
30C9h + 200h = 32C9h (11001011001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 1 0 1 1 0 0 1 0 0 1 32C9h
__CONFIG 32C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR разрешён, вывод
; RA3 работает как канал ввода, XT - генератор.
Вариант сброса BOR (BOREN1 = 0, BOREN0 = 1)
В данном случае, нужно прибавить 100h.
“Привяжусь” к указанной выше “матери”.
30C9h + 100h = 31C9h (11000111001001)
Получается такая “дочь”:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 1 1 1 0 0 1 0 0 1 31C9h
__CONFIG 31C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR разрешён, вывод

40
; RA3 работает как канал ввода, XT - генератор.
Комплексные варианты
Комбинаций может быть несколько.
Для объяснения сути, на мой взгляд, достаточно одного примера.
“Привяжусь” к указанной выше “матери” (для Вашего удобства, дублирую):
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 1 30C9h
__CONFIG 30C9h ; Защита выключена, мониторинг выключен, ускоренный режим запуска
; запрещён, PWRT включен, WDT включен, сброс BOR запрещён, вывод
; RA3 работает как канал ввода, XT - генератор.
Допустим, что вдобавок к этому, нужно
 разрешить мониторинг и ускоренный запуск,
 разрешить сброс BOR (по варианту BOREN1 = BOREN0 = 1),
 выставить PC-защиту.
30C9h (“мать”) + C00h (разрешение мониторинга и ускоренного запуска) + 300h (разрешение сброса BOR) – 40h
(PC-защита включена) = 3F89h (11111110001001)
Получается “дочь”, которая соответствует вожделеемому:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 0 0 1 3F89h
__CONFIG 3F89h ; PC-защита включена, EEPROM-защита выключена, мониторинг включен,
; ускоренный режим запуска разрешён, PWRT включен, WDT включен,
; сброс BOR разрешён, вывод RA3 работает как канал ввода,
; XT - генератор.

Таким образом, имеется некая “основа” (“мать”), которая, путём внесения в неё
корректирующих поправок (если это необходимо), “трансформируется в вожделеемое
конфигослово”.
Таблица “конфигопоправок” для PIC16F631/677/685/687/689/690, PIC12F683
Варианты Действия Поправки
Защита PC и EEPROM включена (CPD=CP=0) вычесть C0h
Защита PC включена, защита EEPROM выключена (CP=0, CPD=1) вычесть 40h
Защита EEPROM включена, защита PC выключена (CPD=0, CP=1) вычесть 80h
Разрешение мониторинга приплюсовать 800h
Разрешение ускоренного запуска приплюсовать 400h
Разрешение мониторинга и ускоренного запуска приплюсовать C00h
Разрешение сброса BOR (BOREN1=BOREN0=1) приплюсовать 300h
Вариант сброса BOR (BOREN1=1, BOREN0=0) приплюсовать 200h
Вариант сброса BOR (BOREN1=0, BOREN0=1) приплюсовать 100h

Символьная форма конфигурирования


Она такова: __CONFIG <символы, не являющиеся числами>
(непосредственно перед директивой CONFIG нужно “настукать” 2 подчерка подряд, то есть, без пробела) .

Применение символьной формы конфигурирования предполагает (в обязательном порядке)


подключение INC-файла. А именно:

#include <название INC-файла задействованного типа ПИКа>

Примечание 1: числовая форма конфигурирования не требует задействования INC-файла.


Естественно, что INC-файл может быть подключен в иных целях, но в приложении к числовой форме
конфигурирования, это “по-барабану”, так как она к нему “невосприимчива”.
Примечание 2: INC-файлы различных типов ПИКов (тех, которые поддерживает та версия MPLAB, с которой Вы
работаете) “свалены”:
 для версий MPLAB 8.xx à в папку MPASM Suite (путь: диск С à папка Program Files à папка Microchip à
папка MPASM Suite),
 для версии MPLAB 5.70.40 à в папку MPLAB (путь: диск С à папка Program Files à папка MPLAB).

41
Если такого подключения не будет, то после осуществления ассемблирования, MPLAB
выдаст сообщения об ошибках (типа [Error113] ), количество которых равно количеству
“неопознанных конфигосимволов”.
“Опознание” производится путём сравнения “конфигосимволов, прописанных в
шапке” программы, и “конфигосимволов, прописанных” в подключенном INC-
файле, причём, второе “задаёт правила игры” для первого.

То есть, синтаксис “конфигосимволов, прописанных в шапке” программы,


должен строго соответствовать синтаксису “конфигосимволов, прописанных” в
подключенном INC-файле.

Так как всё познаётся в сравнении, то произведу простенькое сравнение.


Например, под такую конфигурацию:
PIC16F84/84A
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 0 1 3FF5h
__CONFIG 3FF5h ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.

В приложении к числовой форме конфигурирования, это выглядит так:


;***************************************************************************************************
; Простейшая программа, позволяющая увидеть (в симуляторе) результат конфигурирования,
; произведённого в числовой форме.
;***************************************************************************************************
LIST p=16f84A ; Используется PIC16F84A.
__CONFIG 3FF5h ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.
org 0 ; Выполнение программы начинается c 0-го PC-адреса.
;***********************************************************************************************
goto $ ; "Мертвяк".
;**************************************************************************************************
end ; Конец программы.

То же самое, но в приложении к символьной форме конфигурирования, выглядит


так:
;***************************************************************************************************
; Простейшая программа, позволяющая увидеть (в симуляторе) результат конфигурирования,
; произведённого в символьной форме.
;***************************************************************************************************
LIST p=16f84A ; Используется PIC16F84A.
#include <p16f84a.inc>; Подключение INC-файла PIC16F84A.
__CONFIG _XT_OSC&_PWRTE_ON ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.
org 0 ; Выполнение программы начинается c 0-го PC-адреса.
;***********************************************************************************************
goto $ ; "Мертвяк".
;**************************************************************************************************
end ; Конец программы.

Можете проверить в симуляторе.


Собственно говоря, в этих наипримитивнейших случаях, интерес представляет только
результат конфигурирования.
Для того чтобы его увидеть (после осуществления ассемблирования), нужно, в версиях MPLAB
8.xx (“привяжусь” к ним. Я работаю в 8.10), щёлкнуть по кнопке главного меню с названием
Configure, а затем, по строке Configuration Bits…
В обоих случаях, результат одинаков и показан на этой картинке:

42
 On означает “включено”.
 Off означает “выключено”.
Как видите, приложении к числовой форме конфигурирования, директива
#include <p16f84a.inc>
“по-барабану”, а в приложении к символьной форме конфигурирования, она совсем
не “по-барабану”.
Для того чтобы убедиться в этом, заблокируйте #include <p16f84a.inc>, и после
ассемблирования, Вы увидите это (2 ошибки и отказ в создании HEX-файла):

Теперь разбираемся с этим:


__CONFIG _XT_OSC&_PWRTE_ON ; Защита выключена, PWRT включен, WDT
; включен, XT - генератор.

То, что выделено тёмно-красным цветом, есть “текстоворедакторное” оформление


символьной формы конфигурирования.
В данном случае, имеются 2 “позиции”:
 _XT_OSC, что символизирует выбор XT-генератора,
 _PWRTE_ON, что символизирует разрешение работы таймера PWRT,
но в других случаях, “позиций” может быть и больше.
Обратите внимание на то, что “позиции” обязательно должны быть разделены
символом &.
В цифровой технике (и т.д.), этим символом обозначается логическая операция “И”.
В данном случае, я “прислонил позиции вплотную друг к другу” (минимальная длина надписи),
но можно использовать и пробелы (для наглядности, закрасил пробелы красным цветом).
Например, так: _XT_OSC..&_PWRTE_ON
Или так: _XT_OSC..&.._PWRTE_ON
"Позиции” можно “тасовать как колоду карт”, то есть, порядок следования не имеет
значения.
Вопрос: “Откуда берутся позиции”?
Ответ: из подключенного INC-файла. В данном случае, из INC-файла PIC16F84A.
Для наглядности, привожу тот “кусок” этого INC-файла, который относится к
конфигурированию (мои пояснения выделены цветом хаки):
;===================================================================
; Configuration Bits (для PIC16F84/84A)
;===================================================================
_CP_ON EQU H'000F' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_LP_OSC EQU H'3FFC' ; Работает LP-генератор.
_XT_OSC EQU H'3FFD' ; Работает XT-генератор.
_HS_OSC EQU H'3FFE' ; Работает HS-генератор.
_RC_OSC EQU H'3FFF' ; Работает RC-генератор.
;====================================================================

Синтаксис “шапкоконфигурирования” должен быть таким же.


Ошибки “караются” (MPLAB обманывать бесполезно).

43
Теперь об оптимизации символьной формы конфигурирования (в приложении к
рассматриваемому примеру).
Если подходить к этому формально, то возникает такая “страхолЮдина”:
__CONFIG _XT_OSC&_WDT_ON&_PWRTE_ON&_CP_OFF ; Защита выключена, PWRT включен, WDT
; включен, XT - генератор.
Это не ошибка (работает “на ура”), а неоптимальность, которая неоправданно удлиняет
надпись.
Сравните с этим (применено выше):

__CONFIG _XT_OSC&_PWRTE_ON ; Защита выключена, PWRT включен, WDT включен,


; XT - генератор.
Результат один и тот же, но, на мой взгляд, второе симпатичнее первого (разница
“бросается в глаза”).

Примечание: кстати, такого рода избыточностью “страдает” пример, приведённый на стр. 27-4 “Справочника по
среднему семейству…”. 5 “позиций” можно сократить до 3-х, и ничего за это не будет.

Вопрос: “В чём собака порылась”?


Ответ: она “порылась в технологии “прошивки”.
А именно, по-первости, во все “конфигобиты” (естественно, за исключением “пустышных”),
записываются единицы, и только после этого “шьётся конфига”.
Таким образом, значение имеют только смены 1 на 0.
Менять 1 на 1 бессмысленно.
Вывод: по здравому разумению, целесообразно принимать во внимание только ноли, а
единицы проигнорировать, так как они “железобетонно” будут выставлены по-умолчанию.
Бинарное отображение рассматриваемого “конфиговарианта” выглядит так
(всё внимание à на ноли):

CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение


1 1 1 1 1 1 1 1 1 1 0 1 0 1 3FF5h

Значит, нужно только выбрать XT-генератор и включить PWRT,


а остальное à по-умолчанию.
Вот и вся “премудрость”. Я бы не сказал, что она является могучей.
Ну а если уж быть до конца “въедливым”, то эту “премудрость” можно/нужно
откоментировать так:
__CONFIG _XT_OSC&_PWRTE_ON ; PWRT включен, XT - генератор.
; По-умолчанию: защита выключена, WDT включен.

Вопрос: “Как думалка MPLABa вычисляет вожделеемую конфигурацию”?


Ответ (в приложении к “вышележащему” примеру. Должен получиться результат 3FF5h): в приложении к
_XT_OSC&_PWRTE_ON, INC-файл (под PIC16F84A. См. выше) “говорит” это:

_PWRTE_ON EQU H'3FF7' ; PWRT включен.


_XT_OSC EQU H'3FFD' ; Работает XT-генератор.

Возможны 2 варианта.

Вариант №1 (с использованием операций вычитания и сложения)


1.
3FFFh – 3FF7h = 8h.
2.
3FFFh – 3FFDh = 2h.
3.
8h +2h = 0Ah.
4.
3FFFh – 0Ah = 3FF5h
Вариант №2 (с использованием операции побитного “И”)
В этом случае, можно провести аналогию с ранее мной описанной “нейтрализацией”.
3FF7h à 11111111110111
3FFDh à 11111111111101
Результат (побитное “И”) à 11111111110101 à 3FF5h

С учётом сказанного, приведённую выше “конфиготаблицу” можно “разукрасить” так:

44
;===================================================================
; Configuration Bits (для PIC16F84/84A)
;===================================================================
_CP_ON EQU H'000F' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_LP_OSC EQU H'3FFC' ; Работает LP-генератор.
_XT_OSC EQU H'3FFD' ; Работает XT-генератор.
_HS_OSC EQU H'3FFE' ; Работает HS-генератор.
_RC_OSC EQU H'3FFF' ; Работает RC-генератор.
;====================================================================

Конструктор, имеющий навыки оптимизации символьной формы конфигурирования,


смело может “выбросить на помойку” (условно) то, что выделено серым цветом и
пользоваться только тем, что выделено красным цветом.
Критерий “выбрасывания на помойку” прост à число 3FFFh (11111111111111).

Общее замечание: в приложении к работе с двумя “конфигопозициями”, имеются 2 варианта “конфигоуправления”.


“Прямое” (условно) управление:
 если выставлена 1, то “то-сё” включено/разрешено,
 если выставлен 0, то “то-сё” выключено/запрещено.
Например, бит WDT или BODEN.
“Инверсное” (условно) управление:
 если выставлена 1, то “то-сё” выключено/запрещено,
 если выставлен 0, то “то-сё” включено/разрешено.
Например, бит -PWRTE или CPx/CPD.
Соответственно, имеется специфика, которую нужно обязательно учитывать.

А теперь ближе в делу.

1А. Варианты конфигурирования PIC16F84/84A


13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP CP CP CP CP CP CP CP CP CP -PWRTE WDTE FOSC1 FOSC0

Защита выключена, WDT выключен


CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 0 0 3FF0h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF
; LP – генератор, PWRT включен, WDT выключен.
; По-умолчанию: защита выключена.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 0 1 3FF1h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF
; XT – генератор, PWRT включен, WDT выключен.
; По-умолчанию: защита выключена.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 1 0 3FF2h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF
; HS – генератор, PWRT включен, WDT выключен.
; По-умолчанию: защита выключена.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 0 1 1 3FF3h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _PWRTE_ON&_WDT_OFF
; PWRT включен, WDT выключен.
; По-умолчанию: защита выключена, RC-генератор.
Защита выключена, WDT включен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 0 0 3FF4h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _LP_OSC&_PWRTE_ON
; LP – генератор, PWRT включен.

45
; По-умолчанию: защита выключена, WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 0 1 3FF5h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _XT_OSC&_PWRTE_ON
; XT – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 1 0 3FF6h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _HS_OSC&_PWRTE_ON
; HS – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 1 0 1 1 1 3FF7h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _PWRTE_ON
; PWRT включен.
; По-умолчанию: защита выключена, WDT включен, RC-генератор.
Защита включена, WDT выключен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_LP_OSC&_PWRTE_ON&_WDT_OFF
; Защита включена, LP – генератор,
; PWRT включен, WDT выключен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_XT_OSC&_PWRTE_ON&_WDT_OFF
; Защита включена, XT – генератор,
; PWRT включен, WDT выключен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 1 0 2h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_HS_OSC&_PWRTE_ON&_WDT_OFF
; Защита включена, HS – генератор,
; PWRT включен, WDT выключен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 0 1 1 3h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_PWRTE_ON&_WDT_OFF
; Защита включена, PWRT включен, WDT выключен.
; По-умолчанию: RC – генератор.
Защита включена, WDT включен
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 0 0 4h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_LP_OSC&_PWRTE_ON
; Защита включена, LP – генератор, PWRT включен.
; По-умолчанию: WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 0 1 5h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_XT_OSC&_PWRTE_ON
; Защита включена, XT – генератор, PWRT включен.
; По-умолчанию: WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 1 0 6h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_HS_OSC&_PWRTE_ON
; Защита включена, HS – генератор, PWRT включен.
; По-умолчанию: WDT включен.
CP CP CP CP CP CP CP CP CP CP -RWRTE WDTE FOSC1 FOSC0 Значение
0 0 0 0 0 0 0 0 0 0 0 1 1 1 7h
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
;;; #include <p16f84.inc> ; Подключение INC-файла PIC16F84.
__CONFIG _CP_ON&_PWRTE_ON

46
; Защита включена, , PWRT включен.
; По-умолчанию: WDT включен, RC – генератор.

2А. Варианты конфигурирования PIC12F629/675, PIC16F630/676


13 12 11 10 9 8 7 6 5 4 3 2 1 0
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0
Примечание: в “пустышные” биты №11…9 ничего записать нельзя. Они всегда читаются как “1”. Пусть в них будет
якобы “записываться” единица (см. выделенное тёмно-серым цветом).

Фрагмент INC-файла для PIC12F629/675, PIC16F630/676:


;===========================================================================================
; Configuration Bits (для PIC12F629/675, PIC16F630/676)
;===========================================================================================
_CPD_ON EQU H'3EFF' ; EEPROM-защита включена.
_CPD_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_CP_ON EQU H'3F7F' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_BODEN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BODEN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
_MCLRE_ON EQU H'3FFF' ; Работа вывода ..3 в качестве MCLR.
_MCLRE_OFF EQU H'3FDF' ; Работа вывода ..3 в качестве канала ввода.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FEF' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FF7' ; WDT выключен.
_LP_OSC EQU H'3FF8' ; Работает LP-генератор.
_XT_OSC EQU H'3FF9' ; Работает XT-генератор.
_HS_OSC EQU H'3FFA' ; Работает HS-генератор.
_EC_OSC EQU H'3FFB' ; Работает EC-генератор.
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ; INTOSC-генератор (вариант №1).
_INTRC_OSC_CLKOUT EQU H'3FFD' ; INTOSC-генератор (вариант №2).
_EXTRC_OSC_NOCLKOUT EQU H'3FFE' ; RC-генератор (вариант №1).
_EXTRC_OSC_CLKOUT EQU H'3FFF' ; RC-генератор (вариант №2).
;===========================================================================================

Как видите, в INC-файле PIC12F629/675, PIC16F630/676, нет позиций, с помощью


которых можно выбрать один из двух порогов сброса BOR (это о “конфигобитах” BG1, BG0).
То есть, выбирается верхний предел калибровки (BG1 = BG0 = 1, Uпороговое = 2,1 в).
В принципе, в INC-файл можно добавить пару строк, но это уже “нестандартная
самодеятельность”.
Если нужно выбрать нижний предел BOR-калибровки (довольно-таки несущественная разница
в 0,1 в), то проще перейти на числовую форму конфигурирования.

Защита выключена, WDT выключен, сброс BOR запрещён, вывод GP3


работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 0 0 0 3FA0h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 0 0 1 3FA1h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 0 1 0 3FA2h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 0 1 1 3FA3h
47
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; EC – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 1 0 0 3FA4h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, WDT выключен, сброс BOR
; запрещён. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 1 0 1 3FA5h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, WDT
; выключен, сброс BOR запрещён. По-умолчанию: защита
; выключена, вывод GP3 работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 1 1 0 3FA6h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, WDT
; выключен, сброс BOR запрещён. По-умолчанию: защита
; выключена, вывод GP3 работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 0 1 1 1 3FA7h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён.
; По-умолчанию: защита выключена, RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4), вывод GP3 работает как MCLR.
Защита выключена, WDT включен, сброс BOR запрещён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 0 0 0 3FA8h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF
; LP – генератор, PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 0 0 1 3FA9h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF
; XT – генератор, PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 0 1 0 3FAAh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF
; HS – генератор, PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 0 1 1 3FABh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_BODEN_OFF
; EC – генератор, PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 1 0 0 3FACh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.

48
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 1 0 1 3FADh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_BODEN_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён. По-умолчанию: защита выключена, WDT включен,
; вывод GP3 работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 1 1 0 3FAEh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, сброс BOR
; запрещён. По-умолчанию: защита выключена, WDT включен,
; вывод GP3 работает как MCLR.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 1 0 1 1 1 1 3FAFh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_BODEN_OFF
; PWRT включен, сброс BOR запрещён.
; По-умолчанию: защита выключена, RC – генератор (внешняя
; RC-цепочка подключается к GP5. На GP4 присутствует сигнал с
; Fosc/4), WDT включен, вывод GP3 работает как MCLR.
Защита выключена, WDT выключен, сброс BOR запрещён, вывод GP3
работает как канал ввода (MCLR внутренне подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 0 0 0 3F80h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 0 0 1 3F81h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 0 1 0 3F82h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 0 1 1 3F83h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 1 0 0 3F84h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, WDT выключен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 1 0 1 3F85h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.

49
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, WDT
; выключен, сброс BOR запрещён, вывод GP3 работает как канал
; ввода. По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 1 1 0 3F86h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, WDT
; выключен, сброс BOR запрещён, вывод GP3 работает как канал
; ввода. По-умолчанию: защита выключена.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 0 1 1 1 3F87h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_MCLRE_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, RC – генератор
;(внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод GP3 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 0 0 0 3F88h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 0 0 1 3F89h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 0 1 0 3F8Ah
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 0 1 1 3F8Bh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 1 0 0 3F8Ch
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, сброс BOR запрещён, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 1 0 1 3F8Dh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 1 1 0 3F8Eh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.

50
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, сброс BOR
; запрещён, вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 0 0 0 1 1 1 1 3F8Fh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_BODEN_OFF&_MCLRE_OFF
; PWRT включен, сброс BOR запрещён, вывод GP3 работает как
; канал ввода.
; По-умолчанию: защита выключена, WDT включен RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4).
Защита выключена, WDT выключен, сброс BOR разрешён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 0 0 0 3FE0h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF
; LP – генератор, PWRT включен, WDT выключен,
; По-умолчанию: защита выключена, вывод GP3 работает как
; MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 0 0 1 3FE1h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF
; XT – генератор, PWRT включен, WDT выключен,
; По-умолчанию: защита выключена, вывод GP3 работает как
; MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 0 1 0 3FE2h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF
; HS – генератор, PWRT включен, WDT выключен,
; По-умолчанию: защита выключена, вывод GP3 работает как
; MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 0 1 1 3FE3h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF
; EC – генератор, PWRT включен, WDT выключен,
; По-умолчанию: защита выключена, вывод GP3 работает как
; MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 1 0 0 3FE4h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, WDT выключен,
; По-умолчанию: защита выключена, вывод GP3 работает как
; MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 1 0 1 3FE5h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, WDT
; выключен. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 1 1 0 3FE6h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, WDT
; выключен. По-умолчанию: защита выключена, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 0 1 1 1 3FE7h

51
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_WDT_OFF
; PWRT включен, WDT выключен.
; По-умолчанию: защита выключена, RC – генератор (внешняя
; RC-цепочка подключается к GP5. На GP4 присутствует сигнал с
; Fosc/4), вывод GP3 работает как MCLR, сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, вывод GP3
работает как MCLR
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 0 0 0 3FE8h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON
; LP – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 0 0 1 3FE9h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON
; XT – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 0 1 0 3FEAh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON
; HS – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 0 1 1 3FEBh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON
; EC – генератор, PWRT включен.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 1 0 0 3FECh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен.
; По-умолчанию: защита выключена, WDT включен, вывод GP3
; работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 1 0 1 3FEDh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен,
; По-умолчанию: защита выключена, WDT включен,
; вывод GP3 работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 1 1 0 3FEEh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен,
; По-умолчанию: защита выключена, WDT включен,
; вывод GP3 работает как MCLR, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 1 0 1 1 1 1 3FEFh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON
; PWRT включен.
; По-умолчанию: защита выключена, RC – генератор (внешняя
; RC-цепочка подключается к GP5. На GP4 присутствует сигнал с
; Fosc/4), WDT включен, вывод GP3 работает как MCLR,
; сброс BOR разрешён.

52
Защита выключена, WDT выключен, сброс BOR разрешён, вывод GP3
работает как канал ввода (MCLR внутренне подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 0 0 0 3FC0h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, WDT выключен,
; вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 0 0 1 3FC1h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, WDT выключен,
; вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 0 1 0 3FC2h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, WDT выключен,
; вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 0 1 1 3FC3h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, WDT выключен,
; вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 1 0 0 3FC4h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, WDT выключен,
; вывод GP3 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 1 0 1 3FC5h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен, WDT
; выключен, вывод GP3 работает как канал
; ввода. По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 1 1 0 3FC6h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен, WDT
; выключен, вывод GP3 работает как канал
; ввода. По-умолчанию: защита выключена, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 0 1 1 1 3FC7h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_WDT_OFF&_MCLRE_OFF
; PWRT включен, WDT выключен, вывод GP3
; работает как канал ввода.
; По-умолчанию: защита выключена, RC – генератор
;(внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4), сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, вывод GP3 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 0 0 0 3FC8h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _LP_OSC&_PWRTE_ON&_MCLRE_OFF
; LP – генератор, PWRT включен, вывод GP3

53
; работает как канал ввода. По-умолчанию: защита выключена,
; WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 0 0 1 3FC9h
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _XT_OSC&_PWRTE_ON&_MCLRE_OFF
; XT – генератор, PWRT включен, вывод GP3
; работает как канал ввода. По-умолчанию: защита выключена,
; WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 0 1 0 3FCAh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _HS_OSC&_PWRTE_ON&_MCLRE_OFF
; HS – генератор, PWRT включен, вывод GP3
; работает как канал ввода. По-умолчанию: защита выключена,
; WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 0 1 1 3FCBh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EC_OSC&_PWRTE_ON&_MCLRE_OFF
; EC – генератор, PWRT включен, вывод GP3
; работает как канал ввода. По-умолчанию: защита выключена,
; WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 1 0 0 3FCCh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_MCLRE_OFF
; INTOSC – генератор (GP5 и GP4 работают как каналы
; ввода/вывода), PWRT включен, вывод GP3
; работает как канал ввода. По-умолчанию: защита выключена,
; WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 1 0 1 3FCDh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_MCLRE_OFF
; INTOSC – генератор (GP5 работает как канал ввода/вывода. На
; GP4 присутствует сигнал с Fosc/4), PWRT включен,
; вывод GP3 работает как канал ввода. По-умолчанию: защита
; выключена, WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 1 1 0 3FCEh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_MCLRE_OFF
; RC – генератор (внешняя RC-цепочка подключается к GP5. GP4
; работает как канал ввода/вывода), PWRT включен,
; вывод GP3 работает как канал ввода. По-умолчанию: защита
; выключена, WDT включен, сброс BOR разрешён.
BG1 BG0 х х х CPD CP BODEN MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 1 1 1 1 1 1 0 0 1 1 1 1 3FCFh
#include <p12f629.inc> ; Подключение INC-файла PIC12F629.
;;; #include <p12f675.inc> ; Подключение INC-файла PIC12F675.
__CONFIG _PWRTE_ON&_MCLRE_OFF
; PWRT включен, вывод GP3 работает как
; канал ввода.
; По-умолчанию: защита выключена, WDT включен RC – генератор
; (внешняя RC-цепочка подключается к GP5. На GP4 присутствует
; сигнал с Fosc/4), сброс BOR разрешён.
Защита PC и EEPROM включена (CPD = CP = 0)
Нужно добавить _CP_ON&_CPD_ON& (если слева) или &_CP_ON&_CPD_ON (если справа).
Защита PC включена, защита EEPROM выключена (CP = 0, CPD = 1)
Нужно добавить _CP_ON& (если слева) или &_CP_ON (если справа).
Защита EEPROM включена, защита PC выключена (CPD = 0, CP = 1)
Нужно добавить _CPD_ON& (если слева) или &_CPD_ON (если справа).

3А. Варианты конфигурирования PIC16F628/628A


Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0

54
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0
Для PIC16F628A
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0
Примечание: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB4/PGM работает как канал ввода/вывода).
В “пустышные” биты №9 (для PIC16F628) №12…9 (для PIC16F628A) ничего записать нельзя. Они всегда читаются
как “1”. Пусть в них будет якобы “записываться” единица (см. выделенное тёмно-серым цветом).

Фрагмент INC-файла для PIC16F628:


;====================================================================================================
; Configuration Bits (для PIC16F628). В приложении к версиям MPLAB 8.xx
;====================================================================================================
_BODEN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BODEN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
_CP_ALL EQU H'03FF' ; Защищена вся PC.
_CP_75 EQU H'17FF' ; PC-защита включена для PC-ячеек с адресами 400h…7FFh
_CP_50 EQU H'2BFF' ; PC-защита включена для PC-ячеек с адресами 200h…7FFh
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_DATA_CP_ON EQU H'3EFF' ; EEPROM-защита включена.
_DATA_CP_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_LVP_ON EQU H'3FFF' ; LVP включен.
_LVP_OFF EQU H'3F7F' ; LVP выключен.
_MCLRE_ON EQU H'3FFF' ; Работа вывода RA5/MCLR в качестве MCLR.
_MCLRE_OFF EQU H'3FDF' ; Работа вывода RA5/MCLR в качестве канала ввода.
_ER_OSC_CLKOUT EQU H'3FFF' ; ER-генератор (один из вариантов).
_ER_OSC_NOCLKOUT EQU H'3FFE' ; ER-генератор (один из вариантов).
_INTRC_OSC_CLKOUT EQU H'3FFD' ; INTRC-генератор (один из вариантов).
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ; INTRC-генератор (один из вариантов).
_EXTCLK_OSC EQU H'3FEF' ; Работает EC-генератор.
_LP_OSC EQU H'3FEC' ; Работает LP-генератор.
_XT_OSC EQU H'3FED' ; Работает XT-генератор.
_HS_OSC EQU H'3FEE' ; Работает HS-генератор.
;====================================================================================================

Фрагмент INC-файла для PIC16F628A:


;====================================================================================================
; Configuration Bits (для PIC16F628A). В приложении к версиям MPLAB 8.xx
;====================================================================================================
_BODEN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BODEN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
;----------------------------------------------------------------------------------------------------
; Пояснение: “нижележащие” 2 позиции это то же самое (адресно), что и “вышележащие” 2 позиции, но с
; другими символьными названиями.
; В версии MPLAB 8.xx, можно использовать BODEN или BOREN (на выбор конструктора).
; В версии MPLAB 5.70.40, нужно использовать только BODEN, либо “прописать”, в соответствующем
; INC-файле, две “нижележащие” позиции (в этом случае, можно использовать BODEN или BOREN).
;----------------------------------------------------------------------------------------------------
_BOREN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BOREN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
;----------------------------------------------------------------------------------------------------
_CP_ON EQU H'1FFF' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_DATA_CP_ON EQU H'3EFF' ; EEPROM-защита включена.
_DATA_CP_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_LVP_ON EQU H'3FFF' ; LVP включен.
_LVP_OFF EQU H'3F7F' ; LVP выключен.
_MCLRE_ON EQU H'3FFF' ; Работа вывода RA5/MCLR в качестве MCLR.
_MCLRE_OFF EQU H'3FDF' ; Работа вывода RA5/MCLR в качестве канала ввода.
_RC_OSC_CLKOUT EQU H'3FFF' ; ER-генератор (один из вариантов).
_RC_OSC_NOCLKOUT EQU H'3FFE' ; ER-генератор (один из вариантов).
;----------------------------------------------------------------------------------------------------
; Пояснение: “нижележащие” 2 позиции это то же самое (адресно), что и “вышележащие” 2 позиции, но с
; другими символьными названиями.
; В версии MPLAB 8.xx, можно использовать RC или ER (на выбор конструктора).
; В версии MPLAB 5.70.40, нужно использовать только RC, либо “прописать”, в соответствующем
; INC-файле, две “нижележащие” позиции (в этом случае, можно использовать RC или ER).
;----------------------------------------------------------------------------------------------------
_ER_OSC_CLKOUT EQU H'3FFF' ; ER-генератор (один из вариантов).

55
_ER_OSC_NOCLKOUT EQU H'3FFE' ; ER-генератор (один из вариантов).
;----------------------------------------------------------------------------------------------------
_INTOSC_OSC_CLKOUT EQU H'3FFD' ; INTRC-генератор (один из вариантов).
_INTOSC_OSC_NOCLKOUT EQU H'3FFC' ; INTRC-генератор (один из вариантов).
;----------------------------------------------------------------------------------------------------
; Пояснение: “нижележащие” 2 позиции это то же самое (адресно), что и “вышележащие” 2 позиции, но с
; другими символьными названиями.
; В версии MPLAB 8.xx, можно использовать INTOSC или INTRC (на выбор конструктора).
; В версии MPLAB 5.70.40, нужно использовать только INTOSC, либо “прописать”, в соответствующем
; INC-файле, две “нижележащие” позиции (в этом случае, можно использовать INTOSC или INTRC).
;----------------------------------------------------------------------------------------------------
_INTRC_OSC_CLKOUT EQU H'3FFD' ; INTRC-генератор (один из вариантов).
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ; INTRC-генератор (один из вариантов).
;----------------------------------------------------------------------------------------------------
_EXTCLK_OSC EQU H'3FEF' ; Работает EC-генератор.
_HS_OSC EQU H'3FEE' ; Работает HS-генератор.
_XT_OSC EQU H'3FED' ; Работает XT-генератор.
_LP_OSC EQU H'3FEC' ; Работает LP-генератор.
;====================================================================================================

Защита выключена, WDT выключен, сброс BOR запрещён, вывод RA5


работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 0 0 3F20h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 0 1 3F21h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 1 0 3F22h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 0 1 1 3F23h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; EC – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
56
1 1 1 1 1 1 0 0 1 1 0 0 0 0 3F30h

#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.


;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 1 3F31h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 0 3F32h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 1 3F33h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 0 0 3F24h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; LP – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
57
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 0 1 3F25h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; XT – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 1 0 3F26h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; HS – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 0 0 1 1 1 3F27h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; EC – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 0 3F34h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 1 3F35h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 0 3F36h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------

58
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, сброс BOR запрещён,
; LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 1 3F37h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF
; PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4), WDT включен.
Защита выключена, WDT выключен, сброс BOR запрещён, вывод RA5 работает как канал ввода (MCLR
внутренне подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 0 0 3F00h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 0 1 3F01h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 1 0 3F02h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 0 1 1 3F03h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A

59
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 0 0 3F10h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 0 1 3F11h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; сброс BOR запрещён, LVP выключен, вывод RA5 работает как канал
; ввода. По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 1 0 3F12h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x хCPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 0 1 1 3F13h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, ER – генератор (внешний
; R подключается к RA7. На RA6 присутствует сигнал с Fosc/4).
Защита выключена, WDT включен, сброс BOR запрещён, вывод RA5 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 0 0 3F04h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A

60
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 0 1 3F05h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 1 0 3F06h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 0 0 1 1 1 3F07h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 0 0 3F14h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, сброс BOR запрещён, LVP выключен, вывод RA5
; работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 0 1 3F15h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 1 0 3F16h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT

61
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, сброс BOR запрещён, LVP
; выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 0 1 0 1 1 1 3F17h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF&_MCLRE_OFF
; PWRT включен, сброс BOR запрещён, LVP выключен, вывод RA5
; работает как канал ввода.
; По-умолчанию: защита выключена, ER – генератор (внешний
; R подключается к RA7. На RA6 присутствует сигнал с Fosc/4),
; WDT включен.
Защита выключена, WDT выключен, сброс BOR разрешён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 0 0 3F60h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; LP – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 0 1 3F61h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; XT – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 1 0 3F62h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; HS – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 0 1 1 3F63h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; EC – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A

62
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 0 3F70h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 1 3F71h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 0 3F72h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 1 3F73h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_WDT_OFF&_LVP_OFF
; PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4), сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, вывод RA5
работает как MCLR
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 0 0 3F64h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF
; LP – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение

63
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 0 1 3F65h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF
; XT – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 1 0 3F66h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF
; HS – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 0 0 1 1 1 3F67h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_LVP_OFF
; EC – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 0 3F74h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 1 3F75h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_LVP_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 0 3F76h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_LVP_OFF
;-----------------------------------------------------------------------------------------

64
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; WDT включен, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 1 3F77h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_LVP_OFF
; PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, вывод RA5 работает как MCLR,
; ER – генератор (внешний R подключается к RA7. На RA6
; присутствует сигнал с Fosc/4), WDT включен, сброс BOR разрешён.
Защита выключена, WDT выключен, сброс BOR разрешён, вывод RA5 работает как канал ввода (MCLR
внутренне подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 0 0 3F40h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, WDT выключен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 0 1 3F41h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, WDT выключен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 1 0 3F42h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, WDT выключен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 0 1 1 3F43h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, WDT выключен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение

65
1 1 1 1 1 1 0 1 0 1 0 0 0 0 3F50h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 0 1 3F51h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 0 1 0 3F52h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, WDT выключен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, сброс BOR разрешён.
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х
CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 11 0 1 0 1 0 0 1 1 3F53h
#include<p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include<p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG_PWRTE_ON&_WDT_OFF&_LVP_OFF&_MCLRE_OFF
; PWRT включен, WDT выключен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, ER – генератор (внешний R
; подключается к RA7. На RA6 присутствует сигнал с Fosc/4),
; сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, вывод RA5 работает как канал ввода (MCLR внутренне
подключен к +Uпит.)
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 0 0 3F44h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
; LP – генератор, PWRT включен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
66
1 1 1 1 1 1 0 1 0 0 0 1 0 1 3F45h

#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.


;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
; XT – генератор, PWRT включен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 1 0 3F46h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
; HS – генератор, PWRT включен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 0 0 1 1 1 3F47h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _EXTCLK_OSC&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
; EC – генератор, PWRT включен, LVP выключен, вывод RA5 работает
; как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 0 0 3F54h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_NOCLKOUT&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_NOCLKOUT можно заменить на _INTRC_OSC_NOCLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA6 и RA7 работают как каналы ввода/вывода),
; PWRT включен, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 0 1 3F55h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _INTOSC_OSC_CLKOUT&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _INTOSC_OSC_CLKOUT можно заменить на _INTRC_OSC_CLKOUT
;-----------------------------------------------------------------------------------------
; INTRC – генератор (RA7 работает как канал ввода/вывода.На RA6
; присутствует сигнал с Fosc/4), PWRT включен,
; LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 0 3F56h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _ER_OSC_NOCLKOUT&_PWRTE_ON&_LVP_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: для PIC16F628A, _ER_OSC_NOCLKOUT можно заменить на _RC_OSC_NOCLKOUT

67
;-----------------------------------------------------------------------------------------
; ER – генератор (внешний R подключается к RA7. RA6 работает как
; канал ввода/вывода), PWRT включен, LVP выключен,
; вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен, сброс BOR разрешён
Для PIC16F628
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 CP1 CP0 х CPD LVP BODEN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
Для PIC16F628A
CP x x x х CPD LVP BOREN MCLRE FOSC2 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 0 1 0 1 1 1 3F57h
#include <p16f628A.inc>; Подключение INC-файла PIC16F628A.
;;; #include <p16f628.inc> ; Подключение INC-файла PIC16F628.
__CONFIG _PWRTE_ON&_LVP_OFF&_MCLRE_OFF
; PWRT включен, LVP выключен, вывод RA5 работает как канал ввода.
; По-умолчанию: защита выключена, ER – генератор (внешний R
; подключается к RA7. На RA6 присутствует сигнал с Fosc/4),
; WDT включен, сброс BOR разрешён.

Для PIC16F628

Защита PC включена (CP1 = CP0 = 0)


Нужно добавить _CP_ALL& (если слева) или &_CP_ALL (если справа).
Защита EEPROM включена (CPD = 0)
Нужно добавить _DATA_CP_ON& (если слева) или &_DATA_CP_ON (если справа).
Защита PC и EEPROM включена (CP1 = CP0 = CPD = 0)
Нужно добавить _CP_ALL&_DATA_CP_ON& (если слева) или &_CP_ALL&_DATA_CP_ON (если справа).

Для случаев защиты части памяти программ


Защита PC включена (CP1 = 0, CP0 = 1)
Нужно добавить _CP_75& (если слева) или &_CP_75 (если справа).
Примечание: PC-защита включена для PC-ячеек с адресами 400h…7FFh.

Защита PC включена (CP1 = 1, CP0 = 0)


Нужно добавить _CP_50& (если слева) или &_CP_50 (если справа).
Примечание: PC-защита включена для PC-ячеек с адресами 200h…7FFh.

Для PIC16F628A

Защита PC включена (CP = 0)


Нужно добавить _CP_ON& (если слева) или &_CP_ON (если справа).
Защита EEPROM включена (CPD = 0)
Нужно добавить _DATA_CP_ON& (если слева) или &_DATA_CP_ON (если справа).
Защита PC и EEPROM включена (CP = CPD = 0)
Нужно добавить _CP_ON&_DATA_CP_ON& (если слева) или &_CP_ON&_DATA_CP_ON (если справа).

4A. Варианты конфигурирования PIC16F873/874/876/877


13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0
Примечание: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB3/PGM работает как канал ввода/вывода).
В “пустышный” бит №10 ничего записать нельзя. Он всегда читается как “1”. Пусть в него будет якобы
“записываться” единица (см. выделенное тёмно-серым цветом).

Фрагмент INC-файла для PIC16F873/874/876/877:


;====================================================================================================
; Configuration Bits (для PIC16F873/874/876/877).

68
;====================================================================================================
_CP_ALL EQU H'0FCF' ; Защищена вся PC -> 00111111001111
_CP_HALF EQU H'1FDF' ; PC-защита включена для ячеек с адресами 0800h…0FFFh
; (если PIC16F873/874) или для ячеек с адресами
; 1000h…1FFFh (если PIC16F876/877) -> 01111111011111
_CP_UPPER_256 EQU H'2FEF' ; PC-защита включена для ячеек с адресами 0F00h…0FFFh
; (если PIC16F873/874) или для ячеек с адресами
; 1F00h…1FFFh (если PIC16F876/877) -> 10111111101111
_CP_OFF EQU H'3FFF' ; PC-защита выключена -> 11111111111111
;----------------------------------------------------------------------------------------------------
_DEBUG_ON EQU H'37FF' ; Внутрисхемная отладка включена.
_DEBUG_OFF EQU H'3FFF' ; Внутрисхемная отладка выключена.
_WRT_ENABLE_ON EQU H'3FFF' ; Flash-запись разрешена.
_WRT_ENABLE_OFF EQU H'3DFF' ; Flash-запись запрещена.
_CPD_ON EQU H'3EFF' ; EEPROM-защита включена.
_CPD_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_LVP_ON EQU H'3FFF' ; LVP включен.
_LVP_OFF EQU H'3F7F' ; LVP выключен.
_BODEN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BODEN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_LP_OSC EQU H'3FFC' ; Работает LP-генератор.
_XT_OSC EQU H'3FFD' ; Работает XT-генератор.
_HS_OSC EQU H'3FFE' ; Работает HS-генератор.
_RC_OSC EQU H'3FFF' ; Работает RC-генератор.
;====================================================================================================

Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись


запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 0 0 3D30h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 0 1 3D31h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 1 0 3D32h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 0 1 1 3D33h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, RC – генератор,
; внутрисхемная отладка выключена.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка выключена
69
13 12 11 10 9 8 7 6 5 4 3 2 1 0

CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 0 0 3D34h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.

;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.


;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; LP – генератор, PWRT включен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена WDT включен, внутрисхемная
; отладка выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 0 1 3D35h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.

;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.


;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; XT – генератор, PWRT включен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 1 0 3D36h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.

;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.


;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; HS – генератор, PWRT включен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 0 1 1 0 1 1 1 3D37h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.

;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.


;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; PWRT включен, сброс BOR запрещён, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; внутрисхемная отладка выключена.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 0 0 3D70h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; LP – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 0 1 3D71h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; XT – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка

70
; выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 1 0 3D72h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; HS – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 0 1 1 3D73h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF
; PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, RC – генератор,
; внутрисхемная отладка выключена, сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 0 0 3D74h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF
; LP – генератор, PWRT включен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 0 1 3D75h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF
; XT – генератор, PWRT включен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 1 0 3D76h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF
; HS – генератор, PWRT включен, LVP выключен,
; Flash-запись запрещена.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 1 1 0 1 0 1 1 1 0 1 1 1 3D77h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF
; PWRT включен, LVP выключен, Flash-запись запрещена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; внутрисхемная отладка выключена, сброс BOR разрешён.
Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0

71
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 0 0 3530h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена, внутрисхемная
; отладка включена.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 0 1 3531h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена, внутрисхемная
; отладка включена.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 1 0 3532h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, WDT выключен, сброс BOR
; запрещён, LVP выключен, Flash-запись запрещена, внутрисхемная
; отладка включена.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 0 1 1 3533h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 0 0 3534h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 0 1 3535h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 1 0 3536h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, сброс BOR запрещён, LVP выключен,
72
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 0 1 1 0 1 1 1 3537h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; PWRT включен, сброс BOR запрещён, LVP выключен, Flash-запись
; запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 0 0 3570h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 0 1 3571h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 1 0 3572h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, WDT выключен, LVP выключен,
; Flash-запись запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 0 1 1 3573h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_WDT_OFF&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; PWRT включен, WDT выключен, LVP выключен, Flash-запись
; запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, сброс BOR
; разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
запрещена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 0 0 3574h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, LVP выключен, Flash-запись
; запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 0 1 3575h

73
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, LVP выключен, Flash-запись
; запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 0 3576h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, LVP выключен, Flash-запись
; запрещена, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG х WRT CPD LVP BODEN CP1 CP0 -PWRTE WDTE FOSC1 FOSC0 Значение
1 1 0 1 0 1 0 1 1 1 0 1 1 1 3577h
#include <p16f873.inc> ; Подключение INC-файла PIC16F873.
;;; #include <p16f874.inc> ; Подключение INC-файла PIC16F874.
;;; #include <p16f876.inc> ; Подключение INC-файла PIC16F876.
;;; #include <p16f877.inc> ; Подключение INC-файла PIC16F877.
__CONFIG _PWRTE_ON&_LVP_OFF&_WRT_ENABLE_OFF&_DEBUG_ON
; PWRT включен, LVP выключен, Flash-запись запрещена,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; сброс BOR разрешён.

Защита PC включена (CP1 = CP0 = 0)


Нужно добавить _CP_ALL& (если слева) или &_CP_ALL (если справа).
Защита EEPROM включена (CPD = 0)
Нужно добавить _CPD_ON& (если слева) или &_CPD_ON (если справа).
Защита PC и EEPROM включена (CP1 = CP0 = CPD = 0)
Нужно добавить _CP_ALL&_CPD_ON& (если слева) или &_CP_ALL&_CPD_ON (если справа).

Для случаев защиты части памяти программ


Защита PC включена (CP1 = 0, CP0 = 1)
Нужно добавить _CP_HALF& (если слева) или &_CP_HALF (если справа).
Примечание: PC-защита включена для ячеек с адресами 0800h…0FFFh (если PIC16F873/874) или для ячеек с
адресами 1000h…1FFFh (если PIC16F876/877).

Защита PC включена (CP1 = 1, CP0 = 0)


Нужно добавить _CP_UPPER_256& (если слева) или &_CP_UPPER_256 (если справа).
Примечание: PC-защита включена для ячеек с адресами 0F00h…0FFFh (если PIC16F873/874) или для ячеек с
адресами 1F00h…1FFFh (если PIC16F876/877).

Разрешение Flash-записи
В “вышележащих” вариантах, Flash-запись запрещена.
Для того чтобы её разрешить, нужно убрать &_WRT_ENABLE_OFF

Комплексные варианты
Допустим, что нужно
 выставить PC и EEPROM защиты,
 разрешить Flash-запись.
Действия:
1. добавить _CP_ALL&_CPD_ON& (если слева) или &_CP_ALL&_CPD_ON (если справа),
2. убрать &_WRT_ENABLE_OFF .

5A. Варианты конфигурирования PIC16F873A/874A/876A/877A

74
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0
Примечание: по причине того, что режим низковольтного программирования используется редко, в “нижележащих”
вариантах конфигурирования, он выключен (LVP = 0. Вывод RB3/PGM работает как канал ввода/вывода).
В “пустышныe” биты №12 и №5, 4 ничего записать нельзя. Они всегда читаются как “1”. Пусть в них будут якобы
“записываться” единицы (см. выделенное тёмно-серым цветом).

Фрагмент INC-файла для PIC16F873A/874A/876A/877A:


;====================================================================================================
; Configuration Bits (для PIC16F873A/874A/876A/877A).
;====================================================================================================
_CP_ALL EQU H'1FFF' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_DEBUG_OFF EQU H'3FFF' ; Внутрисхемная отладка выключена.
_DEBUG_ON EQU H'37FF' ; Внутрисхемная отладка включена.
;----------------------------------------------------------------------------------------------------
_WRT_OFF EQU H'3FFF' ; Flash-запись разрешена по всему “объёму” PC (то
; есть, защита от Flash-записи выключена)
; -> 11111111111111
;----------------------------------------------
; Мотивация “вышележащей” позиции: “Write protection off; all program memory may be written to by
; EECON control”, “гугловский” переводчик перевёл как “Защита от записи выкл (то есть, Flash-запись
; разрешена); все программы памяти может быть записана на EECON контроль” (таков перевод).
;----------------------------------------------
_WRT_256 EQU H'3DFF' ; Flash-запись разрешена для PC-ячеек с адресами
; 0100h…0FFFh (если PIC16F873/874) или для ячеек с
; адресами 0100h…1FFFh (если PIC16F876/877)
; -> 11110111111111
_WRT_1FOURTH EQU H'3BFF' ; Flash-запись разрешена для PC-ячеек с адресами
; 0400h…0FFFh (если PIC16F873/874) или для ячеек с
; адресами 0800h…1FFFh (если PIC16F876/877)
; -> 11101111111111
_WRT_HALF EQU H'39FF' ; Flash-запись разрешена для PC-ячеек с адресами
; 0800h…0FFFh (если PIC16F873/874) или для ячеек с
; адресами 1000h…1FFFh (если PIC16F876/877)
; -> 11100111111111
;----------------------------------------------------------------------------------------------------
_CPD_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_CPD_ON EQU H'3EFF' ; EEPROM-защита включена.
_LVP_ON EQU H'3FFF' ; LVP включен.
_LVP_OFF EQU H'3F7F' ; LVP выключен.
_BODEN_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BODEN_OFF EQU H'3FBF' ; Сброс BOR запрещён.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.
_RC_OSC EQU H'3FFF' ; Работает RC-генератор.
_HS_OSC EQU H'3FFE' ; Работает HS-генератор.
_XT_OSC EQU H'3FFD' ; Работает XT-генератор.
_LP_OSC EQU H'3FFC' ; Работает LP-генератор.
;====================================================================================================

Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись


разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 0 3F30h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; LP – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 0 1 3F31h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; XT – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен.

75
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 0 3F32h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; HS – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 0 1 1 3F33h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, RC – генератор, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 0 3F34h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; LP – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 0 1 3F35h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; XT – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 0 3F36h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF
; HS – генератор, PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 0 1 1 0 1 1 1 3F37h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF
; PWRT включен, сброс BOR запрещён, LVP выключен.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; внутрисхемная отладка выключена, Flash-запись разрешена по
; всему “объёму” PC.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 0 3F70h

76
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; LP – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 0 1 3F71h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; XT – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 0 3F72h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF
; HS – генератор, PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, внутрисхемная отладка
; выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 0 1 1 3F73h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_WDT_OFF&_LVP_OFF
; PWRT включен, WDT выключен, LVP выключен.
; По-умолчанию: защита выключена, RC – генератор, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка выключена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 0 3F74h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF
; LP – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 0 1 3F75h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF
; XT – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 0 3F76h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF

77
; HS – генератор, PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, WDT включен, внутрисхемная
; отладка выключена, Flash-запись разрешена по всему “объёму” PC,
; сброс BOR разрешён.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 1 1 1 1 0 1 1 1 0 1 1 1 3F77h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_LVP_OFF
; PWRT включен, LVP выключен.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; внутрисхемная отладка выключена, Flash-запись разрешена по
; всему “объёму” PC, сброс BOR разрешён.
Защита выключена, WDT выключен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 0 0 3730h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, Flash-запись разрешена по всему
; “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 0 1 3731h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, Flash-запись разрешена по всему
; “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 1 0 3732h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, Flash-запись разрешена по всему
; “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 0 1 1 3733h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_WDT_OFF&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; PWRT включен, WDT выключен, сброс BOR запрещён, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, Flash-запись
; разрешена по всему “объёму” PC.
Защита выключена, WDT включен, сброс BOR запрещён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 0 0 3734h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.

78
; По-умолчанию: защита выключена, WDT включен, Flash-запись
; разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 0 1 3735h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен, Flash-запись
; разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 1 0 3736h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, сброс BOR запрещён,
; LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен, Flash-запись
; разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 0 1 1 0 1 1 1 3737h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_BODEN_OFF&_LVP_OFF&_DEBUG_ON
; PWRT включен, сброс BOR запрещён, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; Flash-запись разрешена по всему “объёму” PC.
Защита выключена, WDT выключен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 0 0 3770h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, WDT выключен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён,
; Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 0 1 3771h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, WDT выключен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён,
; Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 0 1 0 3772h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_LVP_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, WDT выключен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, сброс BOR разрешён,
; Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение

79
1 1 0 1 1 1 0 1 1 1 0 0 1 1 3773h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_WDT_OFF&_LVP_OFF&_DEBUG_ON
; PWRT включен, WDT выключен, LVP выключен, внутрисхемная отладка
; включена.
; По-умолчанию: защита выключена, RC – генератор, сброс BOR
; разрешён, Flash-запись разрешена по всему “объёму” PC.
Защита выключена, WDT включен, сброс BOR разрешён, Flash-запись
разрешена, внутрисхемная отладка включена
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 0 0 3774h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _LP_OSC&_PWRTE_ON&_LVP_OFF&_DEBUG_ON
; LP – генератор, PWRT включен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 0 1 3775h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _XT_OSC&_PWRTE_ON&_LVP_OFF&_DEBUG_ON
; XT – генератор, PWRT включен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 0 3776h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _HS_OSC&_PWRTE_ON&_LVP_OFF&_DEBUG_ON
; HS – генератор, PWRT включен, LVP выключен,
; внутрисхемная отладка включена.
; По-умолчанию: защита выключена, WDT включен, сброс BOR
; разрешён, Flash-запись разрешена по всему “объёму” PC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP x DEBUG WRT1 WRT0 CPD LVP BOREN x x -PWRTEN WDTEN FOSC1 FOSC0 Значение
1 1 0 1 1 1 0 1 1 1 0 1 1 1 3777h
#include <p16f873A.inc>; Подключение INC-файла PIC16F873A.
;;; #include <p16f874A.inc>; Подключение INC-файла PIC16F874A.
;;; #include <p16f876A.inc>; Подключение INC-файла PIC16F876A.
;;; #include <p16f877A.inc>; Подключение INC-файла PIC16F877A.
__CONFIG _PWRTE_ON&_LVP_OFF&_DEBUG_ON
; PWRT включен, LVP выключен, внутрисхемная отладка включена.
; По-умолчанию: защита выключена, RC – генератор, WDT включен,
; сброс BOR разрешён, Flash-запись разрешена по всему “объёму” PC

Защита PC включена (CP = 0)


Нужно добавить _CP_ALL& (если слева) или &_CP_ALL (если справа).
Защита EEPROM включена (CPD = 0)
Нужно добавить _CPD_ON& (если слева) или &_CPD_ON (если справа).
Защита PC и EEPROM включена (CP = CPD = 0)
Нужно добавить _CP_ALL&_CPD_ON& (если слева) или &_CP_ALL&_CPD_ON (если справа).

Для случаев разрешения Flash-записи в часть памяти программ


Flash-запись разрешена (WRT1 = 1, WRT0 = 0)
Нужно добавить _WRT_256& (если слева) или &_WRT_256 (если справа).
Примечание: Flash-запись разрешена для PC-ячеек с адресами 0100h…0FFFh (если PIC16F873/874) или для ячеек с
адресами 0100h…1FFFh (если PIC16F876/877).

80
Flash-запись разрешена (WRT1 = 0, WRT0 = 1)
Нужно добавить _WRT_1FOURTH& (если слева) или &_WRT_1FOURTH (если справа).
Примечание: Flash-запись разрешена для PC-ячеек с адресами 0400h…0FFFh (если PIC16F873/874) или для ячеек с
адресами 0800h…1FFFh (если PIC16F876/877).

Flash-запись разрешена (WRT1 = 0, WRT0 = 0)


(если справа).
Нужно добавить _WRT_HALF& (если слева) или &_WRT_HALF
Примечание: Flash-запись разрешена для PC-ячеек с адресами 0800h…0FFFh (если PIC16F873/874) или для ячеек с
адресами 1000h…1FFFh (если PIC16F876/877).

Комплексные варианты
Допустим, что нужно
 выставить PC и EEPROM защиты,
 разрешить Flash-запись для PC-ячеек с адресами 0100h…0FFFh (если PIC16F873/874)
или для ячеек с адресами 0100h…1FFFh (если PIC16F876/877).
Действия:
1. добавить _CP_ALL&_CPD_ON& (если слева) или &_CP_ALL&_CPD_ON (если справа),
2. добавить _WRT_256& (если слева) или &_WRT_256 (если справа).

6A. Варианты конфигурирования PIC16F631/677/685/687/689/690, PIC12F683


13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0
Примечание: в “пустышныe” биты №13…12 ничего записать нельзя. Они всегда читаются как “1”.
Пусть в них будут якобы “записываться” единицы (см. выделенное тёмно-серым цветом).

Фрагмент INC-файла для PIC16F631/677/685/687/689/690, PIC12F683:


;====================================================================================================
; Configuration Bits (для PIC16F631/677/685/687/689/690, PIC12F683).
;====================================================================================================
_FCMEN_ON EQU H'3FFF' ; Мониторинг включен.
_FCMEN_OFF EQU H'37FF' ; Мониторинг выключен.
_IESO_ON EQU H'3FFF' ; Ускоренный запуск разрешён.
_IESO_OFF EQU H'3BFF' ; Ускоренный запуск запрещён.
;----------------------------------------------
; Для PIC16F631/677/685/687/689/690.
;----------------------------------------------
_BOR_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BOR_NSLEEP EQU H'3EFF' ; Сброс BOR, в спящем режиме (SLEEP), автоматически
; выключается, а после выхода из него, автоматически
; включается.
_BOR_SBODEN EQU H'3DFF' ; Сброс BOR разрешается/запрещается битом SBOREN
; регистра PCON.
_BOR_OFF EQU H'3CFF' ; Cброс BOR запрещён.
;----------------------------------------------
; Для PIC12F683.
;----------------------------------------------
_BOD_ON EQU H'3FFF' ; Сброс BOR разрешён.
_BOD_NSLEEP EQU H'3EFF' ; Сброс BOR, в спящем режиме (SLEEP), автоматически
; выключается, а после выхода из него, автоматически
; включается.
_BOD_SBODEN EQU H'3DFF' ; Сброс BOR разрешается/запрещается битом SBOREN
; регистра PCON.
_BOD_OFF EQU H'3CFF' ; Cброс BOR запрещён.
;----------------------------------------------
_CPD_ON EQU H'3F7F' ; EEPROM-защита включена.
_CPD_OFF EQU H'3FFF' ; EEPROM-защита выключена.
_CP_ON EQU H'3FBF' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_MCLRE_ON EQU H'3FFF' ; Работа вывода ..3 в качестве MCLR.
_MCLRE_OFF EQU H'3FDF' ; Работа вывода ..3 в качестве канала ввода.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_PWRTE_ON EQU H'3FEF' ; PWRT включен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FF7' ; WDT выключен.

_LP_OSC EQU H'3FF8' ; Работает LP-генератор.


_XT_OSC EQU H'3FF9' ; Работает XT-генератор.
_HS_OSC EQU H'3FFA' ; Работает HS-генератор.
_EC_OSC EQU H'3FFB' ; Работает EC-генератор.

81
;----------------------------------------------
_INTRC_OSC_NOCLKOUT EQU H'3FFC' ; INTOSC-генератор (один из вариантов).
_INTRC_OSC_CLKOUT EQU H'3FFD' ; INTOSC-генератор (один из вариантов).
_EXTRC_OSC_NOCLKOUT EQU H'3FFE' ; RC-генератор (один из вариантов).
_EXTRC_OSC_CLKOUT EQU H'3FFF' ; RC-генератор (один из вариантов).
;---------------------------------------------------------------------------
; Адресные дубли 4-х “вышележащих” позиций (можно применить и эти названия).
;---------------------------------------------------------------------------
_INTOSCIO EQU H'3FFC' ; INTOSC-генератор (один из вариантов).
_INTOSC EQU H'3FFD' ; INTOSC-генератор (один из вариантов).
_EXTRCIO EQU H'3FFE' ; RC-генератор (один из вариантов).
_EXTRC EQU H'3FFF' ; RC-генератор (один из вариантов).
;====================================================================================================

Пояснение:
“Нижележащие” варианты конфигурирования “заточены” под PIC16F631/677/685/687/689/690 (работа с
RA…). Если же речь идёт о PIC12F683, то нужно просто банально заменить RA… на GP…

Защита выключена, мониторинг выключен, ускоренный режим запуска


запрещён, WDT выключен, сброс BOR запрещён, RA3 работает как MCLR
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 0 0 30E0h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; LP – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 0 1 30E1h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; XT – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 1 0 30E2h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; HS – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 0 1 1 30E3h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.

82
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; EC – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 0 0 30E4h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_NOCLKOUT можно заменить на _INTOSCIO
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 и RA4 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 0 1 30E5h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_CLKOUT можно заменить на _INTOSC
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 работает как канал ввода/вывода. На RA4
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; сброс BOR запрещён, мониторинг выключен, ускоренный режим
; запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 1 0 30E6h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _EXTRC_OSC_NOCLKOUT можно заменить на _EXTRCIO
;-----------------------------------------------------------------------------------------
; RC–генератор (внешняя RC-цепочка подключается к RA5. RA4
; работает как канал ввода/вывода), PWRT включен, WDT выключен,
; сброс BOR запрещён, мониторинг выключен, ускоренный режим
; запуска запрещён.
; По-умолчанию: защита выключена, работа вывода RA3 в качестве
; MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 0 1 1 1 30E7h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.

83
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;-----------------------------------------------------------------------------------------
; PWRT включен, WDT выключен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, RC–генератор (внешняя
; RC-цепочка подключается к RA5. На RA4 присутствует сигнал с
; Fosc/4), работа вывода RA3 в качестве MCLR.
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT включен, сброс BOR запрещён, RA3 работает как MCLR
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 0 0 30E8h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _LP_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; LP – генератор, PWRT включен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 0 1 30E9h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _XT_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; XT – генератор, PWRT включен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 1 0 30EAh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _HS_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; HS – генератор, PWRT включен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 0 1 1 30EBh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
84
__CONFIG _EC_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; EC – генератор, PWRT включен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 0 0 30ECh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_NOCLKOUT можно заменить на _INTOSCIO
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 и RA4 работают как каналы ввода/вывода),
; PWRT включен, сброс BOR запрещён, мониторинг выключен,
; ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 0 1 30EDh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_CLKOUT можно заменить на _INTOSC
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 работает как канал ввода/вывода. На RA4
; присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён, мониторинг выключен, ускоренный режим запуска
; запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 1 0 30EEh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _EXTRC_OSC_NOCLKOUT можно заменить на _EXTRCIO
;-----------------------------------------------------------------------------------------
; RC–генератор (внешняя RC-цепочка подключается к RA5. RA4
; работает как канал ввода/вывода), PWRT включен, сброс BOR
; запрещён, мониторинг выключен, ускоренный режим запуска
; запрещён.
; По-умолчанию: защита выключена, WDT включен, работа вывода RA3
; в качестве MCLR.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 1 0 1 1 1 1 30EFh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF

85
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;-----------------------------------------------------------------------------------------
; PWRT включен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён.
; По-умолчанию: защита выключена, WDT включен, RC–генератор
; (внешняя RC-цепочка подключается к RA5. На RA4 присутствует
; сигнал с Fosc/4), работа вывода RA3 в качестве MCLR.
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT выключен, сброс BOR запрещён, RA3 работает как канал
ввода (MCLR внутренне подключен к +Uпит.)
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 0 0 30C0h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _LP_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; LP – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 0 1 30C1h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _XT_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; XT – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 1 0 30C2h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _HS_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; HS – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 0 1 1 30C3h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EC_OSC&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------

86
; EC – генератор, PWRT включен, WDT выключен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 0 0 30C4h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_NOCLKOUT можно заменить на _INTOSCIO
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 и RA4 работают как каналы ввода/вывода),
; PWRT включен, WDT выключен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 0 1 30C5h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_CLKOUT можно заменить на _INTOSC
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 работает как канал ввода/вывода. На RA4
; присутствует сигнал с Fosc/4), PWRT включен, WDT выключен,
; сброс BOR запрещён, мониторинг выключен, ускоренный режим
; запуска запрещён, RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 1 0 30C6h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _EXTRC_OSC_NOCLKOUT можно заменить на _EXTRCIO
;-----------------------------------------------------------------------------------------
; RC–генератор (внешняя RC-цепочка подключается к RA5. RA4
; работает как канал ввода/вывода), PWRT включен, WDT выключен,
; сброс BOR запрещён, мониторинг выключен, ускоренный режим
; запуска запрещён, RA3 работает как канал ввода.
; По-умолчанию: защита выключена.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 0 1 1 1 30C7h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _PWRTE_ON&_WDT_OFF&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;-----------------------------------------------------------------------------------------
; PWRT включен, WDT выключен, сброс BOR запрещён, мониторинг
; выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.

87
; По-умолчанию: защита выключена, RC–генератор (внешняя
; RC-цепочка подключается к RA5. На RA4 присутствует сигнал с
; Fosc/4).
Защита выключена, мониторинг выключен, ускоренный режим запуска
запрещён, WDT включен, сброс BOR запрещён, RA3 работает как канал
ввода (MCLR внутренне подключен к +Uпит.)
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 0 30C8h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _LP_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; LP – генератор, PWRT включен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 0 1 30C9h
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _XT_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; XT – генератор, PWRT включен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 1 0 30CAh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _HS_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; HS – генератор, PWRT включен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 0 1 1 30CBh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EC_OSC&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;--------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;--------------------------------------------------------------------------------
; EC – генератор, PWRT включен, сброс BOR запрещён,
; мониторинг выключен, ускоренный режим запуска запрещён,
; RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0

88
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 0 0 30CCh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_NOCLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_NOCLKOUT можно заменить на _INTOSCIO
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 и RA4 работают как каналы ввода/вывода),
; PWRT включен, сброс BOR запрещён, мониторинг выключен,
; ускоренный режим запуска запрещён, RA3 работает как канал ввода
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 0 1 30CDh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _INTRC_OSC_CLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _INTRC_OSC_CLKOUT можно заменить на _INTOSC
;-----------------------------------------------------------------------------------------
; INTOSC–генератор (RA5 работает как канал ввода/вывода. На RA4
; присутствует сигнал с Fosc/4), PWRT включен, сброс BOR
; запрещён, мониторинг выключен, ускоренный режим запуска
; запрещён, RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 1 0 30CEh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _EXTRC_OSC_NOCLKOUT&_PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
; Для всех вышеперечисленных типов ПИКов, _EXTRC_OSC_NOCLKOUT можно заменить на _EXTRCIO
;-----------------------------------------------------------------------------------------
; RC–генератор (внешняя RC-цепочка подключается к RA5. RA4
; работает как канал ввода/вывода), PWRT включен, сброс BOR
; запрещён, мониторинг выключен, ускоренный режим запуска
; запрещён, RA3 работает как канал ввода.
; По-умолчанию: защита выключена, WDT включен.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE -PWRTE WDTE FOSC2 FOSC1 FOSC0 Значение
1 1 0 0 0 0 1 1 0 0 1 1 1 1 30CFh
#include <p16f631.inc> ; Подключение INC-файла PIC16F631.
;;; #include <p16f677.inc> ; Подключение INC-файла PIC16F677.
;;; #include <p16f685.inc> ; Подключение INC-файла PIC16F685.
;;; #include <p16f687.inc> ; Подключение INC-файла PIC16F687.
;;; #include <p16f689.inc> ; Подключение INC-файла PIC16F689.
;;; #include <p16f690.inc> ; Подключение INC-файла PIC16F690.
;;; #include <p12f683.inc> ; Подключение INC-файла PIC12F683.
__CONFIG _PWRTE_ON&_BOR_OFF&_FCMEN_OFF&_IESO_OFF&_MCLRE_OFF
;-----------------------------------------------------------------------------------------
; Примечание: если используется PIC12F683, то _BOR_OFF нужно заменить на _BOD_OFF
;-----------------------------------------------------------------------------------------
; PWRT включен, сброс BOR запрещён, мониторинг выключен,
; ускоренный режим запуска запрещён, RA3 работает как канал ввода
; По-умолчанию: защита выключена, RC–генератор (внешняя
; RC-цепочка подключается к RA5. На RA4 присутствует сигнал с
; Fosc/4), WDT включен.

Защита PC включена (CP = 0)


Нужно добавить _CP_ON& (если слева) или &_CP_ON (если справа).

89
Защита EEPROM включена (CPD = 0)
Нужно добавить _CPD_ON& (если слева) или &_CPD_ON (если справа).
Защита PC и EEPROM включена (CP = CPD = 0)
Нужно добавить _CP_ON&_CPD_ON& (если слева) или &_CP_ON&_CPD_ON (если справа).
Разрешение мониторинга
Нужно убрать &_FCMEN_OFF.
Разрешение ускоренного запуска
Нужно убрать &_IESO_OFF.
Разрешение мониторинга и ускоренного запуска
Нужно убрать &_FCMEN_OFF и &_IESO_OFF.
Разрешение сброса BOR (BOREN1 = BOREN0 = 1)
Для PIC16F631/677/685/687/689/690, нужно убрать &_BOR_OFF.
Для PIC12F683, нужно убрать &_BOD_OFF.
Вариант сброса BOR (BOREN1 = 1, BOREN0 = 0)
Для PIC16F631/677/685/687/689/690, нужно заменить _BOR_OFF на _BOR_NSLEEP.
Для PIC12F683, нужно заменить _BOD_OFF на _BOD_NSLEEP.
Вариант сброса BOR (BOREN1 = 0, BOREN0 = 1)
Для PIC16F631/677/685/687/689/690, нужно заменить &_BOR_OFF на _BOR_SBODEN.
Для PIC12F683, нужно заменить &_BOD_OFF на _BOD_SBODEN.
Комплексные варианты
Допустим, что нужно
 выставить PC и EEPROM защиты,
 разрешить мониторинг и ускоренный запуск,
 разрешить сброс BOR (для варианта BOREN1 = BOREN0 = 1).
Действия:
1. добавить _CP_ON&_CPD_ON& (если слева) или &_CP_ON&_CPD_ON (если справа),
2. убрать &_FCMEN_OFF и &_IESO_OFF,
3. для PIC16F631/677/685/687/689/690, нужно убрать &_BOR_OFF,
для PIC12F683, нужно убрать &_BOD_OFF.

“Гибридная” форма конфигурирования (общие положения)

Она такова: __CONFIG <абревеатуры заменяются соответствующими “INC-файловскими” числами>


(непосредственно перед директивой CONFIG нужно “настукать” 2 подчерка подряд, то есть, без пробела) .

В целях осуществления сравнения “того-сего”, напоминаю о ранее предоставленном,


простейшем примере символьного “конфиговыбора”:
;***************************************************************************************************
; Простейшая программа, позволяющая увидеть (в симуляторе) результат конфигурирования,
; произведённого в символьной форме.
;***************************************************************************************************
LIST p=16f84A ; Используется PIC16F84A.
#include <p16f84a.inc> ; Подключение INC-файла PIC16F84A.
__CONFIG _XT_OSC&_PWRTE_ON ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.
org 0 ; Выполнение программы начинается c 0-го PC-адреса.
;***********************************************************************************************
goto $ ; "Мертвяк".
;**************************************************************************************************
end ; Конец программы.

Также напоминаю о “конфигофрагменте” INC-файла PIC16F84/84A:


;===================================================================
; Configuration Bits (для PIC16F84/84A)
;===================================================================
_CP_ON EQU H'000F' ; PC-защита включена.
_CP_OFF EQU H'3FFF' ; PC-защита выключена.
_PWRTE_ON EQU H'3FF7' ; PWRT включен.
_PWRTE_OFF EQU H'3FFF' ; PWRT выключен.
_WDT_ON EQU H'3FFF' ; WDT включен.
_WDT_OFF EQU H'3FFB' ; WDT выключен.

90
_LP_OSC EQU H'3FFC' ; Работает LP-генератор.
_XT_OSC EQU H'3FFD' ; Работает XT-генератор.
_HS_OSC EQU H'3FFE' ; Работает HS-генератор.
_RC_OSC EQU H'3FFF' ; Работает RC-генератор.
;====================================================================

В приложении к этому случаю, “гибрид” выглядит так (см. то, что выше выделено жёлтым фоном):

;***************************************************************************************************
; Простейшая программа, позволяющая увидеть (в симуляторе) результат конфигурирования,
; произведённого в “гибридной” форме.
;***************************************************************************************************
LIST p=16f84A ; Используется PIC16F84A.
__CONFIG H'3FFD'&H'3FF7' ; Защита выключена, PWRT включен, WDT включен,
; XT - генератор.
;;; __CONFIG 3FFD&3FF7 ; А можно и так.
;;; __CONFIG 0x3FFD&0x3FF7 ; А можно и так.
;;; __CONFIG 3FFDh&3FF7h ; А можно и так.
org 0 ; Выполнение программы начинается c 0-го PC-адреса.
;***********************************************************************************************
goto $ ; "Мертвяк".
;**************************************************************************************************
end ; Конец программы.

То есть, “гибридная” форма конфигурирования отличается от символьной тем, что


символьные обозначения заменяются соответствующими (взятыми из INC-файла) числами, и
тем, что “гибридная” форма конфигурирования не требует задействования INC-файла
(естественно, что INC-файл может быть подключен в иных целях).
Для того чтобы увидеть (после осуществления ассемблирования) результат конфигурирования,
нужно, в версиях MPLAB 8.xx (“привяжусь” к ним. Я работаю в 8.10), щёлкнуть по кнопке
главного меню с названием Configure, а затем, по строке Configuration Bits…
Результат показан на этой картинке:

Лично я, считаю “гибридную” форму конфигурирования неудобной (субъективное мнение), но


это вовсе не свидетельствует о том, что пользоваться ей нельзя (очень даже можно).
Поэтому “разрисовывать” её варианты не буду (просто объяснил её суть), но желающие могут
“разрисовать”.

Возможны дополнения и корректировки.

Текущая работа 2011 года        http://ikarab.narod.ru         E-mail: karabea@lipetsk.ru

91