Тема 1.6 Программное обеспечение микропроцессорных систем
ЛАБОРАТОРНАЯ РАБОТА №3
Запись и выполнение простых программ
Учебные цели: исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
Учебные задачи:
1. Исследование выполнения отдельных команд и простых программ микропроцессором; использование различных методов адресации в программах; запись программ.
2. Закрепление полученных теоретических знания по программированию микропроцессорных систем.
3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование.
Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен:
уметь:
- выполнять требования технического задания по программированию микропроцессорных систем;
- составлять программы на языке Ассемблера микропроцессорных систем;
- создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах;
- производить тестирование и отладку микропроцессорных систем.
знать
- программное обеспечение микропроцессорных систем;
- базовую функциональную схему микропроцессорной системы;
- методы тестирования и способы отладки микропроцессорных систем;
- состояние производства и использования микропроцессорных систем;
- особенности программирования микропроцессорных систем реального времени;
- методы микропроцессорной реализации типовых функций управления.
Задачи лабораторной работы:
Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления;
Практическое использование нового программного продукта.
Обеспеченность занятия:
Учебно-методическая литература:
- Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с.
- Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г.
- Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005
- Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с.
- Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с.
Справочная литература
- Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.;
- Система команд микропроцессора КР580ВМ80.
Технические средства обучения:
- Персональный компьютер;
- Принтер.
Программное обеспечение:
- Операционная система Windows;
- Программа - эмулятор микропроцессорной системы SHELLКР580.
Лабораторное оборудование:
- Персональный компьютер;
- Принтер.
Рабочая тетрадь в клетку
Ручка.
Карандаш простой.
Чертежные принадлежности: линейка
Краткие теоретические и учебно-методические материалы по теме лабораторной работы
При изучении специализированных микропроцессорных устройств рассматриваются приемы проектирования как аппаратных, так и программных средств МПС.
Проектирование программных средств требует знаний, необходимых для выбора метода и алгоритма решения задач, входящих в функции микропроцессорного устройства, для составления программ (часто с использованием языков низкого уровня – языка кодовых комбинаций, языка Ассемблера), а также умения использовать средства отладки программ.
Важнейшим этапом создания любой технической системы является ее отладка. Особенностью отладки микропроцессорных систем является нерасторжимость программных и аппаратных средств. Поэтому проектировщик таких систем должен владеть средствами программирования и отладки программного обеспечения системы. Пособие знакомит студентов с такими средствами на примере учебно-отладочного устройства – программы - эмклятора“КР580” используемого при отладке программного обеспечения на персональном компьютере.
Пособие содержит примеры написания вычислительных и управляющих программ для микропроцессора КР580ВМ80А. На основе этих примеров предлагаются варианты заданий для самостоятельной индивидуальной работы, которые фактически являются и заданиями для лабораторных занятий по основам микропроцессорной техники.
Интерфейс программы: 1 - поле исследуемых программ; 2 – цифровой дисплей; 3 – порт ввода; 4 – порт вывода; 5 – область стековой памяти; 6 - содержимое регистров общего назначения; 7 – флаги регистра признаков; 8 – оперативная память; 9 – программный счетчик (счетчик команд); 10 –указатель стека
Интерфейс выбора заданий:
Учебно-отладочное устройство (УОУ) предназначено для практического овладения студентами колледжа принципами построения микро-ЭВМ различного назначения на базе микропроцессора КР580ВМ80А, для обучения программированию указанного микропроцессора, а также для отладки программного обеспечения этих микро-ЭВМ. Эмулятор по структуре представляет собой универсальную микро-ЭВМ и может быть использован для моделирования процессов в простых системах управления технологическими процессами при условии оснащения соответствующим программами. Тактовая частота микропроцессора в эмуляторе– 2 МГц.
Учебная программа «SHELL» предназначена для знакомства с особенностями построения микро – ЭВМ на микропроцессоре с фиксированным набором команд и может быть использована для исследования методов программирования и работы БИС, входящих в микропроцессорный комплект серии К580. Микро – ЭВМ при создании и исследовании систем управления различными объектами. Она является легко осваиваемыми и удобным средством для отладки относительно небольших (до 1500 строк) программ пользователя.
Рабочие зоны эмулятора
Экран эмулятора состоит из 6 зон. Зона №1 представляет собой экран с исходным текстом программы на ассемблере. Курсор, представляющий собой символ «» указывает на команду, которая выполняется следующей. Счетчик команд РС указывает номер линии с выполняемой командой. Зона №2 – шесть семи сегментных индикаторов с точкой. Запись в них осуществляется посредством команды OUT 70…75, где адрес порта составляет номер индикатора. Таким образом команда OUT 70 запишет в первый индикатор значение регистра А. А команда OUT 73 запишет в четвертый индикатор регистра А. Соответствующие сегменты индикаторов к битам регистра А приведены на рис.3.2
Если соответствующие сегмент индикатора включен, то на мониторе он светится ярким цветом, иначе его видно блеклым цветом.
Зона №3 представляет собой окно, в котором можно просматривать и изменять содержимое памяти.
Зона №4 – это два регистра ввода вывода. Верхний представляет собой регистр ввода. Значение его получить командой IN 80. При этом в регистре А скажется значение этого порта.
Регистр вывода выполнен в виде светодиодов. Вывод в него осуществляется командой OUT 90. При этом значения светодиодов устанавливаются соответственно битам регистра А.
Существует еще один регистр вывода – звуковой. Включение динамика осуществляется записью не нулевого значение регистра А командой OUT 60. Если в регистре А – 0, то динамик отключится.
Зона №5 содержит значения каждого из регистров микропроцессора КР580. Для записи данных в регистры необходимо нажать клавишу, соответствующую номеру регистра. Регистр А имеет №1 и т.д. После введения номера регистра появится окно, для записи данных. Данные – это числа в шестнадцатиричной системе от 01 до FF.
И наконец, зона №6 указывает на область памяти, на которую ссылается регистр SP.
Описание клавиш эмулятора
Клавиши используемые для управления ходом выполнением программы.
Клавиша F2 используется для перезагрузки программы.
Нажав клавишу F4 ваша программа будет выполняться до тех пор, пока не будет достигнуто одно из следующих событий:
- Программный счетчик РС достигнет той строки, на которой стоял курсор.
Пользователь не нажимает клавишу ESC.
Программа завершит свое выполнение с помощью команды HLT.
Возникнет какая либо ошибка (например, синтаксическая).
После того как возникли две предыдущие ситуации, появится окно, в котором будет написана ситуация, из-за которой программа прекратила свое выполнение, строка в которой произошло событие, и варианты действий. Если вы нажмете клавишу 0, то эмулятор реинициализируется и можно будет снова начать выполнение программы. Если вы нажмете клавишу 1, то вы выйдете из эмулятора. Нажав клавишу 2, вы сможете спрятать окно с сообщением до повторного нажатия этой клавиши. Это дает возможность просмотреть результаты работы вашей программы.
С помощью клавиши F9 эмулятор будет выполнять вашу программу до возникновения событий, описанных выше. С помощью клавиш курсора (клавиш со стрелками) вы можете перемещаться по вашей программе вверх/вниз и просматривать её.
Для просмотра памяти используйте клавиши [и]. Клавиша [сдвигает содержимое в зоне №3 на одну ячейку назад, а клавиша] – на одну ячейку вперёд. Для того чтобы редактировать содержимое памяти, нажмите клавишу М. Появится окно, в котором вас спросят об адресе ячейки памяти. Введите адрес, в пределах от 0000h до 1000h и нажмите Enter. Затем в диалоговом окне введите содержимое ячейки – от 00h до FFh.
Для просмотра содержимого стека используются клавиши + и -.
Для изменения содержимого вводного порта используйте клавиши 1…8 – где клавиша 1 – соответствует 0 биту регистра, и т.д., вплоть до клавиши 8, которая соответствует седьмому биту входного регистра. Повторное нажатие клавиши инвертирует соответствующий бит регистра.
Для изменения выходного регистра пользуйтесь клавишами Alt-1…Alt-8.
3.2 Описание программы MENU
Программа MENU предназначена для запуска лабораторных программ. Эта программа, как и программа SHELL состоит из нескольких зон.
Зона №1 – главная зона этой программы. В ней вы можете выбрать, какую программу необходимо загрузить. В этом окне вы увидите название и номер лабораторной работы. Выберите нужную работу и нажмите клавишу Enter или клавишу R. Появится второе окно, в котором вам предложат загрузить нужную программу из лабораторной работы. Выберите нужную программу с помощью курсора и нажмите Enter – для выполнения эмулирования этой программы. Если вместо клавиши R (или Enter) вы нажмёте клавишу E – то вы сможете отредактировать исходный текст программы. После выхода из редактора загрузится эмулятор с текстом изменённой программы.
3.3 Описание программы EDITOR
Программа EDITOR нужна для редактирования уже существующих программ, или для создания новых. При запуске этой программы вы увидите главный (и единственный ) экран программы. Вверху будет строчка статуса, в которой показывается информация о тексте, который редактируется. В остальной части экрана будет сам редактируемый текст. По тексту можно будет передвигаться с помощью клавиш курсора (клавиш со стрелками). Текущая редактируемая программа выделена более ярким цветом, чем остальные. Клавишами «» и «» можно передвигать курсор по длине редактируемой строки, а клавишами «» и «» - по редактируемому тексту. Клавиши с буквами и цифрами – изменяется текст. Нажатием клавиши Backspace – удаляется символ слева от курсора. Клавишей Delete – справа от курсора. Если курсор находится в конце редактируемой строки и вы нажали клавишу Delete, то две строки (текущая и следующая) объединяются в одну. Нажав клавишу Enter вы разбиваете строку в месте положения курсора на две строки – первая часть (до курсора) остается на месте, а вторая часть переносится на следующую.
После того, как вы закончили править текст программы, нажмите клавишу Esc – программа запишет все изменения и завершит свою работу.
Вопросы для закрепления теоретического материала к лабораторной работе:
Что такое мнемоническое имя команды микропроцессора?
Определите команды, которые следовало бы использовать для выполнения перечисленных действий:
- переслать данные в аккумулятор из конкретной области памяти, на которую указывают второй и третий байты команды;
- записать копию содержимого аккумулятора в область памяти, на которую указывает содержимое регистровой пары ВС;
- загрузить регистр В данными, содержащимися во втором байте команды;
- переслать данные из регистра С в регистр В;
- записать в область памяти ААСЕ копию содержимого аккумулятора;
- загрузить содержимое аккумулятора в регистр D.
Задания для лабораторного занятия:
Задание 1: Исследование программы 2.1
Задание 2: Исследование программы 2.2
Задание 3: Исследовать работу программы 2.3
Задание 4: Исследование программы 2.4
Задание 5: Исследование программы 2.5
Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в регистрах пары BC и DE
Задание 7: Исследовать выполнение программы 2.6
Листинги программ находятся в тексте описания лабораторной работы.
Внимание: Количество выполняемых заданий назначает преподаватель
Инструкции по выполнению работы
Микропроцессор КР580ВМ80А имеет фиксированный набор команд. Каждая команда имеет свой машинный код – слово длиной 8, 16 или 24 бит, занимающее соответственно 1, 2 или 3 ячейки памяти в запоминающем устройстве микроЭВМ. Микропроцессор работает по программе, интерпретируя содержимое ячейки памяти как код команды или как данные.
Задание №1
Исследовать работу программы 2.1
Рассмотрим программу 2.1, извлекающую число из ячейки памяти с адресом 0010h, осуществляющую инверсию этого числа и записывающую результат по адресу 0011h.
Программа 3.1 (в мнемокодах)
Мнемокод Комментарий
LXI H, 0010 загрузить адрес 0010h
MOV A,M передать данные из 0010h в аккумулятор
CMA инвертировать содержимое аккумулятора
INX HL сформировать адрес для результата
MOV M,A записать число из аккумулятора в память
HLT прервать выполнение программы
Для начала работы программы , необходимо в рабочую ячейку 0010 занести любое шестнадцатиричное число от 01 до FF.
При записи программ все числа представляются в шестнадцатеричной системе счисления. Для загрузки программы выберите в начальном меню лабораторную работу №2.1, выберете требуемую для исследования программу и нажмите клавишу Enter. Программа запустится и через некоторое время появится стартовое сообщение. Нажмите любую клавишу, появится главный интерфейс программы с выбранной программой для исследования в окне исследуемых программ. Теперь можно приступать к её исследованию.
Задание 1: Исследование программы 2.1
1.1 Ввести программу 2.1 в микро – ЭВМ
1.2 Записать исследуемое число по адресу 0010
1.3 Проверить результат выполнения программы по числу записанному в ячейке 0011
1.4 Составьте таблицу 1 содержимого регистров микропроцессора при выполнении программы 3.1 с командой CMA при выполнении программы по шагам.
Таблица 1
Содержимое регистров после выполнения каждой команды программы 3.1
|
Регистры
МП
|
Шаг программы (команда, после которой анализируется содержимое регистров)
|
0 шаг
(начало)
|
1шаг
LXI H
|
2 шаг
MOV A,M
|
3шаг
CMA
|
4 шаг
INX HL
|
5 шаг
MOV M,A
|
6 шаг
HLT
|
A
|
|
|
|
|
|
|
|
FL
|
|
|
|
|
|
|
|
H
|
|
|
|
|
|
|
|
L
|
|
|
|
|
|
|
|
M1=0010
|
|
|
|
|
|
|
|
M2=0011
|
|
|
|
|
|
|
|
Задание 2: Исследование программы 2.2
2.1Вызвать окно выбора задания и в меню выбрать программу 2.2
2.2 Занести в ячейки 0010 и 0011 сравниваемые числа
2.3 Результат выполнения программы находится в регистре В
2.4 Проконтролировать содержимое ячеек памяти и регистров микропроцессора, участвующих в работе программы
2.5 Графически отобразить выполнение команды lda 0010
Графическое представление команды загрузки аккумулятора
Задание 3: Исследовать работу программы 2.3
3.1 Загрузить программу 2.3 в память
3.2 Записать данные в ячейки памяти 0010 и 0011
3.3 Результирующее число находится в ячейке, адресуемой парой регистров ВС
3.4 Составьте таблицу 2 содержимого регистров микропроцессора при выполнении программы 3.3 с командой ADD M при выполнении программы по шагам.
Таблица 2
№
|
Команда
|
A
|
FL
|
HL
|
М1/данные
|
М2/данные
|
М3/данные
|
ВС
|
DE
|
1
|
lxi hl 0010
|
|
|
|
|
|
|
|
|
2
|
lxi bc, 0011
|
|
|
|
|
|
|
|
|
3
|
ldax bc
|
|
|
|
|
|
|
|
|
4
|
add m
|
|
|
|
|
|
|
|
|
5
|
inx bc
|
|
|
|
|
|
|
|
|
6
|
stax bc
|
|
|
|
|
|
|
|
|
7
|
hlt
|
|
|
|
|
|
|
|
|
Задание 4: Исследование программы 2.4
4.1 Записать программу 2.4 в микро – ЭВМ
4.2 Записать исследуемые числа по адресам 0010 и 0011
4.3 Проверить результат выполнения программы по числу, записанному в регистр В
Задание 5: Исследование программы 2.5
5.1 Занести шестнадцать любых однобайтных чисел в ячейки памяти, начиная с 0000
5.2 Убедится в выполнении последовательного сдвига этих чисел проверкой содержимого адресов 0010
Задание 6: Используя программы 2.2; 2.3; 2.5; составить программу пересылки двух операндов двойной длины, хранящихся в ячейках 0010, 0011, 0012, 0013 в регистрах пары BC и DE
Задание 7: Исследовать выполнение программы 2.6
7.1 Преобразуемое число записать по адресу 0010
7.2 Результат инверсии находится в регистре D
При выполнении заданий №№ 6 и 7 требуется воспользоваться программой EDITOR из пакета SHELLКР580,
Служащей для записи и редактирования программ пользователя. После ввода отредактированных программ в эмулятор предстоит её отладка согласно изученной методике, после чего программа станет доступна для исследования.
Приложение №1
|