рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Прерывания

Прерывания - раздел Высокие технологии, Однокристальные микроконтроллеры PIC 16С71   Прерывания В Pic16C71 Могут Быть От Четырех Источников: ...

 

Прерывания в PIC16C71 могут быть от четырех источников:

- внешнее прерывание с ножки RB0/INT,

- прерывание от переполнения счетчика/таймера RTCC,

- прерывание по окончании аналого-цифрового преобразовкания

- прерывание от изменения сигналов на ножках порта RB<7:4>. Все прерывания имеют один и тот же вектор/адрес - 0004h. Однако, в управляющем регистре прерываний INTCON записывается от какого именно источника поступил запрос прерывания соответствующим битом-флагом GIE. Такое прерывание может быть замаскировано индивидуально или общим битом GIE (1-запрещены, 0-разрешены). Единственным исключением является прерывание по концу аналого-цифрового преобразования. Этот флаг (ADIF) находится в другом регистре ADCON0.

Бит общего разрешения/запрещения прерывания GIE (INTCON <7>) разрешает (если=1) все индивидуально незамаскированные прерывания или запрещает (если=0) их. Каждое прерывание в отдельности может быть дополнительно разрешено/запрещено установкой/сбросом соответствующего бита в регистре INTCON.

Бит GIE обнуляется при сбросе. Когда начинает обрабатываться прерывание, бит GIE обнуляется, чтобы запретить повторные прерывания в момент выполнения текущего, и востанавливается по команде возврат из прерывания. ВНИМАНИЕ! Программа обработки прерывания не должна каким либо способом устанавливать бит GIE.

Адрес возврата посылается в стек, а в программный счетчик загружается адрес 0004h. Время реакции на прерывание для внешних событий, таких как прерывание от ножки INT или порта B, составляет приблизительно пять циклов.Это на один цикл меньше, чем для внутренних событий, таких как прерывание по переполнению от таймера RTCC. Время реакции всегда одинаковое.

В подпрограмме обработки прерывания источник прерывания может быть определен по соответствующему биту в регистре флагов. Этот флаг-бит должен быть программно сброшен внутри подпрограммы. Флаги запросов прерываний не зависят от соответствеющих маскирующих битов и бита общего маскирования GIE. Команда возврата из прерывания RETFIE завершает прерывающую подпрограмму и устанавливает бит GIE, чтобы опять разрешить прерывания.

Управляющий регистр прерываний INTCON(Адрес: 0Bh. Значение при reset: 0000 000?) имеет следующее содержание:

 

7 6 5 4 3 2 1 0

GIE ADIE RTIE INTE RBIE RTIF INTF RBIF

 

RBIF - Флаг прерывания от изменения на порту RB.

Флаг устанавливается, когда сигнал на входе RB<7:4> изменяется.

Флаг сбрасывается программным способом.

 

INTF - Флаг прерывания INT.

Флаг устанавливается, когда на ножке INT появляется сигнал от внешнего источника прерывания.

Флаг сбрасывается программным способом.

 

RTIF - Флаг прерывания от переполнения RTCC.

Флаг устанавливается, когда RTCC переполняется.

Флаг сбрасывается программным способом.

 

RBIE - Бит разрешения/запрещения RBIF прерывания:

RBIE = 0: запрещает RBIE прерывание.

RBIE = 1: разрешает RBIE прерывание.

 

INTE - Бит разрешения/запрещения INT прерывания:

INTE = 0: запрещает INT прерывание.

INTE = 1: разрешает INT прерывание.

 

RTIE - Бит разрешения/запрещения RTIF прерывания:

RTIE = 0: запрещает RTIE прерывание.

RTIE = 1: разрешает RTIE прерывание.

 

ADIE - Бит разрешения/запрещения прерывания от аналого-цифрового

преобразователя:

ADIE = 0: запрещает ADIF прерывание.

ADIE = 1: разрешает ADIF прерывание.

 

GIE - Бит разрешения/запрещения всех прерываний:

GIE = 0: запрещает прерывания.

GIE = 1: разрешает прерывания.

Он сбрасывается автоматически при следующих обстоятельствах:

- по включению питания,

- по внешнему сигналу /MCLR при нормальной работе,

- по внешнему сигналу /MCLR в режиме SLEEP,

- по окончанию задержки таймера WDT при нормальной работе,

- по окончанию задержки таймера WDT в режиме SLEEP.

Внешнее прерывание на ножке RB0/INT осуществляется по фронту: либо по нарастающему (если бит 6 INTEDG=1 в регистре OPTION), либо по спадающему фронту (если INTEDG=0). Когда фронт обнаруживается на ножке INT, то бит запроса INTF устанавливается (INTCON <1>). Это прерывание может быть замаскировано установкой управляющего бита INTE в ноль (INTCON <4>). Бит запроса INTF должен быть очищен прерывающей программой перед тем, как опять разрешить это прерывание. Прерывание INT может вывести процессор из режима SLEEP, если перед входом в этот режим бит INTE был установлен в единицу. Состояние бита GIE также определяет: будет ли процессор переходить на подпрограмму прерывания после просыпания из режима SLEEP.

Переполнение счетчика RTCC (FFh->00h) установит бит запроса RTIF (INTCON<2>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RTIE (INTCON<5>).

Сброс запроса RTIF —дело программы обработки.

Любое изменение сигналов на четырех входах порта RB<7:4> установит бит RBIF (INTCON<0>). Это прерывание может быть разрешено/запрещено установкой/сбросом бита маски RBIE (INTCON<3>).

Сброс запроса RBIF —дело программы обработки.

Конец АЦП преобразования обозначается выработкой прерывания и установкой флага ADIF в регистре ADCCON управления АЦП. Этот флаг должен сбрасываться программой.

 

3.9. Порты ввода/вывода

 

Микроконтроллер имеет два порта: 5 битный порт RA и 8 битный порт RB с побитовой индивидуальной настройкой на ввод или на вывод. Эти же линии портов используются для подключения к АЦП и к линии внешнего прерывания. В этом случае число линий ввода/вывода общего пользования уменьшается.

Порт А - это порт шириной 5 бит, соответствующие ножки кристалла RA<4:0>. Линии RA<3:0> двунаправленные, а линия RA4 -выход с открытым стоком. Организация разрядов RA3:RA0 порта А приведена на рис.3.8. Адрес регистра порта А - 05h. Относящийся к порту А управляющий регистр TRISA расположен на первой странице регистров по адресу 85h. TRISA<4:0> - это регистр шириной 4 бита, он не управляет битом RA<5>, а только битами RA<4:0>. Ввод сигнала с вывода RA5 можно осуществлять, когда на него выведена "1".

 

 

Защелка для бита данных Ко входу модуля АЦП

D Q   C /Q   C
от шины данных

Vdd

XOR
n
p

Вывод порта
WR Port
       
 
   
p

 


Это один из бит TRIS рег

от W рег

       
 
   
 
D Q   C R /Q   C

 


  AND
по команде"TRIS f"

n

Reset

 

на шину Vss

           
   
 
   
 
 

 


RD TRIS

 

Защелка на вход

 
 

 


RD Port

на вход счетчика RTCC

 
 

 


Рис. 3.8. Организация разрядов RA3/RA0 порта А

 

Если бит управляющего регистра TRISA имеет значение равное "1", то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего бита регистра защелки.

Выводы RA<3:0> могут быть также использованы как каналы аналоговых входов AIN3 -AIN0. Вывод RA3 также используется для обеспечения внешнего опорного напряжения для АЦП Vref. Чтобы определить конфигурацию ножек как цифровую (то есть порт) или как аналоговую, надо установить два бита в управляющем регистре ADCON1 (адрес 88h). Когда выводы определены как аналоговые входы, значение регистра TRISA не будет играть никакой роли. После сброса при включении питания выводы RA<3:0> конфигурируются как аналоговые входы.

Вывод RA4/RT СС(TOCKI) имеет несколько другую схему. Она приведена ниже на рис. 3.9.

 

 

Защелка для бита данных

D Q   C /Q   C
от шины данных


n

Вывод порта RA4/RTCC(TOCI)
WR Port
p

 


Это один из бит TRIS рег

от W рег

D Q   C R /Q   C
       
 
   
 

 


  AND
по команде"TRIS f"

n

Reset i

 

на шину Vss

       
   
 
 

 


RD TRIS

 

Защелка на вход

 
 

 


RD Port

на вход счетчика RTCC

 
 

 


Рис. 3.9. Организация разрядов RA4 порта А

 

Порт В -это двунаправленный порт, шириной в восемь бит (адрес регистра 06h). Относящийся к порту В управляющий регистр TRISB расположен на первой странице регистров по адресу 86h. Если бит управляющего регистра TRISB имеет значение "1", то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра защелки.

У каждой ножки порта В имеется небольшая активная нагрузка (около 250 мкА) на линию питания. Она автоматически отключается, если эта ножка запрограммирована как вывод. Более того, управляющий бит RBPU OPTION<7> может отключить (RBPU=1) все нагрузки. Сброс при включении питания также отключает все нагрузки.

Четыре линии порта В (RB<7:4>) имеют способность вызвать прерывание при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1. ВНИМАНИЕ! При узких импульсах на входе, опрос процессором может "промахиваться" мимо фронтов. Такие импульсы советуем регистрировать через RTCC.

Новая величина входного сигнала сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на ножке и в защелке, генерируется высокий уровень. Выходы детекторов "несовпадений" RB4, RB5, RB6, RB7 объединяются по ИЛИ и генерируют прерывание RBIF (запоминаемое в INTCON<0>).

Любая линия, настроенная как вывод, не участвует в этом сравнении.

Прерывание может вывести кристалл из режима SLEEP. В подпрограмме обработки прерывания следует сбросить запрос прерывания одним из следующих способов:

1) Запретить прерывания при помощи обнуления бита RBIE в INTCON<3>.

2) Прочитать порт В. Это завершит состояние сравнения.

Прерывание по несовпадению и программно устанавливаемые внутренние активные нагрузки на этих четырех линиях могут обеспечить простой интерфейс например с клавиатурой, с выходом из режима SLEEP по нажатию клавиш.

вывод RB0 совмещена с входом внешнего прерывания INT.

 

– Конец работы –

Эта тема принадлежит разделу:

Однокристальные микроконтроллеры PIC 16С71

Особенности структурной организации ОМК PIC С Микроконтроллеры PIC С... Стек...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Прерывания

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Особенности структурной организации ОМК PIC 16С71
Микроконтроллеры PIC 16С71 относятся к расширенному семейству и имею целый ряд отличий от МК базового семейства PIC 16С5Х главным 0из которого является наличие встроенного четырехканального анал

Обозначение выводов и их функциональное назначение
  PDIP, SOIC, CERDIP    

Таблимца 3.1
Обозначение выводов PIC 16c71 и их функциональное назначение   Обозначение Нормальный режим RA4/RTCC Вход чер

Организация памяти данных (ОЗУ)
  Память данных также как и в PIC 16С5Х имеет страничную организацию, но состоит всего из 2-х страниц (рис.3.3). Причем, страницы в различных модификациях данного МК имеют различные о

Описание специальных регистров PIC 16С71
  Адрес Имя Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1

Модуль таймера (TMRO-RTCC)
  Единственным отличием данного модуля от аналогичного в PIC 16С5Х является возможность формирования сигнала прерывания. Прерывание по RTCC вырабатывается тогда, когда происх

Регистр статуса (STATUS)
Отличается от аналогичного регистра PIC 16С5Х лишь тем, что вместо трех бит выбора страниц памяти программ РА2, РА1, РА0 в соответствующих разрядах 7,6 и 5 размещаются биты выбора страницы памят

Программный счетчик и организация памяти программ
Программный счетчик в PIC16C71 имеет ширину 13 бит и способен адресовать 8К х 14бит объема программной памяти. Однако, физически на кристалле PIC16C71/711 имеется только 1К х 14

Модуль аналого-цифрового преобразователя (АЦП)
  Модуль АЦП (рис3.10) содержит четыре входных аналоговых канала AIN3, AIN1, AIN2 и AIN3, мультиплексируемых на одну схему выборки/хранения и далее на АЦП. Опорное напряжение поступае

Состояние специальных регистров после сброса
  Адрес Имя Сброс по включению питания Сброс по MCLR и WDT Банк 0 00h

Регистр OPTION
  Регистр конфигурации предделителя и таймера (OPTION) доступен для чтения и записи и содержит различные управляющие биты, которые определяют конфигурацию предделителя, куда он подклю

Биты установки конфигураци
Кристалл PIC16C71 имеет пять битов конфигурации, которые хранятся в EPROM и устанавливаются на этапе программирования кристалла. Эти биты могут быть запрограммированы (читается как "0"

Режим пониженного энергопотребления
Вход в режим SLEEP осуществляется командой SLEEP. По этой команде, если WDT разрешен, то он сбрасывается и начинает счет времени, бит »в регистре статуса (f3) сбрасывается, бит

Система команд
Каждая команда PIC16C71 представляет собой 14‑разрядное слово, содержащее поле кода операции (OPCODE) и поле одного или более операндов, которые могут участвовать в этой команде. Формат ко

Ообенности программирования
Разработка рабочих программ для микроконтроллеров PIC16C5X и PIC16C71 осуществляется по одной и той же методике с использованием одних и тех же инструментальных средств [8]. Системы команд, за и

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги