close

Вход

Забыли?

вход по аккаунту

?

OMEVM 1

код для вставкиСкачать
МИКРОПРОЦЕССОРНЫЕ УСТРОЙСТВА
Применение однокристальной микроЭВМ (ОМЭВМ)
типа К1816ВЕ751
Введение
Данные методические указания содержат необходимые рекомендации для проектирования микропроцессорных систем автоматики и управления с использованием однокристальной микроЭВМ (ОМЭВМ) типа К1816ВЕ751.
Рассмотрены архитектура ОМЭВМ, особенности использования ее параллельных и последовательного портов ввода-вывода, таймеров-счетчиков внешних событий, системы прерываний.
Приведены основные сведения о способах адресации, системе команд и особенностях программирования микропроцессорных систем на базе данной ОМЭВМ.
Рассмотрены примеры построения микропроцессорных систем на основе рассмотренной ОМЭВМ.
1. Общая характеристика ОМЭВМ К1816ВЕ751
Восьмиразрядные высокопроизводительные однокристальные микроЭВМ (ОМЭВМ) семейства МК51 выполнены по высококачественной n-МОП технологии (серия 1816) и КМОП технологии (серия 1830).
Использование ОМЭВМ семейства МК51 по сравнению с МК48 обеспечивает увеличение объема памяти команд и памяти данных. Новые возможности ввода-вывода и периферийных устройств расширяют диапазон применения и снижают общие затраты системы. В зависимости от условий использования, быстродействие системы увеличивается минимум в два с половиной раза и максимум в десять раз [1].
Семейство МК51 включает пять модификаций ОМЭВМ (имеющих идентичные основные характеристики), основное различие между которыми состоит в реализации памяти программ и мощности потребления.
ОМЭВМ КР1816ВЕ51 и КР1830ВЕ51 содержат масочно-программируемое в процессе изготовления кристалла ПЗУ памяти программ емкостью 4096 байт и рассчитаны на применение в массовой продукции. За счет использования внешних микросхем памяти общий объем памяти программ может быть расширен до 64 Кбайт.
ОМЭВМ КМ1816ВЕ751 содержит ППЗУ емкостью 4096 байт со стиранием ультрафиолетовым излучением и удобна на этапе разработки системы при отладке программ, а также при производстве небольшими партиями или при создании систем, требующих в процессе эксплуатации периодической подстройки. За счет использования внешних микросхем памяти общий объем памяти программ может быть расширен до 64 Кбайт.
ОМЭВМ КР1816ВЕ31 и КР1830ВЕ31 не содержат встроенной памяти программ, однако могут использовать до 64 Кбайт внешней постоянной или перепрограммируемой памяти программ и эффективно использоваться в системах, требующих существенно большего по объему (чем 4 Кбайт на кристалле) ПЗУ памяти программ.
Каждая из перечисленных выше микросхем является соответственно аналогом БИС 8051, 80С51, 8751, 8031, 80С31 семейства MCS-51 фирмы Intel (США).
Сравнительные данные микросхем приведены в таблице 1.
Каждая ОМЭВМ рассматриваемого семейства содержит встроенное ОЗУ памяти данных емкостью 128 байт с возможностью расширения общего объема оперативной памяти данных за счет использования внешних микросхем ЗУПВ объемом 64 Кбайт.
Общий объем памяти ОМЭВМ семейства МК51 может составлять 64 Кбайт памяти программ, 64 Кбайт внешней памяти данных, 128 байт внутренней памяти данных плюс регистры специальных функций.
При разработке на базе ОМЭВМ более сложных систем могут быть использованы стандартные ИС с байтовой организацией, например, серии КР580. В дальнейшем обозначение "МК51" будет общим для всех моделей семейства, за исключением случаев, которые будут оговорены особо.
ОМЭВМ содержат все узлы, необходимые для автономной работы:
1. Центральный восьмиразрядный процессор;
2. Память программ объемом 4 Кбайт (только КМ1816ВЕ751, КР1816ВЕ51 и КР1830ВЕ51);
3. Память данных объемом 128 байт;
4. Четыре восьмиразрядных программируемых канала ввода-вывода;
5. Два 16-битовых многорежимных таймера/счетчика;
6. Систему прерываний с пятью векторами и двумя уровнями приоритетов;
7. Последовательный интерфейс;
8. Тактовый генератор.
Система команд ОМЭВМ содержит 111 базовых команд с форматом 1, 2 или 3 байта.
Таблица 1 - Сравнительные данные микросхем семейства МК51
МикросхемыАналогОбъем внутренней памяти программ, байтТип памяти программОбъем внутренней памяти данных, байтМаксимальная частота следования тактовых сигналов, МГцТок потребления,
мАКР1816ВЕ31
КР1816ВЕ51
КМ1816ВЕ751
КР1830ВЕ31
КР1830ВЕ518031АН
8051АН
8751Н
80С31ВН
80С51ВН-
4К
4К
-
4КВнешн.
ПЗУ
ППЗУ
Внешн.
ПЗУ128
128
128
128
12812,0
12,0
12,0
12,0
12,0150,0
150,0
220,0
18,0
18,0 ОМЭВМ также имеет:
- 32 РОНа (регистра общего назначения);
- 128 определяемых пользователем программно-управляемых флагов;
- набор регистров специальных функций, часть которых допускает побитовую адресацию.
РОНы и определяемые пользователем программно-управляемые флаги расположены в адресном пространстве внутреннего ОЗУ данных. Регистры специальных функций (SFR, SPECIAL FUNCTION REGISTERS) с указанием их адресов приведены в таблице 2.
Таблица 2 - Регистры специальных функций
ОбозначениеНаименованиеАдрес * ACCАккумулятор0E0H * BРегистр В0F0H * PSWРегистр состояния программы0D0HSPУказатель стека 81HDPTRУказатель данных. 2 байта:DPLМладший байт82HDPHСтарший байт83Н * P0Порт 080H * P1Порт 190H * P2Порт 20A0H * P3Порт 30B0H * IPРегистр приоритетов прерываний0B8H * IEРегистр разрешения прерываний0A8HTMODРегистр режимов таймера/счетчика89H * TCONРегистр управления таймера/счетчика88HTH0Таймер/счетчик 0 (старший байт)8CHTL0Таймер/счетчик 0 (младший байт)8AHTH1Таймер/счетчик 1 (старший байт)8DHTL1Таймер/счетчик 1 (младший байт)8BH * SCONУправление последовательным портом98HSBUFБуфер последовательного порта99HPCONУправление энергопотреблением87H
* - регистры, допускающие побитовую адресацию.
Ниже кратко описываются функции регистров, приведенных в таблице 2. Подробно эти регистры рассматриваются в соответствующих разделах настоящего описания.
Аккумулятор. АСС - регистр аккумулятора. Команды, предназначенные для работы с аккумулятором, используют его имя "А", например, MOV A, P2. Имя "АСС" используется, к примеру, при побитовой адресации аккумулятора. Так, символическое имя пятого бита аккумулятора при использовании ассемблера ASM51 будет следующим: АСС. 5.
Регистр В. Используется во время операций умножения и деления. Для других инструкций регистр В может рассматриваться как дополнительный регистр внутренней сверхоперативной памяти (СОЗУ).
Регистр состояния программы. Регистр PSW содержит информацию о состоянии программы. Формат регистра PSW (ССП) приведен в таблице 3.
Таблица 3 - Формат регистра ССП
ПозицияСимволИмя и назначениеPSW.7CФлаг переноса. Устанавливается и сбрасывается аппаратурными средствами при выполнении арифметических и логических операций. Программно доступен.PSW.6ACФлаг вспомогательного переноса. Устанавливается и сбрасывается аппаратурными средствами при выполнении команд сложения и вычитания и сигнализирует о переносе или заеме в бите 3 (считая младший бит нулевым). Программно доступен.PSW.5F0Флаг F0. Может быть установлен, сброшен или проверен программой как флаг, специфируемый пользователем.PSW.4RS1Выбор банка регистров. Устанавливается и сбрасываетсяPSW.3RS0программой для выбора рабочего банка регистров (см. рисунок 5).PSW.2OVФлаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций. Программно доступен.PSW.1-Не используется.PSW.0PФлаг приоритета. Устанавливается и сбрасывается аппаратурно в каждом цикле команды и фиксирует нечетное/четное (1/0) число единичных бит в аккумуляторе, т. е. выполняет контроль по четности. Указатель стека SP. 8-битовый регистр, содержимое которого инкрементируется перед записью данных в стек при выполнении команд PUSH и CALL. При начальном сбросе указатель стека устанавливается в 07Н, а область стека в ОЗУ данных начинается с адреса 08Н. При необходимости путем переопределения указателя стека область стека может быть расположена в любом месте внутреннего ОЗУ данных микроЭВМ.
Указатель данных. Указатель данных (DPTR) состоит из старшего байта (DPH) и младшего байта (DPL). Содержит 16-битовый адрес при обращении к внешней памяти. Может использоваться как 16-битовый регистр или как два независимых восьмибитовых регистра.
Порт 0 - Порт 3. Регистрами специальных функций Р0, Р1, Р2, Р3 являются регистры - "защелки" соответственно портов Р0, Р1, Р2, Р3.
Буфер последовательного порта. SBUF представляет собой два отдельных регистра: буфер передатчика и буфер приемника. Когда данные записываются в SBUF, они поступают в буфер передатчика, причем запись байта в SBUF автоматически инициирует его передачу через последовательный порт. Когда данные читаются из SBUF, они выбираются из буфера приемника.
Регистры таймера. Регистровые пары (TH0, TL0) и (TH1, TL1) образуют 16-битовые регистры - счетчики соответственно таймера / счетчика 0 и таймера / счетчика 1.
Регистры управления. Регистры специальных функций IP, IЕ, TMOD, TCON, SCON и PCON содержат биты управления и биты состояния системы прерываний, таймеров / счетчиков, последовательного порта, схемы управления потреблением энергии от источника питания.
ОМЭВМ при функционировании обеспечивает:
- минимальное время выполнения команд сложения - 1 мкс (при fтакт = 12 МГц);
- аппаратное умножение и деление с минимальным временем выполнения команд умножения / деления - 4 мкс (при fтакт = 12 МГц).
В ОМЭВМ предусмотрена возможность задания частоты внутреннего генератора с помощью кварца, LC-цепочки или внешнего генератора.
Архитектура семейства МК51 несмотря на то, что она основана на архитектуре семейства МК48, все же не является полностью совместимой с ней. В новом семействе имеется ряд новых режимов адресации, дополнительные инструкции, расширенное адресное пространство и ряд других аппаратных отличий. Расширенная система команд обеспечивает побайтовую и побитовую адресацию, двоичную и двоично-десятичную арифметику, индикацию переполнения и определения четности / нечетности, возможность реализации логического процессора.
Важнейшей и отличительной чертой архитектуры семейства МК51 является то, что АЛУ может наряду с выполнением операций над 8-разрядными типами данных манипулировать одноразрядными данными. Отдельные программно-доступные биты могут быть установлены, сброшены или заменены их дополнением, могут пересылаться, проверяться и использоваться в логических вычислениях. Тогда как поддержка простых типов данных (при существующей тенденции к увеличению длины слова) может с первого взгляда показаться шагом назад, это качество делает микроЭВМ семейства МК51 особенно удобными для применений, в которых используются контроллеры. Алгоритмы работы последних по своей сути предполагают наличие входных и выходных булевых переменных, которые сложно реализовать при помощи стандартных микропроцессоров. Все эти свойства в целом называются булевым процессором семейства МК51. Благодаря такому мощному АЛУ набор инструкций микро ЭВМ семейства МК51 одинаково хорошо подходит как для управления в реальном масштабе времени, так и для реализации алгоритмов с большим объемом данных.
2. Условное графическое обозначение ОМЭВМ К1816ВЕ751
и назначение ее отдельных выводов
Микросхемы семейства КМ1816ВЕ751 конструктивно выполнены в металлокерамическом корпусе типа 2123.40-6 с прозрачной для ультрафиолетового излучения крышкой. Остальные рассматриваемые в данном описании ОМЭВМ семейства МК51 конструктивно выполнены в пластмассовых корпусах типа 2123.40-2 [1]. Условное графическое обозначение микросхем на электрических схемах показано на рисунке 1, а назначение выводов приведено в таблице 4.
Рисунок 1 - Условное графическое обозначение ОМЭВМ на электрических схемах
Таблица 4 - Назначение выводов ОМЭВМ
N выводаОбозн.НазначениеТип1-8Р1.0 - Р1.78-разрядный двунаправленный порт Р1. Вход адреса А0 - А7 при проверке внутреннего ПЗУ (РПЗУ)вход / выход9/ VPD
(/ РП)Сигнал общего сброса Вывод резервного питания ОЗУ от внешнего источника (для 1816)вход10-17Р3.0 - Р3.78-разрядный двунаправленный порт Р3. с дополнительными функциями:вход / выход
Р3.0Последовательные данные приемника - RxDвход
Р3.1Последовательные данные передатчика - ТxDвыход
Р3.2Вход внешнего прерывания 0- вход
Р3.3Вход внешнего прерывания 1- вход
Р3.4Вход таймера/счетчика 0: - Т0вход
Р3.5Вход таймера/счетчика 1: - Т1вход
Р3.6Выход стробирующего сигнала при записи во внешнюю память данных:
- выход
Р3.7Выход стробирующего сигнала при чтении из внешней памяти данных
- выход18
19BQ2
BQ1Выводы для подключения кварцевого резонаторавыход
вход200 ВОбщий вывод
21-28Р2.0 - Р2.78-разрядный двунаправленный порт Р2. Выход адреса А8 - А15 в режиме работы с внешней памятью В режиме проверки внутреннего ПЗУ выводы Р2.0 - Р2.3 используются как вход адреса А8 - А11 Вывод Р2.7 - разрешение чтения ПЗУ: - (входной)вход / выход29РМЕ (РВПП)Разрешение внешней программной памяти (активный сигнал - логический 0)выход30ALE / (САВП / )Выходной сигнал разрешения фиксации адреса. При программировании РПЗУ сигнал: - (входной)вход / выход31 / VPR
( / НПР)Блокировка работы с внутренней памятью программ. При программировании РПЗУ подается сигнал UPRвход32-39Р0.7 - Р0.08-разрядный двунаправленный порт Р0. Шина адреса / данных при работе с внешней памятью. Выход данных D7 - D0 в режиме проверки внутреннего ПЗУ (РПЗУ)вход / выход40UCCВывод питания от источника напряжения +5 Ввход
3. Структура ОМЭВМ К1816ВЕ751 и ее описание
Структура ОМЭВМ приведена на рисунке 2.
Рисунок 2 - Структурная схема ОМЭВМ ВЕ751
ОМЭВМ состоит из следующих основных функциональных узлов: блока управления и синхронизации; блока арифметико-логического устройства (АЛУ); резидентной памяти данных (РПД) объемом 128 байт; резидентной памяти программ (РПП) объемом 4 Кбайт; блока прерываний, таймеров и последовательного порта; четырех программируемых параллельных портов ввода-вывода; схемы десятичной коррекции содержимого аккумулятора (СДКА); внутреннего генератора тактовых импульсов (OSC); резидентной шины данных (РШД) и группы регистров:
А - аккумулятор;
В - регистр расширения аккумулятора;
Т1, Т2 - регистры временного хранения операндов;
ССП (PSW) - регистр состояния программы (флагов);
РК (IR) - регистр команд;
СК (PC) - счетчик команд (программный счетчик);
РУД (DPTR) - регистр-указатель данных, состоящий из 2-х частей: младшей - DPL и старшей - DPH;
РУС (SP) - регистр-указатель стека;
РА (RAR) - регистр адреса;
РРТС (TMOD) - регистр режимов таймеров-счетчиков;
РУСТ (TCON) - регистр управления-статуса таймеров-счетчиков;
РУПП (SCON) - регистр управления приемопередатчиком последовательного порта;
SBUF (буфер ПРМ и буфер ПД) - буферы приемника и передатчика последовательного порта;
РМП (IЕ) - регистр масок прерываний;
РП (IP) - регистр приоритетов прерываний;
РУМ (PCON) - регистр управления мощностью потребления энергии от источника питания.
3.1. Блок управления и синхронизации микроЭВМ
Блок управления и синхронизации предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков ОМЭВМ во всех допустимых режимах ее работы.
В состав блока управления входят: устройство выработки временных интервалов, логика ввода-вывода, регистр команд, дешифратор команд, ПЛМ и логика управления ЭВМ.
Устройство выработки временных интервалов предназначено для формирования и выдачи внутренних синхросигналов состояний, фаз и циклов. Количество машинных циклов определяет продолжительность выполнения команд. Практически все команды ОМЭВМ выполняются за один или два машинных цикла, кроме команд умножения MUL А, В и деления DIV А, В, продолжительность выполнения которых составляет четыре машинных цикла. Машинный цикл имеет фиксированную длительность и содержит шесть состояний S1-S6, каждое из которых состоит из двух временных интервалов, определяемых фазами Р1 и Р2. Длительность фазы равна периоду следования внешнего сигнала BQ, являющегося первичным сигналом синхронизации ОМЭВМ. Сигнал BQ вырабатывается либо встроенным тактовым генератором ОМЭВМ при подключении к ее выводам 18 (BQ2) и 19 (BQ1) кварцевого резонатора или LC-цепочки, либо внешним источником тактовых сигналов.
Схема подключения кварцевого резонатора к выводам BQ2 и BQ1 показана на рисунке 3.
Рисунок 3 - Подключение кварцевого резонатора
Рисунок 4 - Диаграмма формирования машинных циклов ОМЭВМ
Рисунок 4 иллюстрирует формирование машинных циклов в ОМЭВМ. Все машинные циклы одинаковы, состоят из 12 периодов сигнала BQ, начинаются фазой S1 P1 и заканчиваются фазой S6 P2. Дважды за один машинный цикл формируется сигнал ALE, выдаваемый на одноименный вывод. Если, например, внешняя частота fBQ = 12 МГц, то длительность машинного цикла ТМЦ = 1 мкс.
В регистр команд (РК) пересылается из памяти программ код операции очередной выполняемой команды. Дешифратор команд декодирует код операции и идентифицирует тип команды, подлежащей выполнению. После этого из программируемой логической матрицы (ПЛМ) вызывается последовательность управляющих сигналов для выполнения команды.
3.2. Блок арифметико-логического устройства (АЛУ)
АЛУ представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций, а также операций логического сдвига, обнуления, установки и т. п.
Блок АЛУ состоит из регистров временного хранения операндов Т1, Т2, ПЗУ констант, сумматора, дополнительного регистра (регистра В), аккумулятора, регистра состояния программы.
Регистры временного хранения операндов Т1, Т2 - восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Программно не доступны.
ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.
Параллельный восьмиразрядный сумматор представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций сложения, умножения, неравнозначности и др.
Регистр В - восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.
Аккумулятор представляет собой восьмиразрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций или операций пересылки.
Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы. Обозначение разрядов регистра PSW и назначение разрядов приведены соответственно в таблицах 5 и 6.
Таблица 5 - Обозначение разрядов регистра ССП (PSW)
Биты76543210ОбозначениеCYACF0RS1RS00V-Р
Таблица 6 - Назначение отдельных разрядов регистра ССП (PSW)
БитыНаименов.Назначение битовДоступ к биту7CYФлаг переноса. Изменяется во время выполнения некоторых арифметических и логических инструкций.аппаратно или
программно6ACФлаг дополнительного переноса. Аппаратно устанавливается / сбрасывается во время выполнения инструкций сложения или вычитания для указания переноса или заема в бите 3 при образовании младшего полубайта результата (D0-D3).аппаратно или
программно5F0Флаг 0. Флаг состояния, определяемый пользователем.программно4RS1Указатель банка рабочих регистров РПДпрограммно3RS0
Указатель банка рабочих регистров РПДпрограммно
RS1RS0
Банк 0 с адресами (00Н - 07Н)
Банк 1 с адресами (08Н - 0FH)
Банк 2 с адресами (10Н - 17Н)
Банк 3 с адресами (18Н - 1FH)
0
0
1
10
1
0
120VФлаг переполнения. Аппаратно устанавливается/сбрасывается во время выполнения арифметических инструкций для указания состояния
переполненияаппаратно или
программно1-Резервный. Содержит триггер, доступный по записи ("0" и "1") и чтению, который можно использовать
0РБит четности. Аппаратно сбрасывается / устанавливается в каждом цикле инструкций для указания четного / нечетного количества разрядов аккумулятора, находящихся в состоянии "1".аппаратно или
программно 3.3 Резидентная память данных
Память данных предназначена для приема, хранения и выдачи информации, используемой в процессе выполнения программы. Память данных делится на внутреннюю (резидентную)-РПД и внешнюю - ВПД. В состав узла, названного на рисунке 2 РПД, входит ОЗУ емкостью 128 байт и дешифратор адреса. Управляют работой РПД два регистра: РА (RAR) - регистр адреса; РУС (SP) - указатель стека.
Регистр адреса ОЗУ (РА) предназначен для приема и хранения адреса выбираемой с помощью дешифратора ячейки памяти, которая может содержать как бит, так и байт информации.
ОЗУ представляет собой 128 восьмиразрядных регистров, предназначенных для приема, хранения и выдачи различной информации. 16 из этих регистров допускают побитовую адресацию.
На рисунке 5 приведено распределение адресного пространства РПД и область прямоадресуемых бит.
Рисунок 5 - Распределение адресного пространства РПД и область прямоадресуемых бит
Указатель стека представляет собой восьмиразрядный регистр, предназначенный для приема и хранения адреса ячейки стека. При выполнении команд LCALL, ACALL содержимое указателя стека увеличивается на 2. При выполнении команд RET, RETI содержимое указателя стека уменьшается на 2. При выполнении команды PUSH direct содержимое указателя стека увеличивается на 1. При выполнении команды POP direct содержимое указателя стека уменьшается на 1. После сброса в указателе стека устанавливается адрес 07Н, что соответствует началу стека с адресом 08Н.
Более подробно организация памяти данных микропроцессорных систем, использующих данную ОМЭВМ, рассмотрена в разделе 4.6.
3.4 Резидентная память программ
Память программ предназначена для хранения программ и имеет отдельное от памяти данных адресное пространство объемом до 64 Кбайт, причем, для микросхем КР1816ВЕ51, КМ1816ВЕ751 и для КР1830ВЕ51 часть памяти программ с адресами 0000Н - 0FFFH расположена на кристалле ОМЭВМ. Память программ, расположенная на кристалле (РПП), состоит из 12-разрядного дешифратора и ПЗУ емкостью 4К*8 бит для микросхем КР1816ВЕ51, КР1830ВЕ51 или ППЗУ с ультрафиолетовым стиранием емкостью 4К*8 бит для КМ1816ВЕ751. Запись программ в ПЗУ происходит во время изготовления кристаллов.
Если на вывод ОМЭВМ DEMA (ОРПП) подано напряжение питания UСС (логическая 1), то обращение к внешней памяти программ происходит автоматически при выработке счетчиком команд адреса, превышающего 0FFFH. Если адрес находится в пределах 0000Н-0FFFH, обращение происходит к памяти программ, расположенной на кристалле (резидентной памяти программ).
Если на вывод ОМЭВМ DEMA (ОРПП) подан "0", внутренняя память программ отключается, и, начиная с адреса 0000Н, все обращения выполняются к внешней памяти программ.
Для формирования текущего 16-разрядного адреса памяти программ служит счетчик команд (программный счетчик) - СК (РС). 12 младших разрядов этого регистра используются при адресации ячеек РПП объемом 212 = 4 Кбайт.
Более подробно организация памяти программ микропроцессорных систем, использующих данную ОМЭВМ, рассмотрена в разделе 4.6.
3.5 Блок прерываний
ОМЭВМ имеет систему прерываний с пятью векторами (адресами подпрограмм обработки прерываний) и двумя уровнями приоритетов. Источниками прерываний являются: два внешних прерывания, поступающие через порт 3; два прерывания от переполнения таймеров - счетчиков Т/СNT 0 и T/CNT 1 и прерывание при завершении передачи или приема данных при обмене через последовательный порт.
Для программирования и управления работой системы прерываний служат два регистра: РМП (IE) - регистр масок прерываний и РП (IP) - регистр приоритетов прерываний, а также четыре младших бита регистра РУСТ (TCON), см. таблицу 12, 13.
Регистр приоритетов прерываний (IP) предназначен для установки уровня приоритета прерывания для каждого из пяти источников прерываний. Обозначение разрядов регистра IP показано в таблице 7, а их назначение указано ниже.
РХ0 - установка уровня приоритета прерывания от внешнего источника .
РТ0 - установка уровня приоритета прерывания от Т/С 0.
РХ1 - установка уровня приоритета прерывания от внешнего источника .
РТ1 - установка уровня приоритета прерывания от Т/С 1.
PS - установка уровня приоритета прерывания от последовательного порта.
Х - резервный разряд.
Таблица 7 - Обозначение разрядов регистра IP
Биты76543210ОбозначениеХХХPSРТ1РХ1РТ0РХ0 Наличие в разряде IP "1" устанавливает для соответствующего источника высокий уровень приоритета, а наличие в разряде IP "0" - низкий уровень приоритета. При чтении резервных разрядов соответствующие линии магистрали данных не определены. Пользователь не должен записывать "1" в резервные разряды, т. к. они зарезервированы под дальнейшее расширение семейства МК51.
Регистр разрешения прерываний (IE) предназначен для разрешения или запрета прерываний от соответствующих источников. Обозначение разрядов регистра IE показано в таблице 8, а их назначение указано ниже.
Таблица 8 - Обозначение разрядов регистра IE
Биты76543210ОбозначениеЕАXXESЕТ1ЕХ1ЕТ0ЕХ0 ЕА - управление всеми источниками прерываний одновременно. Если ЕА = 0, то прерывания запрещены. Если ЕА = 1, то прерывания могут быть разрешены индивидуальными разрешениями ЕХ0, ЕТ0, ЕХ1, ЕТ1, ES.
Х - резервный разряд.
ES - управление прерыванием от последовательного порта. ES = 1 - разрешение. ES = 0 - запрет.
ЕТ1 - управление прерыванием от Т/С 1. ЕТ1 = 1 - разрешение. ЕТ1 = 0 - запрет.
ЕХ1 - управление прерыванием от внешнего источника . ЕХ1 = 1 - разрешение. ЕХ1 = 0 - запрет .
ЕТ0 - управление прерыванием от Т/С 0. ЕТ0 = 1 - разрешение. ЕТ0 = 0 - запрет.
ЕХ0 - управление прерыванием от внешнего источника . ЕХ0 = 1 - разрешение. ЕХ0 = 0 - запрет.
При чтении резервных разрядов соответствующие линии магистрали не определены. Пользователь не должен записывать "1" в резервные разряды, т. к. они зарезервированы под дальнейшее расширение семейства МК51.
Блок прерываний содержит также схему логической обработки флагов прерываний, которая осуществляет приоритетный выбор запроса прерывания, сброс его флага и инициирует выработку аппаратно реализованной команды перехода на подпрограмму обслуживания прерывания LCALL.
Схема выработки вектора прерывания формирует двухбайтовые адреса подпрограмм обслуживания прерывания в зависимости от источника прерывания, которые приведены в таблице 9.
Таблица 9 - Источники прерываний и адреса обслуживающих их подпрограмм
Источник прерыванияВектор прерыванияВнешнее прерывание 0003НТаймер / счетчик Т/С 0000ВНВнешнее прерывание 0013НТаймер / счетчик Т/С 1001ВНПоследовательный порт0023Н Более подробно система прерываний описана в разделе 4.4.
3.6. Блок таймеров - счетчиков
Таймеры - счетчики (Т/С) предназначены для подсчета внешних событий, для получения программно управляемых временных задержек и выполнения времязадающих функций ОМЭВМ.
В состав блока Т/С входят:
1) два 16-разрядных регистра Т/С 0 и Т/С 1;
2) восьмиразрядный регистр режимов Т/С (TMOD);
3) восьмиразрядный регистр управления (TCON);
4) схема инкремента;
5) схема фиксации , , Т0, Т1;
6) схема управления флагами;
7) логика управления Т/С.
Два 16-разрядных регистра Т/С 0 и Т/С 1 выполняют функцию хранения содержимого счета. Каждый из них состоит из пары восьмиразрядных регистров, соответственно ТН0, TL0 и ТН1, TL1. Причем регистры ТН0, ТН1 - старшие, а регистры TL0, TL1 - младшие 8 разрядов. Каждый из восьмиразрядных регистров имеет свой адрес и может быть использован как РОН, если Т/С не используются (бит TR0 для Т/С 0 и бит TR1 для Т/С 1 в регистре управления TCON равны "0").
Код величины начального счета заносится в регистры Т/С программно. В процессе счета содержимое регистров Т/С инкрементируется. Признаком окончания счета, как правило, является переполнение регистра Т/С, т. е. переход его содержимого из состояния "все единицы" в состояние "все нули". Все регистры ТН0, ТН1, TL0, TL1 доступны по чтению, и, при необходимости, контроль достижения требуемой величины счета может выполняться программно.
Регистр режимов Т/С (TMOD) предназначен для приема и хранения кода, определяющего:
- один из 4-х возможных режимов работы каждого Т/С;
- работу в качестве таймеров или счетчиков;
- управление Т/С от внешнего вывода.
Обозначение разрядов регистра TMOD приведено в таблице 10, а назначение разрядов - в таблице 11.
Таблица 10 - Обозначение разрядов регистра TMOD
Биты76543210Обозн.GATE1Ml.1М0.1GATE0М1.0М0.0 Таблица 11 - Назначение разрядов регистра TMOD
БитыНаименованиеНазначение битовПримечание0-1
4-5М0 - М1Определяют один из 4-х режимов работы, отдельно для Т/С 1 и Т/С 0
Все биты устанавливаются программно; биты 0-3 определяют режим работы Т/С 0, биты 4-7 определяют режим работы Т/С 1.М1М0Режим0000111021132, 6С/Т 0
С/Т 1Определяют работу в качестве:
С/Т 0, С/Т 1 = 0 - таймера
С/Т 0, С/Т 1 = 1 - счетчика
3, 7GATEРазрешает управлять таймером от внешнего вывода ( - для Т/С 0, - для Т/С 1).
GATE = 0 - управление запрещено GATE = 1 - управление разрешено
При работе в качестве таймера содержимое регистра Т/С инкрементируется в каждом машинном цикле, т. е. Т/С является счетчиком машинных циклов ОМЭВМ. Поскольку машинный цикл состоит из 12 периодов частоты синхронизации ОМЭВМ fBQ, то частота счета в данном случае равна fBQ / 12.
При работе Т/С в качестве счетчика внешних событий содержимое регистра Т/С инкрементируется в ответ на переход из "1" в "0" сигнала на счетном входе ОМЭВМ (вывод Т0 для Т/С 0 и вывод Т1 для Т/С 1). Счетные входы аппаратно проверяются в фазе S5P2 каждого машинного цикла. Когда проверки показывают высокий уровень на счетном входе в одном машинном цикле и низкий уровень в другом машинном цикле, регистр Т/С инкрементируется. Новое (инкрементированное) значение заносится в регистр Т/С в фазе S3P1 машинного цикла, непосредственно следующего за тем, в котором был обнаружен переход из "1" в "0" на счетном входе ОМЭВМ. Т. к. для распознавания такого перехода требуется два машинных цикла (24 периода частоты синхронизации ОМЭВМ fBQ), то максимальная частота счета Т/С в режиме счетчика равна fBQ / 24.
Чтобы уровень сигнала на счетном входе был гарантировано зафиксирован, он должен оставаться неизменным в течение как минимум одного машинного цикла.
Регистр управления (TCON) предназначен для приема и хранения кода управляющего слова. Обозначение разрядов регистра TCON приведено в таблице 12, а назначение разрядов - в таблице 13.
Таблица 12 - Обозначение разрядов регистра TCON
Биты76543210ОбозначениеTF1TR1TF0TR0IE1IT1IE0IT0 Таблица 13 - Назначение разрядов регистра TCON
БитыНаименованиеНазначение битовПримечание6
4TR1
TR0Биты включения Т/С, отдельно для Т/С 0 и Т/С 1.
TR = 0 - выключен,
TR = 1 - включен.Биты устанавливаются и сбрасываются программно. Доступны по чтению.7
5TF1
TF0Флаги переполнения Т/С.Биты сбрасываются и устанавливаются аппаратно и программно. Доступны по чтению.2
0IT1
IT0Биты, определяющие вид прерывания по входам INT1, INT0.
IT = 0 - прерывание по уровню (низкому),
IT = 1 - прерывание по фронту (переход из "1" в "0")Биты устанавливаются и сбрасываются программно. Доступны по чтению3
1IE1
IE0Флаги запроса внешних прерываний по входам INT1, INT0.Биты сбрасываются и устанавливаются аппаратно и программно Доступны по чтению
Биты 4, 5 относятся к Т/С 0; биты 6, 7 - к Т/С 1.
Биты 0, 1 определяют внешние прерывания по входу INT0, биты 2, 3 - по входу INT1. Флаги переполнения TF0 и TF1 устанавливаются аппаратно при переполнении соответствующих Т/С (переход Т/С из состояния "все единицы" в состояние "все нули"). Если при этом прерывание от соответствующего Т/С разрешено, то установка флага TF вызовет прерывание. Флаги TF0 и TF1 сбрасываются аппаратно при передаче управления программе обработки соответствующего прерывания.
Флаги TF0 и TF1 программно доступны и могут быть установлены / сброшены программой. Используя этот механизм, прерывания по TF0 и TF1 могут быть вызваны (установка TF) и отменены (сброс TF) программой.
Флаги IE0 и IE1 устанавливаются аппаратно от внешних прерываний (соответственно входы ОМЭВМ INT0 и INT1) или программно и инициируют вызов программы обработки соответствующего прерывания. Сброс этих флагов выполняется аппаратно при обслуживании прерывания только в том случае, когда прерывание было вызвано по фронту сигнала. Если прерывание было вызвано уровнем сигнала на входе INT0 (INT1), то сброс флага IE должна выполнять программа обслуживания прерывания, воздействуя на источник прерывания для снятия им запроса.
Схема инкремента предназначена:
- для увеличения на 1 в каждом машинном цикле содержимого регистров Т/С 0, Т/С 1, для которых установлен режим таймера и счет разрешен;
- для увеличения на 1 содержимого регистров Т/С 0, Т/С 1, для которых установлен режим счетчика, счет разрешен и на соответствующем входе ОМЭВМ (Т0 для Т/С 0 и Т1 для Т/С 1) зафиксирован счетный импульс.
Схема фиксации INT0, INT1, Т0, Т1 представляет собой четыре триггера В каждом машинном цикле в момент S5P2 в них запоминается информация с выводов ОМЭВМ INT0, INT1, Т0, Т1.
Схема управления флагами вырабатывает и снимает флаги переполнения Т/С и флаги запросов внешних прерываний.
Логика управления Т/С синхронизирует работу регистров Т/С 0 и Т/С 1 в соответствии с запрограммированными режимами работы и синхронизирует работу блока Т/С с работой
ОМЭВМ.
Более подробно режимы работы и особенности применения таймеров - счетчиков рассмотрены в разделе 4.1.
3.7. Блок последовательного порта (интерфейса)
Блок последовательного интерфейса предназначен для организации ввода-вывода последовательных данных.
В состав блока входят: буфер интерфейса, логика управления интерфейсом, регистр управления, буфер передатчика, буфер приемника, приемник - передатчик последовательного порта.
Буфер интерфейса обеспечивает побайтовый обмен информацией между внутренней (резидентной) магистралью данных и шиной интерфейса.
Логика управления интерфейсом предназначена для выработки сигналов управления, обеспечивающих четыре режима работы последовательного интерфейса.
Регистр управления (SCON) предназначен для приема и хранения кода восьмибитового слова, управляющего последовательным интерфейсом. Обозначение разрядов регистра SCON приведено в таблице 14. Все разряды регистра SCON программно доступны по записи ("0" и "1") и чтению.
Разряды SM0, SM1 определяют режим работы интерфейса, как указано в таблице 15.
Таблица 14 - Обозначение разрядов регистра SCON
Биты76543210ОбозначениеSM0SM1SM2RENТВ8RB8TIRI Таблица 15 - Влияние разрядов SM0, SM1 SCON на режим работы интерфейса
SM0SM1РежимНаименованиеСкорость передачи000Сдвиговый регистрfBQ / 120118-битовый универсальный асинхронный приемник / передатчик (УАПП)переменная, задается
Т/С 11029-битовый УАППfBQ / 64 или fBQ / 321139-битовый УАППпеременная, задается
Т/С 1 Остальные биты регистра имеют следующее назначение:
SM2 - разрешение многопроцессорной работы. В режимах 2 и 3 при SM2 = 1 флаг RI не активизируется, если девятый принятый бит данных равен "0". В режиме 1 при SM2 = 1 флаг RI не активизируется, если не принят стоп-бит, равный "1". В режиме 0 бит SM2 должен быть установлен в "0".
REN - разрешение приема последовательных данных. Устанавливается и сбрасывается программой соответственно для разрешения и запрета приема.
ТВ8 - девятый бит передаваемых данных в режимах 2 и 3. Устанавливается и сбрасывается программой.
RB8 - девятый бит принятых данных в режимах 2 и 3. В режиме 1, если SM2 = 0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется.
TI - флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в других режимах. Сбрасывается программно.
RI - флаг прерывания приемника. Устанавливается аппаратно в конце времени приема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 при SM2 = 0. При SM2 = 1 см. описание для бита SM2.
Буфер передатчика предназначен для приема с шины интерфейса параллельных данных и выдачи их на передатчик последовательного порта.
Буфер приемника служит для приема данных в параллельной форме от приемника последовательного интерфейса.
Буфер приемника и буфер передатчика при программном доступе имеют одинаковое имя (SBUF) и адрес (99Н). Если команда использует SBUF как регистр источника, то обращение происходит к буферу приемника. Если команда использует SBUF как регистр назначения, то обращение происходит к буферу передатчика.
Во всех режимах работы последовательного порта передача инициируется любой командой, которая использует SBUF как регистр назначения. Приемник / передатчик последовательного порта предназначен для приема последовательного потока символов с входа последовательного порта, выделения данных и выдачи их в буфер приемника, а также для приема параллельных данных с буфера передатчика, преобразования их в последовательный поток символов и выдачи его на выход последовательного порта.
Более подробно режимы работы и особенности применения последовательного интерфейса рассмотрены в разделе 4.3.
3.8. Параллельные порты ввода-вывода
Рассматриваемая ОМЭВМ содержит 4 параллельных 8-разрядных программируемых порта ввода-вывода дискретной информации P0, P1, P2, P3.
Порты Р0, Р1, Р2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией ОМЭВМ с внешними устройствами, образуя 32 линии ввода-вывода. Каждый из портов содержит фиксатор-защелку, который представляет собой восьмиразрядный регистр, имеющий байтовую и битовую адресацию для установки / сброса его разрядов с помощью соответствующих команд.
Физические адреса фиксаторов Р0, Р1, Р2, Р3 составляют для:
Р0 - 80Н, при битовой адресации 80Н - 87Н;
Р1 - 90Н, при битовой адресации 90Н - 97Н;
Р2 - А0Н, при битовой адресации А0Н - А7Н;
Р3 - В0Н, при битовой адресации В0Н - В7Н.
Помимо работы в качестве обычных портов ввода/вывода линии портов Р0 - РЗ могут выполнять ряд дополнительных функций, описанных ниже.
Через порт Р0:
- выводится младший байт адреса А0 - А7 при работе с внешней памятью программ и внешней памятью данных;
- выдается из ОМЭВМ и принимается в ОМЭВМ байт данных при работе с внешней памятью (при этом обмен байтом данных и вывод младшего байта адреса внешней памяти мультиплексированы во времени);
- задаются данные при программировании внутреннего ППЗУ, и читается содержимое внутренней памяти программ.
Через порт Р1:
- задается младший байт адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.
Через порт Р2:
- выводится старший байт адреса А8 - А15 при работе с внешней памятью программ и внешней памятью данных (для внешней памяти данных - только при использовании команд МОVХ А, @DРТR и МОVХ @DРТR, А, которые вырабатывают 16-разрядный адрес);
- задаются старшие разряды (А8 - А11) адреса при программировании внутреннего ППЗУ и при чтении внутренней памяти программ.
Каждая линия порта Р3 имеет индивидуальную альтернативную функцию:
Р3.0 - RxD, вход последовательного порта, предназначен для ввода последовательных данных в приемник последовательного порта;
Р3.1 - ТхD, выход последовательного порта, предназначен для вывода последовательных данных из передатчика последовательного порта;
Р3.2 - , используется как вход 0 внешнего запроса прерывания;
Р3.3 - , используется как вход 1 внешнего запроса прерывания;
Р3.4 - Т0, используется как вход счетчика внешних событий Т/С 0;
Р3.5 - Т1, используется как вход счетчика внешних событий Т/С 1;
Р3.6 - , строб записи во внешнюю память данных, выходной сигнал, сопровождающий вывод данных через порт Р0 при использовании команд МОVХ @Ri, А и МОVХ @DРТR, А;
Р3.7 - , строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании команд МОVХ А, @Ri и МОVХ А, @DРТR.
Альтернативная функция любой из линий порта Р3 реализуется только в том случае, если в соответствующем этой линии фиксаторе-защелке содержится "1". В противном случае на линии порта Р3 будет присутствовать "0".
3.9. Схема десятичной коррекции аккумулятора (СДКА)
АЛУ микроЭВМ позволяет выполнять сложение двоично-десятичных данных в упакованном формате (в 1 байт "упакованы" 2 десятичные цифры). При выполнении операции суммирования таких чисел используется команда "Сложение", которая суммирует операнды по правилам двоичной арифметики и результат помещает в аккумулятор. Для исправления возможной ошибки (коррекции содержимого аккумулятора) применяют команду десятичной коррекции DA A, которая аппаратно реализуется схемой десятичной коррекции аккумулятора. 3.10. Внутренний тактовый генератор (OSC)
ОМЭВМ содержит внутренний тактовый генератор (рисунок 6), BQ1 и BQ2 являются соответственно входом и выходом инвертирующего усилителя, который может быть включён в режим генератора при подключении к выводам BQ1 и BQ2 резонатора или LC-цепочки (рисунок 7).
Рисунок 6 - Внутренний тактовый генератор
Рисунок 7 - Подключение к выводам BQ1 и BQ2 резонатора и LC-цепочки
3.11. Резидентная шина данных
МикроЭВМ содержит 8-разрядную внутреннюю (резидентную) шину данных (РШД), через которую осуществляется обмен информацией между различными частями ОМЭВМ.
3.12. Регистры
3.12.1. Аккумулятор - 8-разрядный регистр, предназначенный для приёма и хранения результата, полученного при выполнении арифметических и логических операций или операций пересылки.
3.12.2 Регистр В - 8-разрядный регистр, используемый при выполнении операций умножения и деления. В других случаях он может рассматриваться как дополнительный регистр общего назначения (часть СОЗУ).
3.12.3. Регистры Т1, Т2 - 8-разрядные регистры временного хранения, предназначенные для приёма и хранения операндов на время выполнения операций над ними в АЛУ. Программно недоступны. 3.12.4. Регистр состояния программы (PSW) - служит для хранения информации о результате выполнения операции в АЛУ. Его называют также регистром флагов (признаков). Обозначение отдельных разрядов регистра PSW и назначение разрядов приведены соответственно в таблицах 3,5 и 6.
Флаг переноса СУ может устанавливаться и сбрасываться как аппаратно, так и программно. Аппаратно он устанавливается, если при выполнении арифметических или логических операций формируется перенос / заём в старшем (седьмом) разряде 8-битных операндов. При выполнении операций умножения и деления флаг СУ сбрасывается. Кроме того, флаг СУ выполняет функции "булевого аккумулятора" в командах, работающих с битами.
Флаг вспомогательного переноса АС устанавливается / сбрасывается аппаратно или программно. Аппаратно устанавливается при выполнении операций сложения и вычитания при возникновении переноса/заёма в 3-м разряде при образовании младшей тетрады результата. Чаще всего используется СДКА при выполнении команды DA A.
Флаг пользователя F0 - устанавливается / сбрасывается программно и может использоваться программистом по своему усмотрению.
Флаги-указатели текущего банка РОНов устанавливаются / сбрасываются программно и указывают, какой из 4-х банков РОНов РПД (рисунок 5) в данный момент времени является рабочим (текущим).
Флаг переполнения OV устанавливается / сбрасывается программно или аппаратно. Аппаратно устанавливается тогда, когда при выполнении операции сложения/вычитания над числами со знаком результат не укладывается в диапазон -128 .. +127 и старший, знаковый бит искажается. При выполнении операции деления флаг OV аппаратно сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV аппаратно устанавливается, если результат больше 255.
Флаг чётности (паритета) P устанавливается / сбрасывается аппаратно. Он дополняет содержимое аккумулятора до чётного числа единиц. В 9-разрядном слове, состоящем из 8 разрядов аккумулятора и бита Р, всегда содержится чётное число единичных битов. Все 7 названных флагов программно доступны по чтению.
3.12.5. Регистр команд РК (IR) предназначен для хранения кода операции (КОП) текущей выполняемой команды.
3.12.6. Счётчик команд СК (программный счётчик (РС)) содержит 16-разрядный адрес ячейки памяти программ. В состав счётчика команд входят 16-разрядные буфер PC, регистр PC, схема инкремента, регистр адреса памяти.
Буфер PC осуществляет связь между 8-разрядной РШД и 16-разрядным регистром PC, в котором хранится текущий 16-разрядный адрес памяти программ.
Схема инкремента увеличивает текущее значение 16-разрядного адреса памяти программ на единицу.
Регистр адреса памяти предназначен для записи и хранения исполнительного 16-разрядного адреса памяти программ или 8/16-разрядного адреса внешней памяти данных.
3.12.7. Регистр указатель данных РУД (DPTR) предназначен для хранения 16-разрядного адреса внешней памяти данных. Состоит из двух 8-разядных регистров DPH и DPL, входящих в блок регистров специальных функций (таблица 2). Они программно доступны и могут использоваться в качестве двух независимых РОНов, если нет необходимости в хранении 16-разрядного адреса внешней памяти данных.
3.12.8. Указатель стека (SP) адресует ячейки специальной области памяти данных (РПД), называемой стеком. SP адресует "верхушку" стека - последнюю ячейку стековой памяти, в которую записана информация. Указатель стека представляет собой 8-разрядный регистр, содержимое которого при выполнении команд LCALL, ACALL увеличивается на 2. При выполнении команд RET, RETI содержимое указателя стека уменьшается на 2. При выполнении команды PUSH direct содержимое SP увеличивается на 1, а при выполнении команды POP direct - уменьшается на 1. 3.12.9. Регистр адреса РА (RAR) адресуемой ячейки РШД. Программно не доступен.
3.12.10. Регистры РРТС (TMOD) и РУСТ (TCON) служат для программирования и управления работой таймеров-счётчиков и системы прерываний. Форматы, обозначение и назначение их отдельных разрядов приведены в таблицах 10...13.
3.12.11. Регистр РУПП (SCON), буферы ПД и ПРМ (SBUF) предназначены для программирования и управления работой последовательного интерфейса. Форматы, обозначение и назначение их отдельных разрядов приведены в таблицах 14, 15.
3.12.12. Регистры РМП (IE) и РП (IR) программируют и управляют работой системы прерываний ОМЭВМ. Форматы, обозначение и назначение РМП и РП приведены в таблицах 7, 8.
3.12.13. Регистр управления мощностью РУМ (PCON) служит для программного управления потреблением энергии от источника питания, а также скоростью передачи по последовательному каналу ОМЭВМ. Форматы, обозначение и назначение его отдельных разрядов приведены в таблицах 16, 17.
Более подробно применение этого регистра будет рассмотрено в разделах 4.3; 8.
Таблица 16 - Обозначение разрядов регистра PCON
Биты76543210ОбозначениеSMOD---GF1GF0PDIDL Таблица 17 - Назначение разрядов регистра PCON
БитыНаименов.Назначение битовПримечание7SMODБит удвоения скорости передачи: при установке в "1" - скорость передачи удваивается.При работе последовательного порта6-Резервный5-Резервный4-Резервный3GF1Флаг общего назначения2GF0Флаг общего назначения1PDБит включения режима микропотребления
"1" - режим микропотребленияЕсли в PD и IDL одновременно записана "1", преимущество имеет PD0IDLБит холостого хода
"1" - режим холостого хода
4. Особенности функционирования и применение ОМЭВМ в различных режимах
4.1. Использование таймеров-счётчиков
ОМЭВМ содержит 2 программируемых 16-разрядных таймера-счётчика внешних событий Т/С, которые обозначаются: Т/С0 и Т/С1. Таймеры-счётчики могут программироваться на режим таймера или счётчика внешних событий. В режиме таймера содержимое Т/С инкрементируется в каждом машинном цикле, т.е. с интервалом , где - период частоты внешнего кварцевого резонатора. В режиме счётчика внешних событий Т/С инкрементируются под воздействием перехода из логической 1 в логический 0 внешнего сигнала на входах Т0, Т1 (линии Р3.4, Р3.5). Для распознавания перепада из 1 в 0 требуется не менее двух машинных циклов. В фазе S5 P2 первого МЦ на входе Ti (i = 0,1) фиксируется значение логической 1. В фазе S5 P2 следующего МЦ распознаётся нулевое значение сигнала на входе Ti (т.е. обнаруживается перепад из 1 в 0). В очередном МЦ осуществляется инкремент содержимого Т/С.
Следовательно, минимальный период и максимальная частота следования импульсов на входе Ti, идентифицирующих наступление внешних событий, определяются из выражений
(1)
Для того, чтобы при определении перепада из 1 в 0 логические 1 и 0 на входе Ti были зафиксированы, длительности импульсов и пауз должны удовлетворять соотношениям
(2)
Логически каждый Т/С разбит на 2 части по 8 бит, обозначаемые TH0, TL0 для T/C0 и TH1, TL1 для T/C1. Последние можно использовать как 8-разрядные регистры общего назначения, если предварительно остановить Т/С, сбросив биты TR0 = TR1 = 0 в регистре РУСТ (TCON).
Начальные значения в регистры THi, TLi (i = 0,1) при программировании Т/С записываются произвольно.
Управлять счётом (разрешать / запрещать) можно программно и аппаратно.
Регистры THi и TLi программно доступны по записи и чтению.
При переполнении Т/С в процессе счёта устанавливаются флаги TFi (i = 0,1) в регистре РУСТ (TCON), которые могут вызывать прерывание основной программы или опрашиваться программно.
Для программирования и управления работой Т/С предназначены два регистра: TMOD и TCON. Обозначение и назначение их отдельных разрядов приведены в таблицах 10...13.
Таймеры / счётчики могут работать в одном из 4-х режимов работы: 0, 1, 2 и 3.
4.1.1. Режим 0. Установка битов М0 = 0, М1 = 0 в регистре TMOD настраивает оба таймера на работу в режиме 0. Упрощённая структура Т/С в этом режиме приведена на рисунке 8.
Рисунок 8 - Упрощенная структурная схема таймера/счетчика в режиме 0
Каждый Т/С работает как 13-разрядный счётчик. 5 младших разрядов выполняют функцию предварительного делителя входной частоты на . Значащими в этом режиме являются 5 младших разрядов регистров TLi и 8 разрядов THi. Оба Т/С могут работать как таймеры или счётчики внешних событий в зависимости от значений разрядов в регистре TMOD.
Имеются следующие возможности останова (запрета) и включения (разрешения) счёта:
Программно: 1) сброс/установка битов TRi в TCON при GATEi = 0 или INTi = 1 запрещает / разрешает счёт;
2) установка/сброс бита GATEi в регистре TMOD при TRi = 1 и INTi = 0 запрещает / разрешает счёт.
Аппаратно: нулевой / единичный сигнал на входе INTi при GATEi = 1 и TRi = 1 запрещает/разрешает счёт.
В обоих случаях (при программном и аппаратном управлении) при останове в T/Ci сохраняется текущее значение, а после включения счёт продолжается с этого значения, если во время останова T/Ci не перезагружался программно.
Использование T/Ci для измерения длительности единичного импульса tи.вх на входе INTi. Программно устанавливаем TRi = 1, GATEi = 1, C/Ti = 0. Запрещаем прерывание от поступления активного логического нулевого сигнала на входе INTi. Загружаем в T/Ci начальное значение . До поступления импульса на входе INTi присутствует логический 0 и T/Ci стоит (счёт запрещён).
При поступлении единичного импульса счёт разрешён на время, равное длительности этого импульса. После окончания импульса счёт опять аппаратно запрещается и T/Ci останавливается. По разности чисел в таймере после и до счёта и известной частоте переключения T/Ci
определяем tи.вх.
При переполнении T/Ci (переход содержимого регистра T/C из состояния "все единицы" в состояние "все нули") устанавливаются флаги TFi в регистре TCON.
На выходе первого T/C в момент переполнения вырабатывается короткий импульс, который поступает в блок синхронизации последовательного интерфейса.
4.1.2. Режим 1. Установка битов М0 = 1, М1 = 0 в регистре TMOD настраивает оба таймера на работу в режиме 1. Упрощённая структура T/Ci в этом режиме приведена в [1].
Каждый T/Ci работает как 16-разрядный счётчик. В остальном программирование, работа и применение T/Ci аналогичны режиму 0.
4.1.3. Режим 2. Установка битов М0 = 0, М1 = 1 в регистре TMOD определяет работу T/Ci в режиме 2. Упрощённая структура T/Ci в этом режиме приведена на рисунке 9.
Рисунок 9 - Упрощенная структурная схема таймера/счетчика1 в режиме 2
Каждый T/Ci может работать как автоперезагружаемый 8-разрядный таймер/счётчик. В качестве счётчика используется регистр TLi, а THi содержит программно установленное начальное значение, с которого ведётся счёт. При каждом очередном переполнении TLi устанавливается флаг переполнения TFi и автоматически начальное значение перезагружается из THi в TLi.
На выходе первого T/Ci в этом режиме вырабатывается последовательность прямоугольных импульсов, которая поступает в блок последовательного интерфейса и может использоваться для синхронизации работы последнего.
4.1.4. Режим 3. Установка битов М0 = 1, М1 = 1 определяет режим 3. Упрощённая структура T/C0 в этом режиме дана на рисунке 10.
Рисунок 10 - Упрощенная структурная схема таймера/счетчика0 в режиме 3
Режим 3 имеет ряд особенностей. Если в этом режиме запрограммировать оба таймера, то T/C1 останавливается, а T/C0 работает как 2 независимых 8-разрядных регистра TH0 и TL0.
Устройство на основе регистра TL0 может работать в режиме таймера и в режиме счётчика внешних событий. За ним сохраняются все биты управления T/C0, оно реагирует на воздействие по входам T0 и INT0. При переполнении TL0 устанавливается флаг TF0.
Устройство на основе регистра TH0 может работать только в режиме таймера. Для управления оно использует часть битов, управляющих работой T/C1, который в режиме 3 остановлен. TR1 управляет включением / выключением TH0. При переполнении TH0 устанавливается флаг TF1.
Вторая особенность режима 3 состоит в том, что T/C0 может программироваться в режим 3, а T/C1 - в режим 0, 1или 2. Так как бит TR1 управляет работой TH0, то T/C1 в режимах 0, 1, 2 при GATE1 = 0 всегда включён, а при GATE1 = 1 - выключен. Флаг переполнения TF1 используется TH0, поэтому при переполнении в режимах 0 и 1 T/C1 обнуляется, а в режиме 2 перезагружается, не устанавливая флаг переполнения. Остальные управляющие биты и сигналы T/C1 используются аналогично режимам 0, 1, 2.
T/C1 аппаратно связан с блоком синхронизации последовательного интерфейса. При работе в режимах 0, 1, 2 при переполнении T/C1 всегда вырабатывает тактовый импульс, поступающий в интерфейс. Поэтому режим 3 для T/C0 удобно применять когда:
1. Требуется работа двух 8-разрядных таймеров (TH0, TL0) и формирование тактовых импульсов для
последовательного интерфейса (T/C1 в режиме 2).
2. Требуется работа 8-разрядного таймера (TH0), 8-разрядного счётчика внешних событий (TL0) и формирование синхроимпульсов для последовательного порта (T/C1 в режиме 2).
4.2. Использование параллельных портов ввода-вывода
Как отмечено в 3.8 порты Р0...Р3 могут использоваться:
1. Как 8-разрядные параллельные порты ввода/вывода информации;
2. Как 32 одноразрядные линии ввода/вывода;
3. При работе с внешней памятью программ и данных;
4. В режиме альтернативных функций (8 линий порта Р3);
5. При программировании и проверке РПП.
По сигналу "RESET" в регистры-защёлки всех портов автоматически записываются единицы, настраивающие все 32 линии портов на ввод информации, а восемь линий порта Р3, кроме этого, - на режим "альтернативных" функций.
4.2.1. Особенности работы порта Р0
На рисунке 11 приведена упрощённая структурная схема i-го разряда порта Р0, отражающая его работу в двух основных режимах:
1. Работа с внешней памятью программ или данных;
2. Работа в качестве порта ввода/вывода.
Рисунок 11 - Упрощенная структурная схема порта Р0 (i-го вывода)
В зависимости от выполняемых в настоящее время команд (работа с портами или с ВП) внутренний сигнал "управление" принимает значение: 0 - Р0 используется как порт ввода/вывода; 1 - порт используется для работы с ВП.
4.2.1.1. Особенности работы Р0 с ВП (ВПП или ВПД)
Сигнал "управление" равен 1. Мультиплексор МХ находится в верхнем положении. На вход инвертора и один из входов конъюнктора поступает значение i-го разряда младшего байта адреса ВП - 1/0. После инвертора оно принимает значение 0/1. Т.к. на другом входе конъюнктора присутствует логическая 1, то выходной сигнал конъюнктора повторяет значение i-го разряда адреса - 1/0. Таким образом, на затворах транзисторов VT1 и VT2 присутствуют две противоположные комбинации логических сигналов:
1/0 на затворе VT1
при значении i-го бита адреса 1/0.
0/1 на затворе VT2
В схеме использованы МОП-полевые транзисторы с каналом типа n. Если на затворе такого VT логическая 1, то транзистор - открыт, а если логический 0, то - закрыт. Следовательно, если в i-м бите адреса выдается логическая 1, то VT1 - открыт, а VT2 - закрыт, и с i-го вывода порта 0 снимается также 1. Если же в i-м бите адреса присутствует логический 0, то VT1 - закрыт, а VT2 - открыт.
С выхода при этом снимается логический 0. Сказанное можно представить следующей таблицей 18.
Таблица 18
Значение i-го бита МБ адреса ВП (выводимых данных)Сигналы на затворах транзисторов
Состояние транзисторовЗначение выходного сигналаVT1VT2VT1VT2001закрытоткрыт0110открытзакрыт1 Выводы порта Р0 при работе с ВП используются в режиме мультиплексирования: сначала выдаётся МБ адреса ВП, а затем через выводы выдаются или принимаются данные. Выдаются при работе с ВПД, а принимаются при работе с ВПП или ВПД. Следует обратить внимание на то, что при чтении ВПП или ВПД на нижний транзистор VT2 аппаратно автоматически подаётся логический 0, VT закрывается и не шунтирует i-й вывод Р0, через который происходит чтение памяти. Отметим также, что при выполнении команд работы с внешней памятью в триггеры-защёлки порта Р0 автоматически записываются логические 1.
4.2.1.2. Особенности работы Р0 в качестве портов ввода/вывода
Сигнал "управление" равен нулю. МХ находится в нижнем положении. На затворе VT1 постоянно присутствует логический 0, и он закрыт.
4.2.1.2.1. Вывод данных через Р0
Через РШД внутренним сигналом "запись защёлки" значение i-го выводимого бита запоминается в триггере-защёлке. При выводе логического 0 сигналом высокого уровня, снимаемым с выхода триггера-защёлки, транзистор VT2 открывается (VT1 закрыт постоянно), и с i-го вывода порта Р0 выдаётся логический 0. При выводе логической 1 сигналом низкого уровня, снимаемым с выхода триггера-защёлки, транзистор VT2 закрывается (VT1 закрыт постоянно), и i-й вывод Р0 оказывается "оборванным" - находится в z-состоянии. Поэтому для вывода логической 1 через i-й вывод, когда Р0 работает как порт ввода/вывода, необходимо включать внешний "подтягивающий" резистор (стока) между и i-м выводом порта Р0 (см. рисунок 11).
4.2.1.2.2. Ввод данных через Р0
При вводе данных соответствующий триггер-защёлка должен быть установлен в 1. В противном случае (если он в 0) VT2 - открыт и шунтирует i-й вывод, т.е. постоянно будет вводиться логический 0. Установить триггеры-защёлки в 1 можно различными способами:
* сигналом "RESET" автоматически во все триггеры-защёлки записываются единицы;
* при выполнении команд, работающих с ВП (ВПП и ли ВПД), автоматически в триггеры-защёлки записываются единицы;
* командами, работающими с портом Р0 в целом;
* командами, работающими с отдельными битами Р0.
При выполнении команд "ввода" вырабатывается внутренний сигнал "чтение выводов", который через буфер В2 передаёт значение i-го вывода Р0 на РШД.
4.2.1.3. Специальный режим использования порта Р0:
режим "чтение-модификация-запись"
В этом режиме порт Р0 работает в тех случаях, когда при выполнении команд порт является одновременно операндом и местом назначения результата. При этом информация считывается не с внешних выводов, а из триггеров-защёлок. Это происходит при выработке внутреннего сигнала "чтение защёлки" через буфер В1. Внутри микроконтроллера происходит модификация содержимого i-го триггера-защёлки в соответствии с выполняемой командой, а затем запись нового значения обратно в триггер-защёлку.
Если считывать информацию не из триггеров-защёлок, а с внешних выводов, то возможна ошибка. Например, если единичный выходной сигнал управляет каким-то мощным исполнительным элементом, то этот сигнал может падать по уровню и при чтении с вывода Р0, а не из защёлок, может восприниматься как логический 0 вместо логической 1.
4.2.2. Особенности работы порта Р1
Порт Р1 не используется при работе с внешней памятью, поэтому в отличие от портов P0 и P2 является "чистым" портом ввода-вывода.
Структура Р1 приведена в [1] и очень похожа на рассмотренную выше схему порта Р0 (рисунок 11).
Порт Р1 содержит 8 триггеров-защёлок, буферы ввода-вывода, несколько МОП-транзисторов, один из которых выполняет функцию внешнего ("подтягивающего") резистора Rc, группу дополнительных логических элементов для повышения быстродействия.
Порт Р1 может использоваться в режиме "чтение - модификация - запись", который описан при рассмотрении порта Р0.
Кроме применения в качестве порта ввода-вывода порт Р1 применяется при программировании и проверке РПП (см. раздел 6).
Каждая из восьми линий порта Р1 может программироваться независимо друг от друга на ввод или вывод информации.
4.2.3. Особенности работы порта Р2
Структура порта Р2 приведена в [1] и выполнена аналогично схемам Р0, Р1. Кроме ввода-вывода порт Р2 используется для выдачи старшего байта адреса при работе с внешней памятью, поэтому его схема также как и Р0 содержит мультиплексор. Порт Р2 участвует в программировании и проверке РПП, может использоваться в режиме "чтение - модификация - запись", описанном выше (4.2.1.3). Каждая из восьми линий порта Р2 может программироваться независимо друг от друга на ввод или вывод информации.
4.2.4. Особенности работы порта Р3
Упрощённая структура i-го вывода (i = 0, 1, ..., 7) порта Р3 приведена на рисунке 13.
29
Документ
Категория
Разное
Просмотров
68
Размер файла
1 561 Кб
Теги
omevm
1/--страниц
Пожаловаться на содержимое документа