|5т1
М ИКРОКОНТРОЛЛЕРЫ
1. MOVLW В"ххОхОххх"
2. OPTION
3. CLRF
1
4. MOVLW B"xxxxlxxx"
5. OPTION
6. CLRWDT
7. MOVLW B"xxxxlxxx"
;Еыбрать внутреннюю
;синхронизацию и новое
;значение для делителя.
;Если новое значение
/делителя равно ”000” или
;"001",то надо временно
;выбрать другое значение
;делителя.
;обнулить ТМВО и делитель.
»•выбрать WDT, не изменяя
»•значения делителя.
;обнулить WDT и делитель.
;выбрать новое значение
»•для делителя.
8. OPTION
Пункты 1 и 2 требуются только тогда, когда к TMR0 был
подключен внешний источник импульсов. Пункты 7 и 8 требу-
ются тогда, когда в коэффициент деления надо установить “000
или “001“.
Переключение делителя с W DTна TMR0
1. CLRWDT
»•обнулить WDT и делитель
2. MOVLW
В"хххх0ххх" ; выбрать TMR0, новое
; значение для делителя
;источник сигнала.
3. OPTION
Указанными программами следует пользоваться, даже если
\/Ю Т запрещен.
Конфигурационное слово
Кристалл Р1С16Е84 имеет пять битов конфигурации, кото-
рые хранятся в ЕЕРИОМ и устанавливаются на этапе програм-
мирования кристалла Эти биты могут быть запрограммиро-
ваны (читается как “0“) или оставлены незапрограммированы-
ми (читается “1") для выбора подходящего варианта конфигу
рации устройства. Эти биты расположены в ЕЕРИОМ памяти
по адресу 20076. Пользователю следует помнить, что этот ад-
рес находится ниже области кодов и недоступен программе.
Ячейка ЕЕРЯОМ конф игурации
(табл. 21).
Табл.21
13
3
2
1
0
бит. ад рос
СР
PWRTE
\\
DTE
FOSC1
POSCO
2007 h
FOSCO, FOSC1
-
биты выбора типа генератора
00 - LP генератор;
01 - XT генератор,
10 - HS генератор;
11 - RS генератор
WDTE - бит разрешения работы WatchDog Timer
1 - разрешен;
0 - запрещен
PWRTE
-
бит разрешения выдержки времени после вклю-
чения питания
1 - выдержка есть
0 - выдержки нет.
Индивидуальная метка
Кристалл PiC16F84 имеет четыре слова, расположенные
по адресу (2000h-2003h) Они предназначены для хранения
идентификационного кода (ID) пользователя, контрольной сум-
мы или другой информации. Как и слово конфигурации, они
могут быть прочитаны или записаны только с помощью про-
грамматора. Доступа по программе к ним нет.
Если кристалл защищен, пользователю рекомендуется
использовать для идентификации только младшие семь бит
каждого ID слова, а в старший бит записывать “0“ Тогда ID
слова можно будет прочитать даже в защищенном варианте.
20
Защита программ от считывания
Программный код, который записан в кристалл, может быть
защищен от считывания при помощи установки бита защиты
(СР) в слове конфигурации в ноль. Содержимое программы
не может быть прочитано так, что с ним можно было бы рабо-
тать. Кроме того, при установленном бите защиты становится
невозможным изменять программу. Тоже относится и к содер-
жимому памяти данных EEPROM
Если установлена защита, то бит СР можно стереть только
вместе с содержимым кристалла. Сначала будет стерта
EEPROM программная память и память данных, и в после-
днюю очередь бит защиты кода СР.
Проверка кристалла с установленной защитой
При считывании защищенного кристалла, чтение любого
адреса памяти даст результат, похожий на 0000000ХХХХХХХ
(двоичный код), где X - это 0 или 1. Чтобы проверить сохран-
ность памяти в защищенном кристалле, следуйте правилам:
- запрограммируйте и проверьте работу исправного
кристалла;
- установите защиту кода программы и считайте содержи-
мое программной памяти в файл-эталон;
- проверяйте любой защищенный кристалл путем сравне-
ния его программной памяти с содержимым этого эталона
Память данных EEPROM не может быть проверена после
установки бита защиты.
Режим пониженного энергопотребления
Вход в режим SLEEP осуществляется командой SLEEP. По
этой команде, если WDT разрешен, хо он сбрасывается и на-
чинает счет времени, бит “PD” в регистре статуса (f3) сбрасы-
вается, бит “ТО’’ устанавливается, а встроенный генератор
выключается. Порты ввода/вывода сохраняют состояние, ко-
торое они имели до входа в режим SLEEP. Для снижения по-
требляемого тока в этом режиме, ножки на вывод должны иметь
такие значения чтобы не протекал ток между кристаллом и
внешними цепями. Ножки на ввод должны быть соединены вне-
шними резисторами с высоким или низким уровнем, чтобы
избежать токов переключения, вызываемых плавающими вы-
сокоомными входами. То же и про TMR0. Ножка MCLR должна
быть под напряжением Vihmc.
Выход из режима SLEEP
Осуществляется в результате следующих событии:
- внешний сброс - импульс низкого уровня на на ножке
MCLR;
- сброс при срабатывании WDT (если он разрешен);
- прерывания (прерывание с ножки INT, прерывание при
изменении порта В, прерывание при завершении записи дан-
ных EEPROM).
При первом событии происходит сброс всего устройства.
Два других события предполагают продолжение выполнения
программы.
Bh t“PD”
в
регистре статуса (03h), который устанавливает-
ся при включении, но обнуляется командой “SLEEP’’, может
быть использован для определения состояния процессора до
“просыпания”: или процессор был в режиме “SLEEP' (горячий
старт), или было просто выключено питание (холодный старт).
Бит “ТО” позволяет определить чем был вызван выход из ре-
жима SLEEP: или внешним сигналом на ножке MCLR, или сра-
батыванием WDT.
Чтобы устройство вышло из режима SLEEP через пре-
рывание, это прерывание должно быть разрешено установ-
кой соответствующей маски в регистре INTCON. При выхо-
де из режима SLEEP будет выполняться фоновая програм-
ма, если общая маска запрещает все прерывания (GIE = 0).
Если GIE = 1 то будет выполняться подпрограмма обработ-
ки прерываний.
4/2003
предыдущая страница 19 Радиолюбитель 2003-04 читать онлайн следующая страница 21 Радиолюбитель 2003-04 читать онлайн Домой Выключить/включить текст