Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 29
Текст из файла (страница 29)
Запись в регистр НБ1 Т!МЕ вызовет изменение содержимого поля НБ! Т1МЕ в ОНК. 7 О 5 4 3 2 ! О НБ13 МОРЕ НБ12 МОРЕ НБ11 МОРЕ НЯОМОРЕ а) НБ1 МОРЕ (адрес ОЗН) запись в кадре О, чтение а кадре 15 1 О 3 2 НЯО НБ1 1 НБ1 2 НЯ3 БТ ЕЧ БТ ЕЧ БТ ЕЧ БТ ЕЧ 6) НБ! БТАТ (адрес ООН) чтение в кадре О, запись в кадре 15 Рис. 1.63, Форматы регистров Н31 МОРЕ, Н31 ЗТАТ 138 МИКРОКОНТРОЛЛЕРЫ. АРХИТЕКТУРА ПРОТРАММИРОЕАНИ ИНТЕРФЕЙС Регистр НЯ1 ЯТАТ (рис.
1.536) помимо битов НЯ1х ЕЧ, копируемых из ОНК, содержит биты НЯ!х ЯТ, отражающие поступление событий на соответствующий вход НЯ1х к моменту считывания НЯ1 ЯТАТ. Таким образом, анализ содержимого НЯ1 ЯТАТ позволяет выявить изменение ситуации на входах событий за время, истекшее с момента фиксации данного события до поступления информации о нем в регистры ОНК, НЯ1 ЯТАТ, НЯ1 Т!МЕ и ее считывания.
Отметим, что поступление событий фиксируется в битах НЯ1х ЯТАТ и в том случае, когда их регистрация запрещена битами НЯ!х ЕХА в регистре 1ОСО. Модуль НЯ! формирует три типа запросов прерывания: + заполнение — Г!ГО Г(!!.!. (1ХТ14) — вырабатывается при записи в последнюю строку 1.6 стека; + заполнение строки 14 — НЯ1 Г1ГО4 (1ХТ10) — вырабатывается при за- писи в эту строку; Ф доступность данных в Г1ГΠ— НЯ! 1)Ау' (1ХТ02) — вырабатывается либо при вводе первой записи в регистр ОНК (если установлено значение бита НЯ11ХТ - 0 в регистре!ОС1, см.
рис. 1.50б), либо при вводе записи в последнюю строку !.6 стека (если установлено значение НЯ11ХТ - 1). Кроме того, при положительном перепаде потенциала на входе НЯ10 формируется запрос прерывания НЯ10 Р1Х (1ХТ04). Таким образом, этот вход может использоваться для приема внешних сигналов прерывания. С помощью модуля НЯ1 можно определять промежутки времени между событиями, измерять длительность и период следования импульсов, находить фазовые сдвиги.
Модуль вывода НЯО (рнс. 1.54) принимает команды на формирование сигналов на выходах НЯО5..0 в заданные моменты времени и обеспечивает выдачу этих сигналов и запросов прерывания. В качестве выходов НЯО5, 4 используются выводы НЯ12, 3, если в регистре управления ГОС1 (см. рис. 1.50б) установлены значения соответствующих битов НЯО5, 4 ЕХА = 1. Таким образом сигналы с этих выходов модуля НЯО могут служить входными сигналами модуля НЯЕ Модуль содержит регистры НЯО СОММАХ!у (адрес 06Н), НЯО Т1МЕ (адрес 04Н), запись в которые производится в кадре О, считывание в кадре 15 (см.
табл. 1.35), память команд емкостью 8'24 бит с входным регистром 1НК, блок управления и прерывания с регистрами состояния 1ОЯО, 1, 2, компаратор и формирователь выходных сигналов. Запуск НЯО производится путем записи 8-битовой команды в регистр НЯО СОММАХ1) и последующего ввода в регистр НЯО Т1МЕ 16-битового кода, определяющего время ее выполнения. Содержимое регистров НЯО СОММАХ!), НЯО Т1МЕ поступает во входной регистр 1НК и через восемь тактов после ввода команды заносится МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА МСВ-96 1З9 нзоо нзо ~ нзо г нзоз нзо 4 нзо з Внугренияя шина Рис. 1.54.
Структура модуля вывода НЗО в одну из пустых строк памяти команд САМ. Эта память содержит восемь строк по 24 бита, при считывании которых производится ассоциативная выборка (Сопсент АСЫгеззаЫе Мешогу — САМ). В каждом такте поле НЯО Т1МЕ одной из строк сравнивается компаратором с содержимым регистра Т1МЕК1 или Т1МЕК2. В случае их совпадения поле НЯО СОММАХО из данной строки поступает в блок управления и прерывания, который обеспечивает выполнение операций, определяемых содержимым етого поля. Биты содержимого НБО СОМ МАХ() имеют следующие назначения (рис. 1.55): Ф поле СМ0 ТАС определяет выполняемую модулем НЯО операцию в соответствии с табл.
1АО; В» бит НЯО1ХТ ЕХА разрешает формирование запроса прерывания при выполнении модулем НЯО заданной операции, если значение НЯ01ХТ ЕХА - 1; + бит Р1Х СМО задает состояние выходов НБОх, в которое они переключаются при выполнении операции: «О» прн значении Р1Х СМП - О, «1» при Р1Х СМ1) = 1; + бит Т1МЕК ЯЕ1. указывает, какой из регистров задает время выполнения операции НЯО: регистр Т1МЕК1 при Т1МЕК ЯЕ1. - О, регистр Т1МЕК2 при Т1МЕК ЯЕ1. = 1; + бнт САМ 1.ОСК определяет состояние командной строки в памяти САМ после ее выборки и выполнения соответствующей операции Н50: при САМ 1.0СК - О строка освобождается для ввода из 1НК следующей команды, МИКРОКОНТРОЛЛЕРЫ АРКИТВОУРА ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙС 140 при САМ ЕОСК = ! команда в данной строке сохраняется для выполнения при следутощем совпадении значения ее поля НЗО Т1МЕ и содержимого выбранного таймера.
6 5 4 3 САМ ЕОСК Т!МЕК ЗЕ1 Р!Х СМР НБО !ХТ ЕХА СМР ТАС НЗО СОММАХР (адрес 06Н), запись в кадре О, чтение в кадре 15 Рис. 1.66. Формат регистра НЗО СОММАЙО Два бита из содержимого регистра управления 10С2 (см. рис. 1.50в) также влияют па работу памяти команд: при установке значения САМ СЕК = 1 производится очистка всех строк САМ от записанных в них команд, при значении бита 10СК ЕХА = 1 разрешается сохранение в САМ команд, имеющих бит САМ 1.0СК = 1.
В соответствии с поступившей командой модуль НЗО может выполнять следутощне операции; е переклточение одного или нескольких выводов НЗОх в состояние, опре- деляемое битом Р1Х СМР команды; «Р обеспечение реализации одного из четырех возможных таймерных пре- рываний ЗАТО..З; е сброс в нулевое состояние таймера 2; + запуск аналого-цифрового преобразователя. При выполнении операций переклточения внешних выводов формируется запрос прерывания НЗО!ЗТ (1ХТОЗ), при выполнении остальных операций— запрос НЗО 1ХТ (1ХТ05).
Кроме того различные операции вызывают установку соответствующих битов в регистрах состояния 1050, 1, 2 (рис. 1.56), чтение которых производится в кадре О, запись в кадре 15. Некоторые биты в этих регистрах отражают также состояние модуля НЗ! и таймеров 1, 2. Регистр !ОЗО (адрес 15Н) содержит биты НЗОх ЗТАТ, где х = О, 1, 2, 3, 4 или 5, которые отражают текущее состояние выходов НЗ00..5, и биты НК ЗТАТ, НКСАМ ЗТАТ, указыватощие состояние регистра 1НК и строк в памяти САМ: значение НК ЗТАТ - 0 устанавливается, если пуст регистр 1НК, значение НК ЗТАТ - О, если пуст регистр 1НК и хотя бы одна из строк САМ.
Значения «!» в этих битах устанавливается при заполнении 1НК. Таким образом, чтобы избежать переполнения САМ, ввод очередной команды НЗО следует производить только при НК ЗТАТ - 0 или НКСАМ ЗТАТ - О. мук»оконтиолле»ы са«айства мсз-м 141 Табл. 1.40. Операции, выполняемые модулем НЗО СМР ТАО Выполняемая операция 10 00 10 01 10 10 10 11 Таймерное прерывание 3%Т 0 Таймервое прерывание ЯЪТ 1 Таймервое прерывание ЯУттТ 2 Тайме воен е ывание3'тт'ТЗ Пе еключение выводов НЯО 0..5 За езе вк вано 11 00 1! 01 Сб ос Т1МЕК 2 Т2 КЯТ 11 1О 11 1! П ск АЦП АРС 3!атт При записи в регистр 1ОЯО устанавливатотся соответствующие значения битов НЯОх и состояния выходов НЯОх, значения битов НК ЯТАТ и НКСАМ ЯТАТ прн этом не изменяются. Регистр 1ОЯ1 (адрес 16Н) содержит биты Я'т1ЧТЕх, где х = О, 1, 2 или 3, которые указыва!от, какая из операций таймерного прерывания ЯЖТх вызвала формирование запроса НЯО 1ХТ.
Биты Т1 ОЧЕ Т2 ОЧР принимают значение «1», когда переполнение соответствующего таймера вызывает формирование запроса ОЧКТМК. Значение бита Г1РО Р111 1. = 1 устанавливается при заполнении последней строки 1.6 в Р1ЕО модуля НЯ1; при этом вырабатывается запрос прерывания НЯ1 ПАЧ или Р1РО ЕП1.1.. Значение бита НЯ1 ПРУ = 1 устанавливается при заполнении регистра ОНК в модуле НЯ1; при этом формируется запрос прерывания НЯ1 РАЧ, если в регистре 1ОС1 бит НЯ1 1ХТ - О.
При считывании содержимого регистра 1ОЯ1 все его биты, кроме Р1РО РТП.1. и НЯ1 КРУ, принимают значение «0». Запись в этот регистр устанавливает новые значения всех битов, кроме Р1РО РП1.Ц НЯ1 КРУ, которые остаются неизменными. Регистр! ОЯ2 (адрес! 7Н) содержит информацию о результатах операций, выполненных модулем НЯО: при переключении какого-либо из выходов НЯОх устанавливается значение бита НЯОх ЕЧ - 1, при формировании сигналов сброса таймера 2 или запуска АЦП устанавливаются, соответственно.
значения битов Т2КЯТ ЕЧ - 1 или АП ЕЧ - 1. Изменить значения битов 00 00 00 О! 00 1О 00 11 01 00 01 01 01 10 01 11 Переключение Переключение Переключение Переключение Переключение Переключение Переключение Пе ключевие вывода НЯО 0 вывода НЯО 1 вывода НЯО 2 вывода НЯО 3 вывода НЯО « вывода НЯО 5 выводов НЯООн НЯО ! выводов НЯО 2 и НЯО 3 МИКРОКОНТРОЛЛЕРЫ. АРХИТВТТРРА ЛРОГРАММИРОЕАНИ ИНТЕР»ЕЙС 142 О 3 г НК С НБ05 НБ04 НЗОЗ НЗО2 НЗ01 НЗОО Нд БТАТ ЗТАТ БТАТ ЗТАТ ЗТАТ ЗТАТ ЗТАТ БТАТ а) !ОЗ О (адрес 15Н), чтение в кадре О, запись в кадре 15 3 2 1 О Т! ОЧЕ Т2 ОЧГ ЯЧТЕ 3 БРУТЕ 2 ЗЧК'ТГ 1 3'ЙТТГ О 6) 105 1 (адрес ! ОН) чтение в кадре О запись в кадре 15 3 2 1 О 5 4 НБО 1 ЕЧ НЗО О ЕЧ НЗО 5 ЕЧ НЗО 3 ЕЧ НБО 2 ЕЧ Т2 ЕЗТ ЕЧ НЗО 4 ЕЧ в) 1ОБ 2 (адоес 17Н), чтение в квасе О, запись в кадое ! 5 Рис.
1.66. Форматы регистров состояния 1ОЗО, 1, 2 Операции переключения выводов могут использоваться для установки необходимых управляющих сигналов на выходах НБОх, формирования импульсов заданной длительности и полярности или импульсных последовательностей требуемой частоты и скважности. Импульсы образуются при записи в САМ двух команд, выполняющих в заданные моменты времени перекл!очение одного и того же вывода НБОх в противоположных направлениях. Для получения импульсной последовательности необходимо использовать таймер 2 и выполнять команду сброса этого таймера после формирования каждого очередного импульса.