Скачать 2.05 Mb.
|
Тема 1.6 Программное обеспечение микропроцессорных систем ЛАБОРАТОРНАЯ РАБОТА №6 Разработка и использование программ с подпрограммами Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах ; Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Образовательные результаты, заявленные во ФГОС третьего поколения: Студент должен: уметь: - выполнять требования технического задания по программированию микропроцессорных систем; - составлять программы на языке Ассемблера микропроцессорных систем; - создавать и отлаживать программы реального времени средствами программной эмуляции и на аппаратных макетах; - производить тестирование и отладку микропроцессорных систем. знать - программное обеспечение микропроцессорных систем; - базовую функциональную схему микропроцессорной системы; - методы тестирования и способы отладки микропроцессорных систем; - состояние производства и использования микропроцессорных систем; - особенности программирования микропроцессорных систем реального времени; - методы микропроцессорной реализации типовых функций управления. Задачи лабораторной работы: 1.Используя программу эмулятора микропроцессорной системы исследовать систему команд микропроцессора КР580ВМ80 и программы типовых функций управления; 2.Практическое использование нового программного продукта. Обеспеченность занятия: 1. Учебно-методическая литература: - Костров Б.В., Ручкин В.Н. Микропроцессорные системы и контроллеры. Учебное пособие. М.,ДЕСС, 2007г,319 с. - Майоров В.Г., Гаврилов А.И. Практический курс программирования микропроцессорных систем. – М.: Машиностроение, 1999 г. - Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005 - Палагута К.А. Микропроцессоры INTEL 8080, 8085 (КР580ВМ80А, КР1821ВМ85А) и их программирование/ К.А. Палагута. – М.:МГИУ, 2007. – 104 с. - Программирование микропроцессорных систем: Учеб. пособие для вузов /Под ред. В.Ф.Шаньгина. – М.: Академия., 2009. – 303 с. 2. Справочная литература - Конспект лекций «Микропроцессорные системы». Составитель Кузнецов Е.Г. Изд, ГБОУ СПО ЖГК, 2013 г.; - Система команд микропроцессора КР580ВМ80. 3.Технические средства обучения: - Персональный компьютер; - Принтер. 4. Программное обеспечение: - Операционная система Windows; - Программа - эмулятор микропроцессорной системы SHELLКР580. 5. Лабораторное оборудование: - Персональный компьютер; - Принтер. 6. Рабочая тетрадь в клетку
Краткие теоретические и учебно-методические материалы по теме лабораторной работы Память микропроцессорной системы на МП КР580ВМ80 может иметь не более 65 536 однобайтных ячеек. Учитывая это, нужно стараться сделать программы как можно короче. С этой целью, часть программы, которая повторяется, или программа, которая часто используется, могут быть сделаны в виде подпрограммы – последовательности команд, выполнение которых может быть вызвано из любого места программы любое количество раз. Процесс передачи управления к подпрограмме называется её вызовом. Данные адреса требуются для работы подпрограммы, называются входными параметрами. Результаты работы подпрограммы передаваемые по окончанию её работы в основную программу, называются выходными параметрами. Для вызова подпрограммы и возврата из них используются команды CALL и RET. Команда CALL загружает в регистр PC номер линии подпрограммы, при этом микро – ЭВМ автоматически сохраняет в стеке адрес основной программы, к которому она будет обращаться после выполнения подпрограммы. Существуют также команды условного вызова подпрограммы и возврата из них. Они позволяют вызвать подпрограмму и возвратится из неё по определенному состоянию заданных разрядов регистра признаков (аналогично командам условных переходов) без использования дополнительных команд. Команды вызова подпрограммы и возврата из них используют стек и внутренний регистр для адресации к стеку. На Error: Reference source not found приведен алгоритм простой подпрограммы временной задержки. Здесь общее время задержки вычисляется по формуле: где – число, первоначально записанное в счетчик. В качестве счетчика использован регистр B, в котором записывается число из регистра C. Команда NOP нужна для увеличения времени выполнения цикла, а, следовательно, и общей задержки. Повтором необходимого числа команд NOP можно корректировать минимальную временную задержку. Величины и фиксированы и в цикл не входят. Минимальная задержка задается при , а максимальная при . Рис. 1 Алгоритм подпрограммы временной задержки Вопросы для закрепления теоретического материала к лабораторной работе:
- равенства 0 всех разрядов аккумулятора; - достижения содержимым регистра определенного значения после отрицательного приращения; - значение разрядов регистра состояния; - содержимого регистра команд? 3. Какое из нижеперечисленных действий выполняется при вызове одной подпрограммы из другой подпрограммы: - команда JNE; - вложение подпрограмм; - ветвление программы; - проверка условий? 4.Какое из приведенных ниже действий осуществляется с помощью команды ВОЗВРАТ ИЗ ПОДПРОГРАММЫ: - загрузка данных в стек; - извлечение данных из стека; - начальная установка стека; - нарушение работы стека? Задания для лабораторного занятия: Задание №1: Исследование программы 5.1 1.Записать программу 5.1 в память эмулятора Задание №2: Исследований программы 5.3 1.Записать полный текст программы 5.3 для генерации звуковых сигналов с учетом программ 5.1 и 5.2 Задание №3: Исследование программы П5.4 1.Ввести программ П5.4 в память эмулятора Задание №4: Исследование программы 5.5 1.Записать программу 6.5 в память эмулятора. Листинги программ находятся в тексте описания лабораторной работы. Внимание: Количество выполняемых заданий назначает преподаватель Инструкции по выполнению работы Задание №1: Исследование программы 5.1
Подпрограмма №5.1: mov b,c записать число из регистра С в регистр В dly:nop нет операции dcr b уменьшить содержимое В на 1 jnz dly пока в регистре В не 0 идти на dly hlt все Задание №2: Исследование программы 5.3 1.Записать полный текст программы 5.3 для генерации звуковых сигналов с учетом программ 5.1 и 5.2 2.Ввести в микро – ЭВМ программу. Установить на входном устройстве число 00. Произвести пуск программы и проследить за изменением тона звука, увеличивается число, записанное во входное устройство. Подпрограмма №5.2: jmp main delay:mov b,c записать число из регистра С в регистр В dly:nop нет операции dcr b уменьшить содержимое В на 1 jnz dly пока в регистре В не 0 идти на dly ret все main:xra a очистить аккумулятор out 60 записать 00 в выходное устройство call delay вызвать подпрограмму задержки cma записать код FF в регистр А out 60 записать код FF в выходное устройство call delay вызвать подпрограмму задержки hit все Программа №5.3: jmp main delay:mov b,c записать число из регистра С в регистр В dly:nop нет операции dcr b уменьшить содержимое В на 1 jnz dly пока в регистре В не 0 идти на dly ret возврат из подпрограммы bpp:xra a очистить аккумулятор out 60 записать 00 в выходное устройство call delay вызвать подпрограмму задержки cma записать код FF в регистр А out 60 записать код FF в выходное устройство call delay вызвать подпрограмму задержки ret возврат из подпрограммы main:in 80 прочитать число из входного регистра в аккумулятор mov c,a записать число в регистр С call bpp вызвать подпрограмму BPP jmp main продолжать Задание №3: Исследование программы П5.4 1.Ввести программ П5.4 в память эмулятора 2.Установить на выходном устройстве переключатели соответственно числу 11. Осуществить пуск программы. Убедиться, что МПС будет находиться в режиме ожидания появления 0 в любом разряде входного устройства. 3.Установить 0 с помощью переключателей в любом из разрядов входного устройства. Проверить содержимое всех регистров МП после окончания программы. Осуществить повторный пуск программы при наличии нулей в двух разрядах входного устройства. Какое число будет записано в регистре В после окончания выполнения программы? Программа №5.4: lxi sp,0bb0 записать в SP адрес стека m1:in 80 получить число из входного устройства cri ff содержит ли какой-нибудь разряд 0? jz m1 если нет, то ждать call m2 если да, то вызвать подпрограмму определения разряда hit останов m2:mvi b,ff m3:inr b увеличить содержимое В rrc сдвиг вправо jc m3 если CY=1, то продолжать ret возврат из подпрограммы Задание №4: Исследование программы 5.5
Программа №5.5: push bc записать в стек содержимое регистра ВС lxi bc,1218 занести в регистр ВС время задержки call cnt обращение к подпрограмме jmp done перейти в конец программы cnt:dcx bc декремент содержимого ВС jnz cnt если ВС0, идти на cnt ret иначе возврат из подпрограммы done:pop bc восстановить содержимое ВС hlt останов программы Методика анализа результатов, полученных по лабораторной работе Команда условного перехода проверяет состояние соответствующего разряда регистра признаков (F). Если при проверке состояния разряда регистра признаков условие не подтверждается, то выполняется следующая по порядку команда программы, иначе происходит переход. Программа 4.1 осуществляет ожидание простого (двоичного) события и при возникновении этого события формирует простое (двоичное) управление. В программе каждый бит порта с адресом 03h ассоциируется с некоторым событием от внешнего устройства, например, соответствует состоянию некоторого концевого переключателя технологического процесса. Таким образом, в технологическом процессе задействованы 8 концевых переключателей с номерами 0, 1, …, 7. Так же в технологическом процессе задействованы 8 исполнительных механизмов с номерами 0, 1, …, 7, могущих принимать выключенное состояние или включенное состояние (0 или 1). Порядок выполнения отчета по лабораторной работе
Образец отчета по лабораторной работе: ЛАБОРАТОРНАЯ РАБОТА №6 Разработка и использование программ с подпрограммами Учебные цели: Исследование особенностей записи подпрограмм и обращения к подпрограммам на языке Ассемблер в микропроцессорных системах ; Учебные задачи: 2. Закрепление полученных теоретических знания по программированию микропроцессорных систем. 3. Практически рассмотреть состояние различных узлов и устройств микропроцессора, а также компонентов микропроцессорной системы, используя программное моделирование. Выполнение работы Задание №1: Программа 5.1. MOV B,C // Переслать данные из регистра C в регистр B. (тактов 5). DLY: NOP // пустая операция. (тактов 4). DCR B // декрементировать B. (тактов 5). JNZ DLY // если B не ноль, то переход по метке. (тактов 10-если переход, 4-если не переход). HLT // Останов. (тактов 7). Эту программу можно условно разделить на несколько частей: команды которые повторяются только один раз, команды которые могут повторяться много раз. Каждая команда выполняется за определённое количество тактов, причём команда условного перехода JNZ DLY выполняется за 10 тактов если условие верно и осуществляется переход, и за 7 тактов – если условие не выполнено. Можно составить уравнение по подсчету нужного количества итераций цикла этой программы, оно имеет вид: S = 5 + n·(4+5) + (n-1)·10 + 4 + 7, где S – общее число тактов на выполнение программы, n – число итераций цикла. Что бы найти количество итераций цикла для обеспечения нужного числа тактов программы, а следовательно задержки нужно формулу преобразовать: С учётом того, что один такт равен 0,5·10-3 ,чтобы получить задержку в 0,5 сек., подставляем в формулу значение S и получаем количество итераций цикла равным 52 в десятичной системе счисления, необходимо перевести это число в шестнадцатеричную систему счисления для того что бы процессор мог их корректно обработать. Оно равно 34h. Это число нужно записать в регистр C до начала выполнения программы. Задание №2: MVI A,02h RET_: OUT 90 RAL RAL CALL WAT_ JMP RET_ HLT WAIT_: MOV B,C DLY: NOP DCR B JNZ DLY RET HLT Программа №5.4: lxi sp,0bb0 записать в SP адрес стека m1:in 80 получить число из входного устройства cri ff содержит ли какой-нибудь разряд 0? jz m1 если нет, то ждать call m2 если да, то вызвать подпрограмму определения разряда hit останов m2:mvi b,ff m3:inr b увеличить содержимое В rrc сдвиг вправо jc m3 если CY=1, то продолжать ret возврат из подпрограммы При наличии на входном устройстве числа FFh программа зацикливается на первой итерации. При наличии одной единицы программа выполняется и в конце программы в регистре B остаётся число – номер первого разряда с нулём слева на право. При наличии большего числа нулей в регистре B получается номер разряда самого левого из нулей. Задание №3: Программа №5.5: push bc записать в стек содержимое регистра ВС lxi bc,1218 занести в регистр ВС время задержки call cnt обращение к подпрограмме jmp done перейти в конец программы cnt:dcx bc декремент содержимого ВС jnz cnt если ВС0, идти на cnt ret иначе возврат из подпрограммы done:pop bc восстановить содержимое ВС hlt останов программы На опыте оказалось, что программа выполняется за 6 секунд, что на 4 секунды быстрее указанного времени. Ответы на контрольные вопросы: 1. 2. 3. 4. Анализ результатов, полученных в ходе лабораторной работы: Программный раздел содержит наборы программ для исследования на языке ассемблера для микропроцессоров 8080.Каждой программе предпосланы введение и комментарии; за каждой программой следует по крайней мере один пример ее использования. При исследовании программ была получена следующая информация: назначение программы, процедуру ее выполнения, используемые регистры, размер памяти, необходимый для программы и ее данных, а также специальные случаи, входные и выходные условия. Программа 5.1 реализует алгоритм программной задержки, где занимает один байт: регистр С Для получения требуемой задержки организован цикл, поэтому величина может варьироваться от 00h до FFh (т. е. от 0 до 256), для вычисления временной задержки здесь может быть использована Для получения задержки 0,5 сек в регистр С необходимо записать число 34h. Программа 5.2 реализует алгоритм программной задержки, где занимает два байта: В и С. Для увеличения времени задержки организовано два цикла (цикл в цикле), поэтому величина может варьироваться от 0000h до FFFFh (т. е. от 0 до 65535), однако, для вычисления временной задержки здесь должна использоваться гораздо более сложная формула. Число записанное в регистровой паре, рассчитанное по формуле, ВС =1218 дало временную задержку 6 сек. Чтобы получить 10 сек нужно число увеличить. Оно будет равно 1896 РАЗДЕЛ 1 |
Методические указания по выполнению лабораторных работ Издательство Инженерная геодезия. Методические указания по выполнению лабораторных работ. Составители: Шешукова Л. В., Тютина Н. М., Клевцов Е.... |
Методические указания к выполнению kjrcobou и дипломной работ по курсу Методические указания к выполнению курсовой и дипломной работ по курсу «Экономика и организация производства на предприятия приборостроения»:... |
||
Методические указания по выполнению лабораторных работ по дисциплине... Методические указания по выполнению лабораторных работ рассмотрены и утверждены на заседании кафедры «Безопасность труда и инженерная... |
Методические указания для студентов по выполнению лабораторных и... Методические указания для студентов по выполнению лабораторных и практических работ |
||
Методические указания по выполнению практических и лабораторных работ... Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит... |
Методические указания по выполнению лабораторных работ по дисциплине «Сметное дело» ... |
||
Методические указания к выполнению курсовой и дипломной работ по... Методические указания составлены применительно к выполнению курсовой работы по дисциплине: Экономика и организация производства на... |
Методические указания по выполнению практических и лабораторных работ... Методические указания предназначены для обучающихся по специальностям технического профиля 21. 02. 08 Прикладная геодезия |
||
Методические указания к выполнению лабораторных работ Омск 2006 П. С. Гладкий, Е. А. Костюшина, М. Е. Соколов, Проектирование баз данных: Методические указания к лабораторным работам. Омск: Издательство:... |
Сборник методических указаний для студентов по выполнению лабораторных работ дисциплина «химия» Методические указания для выполнения лабораторных работ являются частью основной профессиональной образовательной программы Государственного... |
||
Ю. А. Дадаян Сборник лабораторных работ по курсу Методические указания предназначены для студентов специальности 200106 «Информационно-измерительная техника и технологии» |
Методические указания к проведению лабораторных работ рпк «Политехник» Спецкурс по эксплуатации систем электроснабжения: Методические указания к проведению лабораторных работ / Сост. С. В. Хавроничев;... |
||
Методические указания по проведению лабораторных работ по дисциплине «Информатика» Методические указания по проведению лабораторных работ предназначены для студентов гоапоу «Липецкий металлургический колледж» технических... |
Методическое пособие по выполнению практических работ по междисциплинарному курсу Планирование численности и рациональной расстановки работников структурного подразделения по рабочим местам |
||
Методические указания по выполнению лабораторных работ Казань 201 Эксплуатация, диагностика и надежность гту: метод указания/ сост.: Б. М. Осипов, А. В. Титов, Р. Г. Сагадеев. Казань: Казан гос... |
Методические указания по выполнению лабораторных работ по дисциплине “Базы данных” Методические указания предназначены для студентов специальностей 230401 «Прикладная математика», 230105 «Программное обеспечение... |
Поиск |