запрос на прерывание, устанавливается. Для предотвра-
щения случайных записей в память данных предусмот-
рен специальный бит WREN в регистре EECON1. Реко-
мендуется держать бит WREN выключенным, кроме, ко-
нечно, тех случаев, когда нужно обновить память данных.
Более того, кодовые сегменты, которые устанавливают бит
WREN и те, которые выполняют запись, должны хранить-
ся на различных адресах, чтобы избежать случайного
выполнения их обоих при сбое программы Бит WREN не
сбрасывается аппаратно, его необходимо после записи
сбросить программно.
Управление EEPROM
Управляющие регистры для EEPROM (табл. 7).
Табл. 7
Название
Ф ункция
Адрес
Значение после
включения
EEDATA
EEPROM регистр
данных
08h
х х х х х х х х
EEADR
EEPROM регистр
адреса
09h
х х х х х х х х
EECON1
EEPROM 1
управляю щ ий
регистр
88h
0000
х о о о
EECON2
EEPROM 2
управляю щ ий
регистр
89h
Регистры БЕСОМ и ЕЕСО№
Регистр ЕЕСОМ (адрес 886) - это управляющий ре-
гистр шириной пять бит. Младшие пять бит физически су-
ществуют, а старшие три бита читаются всегда как “О”.
Регистр ЕЕСО Ж . Адрес 88И. Сброс при включении
0000X000 (табл. 8).
Табл. 8
-
-
EEIF
WRERR
W REN
WR
RD
7
6
5
4
3
2
1
0
Управляющие биты RD и WR запускают соответствен-
но чтение и запись. Они могут быть установлены только
программно. Сбрасываются аппаратно по завершения опе-
раций чтения/записи. Запрет программного сброса бита WR
предотвращает преждевременное окончание записи.
RD
-
бит чтения
RD = 1: запускает чтение памяти данных EEPROM. Чте-
ние занимает один цикл. Устанавливается программно. Об-
нуляется аппаратно.
WR
-
бит записи
WR = 1: запускает запись в память данных EEPROM.
Устанавливается программно. Обнуляется аппаратно.
WREN - бит разрешения записи в память данных
EEPROM
WREN = 1: разрешена запись.
WREN = 0: запрещена запись.
После включения питания WREN обнуляется.
Флаг ошибки WRERR устанавливается, когда процесс за-
писи прерывается сигналом сброса /MCLR или сигналом сбро-
са от WDT таймера. Рекомендуем проверять этот флаг WRERR
и при необходимости производить перезапись данных, данные
и адрес которых сохраняются в регистрах EEDATA и EEADR.
WRERR - флаг ошибки записи
WRERR = 1: флаг устанавливается, когда операция за-
писи преждевременно прерывается сигналом сброса /
MCLR (во время обычного режима или режима SLEEP) или
сигналом сброса WDT во время обычного режима.
E E IF - флаг завершения записи
EEIF = 1: флаг устанавливается, когда завершена запись.
М ИКРО КО НТРО ЛЛЕРЫ
"РЛ
__________________________________»
Соответствующий бит разрешения прерывания - EEIE
в регистре INTCON.
Организация прерываний
PIC16F84 имеет четыре источника прерываний:
- внешнее прерывание с ножки RB0/INT;
- внешнее прерывание от изменения сигналов на нож-
ках порта RB<7:4>;
- внутреннее прерывание от переполнения счетчика/
таймера TMR0;
- внутреннее прерывание по окончании записи данных
в EEPROM.
Все прерывания имеют один и тот же вектор/адрес -
0004h. Однако в управляющем регистре прерываний
INTCON записывается, от какого именно источника посту-
пил запрос прерывания. Записывается соответствующим
битом-флагом. Такое прерывание может быть замаскиро-
вано индивидуально или общим битом. Единственным ис-
ключением является прерывание по концу записи в
EEPROM. Этот флаг находится в другом регистре EECON1.
Бит общего разрешения/запрещения прерывания GIE
(INTCON <7>) разрешает (если равен 1) все индивидуаль-
но незамаскированные прерывания или запрещает (если
равен 0) их. Каждое прерывание в отдельности может быть
дополнительно разрешено/запрещено установкой/сбросом
соответствующего бита в регистре INTCON.
Бит GIE обнуляется при сбросе. Когда начинает обрабаты-
ваться прерывание, бит GIE обнуляется, чтобы запретить даль-
нейшие прерывания, адрес возврата посылается в стек, а в
программный счетчик загружается адрес 0004h. Время реак-
ции на прерывание для внешних событий, таких как прерыва-
ние от ножки INT или порта В, составляет приблизительно пять
циклов. Это на один цикл меньше, чем для внутренних собы-
тий, таких как прерывание по переполнению оттаймера TMR0.
Время реакции всегда одинаковое. В подпрограмме обработ-
ки прерывания источник прерывания может быть определен
по соответствующему биту в регистре флагов. Этот флаг-бит
должен быть программно сброшен внутри подпрограммы. Фла-
ги запросов прерываний не зависят от соответствующих мас-
кирующих битов и бита общего маскирования GIE.
Команда возврата из прерывания RETFIE завершает
прерывающую подпрограмму и устанавливает бит GIE, что-
бы опять разрешить прерывания.
Регистр запросов и масок
Управляющий регистр прерываний (INTCON) и его
биты
Адрес: OBh. Значение при сбросе - 0000 0000 (табл. 9).
Табл. 9
GIE
EEIE
RTIE
INIE
RBIE
RTIF 1
INTF
RBIF
R B IF - флаг прерывания от изменения на порту RB.
Флаг устанавливается, когда сигнал на входе RB<7:4>
изменяется. Флаг сбрасывается программным способом.
IN T F - флаг прерывания INT.
Флаг устанавливается, когда на ножке INT появляется
сигнал от внешнего источника прерывания. Сбрасывается
программным способом.
T 0 IF - флаг прерывания от переполнения TMR0.
Флаг устанавливается, когда TMR0 переполняется. Флаг
сбрасывается программным способом.
RBIE
-
бит разрешения/запрещения RBIF прерывания.
RBIE = 0: запрещает RBIE прерывание;
RBIE = 1: разрешает RBIE прерывание.
INTE —
бит разрешения/запрещения INT прерывания.
INTE = 0: запрещает INT прерывание;
INTE = 1: разрешает INT прерывание.
предыдущая страница 41 Радиолюбитель 2003-03 читать онлайн следующая страница 43 Радиолюбитель 2003-03 читать онлайн Домой Выключить/включить текст