Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


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

Тип Реферат
Предмет Коммуникации и связь
Просмотров
1072
Размер файла
138 б
Поделиться

Ознакомительный фрагмент работы:

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

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


Содержание

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Порт 080Н
* Р1Порт 190Н
* Р2Порт 20А0Н
* РЗПорт 30В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 – Обозначение символов в наборе команд

Обозначение, символНазначение
12
ААккумулятор
RrРегистры текущего выбранного банка регистров
rНомер загружаемого регистра, указанного в команде
directПрямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255)
@RrКосвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных
data 88-битовое непосредственное данное, входящее в код операции (КОП)
Data 1616-битовое непосредственное данное, входящее КОП
Data НСтаршие биты (15-8) непосредственных 16-битовых данных
Data LМладшие биты (7-0) непосредственных 16-битовых данных
Addr 1111-битовый адрес назначения
Addr 1616-битовый адрес назначения
Addr LМладшие биты адреса назначения
disp 88-битовый байт смещения со знаком
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 и к отдельно адресуемым битам регистров специальных функций.

ПРИМЕР: SETBBIT(SETB1FH); CLRTF0; CLRC.

Косвенно-регистровая адресация. Косвенно-регистровая адресация используется для обращения к ячейкам внутреннего ОЗУ данных. В качестве регистров-указателей используется регистры R0, R1 выбранного банка. В командах PUSH и POP используется содержимое указателя стека (SP). Косвенно-регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров-указателей R0 и R1 (выбранного банка рабочих регистров) выбирается ячейка из блока в 256 байт внешней памяти данных. 16-разрядный указатель данных (DPTR) может быть использован для обращения к любой ячейке адресного пространства внешней памяти данных объемом до 64 Кбайт.

ПРИМЕР: MOV A,@Ri (MOVA,@R0); 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Установка флага переноса11
SETB bitУстановка бита21
CLRCСброс флага переноса11
CLRbitСброс бита21
CPLCИнверсия флага переноса11
CPL bitИнверсия бита21
MOVC, bitПересылка бита во флаг переноса21
MOV bit,CПересылка флага переноса в бит22
ANL C, bit"Логическое И" бита и флага переноса22
ANL. C, /bit"Логическое И" инверсии бита и флага переноса22
ORL C, bit"Логическое ИЛИ" бита и флага переноса22
ORL C,/bit"Логическое ИЛИ" инверсии бита и флага переноса22
JC rel8Переход, если флаг переноса установлен22
JNC rel8Переход, если флаг переноса сброшен22
JB bit,rel8Переход, если бит установлен32
JNB bit,rel8Переход, если бит сброшен32
JBC bit,rel8Переход, если бит установлен, и сброс этого бита32

ОБОЗНАЧЕНИЯ:

С – флаг переноса;

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<ге18>01000000В (40Н)
JNC<ге18>01010000В (50Н)
а) Команды проверки и управления флагом переноса
Код командыАдрес битаКод команды:
SETB<bit>11010010B (D2H)
CLR<bit>11000010В (С2Н)
CPL<bit>10110010В (В2Н)
MOV С,<bit>10100010В (А2Н)
MOV<bit>, С10010010В (92Н)
ANL С,<bit>10000010В (82Н)
ANL С,</bit>10110000В (В0Н)
ORL С,<bit>01110010В(72Н)
ORL С,</bit>10100000В (А0Н)
Код командыАдрес бита 1Смещение
JB<bit>,<ге18>00100000В (20Н)
JNB<bit>,00010000В (10H)00110000В (30Н)
JBC<bit>,<ге18>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_FLGBIT 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, который может быть выполнен практически любым микропроцессором. Выполнение программы идет с проверками и ветвлением, до тех пор пока не будет получен результат, который выдается на порт.

808580488051
IN SERPORTMOV C,SERPIN
ANI MASKCLRC
JZ L0JNT0 L0
CMCCPLC
L0: LXI HL,SERBUFL0: MOV R0,#SERBUF
MOV A,MMOV A,@R0MOV A,SERBUF
RRRRC ARRCA
MOV M,AMOV @R0,AMOV SERBUF,A
8 команд7 команд4 команды
14 байт9 байт7 байт
56 состояний9 циклов4 цикла
19 мкс22,5 мкс4 мкс
а) подпрограмма ввода
808580488051
LXI HL,SERBUFMOV R0,#SERBUF
MOV A,MMOVA,@ROMOV A,SERBUF
RRRRCARRCA
MOV M,AMOV @R0,AMOV SERBUF,A
IN SERPORT
JC H1JCHI
L0: ANI NOT MASKANL SERPRT,#NOT MASKMOV SERPIN,C
JMP CNTJMPCNT
H1: ORI MASKH1: ORL SERPRT,#MASK
CNT: OUT SERPORTCNT:
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 переменных путем загрузки байта маскирования соответствующих битов в аккумуляторе и выполнения условных переходов. Байты и маски соответствуют адресам и битовым позициям. (Используется для процессоров, ориентированных на работу с байтами)
OUTBUFDATA22H ; карта состояния выходов
TESTV:MOVA,P2
ANLA,#00000100B
JNZTESTU
MOVA,TCON
ANLA,#00100000B
JZTESTX
TESTU:MOVA,P1
ANLA,#00000010B
JNZSETQ
TESTX:MOVA,TCON
ANLA,#00001000B
JNZTESTZ
MOVA,20H
ANLA,#00000001B
JZSETQ
TESTZ:MOVA,21H
ANLA,#00000010B
JZSETQ
CLRQZ:MOVA, OUTBUF
ANLA,#11110111B
JMPOUTQ
SETQ:MOVA, OUTBUF
ORLA,#00001000B
OUTQ:MOVOUTBUF, A
MOVP3,A
Пример 2. Использование команд проверки битов
BFUNC2вычисляет логическую функцию 6 переменных путем прямого опроса каждого бита. Биты обозначены в соответствии с символами, использованными в алгоритме (Используется возможность проверки битов)
UBITPl.l
VBITP2.2
WBITTF0
XBITIE1
YBIT20H.0
ZBIT21H.1
QBITP3.3
TEST_V:JBV,TEST_U
JNBW,TEST_X
TEST_U:JBU,SET_Q
TEST_X:JNBX,TEST_Z
JNBY,SET_Q
TEST_Z:JNBZ,SET_Q
CLR_Q:CLRQ
JMPNXTTST
SET_Q:SETBQ
NXTTST:...; продолжение программы
Пример 3. Использование битового процессора
FUNC3Вычисляет логическую функцию 6 переменных с использованием возможностей битового процессора MCS-51.
MOVC,V
ORLC,W; Выход вентиля ИЛИ
ANLC,U; Выход верхнего вентиля И
MOV0F,C; Сохранение промежуточного состояния
MOVC,X
ANLC,/Y; Выход нижнего вентиля И
ORLC,0F; Использование ранее вычисленного значения
ORLC,/Z; Использование последней входной переменной
MOVC,/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% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно