ОМЭВМ содержит все узлы, необходимые для автономной работы:
· центральный восьмиразрядный процессор;
· внутреннюю память данных, объемом 128 Байт;
· четыре восьмиразрядных программируемых канала ввода – вывода;
· два 16-битовых таймера-счетчика;
·
· последовательный интерфейс;
· тактовый генератор.
Система команд ОМЭВМ содержит 111 базовых команд с форматом 1, 2 или 3 байта и представляет большие возможности обработки данных, реализацию логических, арифметических операций, а также обеспечивает управление в режиме реального времени.
ОМЭВМ имеет:
· 32 восьмиразрядных регистра общего назначения;
· 128 определяемых пользователем программно-управляемых флагов;
· набор регистров специальных функций.
Регистры общего назначения и определяемые пользователем программно-управляемые флаги расположены в адресном пространстве внутреннего ОЗУ данных.
ОМЭВМ при функционировании обеспечивает:
· минимальное время выполнения команд сложения регистр-регистр – 1мкс, регистр-память – 2 мкс;
· аппаратное умножение и деление с минимальным временем выполнения команд умножения/деления – 4 мкс.
Расширенная система команд обеспечивает побайтовую и побитовую адресацию, двоичную и двоично-десятичную арифметику, индикацию переполнения и определения четности/нечетности, возможность реализации логического процессора. Отличительной чертой ОМЭВМ является то, что ее арифметико-логическое устройство (АЛУ) может наряду с выполнением операций над 8-разрядными типами данных манипулировать одноразрядными данными. Остальные программно-доступные биты могут быть установлены, сброшены или заменены их дополнением, могут пересылаться, проверяться и использоваться в логических вычислениях. Таким образом, благодаря наличию мощного АЛУ и битового процессора набор инструкций ОМЭВМ замечательно подходит для данного устройства сопряжения.
Микросхемы КР1830ВЕ51 конструктивно выполнены в 40-выводных пластмассовых корпусах с двухрядным расположением штырьевых контактов.
Среди прочего, ОМЭВМ содержит следующие узлы:
· Логика ввода – вывода, предназначенная для приема и выдачи сигналов, обеспечивающих обмен информацией ОМЭВМ с внешними устройствами через порты ввода/вывода Р0 – Р3.
· Блок Т/С состоит из двух таймеров/счетчиков, предназначенных для подсчеты внешних событий, получения программно управляемых временных задержек и выполнения времязадающих функций ОМЭВМ.
· Блок последовательного интерфейса и прерываний предназначен для организации ввода-вывода последовательных потоков информации и организации системы прерывания программ.
· Порты Р0 – Р3 являются двунаправленными портами ввода/вывода и предназначены для обеспечения информацией ОМЭВМ с внешними устройствами, образуя 32 линии ввода/вывода. Каждый из портов содержит фиксатор-защелку, который представляет собой восьмиразрядный регистр, имеющий байтовую и битовую адресацию для установки (сброса) разрядов с помощью программного обеспечения.
Фиксаторы портов Р0, Р1, Р2, Р3 имеют свои внутренние физические адреса, как при байтовой адресации, так и при битовой адресации.
Помимо работы в качестве обычных портов ввода/вывода линии портов Р0 – Р3 могут выполнять рад дополнительных функций, описанных ниже.
Через порт Р0:
· Выводится младший байт адреса А0 – А7 при работе с внешней памятью программ и внешней памятью данных;
· Выдается из ОМЭВМ и принимается в ОМЭВМ байт данных при работе с внешней памятью (при этом обмен байтом данных и вывод младшего байта адреса внешней памяти мультиплексированы во времени);
Через порт Р2:
· Выводится старший байт адреса А8 – А15 при работе с внешней памятью программ и внешней памятью данных (для внешней памяти данных – только при использовании команд, которые вырабатывают 16-разрядный адрес)
Каждая линия порта Р3 имеет индивидуальную альтернативную функцию:
· P3.00 – RxD, вход последовательного порта, предназначен для ввода последовательных данный в приемник последовательного порта;
· P3.1 – TxD, выход последовательного порта, предназначен для вывода последовательных данных из передатчика последовательного порта;
· P3.2 – INT0 – используется как вход 0 внешнего запроса прерывания;
· P3.3 – INT1 - используется как вход 1 внешнего запроса прерывания;
· P3.4 – T0, используется, как вход счетчика внешних событий Т/С 0;
· P3.5 – T1, используется, как вход счетчика внешних событий Т/С 1;
· P3.6 – WR, строб записи во внешнюю память данных, входной сигнал, сопровождающий вывод данных через порт Р0 при использовании соответствующих команд;
· P3.7 – RD, строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании соответствующих команд.
Альтернативная функция любой из линий порта Р3 реализуется только в том случае, если в соответствующем этой линии фиксаторе-защелки содержится «1». В противном случае на линии порта 3 будет присутствовать «0».
Среди прочих особенностей данной ОМЭВМ особого внимания заслуживают следующие.
Для связи ОМЭВМ с объектами управления, для ввода/вывода информации используются 32 двунаправленные линии. Эти линии сгруппированы в 4 порта по 8 линий в каждом. Каждая линия может быть индивидуальна и независимо запрограммирована на вход или выход. При использовании линии в качестве входа необходимо соответствующий бит порта установить в «1». При установке ОМЭВМ в исходное состояние все линии портов включены в исходное состояние. Обращение к портам ввода/вывода осуществляется через регистры специальных функций Р0 – Р3. Обращение производится с использованием команд, оперирующих с байтами, битом или с комбинацией бит.
В случае использования внешней памяти программ или данных, порт 0 служит для ввода младшего байта адреса внешней памяти, а через Р2 – для вывода старшего байта вывода внешней памяти, поэтому, когда мы используем внешнюю память – эти порты заняты. Данные во внешнюю память передаются через регистр Р0 (рис. 9).
В состав ОМЭВМ входят 2 независимых таймера/счетчика Т0 и Т1, предназначенных для измерения временных интервалов, длительности импульсов регенерирования периодически повторяющихся прерываний. Каждому таймеру/счетчику соответствует 16-разрядный таймерный регистр, состоящий из двух байт (TH0, TL0; TH1, TL1)
Таймеры/счетчики работают в двух режимах (в качестве таймера и счетчика).
При работе в качестве таймера, содержимое таймерного регистра увеличивается на единицу в каждом машинном цикле.
Путем программной установки таймерного регистра в исходное состояние и анализа флага переполнения могут быть реализованы различные временные задержки в диапазоне 0000-FFFF. Временная задержка, превышающая это значение (65535 мкс) может быть получена накоплением переполнений в рабочем регистре под управлением программы.
При работе в режиме счетчика событий таймерный регистр увеличивается на 1 каждый раз, когда сигнал на входе Т0 порта 3 переходит из «1» в «0».
Состояние внешнего входа Т0 или Т1 опрашивается каждую микросекунду (машинный цикл). Для управления таймером/счетчиком используются 2 регистра специальных функций: TCON – регистр управления и TMOD – регистр режимов.
МК51 имеет 5 аппаратных источников прерываний. Прерывание – сигнал, который поступает в ОМЭВМ от одного из 5 источников прерываний и вызывает переход из основной программы в подпрограмму обработки прерываний.
Появление сигнала – событие, неожиданное для основной программы. Поэтому точно не известно, в каком месте выполнения программы это произойдет. В ОМЭВМ используется векторная система прерываний. Это значит, что для каждого источника прерываний в ПЗУ предусмотрен адрес (вектор) начала подпрограммы обработки прерываний.
Каждый источник прерываний имеет свой адрес начала подпрограммы обработки прерываний. Адреса находятся в ПЗУ.
Получив запрос прерывания от одного из пяти источников, система обработки прерываний выполняет следующие действия:
1. Помещает в стек содержимое счетчика команд, чтобы запомнить команду основной программы, на которую нужно вернуться после обработки прерываний.
2. Загружает в счетчик команд адрес вектора, соответствующей подпрограммы обработки прерываний и осуществляет переход по этому адресу. По адресу вектора должна быть расположена команда безусловного перехода к начальному адресу подпрограммы обработки прерываний.
3. Подпрограмма обслуживания прерывания обязательно завершается командой выхода из подпрограммы, обслуживающей прерывания, по которой счетчик команд перезагружается из стека адресом возврата в основную программу и осуществляет аппаратный сброс запросов прерываний.
В состав ОМЭВМ входит последовательный порт, представляющий собой асинхронный приемопередатчик. Он осуществляет прием и передачу информации, представленной последовательным кодом, младшими битами вперед. Для этого в состав УАПП входят принимающие и передающие сдвиговые регистры, преобразующие параллельный код в последовательный. Последовательный порт является дуплексным, то есть одновременно осуществляет прием и передачу. Передаваемые и принимаемые данные хранятся в регистре специальных функций SBUF – буферный регистр. Физически регистр SBUF представляет собой 2 раздельных регистра. Один – для передаваемых данных, второй – для принимаемых. При приеме обеспечивается хранение принятого байта до конца приема следующего байта. Байт, не прочитанный из SBUF за время приема следующего байта, теряется. Запись байта в буфер SBUF при передаче приводит к автоматической перезаписи байта в сдвигающий регистр передатчика и инициализирует передачу байта. Всего имеется 4 режима работы последовательного порта: