
- •Компьютерная и микропроцессорная техника в электротехнологии
- •Введение
- •Лабораторная работа № 1. Использование специальных возможностей excel
- •Лабораторная работа № 2. Средства автоматизации научно-исследовательских работ. Среда mathcad. Часть I.
- •Литература
- •Лабораторная работа № 3. Средства автоматизации научно-исследовательских работ. Среда mathcad. Часть II.
- •Литература
- •Лабораторная работа №4. Matlab в задачах вычислительной математики
- •Лабораторная работа №5. Введение в Simulink
- •Графопостроитель ху Graph
- •Блок алгебраического контура Algebraic Constraint
- •Разработка структурной модели и ее исследование.
- •Задание:
- •3.2. Задание:
- •Выводы по работе.
- •Лабораторная работа №6. Моделирование логических устройств в среде matlab/Simulink.
- •Лабораторная работа №7. Исследование работы триггеров в среде Simulink. Регистры и счетчики. Связь логических и структурных схем в Simulink.
- •Лабораторная работа № 8. Изучение архитектуры микропроцессорной системы "микротренажер мт-1804".
- •Лабораторная работа №9. Изучение архитектуры микропроцессорной системы "электроника-580".
- •Литература
- •Дополнительная литература
- •Лабораторная работа №10. Программирование микропроцессорной системы "электроника-580.
- •Литература
- •Дополнительная литература
- •Требования к оформлению отчетов по лабораторным работам
- •Содержание
Литература
1. Поляков А.К., Синюхина Л.А. Методические указания к лабораторным работам по курсу "Микропроцессоры и микро-ЭВМ". Отладочное устройство "Электроника-580". М.: Моск. энерг. ин-т, 1986, 39 с.
Дополнительная литература
Токхайм Р. Микропроцессоры: Курс и упражнения. Пер. с англ., под ред. В.Н.Грасевича. М.: Энергоатомиздат, 1988,336 с : ил.
Гилмор Ч. Введение в микропроцессорную технику. Пер. с англ. М.: Мир, 1984,334 с.
Лабораторная работа №10. Программирование микропроцессорной системы "электроника-580.
Цель работы: закрепление навыков практической работы с устройством "Электроника-580" и применения служебной программы МОНИТОР, овладение приемами разработки и отладки программ, выполняющих обработку данных. Освоение простейших методов управления работой индикатора МПС-Э580, а также экспериментальное определение значения внутренней тактовой частоты используемого в работе устройства "Электроника-580".
Подготовка к работе
1. При подготовке к работе следует уделить внимание следующим вопросам:
двоично-десятичный формат представления неотрицательных чисел и их сложение в МП580 (разд. 1.1 пособия [1]);
формирование значений признаков результата при выполнении различных команд МП580;
возможности системы команд МП580 по организации ветвлений при различных значениях признаков результата операции;
возможности системы команд МП580 по организации обращения к подпрограммам;
соответствие ячеек памяти служебной области ОЗУ МПС-Э580 семисегментным элементам индикатора устройства (приложение 2 [2]).
2. При непосредственной подготовке к лабораторной работе необходимо:
ознакомиться с индивидуальным заданием (задачи 10.1, 10.2 и 10.3);
составить блок-схемы алгоритма выполнения каждой из задач 10.1 - 10.3;
записать для задач 10.1 - 10.3 программы на языке Ассемблера;
- выполнить трансляцию программ с языка Ассемблера в машинные коды МП580, подготовить листинги загрузки (адрес ЯП - содержимое ЯП).
Размещение программ в памяти МПС-Э580 следует осуществлять с учетом распределения адресного пространства в МПС-Э580 (рис.2 [2]), небольшие программы целесообразно размещать с адреса 8200Н.
Допуск к работе в лаборатории происходит при наличии оформленного протокола, содержащего блок-схемы алгоритмов и загрузочные листинги программ для задач 10.1 - 10.3 в соответствии с индивидуальным заданием.
Задание к лабораторной работе №10
Задача 10.1. Примем, что в данной задаче все числа представлены в двоично-десятичном коде. Загрузить в аккумулятор исходный операнд d и организовать цикл, каждый шаг которого увеличивает содержимое аккумулятора на величину D и обеспечивает двоично-десятичную коррекцию результата сложения в аккумуляторе. Значения d и D приведены в табл. 10.1.
Таблица 10.1
№ вар. |
d |
D |
№ вар. |
d |
D |
№ вар. |
d |
D |
1 |
14 |
08 |
10 |
09 |
17 |
19 |
08 |
06 |
2 |
15 |
09 |
11 |
10 |
05 |
20 |
09 |
05 |
3 |
16 |
15 |
12 |
11 |
06 |
21 |
12 |
09 |
4 |
17 |
16 |
13 |
12 |
07 |
22 |
13 |
08 |
5 |
18 |
07 |
14 |
13 |
08 |
23 |
14 |
07 |
6 |
19 |
05 |
15 |
14 |
09 |
24 |
15 |
06 |
7 |
06 |
14 |
16 |
05 |
09 |
25 |
16 |
05 |
8 |
07 |
15 |
17 |
06 |
08 |
26 |
17 |
13 |
9 |
08 |
16 |
18 |
07 |
07 |
27 |
18 |
14 |
Задача 10.2. Разработать подпрограмму "Таймер", способную обеспечить формирование задержки не менее 0,5 - 1 с при длительности периода тактовой частоты МП580 0,5 - 1 мкс. Рассчитать длительность выполнения разработанной подпрограммы "Таймер", выразив ее числом машинных тактов МП580. Провести отладку подпрограммы "Таймер", используя процедуры управления индикатором МПС-Э580. Используемые ресурсы МП580 указаны в табл.10.2.
Таблица 10.2
№ вар. |
Регистры МП |
№ вар. |
Регистры МП |
№ вар. |
Регистры МП |
1 |
A,B,C,F |
10 |
A,B,C,F |
19 |
A,B,C,F |
2 |
A,D,E,F |
11 |
A,D,E,F |
20 |
A,D,E,F |
3 |
A,H,L,F |
12 |
A,H,L,F |
21 |
A,H,L,F |
4 |
A,B,C,F |
13 |
A,B,C,F |
22 |
A,B,C,F |
5 |
A,D,E,F |
14 |
A,D,E,F |
23 |
A,D,E,F |
6 |
A,H,L,F |
15 |
A,H,L,F |
24 |
A,H,L,F |
7 |
A,B,C,F |
16 |
A,B,C,F |
25 |
A,B,C,F |
8 |
A,D,E,F |
17 |
A,D,E,F |
26 |
A,D,E,F |
9 |
A,H,L,F |
18 |
A,H,L,F |
27 |
A,H,L,F |
Задача 10.3 Оформить процедуры управления индикатором МПС-Э580 в виде подпрограмм "Отображение символа" и "Гашение символа". Используя подпрограммы "Таймер", "Отображение символа" и "Гашение символа" организовать циклическую управляющую программу, обеспечивающую работу индикатора в режиме мигания. Рассчитать полную длительность выполнения этой программы Тпрогр, выразив ее числом машинных тактов МП580. Экспериментально измерить значение Тпрогр. Рассчитать значение периода внутренней тактовой частоты Тсу устройства "Электроника-580", используемого в лабораторной работе.
Пояснения к задаче 10.1
Двоично-десятичная коррекция результата операции сложения заключается в выполнении следующих действий:
прибавлении числа 6 к содержимому младшей тетрады байта, если в ней появилась шестнадцатеричная цифра A,B,C,D,E или F;
прибавлении числа 6 к содержимому старшей тетрады байта, если в ней появилась шестнадцатеричная цифра A,B,C,D,E,F или если возникал перенос из младшей тетрады байта в его старшую тетраду (признак результата АС=1 в МП580).
Двоично-десятичная коррекция результата операции сложения в АЛУ МП580 осуществляется командой DAA, которая должна следовать вслед за командой сложения чисел, представленных в двоично-десятичном коде.
Пояснения к задачам 10.2 и 10.3
На индикаторе МПС-Э580 отображается содержимое ячеек памяти с адресами 83F8H (крайняя левая позиция индикатора) - 83FFH (крайняя правая позиция). Разряды D7...D0 ячейки памяти связаны с 8 сегментами каждого элемента индикатора МПС-Э580 следующим образом (рис. 10.1):
Единица в соответствующем разряде байта вызывает свечение сегмента индикатора, ноль - его гашение.
Например, код 0110 0111 (67Н) вызовет появление символа "3".
Рис. 10.1. Управление элементами семисегментного индикатора
В задаче 10.2 достаточно, выполняя подпрограмму "Таймер", формировать и гасить изображение любого символа в любом разряде индикатора.
В задаче 10.3 необходимо оформить в виде подпрограмм процедуры управления индикатором МПС-Э580 ("Отображение символа" и "Гашение символа"). Тогда управляющая программа может иметь следующий вид:
Начало
Вызвать подпрограмму "Отображение символа" Вызвать подпрограмму "Таймер"
Вызвать подпрограмму "Гашение символа'
Вызвать подпрограмму "Таймер"
Вернуться к началу
Порядок выполнения работы
При выполнении задач следует придерживаться следующего порядка:
В режиме ОТЛАДКА занести программу в память МПС-Э580, используя шестнадцатеричную форму записи двоичных чисел (разд. 3 [2]).
После записи программы в память осуществить чтение содержимого используемой области памяти с целью проверки ее соответствия листингу программы.
В задаче 10.1 использовать пошаговый режим выполнения программы (разд. 4 [2]). Провести самостоятельное тестирование работоспособности программы, фиксируя в ходе исполнения каждой пары команд ADI и DAA содержимое аккумулятора и значения признаков результата С и АС (признак АС присутствует в регистре F, см. с. 10 [2]).
Убедившись в правильной работе тестируемой программы, продемонстрировать преподавателю полученное решение на устройстве Э580.
4. Решение задач 10.2 и 10.3 необходимо проверить самостоятельно, используя непрерывный режим выполнения программ (разд. 6 [2]).
Убедившись в правильной работе каждой программы, продемонстрировать преподавателю полученное решение на устройстве Э580 и результаты выполненных расчетов.
Вопросы для самопроверки
Дает ли система команд МП580 возможность выполнения операции вычитания для чисел, представленных в двоично-десятичном коде?
Необходимо организовать декрементирование содержимого регистра, хранящего исходное число в двоично-десятичном коде. Предложите программную реализацию процедуры двоично-десятичной коррекции для данной задачи.
На основании пояснений к задачам 10.2 и 10.3 составьте коды, задающие изображения символов "5", "A", "F", "7" и "S" на индикаторе устройства Э580.
4. Предложите возможные способы пересылки кодов отображаемых символов в область адресов служебного ОЗУ.
При каких операндах команда MOV длится 5 машинных тактов? При каких - 7 машинных тактов?
В чем отличие команды INX (DCX) от команды INR (DCR) по воздействию на признаки результата операции?
Если в подпрограмме должны быть использованы регистры А, В, С и F, то какие команды PUSH и POP и в каком количестве следует разместить, соответственно, в начале и в конце подпрограммы? В каком порядке должны быть записаны команды PUSH и в каком порядке команды POP?
Какой командой должна завершаться любая подпрограмма?
Можно ли организовать условный переход по значению АС = 1?
В каких пределах может находиться значение Тсу, полученное в результате расчета при решении задачи 10.3?
Что следует предпринять, если при попытке выполнения программы в непрерывном режиме погаснет и перестанет функционировать индикатор МПС-Э580?
12. Почему программу для МПС-Э580, реализующую конечный алгоритм, следует завершать командой RST4 (код Е7)?