
- •Микропроцессорные устройства
- •Оглавление
- •Введение Структура и временные диаграммы работы микропроцессора к580вм80
- •Допуск к лабораторному практикуму. Изучение лабораторного стенда
- •Контрольные вопросы
- •Лабораторная работа №1 Программирование арифметических операций в 8-разрядных микропроцессорах
- •Необходимые теоретические сведения
- •Задания для выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа №2 Параллельный ввод-вывод информации в микропроцессорных системах
- •Необходимые теоретические сведения
- •Описание лабораторной установки
- •Контрольные вопросы
- •Лабораторная работа №3 Ввод аналоговых сигналов в микропроцессорную систему
- •Необходимые теоретические сведения
- •Описание лабораторной установки
- •Задания для выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа №4 Программируемый таймер
- •Необходимые теоретические сведения
- •Описание лабораторной установки
- •Задания для выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа №5 Последовательный ввод-вывод информации в микропроцессорных системах
- •Необходимые теоретические сведения
- •Описание лабораторной установки
- •Задания для выполнения лабораторной работы:
- •Контрольные вопросы
- •Состав команд микропроцессора intel 8080/8085
Контрольные вопросы
Что такое микропроцессорная система, какова ее минимальная структура?
Охарактеризуйте шины МП системы с 3-шинной организацией.
Что такое третье состояние выходных буферов? Для чего оно необходимо? Как достигается?
Что такое ОЗУ?
Что такое ПЗУ?
Что подразумевается под устройствами ввода-вывода?
Каково назначение внешних буферов шин данных и адреса? Как работает двунаправленный буфер?
Перечислите внутренние регистры МП К580ВМ80, каково назначение каждого из них?
Что такое АЛУ? Каковы его функции?
Как осуществляется передача данных из МП в ОЗУ и обратно?
Лабораторная работа №1 Программирование арифметических операций в 8-разрядных микропроцессорах
Целью данной лабораторной работы является изучение языка Ассемблера 8-разрядного микропроцессора посредством выполнения программ сложения, вычитания, умножения и деления.
Необходимые теоретические сведения
Набор команд делится на группы команд арифметических, логических, команд передачи данных, ввода-вывода, команд переходов. Для наименования каждой двоичной команды языки ассемблера используют сокращенное написание английских слов (мнемоническое обозначение). Команда состоит из двух частей: кода операции (КОП) и операнда. Код операции сообщает микропроцессору, что делать, операнд указывает над чем производить действия. Команды имеют длину от 1 до 3 байтов. Код операции всегда занимает первый байт любой команды. Длина команды зависит от способа адресации. Способом адресации принято называть тип обращения (адресацию) к данным. В МП I8080 используются четыре способа адресации.
I. Прямая адресация (трехбайтовая): первый байт – КОП, второй и третий байты – адрес, по которому в памяти находятся данные.
II. Непосредственная адресация (двух или трехбайтовая): первый байт – КОП, второй и третий байты – данные.
III. Регистровая адресация (однобайтовая): КОП подразумевает перемещение данных между какими-либо регистрами общего назначения внутри микропроцессора.
IV. Косвенная адресация (однобайтовая): КОП содержит обозначение старшого байта адресной пары регистров общего назначения [ВС, DE, HL]. По адресу, содержащемуся в этой адресной паре регистров, в памяти находятся (или помешаются туда) нужные данные.
В списке команд найдите примеры каждому способу адресации.
Программа на языке ассемблера состоит из следующих полей:
Адрес – конкретизированное место расположения команды в памяти, т.е. номер ячейки памяти. Это поле присутствует после назначения месторасположения программы в памяти.
Метка – это символическое имя ячейки памяти, в которой хранится отмеченная команда. Метка представляет собой буквенно-цифровую комбинацию, начинающуюся с буквы и завершающуюся двоеточием. Используются только буквы латинского алфавита. Метки необходимы при обращении к определенным ячейкам памяти, например, в командах переходов.
Мнемонические обозначения операций с операндами. Мнемоники – это сокращения полного английского наименования выполняемого действия. Например: MOV - move – переместить, JMP - jump – перейти.
Коды операции с операндами – соответствующие конкретным мнемоникам элементы объектного кода, определяющие действие и то, над чем оно производится. В исходном тексте программы это поле отсутствует и появляется после трансляции текста программы в объектный код.
Комментарии – краткие, произвольные, текстовые или символьные пояснения логической организации прикладной программы. Как правило, поле комментария начинается с точки с запятой (;).
Чтобы понимать предложенные программы, нужно знать правила двоичной арифметики.
Двоичное сложение выполняется, исходя из следующих правил: 0+0=0; 0+1=1; 1+1=10; 1+1+1=11, т.е.
Для отображения чисел со знаком, как правило, используется дополнительный код. Под знак отводится старший разряд числа, для отрицательных чисел в знаковом разряде «1», для положительных «0». Для положительных чисел дополнительный код совпадает с двоичным кодом и преобразование не требуется.
Для отрицательных чисел, т.е. для преобразования -D → дополнительный код, требуется поэтапное преобразование.
Например, для преобразования (- 17):
Отрицательное число записывается по модулю в двоичном коде с учетом дополнительного «знакового» разряда перед старшей «значащей» единицей: │-17│= 010001
Производится инверсия,
т.е. получение обратного кода: 101110
Выполняется инкремент,
т.е. наращивание на 1: 101111
Обратное преобразование с целью выявить модуль исходного числа
дополнительный код →│- D│ требует следующих этапов:
Исходное число, представленное в дополнительном коде,
например: 101101
Инвертируется: 010010
Выполняется Инкремент: 010101 = │-21│
На основании полученного результата можно сделать вывод, что исходное число 101101 = -21.
Микропроцессор способен суммировать, получать обратный код, наращивать на 1. Операция вычитания в микропроцессоре производится как сложение в дополнительном коде.
Вычитание с использованием дополнительного кода выполняется путем преобразования вычитаемого в дополнительный код и затем сложения с уменьшаемым. Разряды, вынесенные за пределы изначально принятых размеров числа, теряются.
Н
апример:
Двоичное умножение заменяется многократным сложением. Стандартная процедура сводится к анализу очередного разряда множителя, начиная с младших, и в случае «1», множимое добавляется к частичной сумме с последующим сдвигом, в случае «0» сразу выполняется сдвиг влево на один разряд.
Например: 13х9:
Если двоичное умножение сводится к сложению и сдвигу, то двоичное деление сводится к вычитанию и сдвигу. Вычитание выполняется с использованием дополнительного кода, т.е. деление сводится к сложению делимого с дополнительным кодом делителя и сдвигу по состоянию знакового бита. Из инверсии знаковых битов промежуточных результатов формируется частное. Например, при делении 40 на 8, число 40 представляется в двоичном коде с добавлением знакового бита 0101000, число 8 представляется в дополнительном коде 11000. Как при любом делении делитель в делимом укладывают, начиная со старших разрядов. Единица, перенесенная за пределы установленных размеров делимого, теряется.
В частное в старший разряд идет 1 (инвертированный знаковый разряд), полученный результат сдвигается влево на один разряд:
В частное в следующий разряд идет 0, а сдвигается на один разряд влево предыдущий результат:
В частное в младший разряд идет 1 и деление заканчивается, поскольку закончен сдвиг. В результате получилось 101.
Выполняя заданные программы, нужно представлять себе структуру МП К580ВМ80 и ЭВМ на его основе. Необходимо пользоваться системой команд этого МП (Приложение 1), где есть пояснения к каждой команде. Если в мнемонике команды упоминается местонахождение только одного операнда, то второй, по умолчанию, будет в аккумуляторе. Туда же, в регистр А, попадает и результат операции.