Скачать 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 На 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 |
Методические указания предназначены для студентов экономического факультета, изучающих курсы «Документирование управленческой деятельности»... | Мдк02. 02 Стропальное дело профессионального модуля пм. 02 Ремонтно-профилактическое обслуживание механизмов кранов металлургического... | ||
Настоящие методические рекомендации определяют общие требования по выполнению практических работ в соответствии с фгос по специальности... | Методические указания к выполнению лабораторных работ по дисциплине информатика для студентов I курса специальности 080507 IV курса... | ||
Методические указания предназначены для обучающихся по специальности 140448 Техническая эксплуатация и обслуживание электрического... | Учебно-методическое пособие предназначенодля студентов 3 курса, обучающихся по профессии 23. 01. 03 Автомеханик. Пособие содержит... | ||
Информационные технологии на транспорте: Методические указания по изучению раздела «субд ms access» и выполнению лабораторных работ.... | Методические указания к выполнению практических работ обучающимися по дисциплине оп. 05 | ||
... | Методические указания предназначены для выполнения лабораторного практикума в соответствии с программой курса «Аналитическая химия»... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |