I
I
РЛ
М ИКРО КО НТРО ЛЛЕРЫ
W IE
-
бит разрешения/запрещения W IF прерывания.
TOIE = 0: запрещает T0IF прерывание;
Т01Е = 1 разрешает T0IF прерывание.
EEIE - бит разреш ения/запрещ ения прерывания
EEPROM записи.
EEIE = 0; запрещает EEIF прерывание;
EEIE = 1: разрешает EEIF прерывание.
GIE - бит разрешения/запрещения всех прерываний.
GIE = 0: запрещает прерывания;
GIE = 1: разрешает прерывания
Он сбрасывается автоматически при следующих обсто-
ятельствах.
- по включению питания;
- по внешнему сигналу MCLR при нормальной работе;
- по внешнему сигналу MCLR в режиме SLEEP'
- по окончанию задержки таймера WDT при нормаль-
ной работе;
- по окончанию задержки таймера WDT в режиме SLEEP.
Внешнее прерывание
Внешнее прерывание на ножке RB0/INT осуществляется
по фронту: либо по нарастающему (если бит INTEDG=1 в ре-
гистре OPTION_REG). либо по спадающему фронту (если
INTEDG=0). Когда фронт обнаруживается на ножке INT, то бит
запроса INTF устанавливав
1
ся (INTCON <1>). Это прерыва-
ние может быть замаскировано установкой управляющего
бита INTE в ноль (INTCON <4>). Бит запроса INTF должен
быть очищен прерывающей программой перед тем, как опять
разрешить это прерывание Прерывание INT может вывести
процессор из режима SLEEP, если перед входом в этот ре-
жим бит INTE был установлен в единицу. Состояние бита GIE
также определяет, будет ли процессор переходить на подпрог-
рамму прерывания после просыпания из режима SLEEP.
Прерывание от TMR0
Переполнение счетчика TMR0 (FFh->00h) установит бит
запроса TOIF (INTCON<2>). Это прерывание может быть
разрешено/запрещено установкой/сбросом бита маски T0IE
(INTCON<5>). Сброс запроса T0IF - дело программы об-
работки.
Прерывание от порта RB
Любое изменение сигналов на четырех входах порта
RB<7:4> установит бит RBIF (INTCON<0>). Это прерывание
может быть разрешено/запрещено установкой/сбросом бита
маски RBIE (INTCON<3>). Сброс запроса RBIF - дело про-
граммы обработки.
Прерывание от EEPROM
Флаг запроса прерывания по окончании записи в EEPROM,
EEIF (EECON1<4>) устанавливается по окончании автомати-
ческой записи данных в EEPROM. Это прерывание может
быть замаскировано сбросом бита EEIE (INTCON<6>). Сброс
запроса EEIF - дело программы обработки
Обзор регистров/портов
Кристалл имеет два порта: 5 бит порт RA и 8 бит порт
RB с побитовой индивидуальной настройкой на ввод или
на вывод.
Схема линии порта А
Порт А - это порт шириной 5 бит, соответствующие ножки
кристалла RA<4:0>. Линии RA<3:0> двунаправленные, а ли-
ния RA4 - выход с открытым стоком. Адрес регистра порта А -
05h. Относящийся к порту А управляющий регистр TRISA рас-
положен на первой странице регистров по адресу 85h.
TRISA<4:0> - это регистр шириной 5 бит. Если бит управляю-
щего TRISA регистра имеет значение 1, то соответствующая
линия будет устанавливаться на ввод. Ноль переключает ли-
нию на вывод и одновременно выводит на нее содержимое
соответствующего регистра защелки (табл. 10).
Схема портов RAO .RA3 приведена на рис. 8
Все биты портов имеют защитные диоды, подключенные к
Vdd и Vss.
Вывод RA4/T0CKI имеет несколько другую схему. Она при-
ведена на рис. 9.
Схема линии порта В
Порт В - это двунаправленный порт, шириной в восемь бит
(адрес регистра 06h). Относящийся к порту В управляющий
регистр TRISB расположен на первой странице регистров по
адресу 86h. Если бит управляющего TRISB регистра имеет
значение единица, то соответствующая линия будет устанав-
ливаться на ввод. Ноль переключает линию на вывод и одно-
временно выводит на нее содержимое соответствующего ре-
гистра защелки. У каждой ножки порта В имеется небольшая
активная нагрузка (около 100 мкА) на линию питания. Она ав-
томатически отключается, если эта ножка запрограммирова-
на как вывод
Более того, управляющий бит RPBU
OPTION_REG <7> может отключить (RPBU=1) все нагрузки.
Сброс при включении питания также отключает все нагрузки.
Четыре линии порта В (RB<7'4>) имеют способность вызвать
прерывание при изменении значения сигнала на любой из них.
Если эти линии настроены на ввод, то они опрашиваются и
защелкиваются в цикле чтения Q1 Новая величина входного
сигнала сравнивается со старой в каждом командном цикле.
При несовпадении значения сигнала на ножке и в защелке,
генерируется высокий уровень. Выходы детекторов "несовпа-
дений” RB4, RB5, RB6 RB7 объединяются по ИЛИ и генериру-
ют прерывание RBIF (запоминаемое в IN TC O N O ). Любая
линия настроенная как вывод, не участвует в этом сравнении
Прерывание может вывести кристалл из режима SLEEP В под-
программе обработки прерывания следует сбросить запрос
прерывания одним из следующих способов:
1) Запретить прерывания при помощи обнуления бита RBIE
!NTCON<3>.
2) Прочитать порт В Это завершит состояние сравнения
3) Обнулить бит RBIF INTCON<0>.
Прерывание по несовпадению и программно устанавли-
ваемые внутренние активные нагрузки на этих четырех линиях
могут обеспечить простой интерфейс: например, с клавиату-
рой. с выходом из режима SLEEP по нажатию клавиш.
Ножка RB0 совмещена свходом внешнего прерывания INT
(табл. 11).
Проблемы с портами
Проблемы при организации двунаправленных портов
Некоторые команды внутренне выполняются как чтение+-
запись. Например, команды BCF и BSF считывают порт цели-
ком, модифицируют один бит и выводят результат обратно.
Здесь необходима осторожность. Например, команда BSF для
Табл. 10
Н азвание н о ж к и
#
Ф у н кц и я н о ж к и
Д р у ги е ф ункц и и
RA0
0
П орт ввода/вы вода. Входные уровни ТТЛ
RA1
I
П орт ввода/вы вода. Входные уровни ТТЛ
RA2
2
П орт ввода/вы вода. Входные уровни ТТЛ
RA3
3
П орт ввода/вы вода. Входные уровни ТТЛ
RA4/T0CKI
4
П орт ввода/вы вода. Выход — откры ты й коллектор.
Вход — триггер Ш митта
Вход внеш него тактового сигнала
для
TMR0
3/2003
предыдущая страница 42 Радиолюбитель 2003-03 читать онлайн следующая страница 44 Радиолюбитель 2003-03 читать онлайн Домой Выключить/включить текст