Реферат по предмету "Коммуникации и связь"


Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ

ВСТРОЕННЫЕ МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ ОДНОКРИСТАЛЬНЫХ МИКРОЭВМ

Содержание
1.Структура микроконтроллера семейства MCS-51
2.Программно доступные ресурсы и организация памяти
3.Система команд
4.Способы адресации операндов
5.Программная модель битового процессора
6.Применение битового процессора
СПИСОКЛИТЕРАТУРЫ

1. Структурамикроконтроллера семейства MCS-51
Внутренняя структура исходногомикроконтроллера семейства MCS-51 (рис.1) включает следующий наборфункциональных модулей:
-    8-разрядное АЛУ с аппаратнойреализацией операций типа умножение;
-    внутренняя память программ(4Кбайт) и ОЗУ данных (128 байт);
-    четыре универсальныхпрограммируемых параллельных 8-разрядных порта ввода-вывода с возможностьюреализации определенных альтернативных функций;
-    два 16-разрядных программируемыхтаймера/счетчика;
-    дуплексный последовательный порт.
Этот набор аппаратных средств исовокупность реализуемых функций делают МК семейства 8051 эффективным средствомсбора, предобработки информации и управления объектом.
Усовершенствование HMOS технологии, ростстепени интеграции позволил в рамках устоявшейся архитектуры расширить наборвнутренних интерфейсных блоков, увеличить внутреннюю память программ и данных.Таким образом появились микроконтроллеры типа 8052. Далее семейство продолжалоувеличиваться за счет модификаций типа 80С51/52/54/58, выполненных с использованиемфирменной комплиментарной MOS технологии (CHMOS). Эта технология позволилауменьшить рассеиваемую мощность при обычной работе и ввести особые режимы,дополнительно снижающие энергопотребление. Появились микроконтроллеры типа80L52/54/58 с пониженным напряжением питания.
С группой 80C51FA/FB/FC связано введение вархитектуру семейства модуля РСА (programmable counter array) и сторожевоготаймера WDT (watchdog timer). Модуль РСА предназначен для выполнения различныхопераций счета и определения длительности интервалов времени, в том числе приширотно-импульсной модуляции. Сторожевой таймер обеспечивает перезагрузкупроцессора при зависаниях. Старшими членами семейства являются микроконтроллерытипа 80C51GB, имеющие встроенный 8-разрядный АЦП, шесть параллельных портов.Современные версии микроконтроллеров семейства MCS-51 выполнены сиспользованием полностью статической схемотехники. Это позволяет останавливатьмикроконтроллер при отладке разрабатываемой системы.
/>
Рисунок 1 – Структура микроконтроллера8051AH

2. Программнодоступные ресурсы и организация памяти
ОМЭВМ (МК семейства MCS-51) имеет: 32 POH;128 определяемых пользователем программно-управляемых флагов; набор регистровспециальных функций. POH и определяемые пользователем программно-управляемыефлаги расположены в адресном пространстве внутреннего ОЗУ данных. Регистрыспециальных функций (SFR, SPECIAL FUNCTION REGISTERS) с указанием их адресовприведены в таблице 1.
Таблица 1 – Регистры специальных функцийОбозначение Наименование Адрес
* АСС Аккумулятор 0Е0Н * В Регистр В 0F0H
* PSW Регистр состояния программы
0D0H SP Указатель стека 81Н DPTR
Указатель данных. 2 байта: DPL Младший байт 82Н
DPH Старший байт 83Н * Р0 Порт 0
80Н * Р1 Порт 1
90Н * Р2 Порт 2 0А0Н
* РЗ Порт 3
0В0Н * IP Регистр приоритетов прерываний 0В8Н * IE Регистр разрешения прерываний 0А8Н
TMOD Регистр режимов таймера/счетчика 89Н
* TCON Регистр управления таймера/счетчика 88Н TH0 Таймер/счетчик 0. Старший байт 8СН TL0 Таймер/счетчик 0. Младший байт 8АН
TH1
Таймер/счетчик 1. Старший байт
8DH
TL1
Таймер/счетчик 1. Младший байт 8ВН * SCON Управление последовательным портом
98Н
SBUF Буфер последовательного порта 99Н
PCON Управление потреблением 87Н
* – регистры, допускающие побитовую адресацию.

Аккумулятор. АСС – регистр аккумулятора.Команды, предназначенные для работы с аккумулятором, используют мнемонику«А», например, MOV А, Р2. Мнемоника «АСС» используется, кпримеру, при побитовой адресации аккумулятора. Так, символическое имя пятогобита аккумулятора при использовании ассемблера ASM51 будет следующим: АСС.5.
Регистр В. Используется во время операцийумножения и деления. Для других инструкций регистр В может рассматриваться какдополнительный сверхоперативный регистр.
Регистр состояния программы. Регистр PSWсодержит информацию о состоянии программы.
Указатель стека SP. 8-битовый регистр,содержимое которого инкрементируется перед записью данных в стек при выполнениикоманд PUSH и CALL. При начальном сбросе указатель стека устанавливается в 07Н,а область стека в ОЗУ данных начинается с адреса 08Н. При необходимости путемпереопределения указателя стека область стека может быть расположена в любомместе внутреннего ОЗУ данных микроЭВМ.
Указатель данных. Указатель данных (DPTR)состоит из старшего байта (DPH) и младшего байта (DPL). Содержит 16-битовыйадрес при обращении к внешней памяти. Может использоваться как 16-битовыйрегистр или как два независимых восьмибитовых регистра.
Порт0 – ПортЗ. Регистрами специальныхфункций Р0, Р1, Р2, РЗ являются регистры-«защелки» соответственно портовР0, Р1, Р2, РЗ.
Буфер последовательного порта. SBUFпредставляет собой два отдельных регистра: буфер передатчика и буфер приемника.Когда данные записываются в SBUF, они поступают в буфер передатчика, причемзапись байта в SBUF автоматически инициирует его передачу черезпоследовательный порт. Когда данные читаются из SBUF, они выбираются из буфераприемника.
Регистры таймера. Регистровые пары(TH0,TL0) и (TH1,TL1) образуют 16-битовые счетные регистры соответственнотаймера/счетчика 0 и таймера/счетчика 1.
Регистры управления. Регистры специальныхфункций IP, IE, TMOD, TCON, SCON и PCON содержат биты управления и битысостояния системы прерываний, таймеров/счетчиков и последовательного порта.ОМЭВМ при функционировании обеспечивает:
-      минимальное время выполнениякоманд сложения – 1 мкс;
-      аппаратное умножение и деление сминимальным временем выполнения команд умножения/деления – 4 мкс.
Все ОМЭВМ рассматриваемого семейства имеютнесколько адресных пространств, функционально и логически разделенных за счетразницы в механизмах адресации и сигналах управления записью и чтением: памятьпрограмм; внутренняя память данных; внешняя память данных.
Структура адресного пространства ОМЭВМпоказана на рис. 2. Слева приводятся адреса соответствующих областей памяти.
/>
Рисунок 2 – Пространство памяти ОМЭВМ
Память программ имеет 16-битовую адреснуюшину, ее элементы адресуются использованием счетчика команд (PC) илиинструкций, которые вырабатывают 16-разрядные адреса.
Память программ доступна только по чтению.ОМЭВМ не имеют команд и управляющих сигналов, предназначенных для записи впамять программ. Память программ имеет байтовую организацию и общий объем до 64Кбайт. Ряд OMЭВМ (КР1816ВЕ51, КМ1816ВЕ751, КР1830ВЕ51) содержат расположеннуюна кристалле внутреннюю память программ емкостью 4 Кбайт, которая может бытьрасширена до 64 Кбайт за счет подключения микросхем внешней памяти программ.
ОМЭВМ семейства MCS-51 имеютвнешний вывод DEMA, с помощью которого можно запретить работу внутренней памятипрограмм, для чего необходимо подать на вывод DEMA «0». При этомвнутренняя память программ отключается и, начиная с нулевого адреса, всеобращения происходят к внешней памяти программ с формированием сигнала РМЕ. Вслучае, если DEMA=1, работают и внутренняя, и внешняя память программ. ДляОМЭВМ, не имеющих внутренней памяти программ, для нормальной работы всегданеобходимо задавать DEMA=0.
Таким образом, доступ к внешней памятипрограмм осуществляется в двух случаях:
1) при действии сигнала DEMA=0 независимоот адреса обращения;
2) в любом случае, если программныйсчетчик (PC) содержит число, большее чем 0FFFH.
Внутренняя память данных ОМЭВМ состоит издвух областей: 128 байт оперативной памяти (ОЗУ) с адресами 0-7FH и областирегистров специальных функций, занимающей адреса 80Н–FFH. Распределениепространства внутренней памяти данных показано на рис. 3. Физически внутреннееОЗУ данных и область регистров специальных функций являются отдельными устройствами.
Все ячейки внутреннего ОЗУ данных могутадресоваться с использованием прямой и косвенной адресации (режимы адресацииданы в описании системы команд ОМЭВМ). Кроме того, внутреннее ОЗУ данных имеетследующие особенности.
Младшие 32 байта внутреннего ОЗУ данных сгруппированыв 4 банка по 8 регистров в каждом (БАНК0 – БАНКЗ на рис. 3). Команды программымогут обращаться к регистрам, используя их имена R0 – R7. Два бита PSW (указателибанка рабочих регистров RS0 и RS1) определяют, с регистрами какого банкапроизводятся манипуляции. Наличие такого механизма работы с ячейками ОЗУпозволяет экономить память программ, т. к. команды, работающие с регистрамиR0–R7, короче команд, использующих прямую адресацию.
Следующие после банков регистроввнутреннего ОЗУ данных 16 байт (адреса 20Н–2FH) образуют область ячеек, ккоторым возможна побитовая адресация. Набор команд ОМЭВМ семейства MCS-51содержит значительное количество инструкций, позволяющих работать с отдельнымибитами, используя при этом прямую адресацию. 128 бит, составляющихрассматриваемую область внутреннего ОЗУ данных, имеют адреса 00Н–7FH ипредназначены для работы с такими инструкциями.
/>
Рисунок 3 – Адресное пространствовнутренней памяти данных
Внешняя память данных формируетсядополнительными микросхемами памяти, подключаемыми к ОМЭВМ, и может иметьемкость до 64 Кбайт. Пространства внутренней и внешней памяти данных непересекаются, т.к. доступ к ним осуществляется с помощью разных команд. Дляработы с внешней памятью данных существуют специальные команды MOVX, которые невлияют на внутреннюю память данных ОМЭВМ. Таким образом, в системе могут одновременноприсутствовать внутренняя память данных с адресами 00Н – FFH и внешняя памятьданных с адресами 0000Н – FFFFH.
Обращение к ячейкам внешней памяти данныхосуществляется только с использованием косвенной адресации по регистрам R0 и R1активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или порегистру специальных функций DPTR (команды типа MOV @DPTR). Соответственно в первомслучае будет формироваться 8-разрядный, а во втором случае 16-разрядный адресавнешней памяти данных.
При обращениях к внешней памяти данныхадрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОМЭВМ.Обмен байтом данных (запись и чтение) производится через порт Р0 ОМЭВМ, т.е.порт Р0 используется как шина адреса/данных в режиме мультиплексирования.
Считывание данных из внешней памяти данныхв ОМЭВМ производится с помощью выходного сигнала ОМЭВМ RD, а запись данных изОМЭВМ во внешнюю память данных с помощью выходного сигнала ОМЭВМ WR.
Каждый тип внешней памяти (памятьпрограмм, память данных) может быть добавлен независимо от другого и каждыйиспользует те же адреса и шины данных, но различные сигналы управления.
3. Система команд
Система команд ОМЭВМ семейства MCS-51имеет 111 команд и позволяет реализовать обработку данных, обеспечитьвыполнение логических, арифметических операций, а также управление в режимереального времени. Реализованы побитовая, потетрадная (4 бита), побайтовая (8бит) и 16-разрядная обработка данных.
Полное описание команд и примеры ихвыполнения приведены в приложении Б.
В машинном коде команда занимает один, дваили три байта и выполняется за один, два или четыре (умножение и деление)машинных цикла. При частоте тактового генератора, равной 12 МГц, одноцикловыекоманды выполняются за 1 мкс, двухцикловые – за 2 мкс и т.д. Из 111 типов команд64 выполняются за 1 мкс (12 тактов), 45 команд – за 2 мкс (24 такта) и двекоманды – умножение и деление (MUL, DIV) выполняются за 4 мкс (48 тактов).
Все команды условных переходовосуществляются относительно содержимого счетчика команд с адресом перехода,вычисляемым ЦПУ во время выполнения команды.
Трехбайтовые команды перехода и вызоваLCALL, LJMP (с 16-разрядным адресом) позволяют осуществлять переход и обращениепо любому адресу адресного пространства памяти программ емкостью 64 Кбайт. Еслинеобходим переход в пределах области памяти программ 2 К, то можно использоватькоманды перехода и вызова с 11-разрядным адресом (ACALL, AJMP). Переход внутриучастка памяти, определяемый 8-разрядной величиной смещения, осуществляется покоманде SJMP. В табл. 2 приведены обозначения и символы, используемые в системекоманд.
Систему команд ОМЭВМ условно можно разбитьна пять групп: арифметические команды; логические команды с байтовымипеременными; команды передачи данных; команды битового процессора; командыветвления программ и передачи управления.
Арифметические команды. В наборе командОМЭВМ имеются следующие арифметические операции: сложение, сложение с учетомфлага переноса, вычитание с заёмом, инкрементирование, декрементирование,сравнение, десятичная коррекция, умножение и деление.

Таблица 2 – Обозначение символов в наборекомандОбозначение, символ Назначение 1 2 А Аккумулятор Rr Регистры текущего выбранного банка регистров r Номер загружаемого регистра, указанного в команде direct Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255) @Rr Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных data 8 8-битовое непосредственное данное, входящее в код операции (КОП) Data 16 16-битовое непосредственное данное, входящее КОП Data Н Старшие биты (15-8) непосредственных 16-битовых данных Data L Младшие биты (7-0) непосредственных 16-битовых данных Addr 11 11-битовый адрес назначения Addr 16 16-битовый адрес назначения Addr L Младшие биты адреса назначения disp 8 8-битовый байт смещения со знаком bit Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR al5,al4...a0 Биты адреса назначения (X) Содержимое элемента Х
((X))
(X) [M]
Содержимое по адресу, хранящемуся в элементе Х
Разряд М элемента Х (X)[MI-M2] Группа разрядов М1-М2 элемента Х
+
-
*
/
AND
OR
XOR
/X
Операции:
сложения
вычитания
умножения
деления
логического умножения (операция И)
логического сложения (операция ИЛИ)
сложения по модулю 2 (операция «Исключающее ИЛИ»)
инверсия элемента Х
В АЛУ производятся действия над целымичислами без знака. В двухоперандных операциях: сложение (ADD), сложение спереносом (ADDC) и вычитание с заёмом (SUBB) аккумулятор является первымоперандом и принимает результат операции. Вторым операндом может быть рабочийрегистр выбранного банка рабочих регистров, регистр внутренней памяти данных скосвенно-регистровой и прямой адресацией или байт непосредственных данных.Указанные операции влияют на флаги: переполнения, переноса, промежуточного переносаи флаг четности в слове состояния процессора (PSW).
Использование разряда переноса позволяетмногократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).
Выполнение операций сложения и вычитания сучетом знака может быть осуществлено с помощью программного управления флагомпереполнения (OV) регистра PSW. Флаг промежуточного переноса (АС)обеспечивает выполнение арифметических операций в двоично-десятичном коде.
Операции инкрементирования идекрементирования на флаги не влияют.
Операции сравнения не влияют ни на операндназначения, ни на операнд источника, но они влияют на флаг переноса.
Существуют три арифметические операции,которые выполняются только на аккумуляторе: две команды проверки содержимогоаккумулятора A (JZ, JNZ), и команда десятичной коррекции при сложениидвоично-десятичных кодов.
При операции умножения содержимоеаккумулятора А умножается на содержимое регистра В и результат размещаетсяследующим образом: младший байт в регистре A, старший – в регистре B.
В случае выполнения операции деления целоеот деления помещается в аккумулятор А, остаток от деления – в регистр В.
Логические команды с байтовымипеременными. Система команд ОМЭВМ позволяет реализовать логические операции:«И», «ИЛИ», «ИСКЛЮЧАЮЩЕЕ ИЛИ» нарегистре-аккумуляторе (А) и байте-источнике. Вторым операндом(байтом-источником) при этом может быть рабочий регистр в выбранном банкерабочих регистров; регистр внутреннего ОЗУ, адресуемый с помощью косвенно-регистровойадресации; прямо адресуемые ячейки внутреннего ОЗУ и регистры специальныхфункций; непосредственная величина.
Указанные логические операции могут бытьреализованы на любом прямо адресуемом регистре внутреннего ОЗУ или регистреспециальных функций с использованием в качестве второго операнда содержимогоаккумулятора А или непосредственных данных.
Существуют логические операции, которыевыполняются только на аккумуляторе: сброс и инвертирование всех восьми разрядовА; циклический сдвиг влево и вправо; циклический сдвиг влево и вправо с учетомфлага переноса; обмен местами старшей и младшей тетрад внутри аккумулятора.
Команды передачи данных. Таблицы символов(кодов), зашитые в ПЗУ программы, могут быть выбраны с помощью команд передачиданных с использованием косвенной адресации. Байт константы может быть переданв аккумулятор из ячейки памяти программ, адресуемой суммой базового регистра(PC или DPTR) и индексного регистра (содержимого А). Это обеспечивает, например,удобное средство реализации алгоритма преобразования кода ASCII в семисегментныйкод.
Любая ячейка 256-байтового блока внешнегоОЗУ данных может быть выбрана с использованием косвенно-регистровой адресациичерез регистры указатели R0 или R1 (выбранного банка рабочих регистров).
Ячейка внутри адресного пространства 64Кбайт внешнего ОЗУ также может быть выбрана с использованиемкосвенно-регистровой адресации через регистр-указатель данных DPTR.
Команды передачи между прямо адресуемымирегистрами позволяют заносить величину из порта в ячейку внутреннего ОЗУ безиспользования рабочих регистров или аккумулятора.
В логическом процессоре любой прямоадресуемый бит может быть помещен в бит переноса и наоборот.
Содержимое аккумулятора может бытьобменено с содержимым рабочих регистров (выбранного банка) и с содержимымадресуемых с помощью косвенно-регистровой адресации ячеек внутреннего ОЗУ, атакже с содержимым прямо адресуемых ячеек внутреннего ОЗУ и с содержимымрегистров специального назначения.
Младшая тетрада (разряды 3-0) содержимогоаккумулятора может быть обменяна с младшей тетрадой содержимого ячееквнутреннего ОЗУ, выбираемых с помощью косвенно-регистровой адресации.
Команды ветвления и передачи управления.Адресное пространство памяти программ ОМЭВМ не имеет страничной организации, чтопозволяет свободно перемещать фрагменты программы внутри адресногопространства, при этом не требуется перезасылка (изменение) номера страницы.
Перемещение отдельных фрагментов программыобеспечивает возможность использования перемещаемых программных модулейразличными программами.
Команды 16-разрядных переходов и вызововподпрограмм позволяют осуществлять переход в любую точку адресного пространствапамяти программ объёмом 64 Кбайт.
Команды 11-разрядных переходов и вызововподпрограмм обеспечивают переходы внутри программного модуля емкостью 2 Кбайт.В системе команд имеются команды условных и безусловных переходов относительноначального адреса следующей команды в пределах от (РС)-128 до (РС)+127. Командыпроверки отдельных разрядов позволяют осуществлять условные переходы посостоянию «0» или «1» прямо адресуемых битов. Командыпроверки содержимого аккумулятора (на ноль/не ноль) позволяют осуществлятьусловные переходы по содержимому А.
Косвенно-регистровые переходы в системекоманд ОМЭВМ обеспечивают ветвление относительно базового регистра (содержимогоDPTR или PC) со смещением, находящимся в аккумуляторе А.
Команды битового процессора. Битовыйпроцессор является частью архитектуры ОМЭВМ семейства MCS-51 и егоможно рассматривать как независимый процессор побитовой обработки. Битовыйпроцессор выполняет свой набор команд, имеет свое побитово адресуемое ОЗУ исвой ввод-вывод.
Команды, оперирующие с битами,обеспечивают прямую адресацию 128 битов (0–127) в шестнадцати ячейкахвнутреннего ОЗУ (ячейки с адресами 20Н–2FH) и прямую побитовую адресациюрегистров специального назначения, адреса которых кратны восьми:
Р0(80Н), TCON(88H), Р1(90Н), SCON(98H),Р2(А0Н), IЕ(А8Н), РЗ(В0Н), IР(В8Н), PSW(D0H), А(Е0Н), B(F0H).
Каждый из отдельно адресуемых битов можетбыть установлен в «1», сброшен в «0», инвертирован,проверен. Могут быть реализованы переходы: если бит установлен; если бит неустановлен; переход, если бит установлен, со сбросом этого бита; бит может бытьперезаписан в (из) разряда переноса. Между любым прямо адресуемым битом ифлагом переноса могут быть произведены логические операции «И»,«ИЛИ», где результат заносится в разряд флага переноса. Командыпобитовой обработки обеспечивают реализацию сложных функций комбинаторнойлогики и оптимизацию программ пользователя.
4. Способыадресации операндов
Существуют следующие способы адресацииоперандов-источников:
-    регистровая адресация;
-    прямая адресация;
-    косвенно-регистровая адресация;
-    непосредственная адресация;
-    косвенная адресация по сумме базовогои индексного регистра.
Первые три способа используются также дляадресации операнда назначения. Указанные пять способов адресации, используемыев различных сочетаниях, обеспечивают 21 режим адресации. Многие командысодержат поля: «приемник», «источник», которые определяюттип данных, метод адресации и участвующие операнды.
Для команд, не выполняющих операцииперезаписи, операнд назначения является и операндом-источником.
Большое количество команд включаетоперанды, расположенные во внутреннем ОЗУ данных ОМЭВМ. Выбор адресногопространства памяти программ или внешней памяти данных в качестве второгооперанда определяется командной мнемоникой (если только второй операнд неявляется непосредственной величиной).
Адресуемая область внутреннего ОЗУ данныхопределяется способом адресации и величиной адреса. Например, обращение крегистрам специальных функций может быть выполнено только с помощью прямойадресации.
Регистровая адресация. Регистроваяадресация используется для обращения к восьми регистрам выбранного банка (этиже регистры могут быть выбраны с помощью прямой адресации икосвенно-регистровой адресации как обычные ячейки внутреннего ОЗУ данных).
Регистровая адресация используется такжедля обращения к регистрам А, В, АВ (сдвоенному регистру), DPTR и к флагупереноса С. Использование регистровой адресации позволяет получать двухбайтовыйэквивалент трехбайтовых команд прямой адресации.
ПРИМЕР: MOV A,Rn; CLR A; DEC Rn; ADD A,Rn;MOV DPTR,#data16 и др.
Прямая адресация. Прямая байтоваяадресация используется для обращения к ячейкам внутренней памяти (ОЗУ) данных(0 – 127) и к регистрам специальных функций.
ПРИМЕР: MOV A,direct(MOV A,4FH); MOV direct,direct;IN direct; ADD A,direct и др.
Прямая побитовая адресация используетсядля обращения к отдельно адресуемым 128 битам, расположенным в ячейках садресами 20Н–2FH и к отдельно адресуемым битам регистров специальных функций.
ПРИМЕР: SETB BIT(SETB 1FH);CLR TF; CLR C.
Косвенно-регистровая адресация.Косвенно-регистровая адресация используется для обращения к ячейкам внутреннегоОЗУ данных. В качестве регистров-указателей используется регистры R0, R1выбранного банка. В командах PUSH и POP используется содержимое указателя стека(SP). Косвенно-регистровая адресация используется также для обращения к внешнейпамяти данных. В этом случае с помощью регистров-указателей R0 и R1 (выбранногобанка рабочих регистров) выбирается ячейка из блока в 256 байт внешней памятиданных. 16-разрядный указатель данных (DPTR) может быть использован дляобращения к любой ячейке адресного пространства внешней памяти данных объемомдо 64 Кбайт.
ПРИМЕР: MOV A,@Ri (MOV A,@R); INC @Ri; ADD A,@Ri; XRL A,@Ri;MOVX @Ri,A; MOVX A,@DPTR.
Непосредственная адресация.Непосредственная адресация позволяет выбрать из адресного пространства памятипрограмм константы, явно указанные в команде.
ПРИМЕР: MOV A,#data (MOV A,#1FH); MOV DPTR,#data16(MOV DPTR,#5B4EH); ADD A,#data; XRL A,#data.
Косвенно-регистровая адресация по суммебазового и индексного регистров. Косвенно-регистровая адресация по сумме:базовый регистр плюс индексный регистр (содержимое аккумулятора А) упрощаетпросмотр таблиц, зашитых в памяти программ. Любой байт из таблицы может бытьвыбран по адресу, определяемому суммой содержимого DPTR или PC и содержимого А.
ПРИМЕР: MOVC A,@A+DPTR; MOVC A,@A+PC;JMP @A+DPTR.

/>5Программная модель битового процессора
Пригодность архитектуры каждого компьютерадля конкретного класса задач определяется тем, насколько его система командсоответствует задачам, которые должны быть выполнены. Поэтому для дискретногоуправления в реальном масштабе времени наличие в системе команд операцийнепосредственно над битами приводит к созданию более производительных систем ипрограмм обработки входной и выходной двоичной информации. С этой целью в ОМЭВМсемейства MCS-51 введены специальные средства, называемые битовым процессором,которые поддерживают прямые логические операции с отдельными битами и операцииих тестирования и позволяют использовать однобитовые переменные в логическихоперациях.
В связи с этим в систему команд ОМЭВМсемейства MCS-51 введены специальные инструкции для выполненияопераций с битовыми переменными. Имеется 17 таких команд, которые перечислены втабл. 3.
Таблица 3 – Команды битового процессораМнемоническое обозначение Описание команды Число байтов Число циклов
SETB C Установка флага переноса 1 1
SETB bit
Установка бита 2 1 CLRC Сброс флага переноса 1 1
CLR bit Сброс бита 2 1
CPL C Инверсия флага переноса 1 1
CPL bit Инверсия бита 2 1
MOV C, bit Пересылка бита во флаг переноса 2 1
MOV bit,C Пересылка флага переноса в бит 2 2
ANL C, bit «Логическое И» бита и флага переноса 2 2
ANL. C, /bit «Логическое И» инверсии бита и флага переноса 2 2 ORL C, bit «Логическое ИЛИ» бита и флага переноса 2 2 ORL C,/bit «Логическое ИЛИ» инверсии бита и флага переноса 2 2 JC rel8 Переход, если флаг переноса установлен 2 2 JNC rel8 Переход, если флаг переноса сброшен 2 2 JB bit,rel8 Переход, если бит установлен 3 2 JNB bit,rel8 Переход, если бит сброшен 3 2 JBC bit,rel8 Переход, если бит установлен, и сброс этого бита 3 2
 
ОБОЗНАЧЕНИЯ:
С – флаг переноса;
bit – 128 программно-доступных битов,любой I/O вывод, бит управления или состояния;
/bit – 128 программно-доступных битов,любой I/O вывод, бит управления или состояния, взятые с инверсией;
rel8– байт относительного смещения(условный переход осуществляется в диапазоне от -128 до +127 байтов относительноадреса первого байта следующей команды).
Эти команды в зависимости от выполняемойфункции могут быть одно-, двух- или трехбайтные. Теиз них, которые оперируют с флагом переноса, имеют однобайтный код или код, закоторым следует байт смещения, использующийся для вычисления адреса условногоперехода (рис. 4.а). В более обобщенных командах битовых операций после кодадобавляется байт адреса прямоадресуемого бита, образуя двух- или трехбайтныекоманды (рис. 4.б). На рис. 4 для справки приведены коды этих команд.
С помощью указанных команд можнообращаться непосредственно к 128 битам внутреннего ОЗУ и к 83 битам одиннадцативосьмиразрядных регистров ОМЭВМ.
 Код команды: Код команды: SETB С 11010011В (D3H) CLR С 11000011В (С3Н) CPL С 10110011В(В3Н) Код команды Смещение JC 01000000В (40Н) JNC 01010000В (50Н) а) Команды проверки и управления флагом переноса Код команды Адрес бита Код команды: SETB 11010010B (D2H) CLR 11000010В (С2Н) CPL 10110010В (В2Н) MOV С, 10100010В (А2Н) MOV , С 10010010В (92Н) ANL С, 10000010В (82Н) ANL С, 10110000В (В0Н) ORL С, 01110010В(72Н) ORL С, 10100000В (А0Н) Код команды Адрес бита 1 Смещение JB , 00100000В (20Н) JNB , 00010000В (10H) 00110000В (30Н) JBC , 00010000В (10H) б) Команды проверки и операций с битами /> /> /> /> />
Рисунок 4 – Форматы команд операций над битами
В зависимости от значения байта адресапрямо адресуемый бит выбирается из двух групп битов. Значения адреса от 0 (00Н)до 127 (7FH) определяют биты в 16-байтном блоке внутреннего ОЗУ между адресами20Н и 2FH (см. рис.5а). Они пронумерованы последовательно от младшего битамладшего байта к старшему биту старшего байта. Адреса битов от 128 (80Н) до 255(0FFH) соответствуют битам регистров специальных функций. Адреса этих битоввычисляются иначе, чем адреса ячеек ОЗУ: пять старших битов адреса совпадают ссобственными адресами регистров, а три младших бита адреса идентифицируютпозицию бита в пределах регистра (см. рис.5б).
Хотя MCS-51 имеет 20 регистров специальныхфункций, побитовый доступ обеспечен только для 11 (PSW, АСС, В, P0, P1, P2, P3,TCON, SCON, IE, IP). У 6 из них (PSW, Р3, TCON, SCON, IE, IP) разряды имеютсобственные символические имена (рис.6).
Команды общего назначения, адресующиесянепосредственно к битам, могут обращаться к ним (в том числе и к битупереноса), используя соответствующую мнемонику: CY, AC, F0 и т.д.
К битам всех 11 регистров также можнообратиться, используя соответствующее позиционное обозначение: PSW.1, АСС.2,В.З, Р0.4 и т.д.
Регистр АСС (аккумулятор) и регистр Вотносятся к байтовой арифметике, но их отдельные биты могут использоваться впрограмме в качестве произвольных 16 флагов. В сумме со 128 ячейками ОЗУ этодает 144 битовые ячейки общего назначения для хранения переменных или программныхфлагов.
/>
Рисунок 5 – Адреса прямо адресуемых битов
Все 32 вывода портов Р0-РЗ могут индивидуальноадресоваться как вход, выход или вход/выход в любой комбинации. Любой выводможет служить программно реализуемым стробом, тестовым входом или последовательнымканалом ввода/вывода.
Для обработки битов регистров ОЗУ, неимеющих побитового доступа, могут быть использованы логические операции сбайтами.
Регистр слова состояния программы PSWсодержит биты флагов и состояния процессора, включая флаг переноса. Операцииобработки байтов, воздействуя на регистр PSW, могут таким образом влиять и набит переноса.
/>
Рисунок 6 – Формат регистров специальныхфункций, имеющих символические имена прямо адресуемых битов
В языке ассемблера MCS-51,как показано в табл.3, адрес бита указывается одним из трех способов: числомили выражением, соответствующим прямому адресу бита; названием или адресомрегистра, содержащего данный бит, и позицией бита в регистре (0-7),разделенными точкой; для определенных битов (рис.6) – указанием символическогоимени. Биты также могут обозначаться произвольными именами директивойассемблера «BIT». Например, 5-й бит регистра PSW может быть очищен любойиз четырех команд:USR_FLG BIT PSW.5 ; Описание символа пользователя CLR 0D5H ; Абсолютная адресация CLR PSW.5 ; Использование точечного оператора CLR F0 ; Использование собственного имени бита CLR USR_FLG ; Символ пользователя.
6. Применениебитового процессора
Программная реализация последовательногопорта. ОМЭВМ семейства MCS-51 могут программно принимать и передаватьпоследовательные данные с использованием системы команд битового процессора.Поскольку любой вывод порта может служить последовательным входом или выходом,одновременно можно организовать несколько последовательных линий связи.
На рис. 7 показаны алгоритмы приема ипередачи байтов данных. Программа будет обращаться к этому алгоритму 8 раз,синхронизируясь старт-битом, тактовым сигналом, программной задержкой илипрерыванием от таймера. Данные принимаются путем опроса входного вывода,присвоения биту переноса состояния этого вывода, сдвига бита переноса в буферданных и сохранения полученного значения в ОЗУ. Передача происходит путемсдвига содержимого буфера передаваемого байта через перенос и выдачи состоянияфлага переноса на выходной вывод.

/>
Рисунок 7 – Алгоритмы последовательногопорта ввода/вывода
На рис. 8 приведены программы, реализующиепоказанные на рис. 7 алгоритмы приема и передачи для трех различныхмикропроцессоров: 8085, 8048 и 8051. Программная реализация последовательногопорта на MCS-51 наиболее эффективна. Представленные оценочныехарактеристики подтверждают эффективность реализации последовательного порта набазе MCS-51.
Решение уравнений комбинаторной логики. Нарис. 9 показана реализация на ТТЛ-элементах функции шести переменных от U до Z,которая является решением уравнения
Q = (U × (V+W))+(X × Y)+Z.
Уравнения такого рода решаются с помощьюкарт Карно или аппарата алгебры булевой логики. Для сравнения выполним эту функциютремя способами, ограничиваясь тремя подмножествами системы команд MCS-51.
Предположим, что U и V являются входнымивыводами некоторого порта, W и Х – биты состояния двух периферийныхконтроллеров, a Y и Z – программные флаги, ранее установленные в программе.Окончательный результат должен выдаваться на выходной вывод порта.
Первые два способа решения основываются наалгоритме, показанном на рис. 10, который может быть выполнен практически любыммикропроцессором. Выполнение программы идет с проверками и ветвлением, до техпор пока не будет получен результат, который выдается на порт.8085 8048 8051 IN SERPORT MOV C,SERPIN ANI MASK CLRC JZ L0 JNT0 L0 CMC CPLC L0: LXI HL,SERBUF L0: MOV R0,#SERBUF MOV A,M MOV A,@R0 MOV A,SERBUF RR RRC A RRCA MOV M,A MOV @R0,A MOV SERBUF,A 8 команд 7 команд 4 команды 14 байт 9 байт 7 байт 56 состояний 9 циклов 4 цикла 19 мкс 22,5 мкс 4 мкс а) подпрограмма ввода 8085 8048 8051 LXI HL,SERBUF MOV R0,#SERBUF MOV A,M MOVA,@RO MOV A,SERBUF RR RRCA RRCA MOV M,A MOV @R0,A MOV SERBUF,A IN SERPORT JC H1 JCHI L0: ANI NOT MASK ANL SERPRT,#NOT MASK MOV SERPIN,C JMP CNT JMPCNT H1: ORI MASK H1: ORL SERPRT,#MASK CNT: OUT SERPORT CNT: 10 команд 8 команд 4 команды 20 байт 13 байт 7 байт 72 состояния 11 циклов 5 циклов 24 мкс 27,5 мкс 5 мкс б) подпрограмма вывода Рисунок 8 – Подпрограммы последовательного ввода/вывода

В первом варианте решения (пример 1) неиспользуются команды битового процессора, хотя используется мнемоника MCS-51.Другие процессоры могут выполнить аналогичные действия, используя собственнуюмнемонику типа INPUT, OUTPUT, LOAD, STORE и т.д.
Благодаря возможностям проверки битов однакоманда MCS51 может заменить последовательность«переслать/маскировать/условно перейти». Это позволяет сократитьпрограмму (пример 2). Для удобства каждой входной переменной присвоено символическоеимя.
/>
Рисунок 9 – Аппаратное решение логической функции
/>
Рисунок 10 – Программное решение логической функции
Более красивое решение (пример 3)получается с применением команд битового процессора, благодаря чему удаетсянаписать программу без команд условного перехода. При завершении программыполученный результат присваивается флагу переноса, который копируется навыходной вывод.
Таким образом ОМЭВМ семейства MCS-51могут моделировать любую комбинационную схему с N-числом входов с помощью самоебольшее N+1 строк исходной программы: по одной строке на каждый вход и еще однана сохранение результата. Возможное ограничение при моделировании большогочисла входов и выходов определяется длиной программы и фиксированным числомвыводов портов.
Пример 1. Использование команд с байтовымиоперандамиBFUNC1 вычисляет логическую функцию 6 переменных путем загрузки байта маскирования соответствующих битов в аккумуляторе и выполнения условных переходов. Байты и маски соответствуют адресам и битовым позициям. (Используется для процессоров, ориентированных на работу с байтами) OUTBUF DATA 22H; карта состояния выходов TESTV: MOV A,P2 ANL A,#00000100B JNZ TESTU MOV A,TCON ANL A,#00100000B JZ TESTX TESTU: MOV A,P1 ANL A,#00000010B JNZ SETQ TESTX: MOV A,TCON ANL A,#00001000B JNZ TESTZ MOV A,20H ANL A,#00000001B JZ SETQ TESTZ: MOV A,21H ANL A,#00000010B JZ SETQ CLRQZ: MOV A, OUTBUF ANL A,#11110111B JMP OUTQ SETQ: MOV A, OUTBUF ORL A,#00001000B OUTQ: MOV OUTBUF, A MOV P3,A Пример 2. Использование команд проверки битов BFUNC2 вычисляет логическую функцию 6 переменных путем прямого опроса каждого бита. Биты обозначены в соответствии с символами, использованными в алгоритме (Используется возможность проверки битов) U BIT Pl.l V BIT P2.2 W BIT TF0 X BIT IE1 Y BIT 20H.0 Z BIT 21H.1 Q BIT P3.3 TEST_V: JB V,TEST_U JNB W,TEST_X TEST_U: JB U,SET_Q TEST_X: JNB
X,TEST_Z JNB
Y,SET_Q TEST_Z: JNB Z,SET_Q CLR_Q:
CLR Q JMP NXTTST SET_Q:
SETB Q
NXTTST: ...
; продолжение программы Пример 3. Использование битового процессора FUNC3 Вычисляет логическую функцию 6 переменных с использованием возможностей битового процессора MCS-51. MOV C,V ORL C,W ; Выход вентиля ИЛИ ANL C,U ; Выход верхнего вентиля И MOV 0F,C ; Сохранение промежуточного состояния MOV C,X ANL C,/Y ; Выход нижнего вентиля И ORL C,0F ; Использование ранее вычисленного значения ORL C,/Z ; Использование последней входной переменной MOV C,/Z ; Вывод результата /> /> /> /> /> />
В разделе 7 пособия рассмотреныпрактические примеры и их реализация на основе системы команд и программноймодели ОМЭВМ семейства MCS-51. Все приведенные решения задач имеют программнуюсовместимость с последующими модификациями 8-разрядных микроконтроллеров фирмы INTEL,включая MCS-251.

СПИСОК ЛИТЕРАТУРЫ
1.Исаченко В.П., Осипова В.А., Сукомел А.С. Компьютерная электроника. Учебник длявузов. 3-е изд. перераб. и доп. М.: Энергия. 2005.-488 с.
2.Михеев М.А., Михеева И.М. Основы радиоэлектроники. М.: Энергия. 2003.-368 с.
3.Краснощеков Е.А., Сукомел А.С. Задачник по электронике. М.: Энергия. 1999-280 с.
4.Козлова О.В., Новиков Ю.Л., Бочарова Т.Н. Стандарт предприятия. Оформлениерасчетно-пояснительной записки и графической части. СТП ВГТУ 004-2003.-42 с.
5.Теплотехнический справочник. Под общ. ред. В.Н. Юренева и П.Д. Лебедева. В –2хт. Изд. 2-е, перераб. М., «Энергия», 2006.-897 с.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.