|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Dw STARTRti ; Определить вектора прерывания и начального запуска Org vector irq Dw INT IRQ Org vector tima Dw INT TIM1 Org vector reset dw START
Аппаратные средства прерывания МК семейства НС08 имеют следующие особенности: • выполнение команды возврата из прерывания RTI автоматически разрешает прерывания; • выполнение команды возврата из прерывания RTI не блокирует прерывания на период выполнения следующей команды; вход в новую подпрограмму возможен сразу после выполнения команды RTI. Дело в том, что при входе в подпрограмму прерывания бит глобальной маски прерывания I обязательно равен 0. Иначе прерывания были бы запрещены и говорить о подпрограмме прерывания не имело бы смысла. Содержимое регистра признаков, в котором располагается маска I, сохраняется в стеке при входе в подпрограмму прерывания. Следовательно, при восстановлении регистра признаков из стека по команде RTI бит глобальной маски прерывания установится в «0», и прерывания будут разрешены.
Все источники прерываний МК семейства НС08 можно разделить на три группы: 1)немаскируемое программное прерывание по команде SWI; 2)маскируемые внешние прерывания по входу IRQ и по некоторому числу линий 3)маскируемые прерывания от периферийных модулей. Механизм программного прерывания позволяет обратиться к какой-либо подпрограмме прерывания по ходу выполнения прикладной программы и воспользоваться подпрограммой прерывания как обычной подпрограммой. Наличие в системе команд инструкции программного прерывания SWI предоставляет такую возможность. Эта команда автоматически загружает в стек регистры CCR, АСС, X и увеличенное на единицу содержимое счетчика команд PC, а затем осуществляет переход по адресу, который указан в ячейках памяти $FFFC и $FFFD сегмента векторов прерывания. Этот адрес может быть начальным адресом подпрограммы прерывания или же находиться внутри нее. При выходе из подпрограммы прерывания команда RTI восстановит содержимое регистров центрального процессора и МК продолжит выполнение прикладной программы с команды, которая была следующей за командой SWI. Таким образом, программисту предоставляется возможность обращения в произвольный момент времени к фрагменту подпрограммы прерывания, который начинается с произвольно выбранной инструкции внутри подпрограммы прерывания, но заканчивается обязательно командой RTI. Число линий МК MC68HC908GP32 для приема внешних запросов на прерывания ва-рьируется от одной линии (вход IRQ) до 9 линий. Обслуживание запросов по входу IRQ осуществляет модуль внешних прерываний IRQ08. Активный уровень сигнала запроса на входе IRQ - низкий логический, длительность сигнала запроса должна составлять не менее t,UH=50 не. Дополнительные входы внешних запросов могут быть получены путем.соответствующей инициализации модуля сканирования клавиатуры KBI08, который позволяет настроить некоторое число линий ввода/вывода МК для приема внешних запросов на прерывание. Все прерывания, кроме программного по команде SWI, могут быть разрешены или запрещены сбросом или установкой глобальной маски прерывания I в регистре признаков CCR: cli; команда сбрасывает в «О» бит I, т. е. разрешает прерывания. sei; команда устанавливает бит I в «1», т. е. запрещает прерывания. Кроме того, каждому источнику прерывания, за исключением программного, поставлена в соответствие индивидуальная маска прерываний, которая расположена в одном из регистров специальных функций соответствующего периферийного модуля. Подсистема прерываний МК семейства НС08 имеет жесткое распределение приоритетов, которое не может быть скорректировано программными настройками. Источники прерываний, уровни их приоритетов, абсолютные адреса векторов прерываний для МК MC68HC908GP32 приведены в таблице 1.1 Таблица 1.1 Таблица векторов прерывания МК МС68HC908GP32
2. ПОРТЫ ВВОДА/ВЫВОДА
МК MC68HC908GP32 обладает 33 линиями ввода/вывода данных. Эти линии объединены в 8-разрядные параллельные порты, которые именуют в соответствии с буквами латинского алфавита: Port A, Port В, Port С, Port D, Port H. Все линии ввода/вывода МК MC68HC908GP32 -двунаправленные, т. е. могут использоваться разработчиком как для ввода данных в МК, так и для вывода логических сигналов. Направление передачи линий ввода/вывода настраивается программно путем записи управляющих слов в регистры специальных функций. Возможно изменение направления передачи в ходе выполнения программы посредством перепрограммирования этих регистров. Сигнал сброса устанавливает все линии в режим ввода. Направление передачи каждой линии может быть выбрано разработчиком произвольно, независимо от других линий, принадлежащих к одному и тому же порту ввода/вывода. Большинство линий ввода/вывода обладают так называемой альтернативной функцией. Эти линии связаны со встроенными в МК периферийными устройствами, они обеспечивают связь периферийных модулей с «внешним миром». Так, линии порта Port В используются для подключения к встроенному АЦП измеряемых напряжений, линии других портов служат линиями ввода/вывода последовательных приемопередатчиков. Если соответствующий периферийный модуль МК не используется, то его выводы можно задействовать как обычные линии ввода/вывода. Распределение линий ввода/вывода по портам, спецификация линий альтернативных функций для МК MC68HC908GP32 приведены в табл. 2.1. По способу схемного решения выходного драйвера различают два типа линий ввода/ вывода: 1)линии с обычной схемотехникой двунаправленной линии ввода/вывода; 2)двунаправленные линии с программно-подключаемыми в режиме ввода подтяги Если порт имеет «обычную» схемотехнику, то для его обслуживания предусмотрены два типа регистров: 1) РТх - регистр данных порта х, где х - имя порта ввода/вывода; 2) DDRx - регистр направления передачи порта х. Если порт имеет схемотехнику с программно-подключаемым «подтягивающим» резистором, то для обслуживания порта предусмотрены три регистра: 1)РТх - регистр данных порта х; 2)DDRx - регистр направления передачи порта х; 3)PTxPUE - регистр входного сопротивления порта х. Так, порт PortA микроконтроллера MC68HC908GP32 обслуживается регистрами РТА, DDRA и PTAPUE. В табл. 2.2, 2.3, и 2.4 приведен формат регистров специальных функций РТх, DDRx и PTxPUE. Заметим, что формат регистров РТх и DDRx для портов с различной схемотехникой полностью совпадает. Таблица 2.1 Спецификация линий ввода/вывода МК MC68HC908GP32
Таблица 2.2 Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |