Лекция № 2 (1085691), страница 2
Текст из файла (страница 2)
Считается, что если произошло внутреннее зацикливание, то через 18 мс программа начнет выполняться снова. Команд со сторожевым таймером должно быть по минимуму (при правильной организации только одна команда).
Регистр конфигурации.
Регистр конфигурации определяет некоторые возможности в микроконтроллерах. Он доступен только при программировании. Его адрес лежит за адресом программ.
_ _ _ PWRTE _ ON& _ WDTE _ OFF& _ XT_OSC& _ CP _ OFF& _ BODEN _ OFF
Задержка на включение питания
Выключе-ние сторожевого таймера
Запрет сброса
при провале напряжения питания
(< 4 Вольт)
Отключение защиты памяти программ
Выбор типа тактового генератора
Энергосберегающий режим (спящий режим).
Микроконтроллер переводится в спящий режим специальной командой SLEEP. Если сторожевой таймер включен, то он обнуляется и начинает отсчет задержки заново. В регистре STATUS сбрасывается бит PJJ и устанавливается 4 бит ТО. Внутренний тактовый генератор отключается. Выводы портов сохраняют состояние, которое было непосредственно перед исполнением команды SLEEP.
Достоинство спящего режима: ток потребления в 1000 раз меньше. Это особенно важно, когда батарейное питание.
I потр. в норм. режиме = 2 ÷ 15 мА
I потр. в режиме SLEEP = 5 ÷ 30 мкА
Выход из энергосберегающего режима может быть осуществлен тремя способами:
-
По отрицательному импульсу на входе MCLR.
-
По переполнению сторожевого таймера WDT (самое удобное).
-
По внешним прерываниям.
При первом способе происходит сброс всего устройства. Два других способа предполагают продолжение выполнения программы.
Имеется два источника внешних прерываний:
1) Прерывания со специального входа RBO/INT. После поступления сигнала на прерывание, в зависимости от состояния бита общего разрешения/запрещения прерывания GIE (INTCON <7>), произойдет: либо прерывание, либо переход на команду.
2) Прерывания по изменению состояний входов порта RB4 - RB7. Если четыре линии порта B (RB<7:4>) настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1. Новая величина входного сигнала сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на ножке и в защелке, генерируется прерывание RBIF (запоминаемое в INTCON<0>). Любая линия, настроенная как вывод, не участвует в этом сравнении. Прерывание может вывести кристалл из режима SLEEP.
Тактовый генератор.
Встроенный тактовый генератор имеет четыре режима возбуждения, которые выбираются пользователем:
-
RS генератор. Здесь ко входам подключается RS цепь, которая косвенно задаёт частоту. При этом используется частота меньше 30 кГц. Снижая частоту, мы меньше потребляем мощности.
-
LP – низкочастотный генератор (30 – 200 кГц).
-
XT - среднечастотный генератор (100 кГц – 4МГц).
-
HS - высокочастотный генератор (4 МГц – 20 МГц).
Примечание: В слове конфигурации обязательно нужно правильно указать тип генератора. В противном случае - генератор может не заработать.
Система прерывания.
Имеется одноуровневая (без приоритетов) система прерываний с количеством источников от одного до четырнадцати и с одним и тем же вектором прерывания, адрес которого 0004h. При этом все источники прерываний должны иметь программно установленное разрешение. Каждое прерывание в отдельности может быть разрешено/запрещено установкой/сбросом соответствующего бита в регистре INTCON. Кроме этого, есть ещё бит общего разрешения/запрещения прерывания GIE (INTCON<7>), который разрешает (если = 1) все индивидуально незамаскированные прерывания или запрещает (если = 0) их. Система прерывания содержит пять управляющих регистров:
-
INTCON
-
P
IE1 -
PIE2 регистры разрешения прерывания
-
P
IR1 -
PIR2 регистры флагов прерыва
Регистр INTCON:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| GIE | PEIE | TMROIE | INTIE | RBIE | TMROIF | INTIF | RBIF |
7 и 6 разряды регистра INTCON – это разряды разрешения прерывания. Бит PEIE дает разрешение прерывания от некоторых периферийных устройств.
В управляющем регистре прерываний INTCON соответствующим битом записывается: от какого именно источника поступил запрос прерывания. Такое прерывание может быть замаскировано индивидуально или общим битом.
Когда начинает обрабатываться прерывание, бит GIE обнуляется (чтобы запретить дальнейшие прерывания), адрес возврата посылается в стек, а в счетчик команд загружается адрес 0004h.
Схема «И» для одиннадцати прерываний.
При возникновении условий прерывания, флаг прерывания (запрос) устанавливается аппаратно, независимо от того: есть разрешение на прерывание или нет.
Запрос прерывания фиксируется. Отсюда возникает возможность программного опроса флагов прерывания. После обслуживания прерывания, флаг прерывания должен быть сброшен программно.
IE1














