Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КМПТ-ЛР-Погребисский-Федин-2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.48 Mб
Скачать

Литература

1. Поляков А.К., Синюхина Л.А. Методические указания к лабораторным работам по курсу "Микропроцессоры и микро-ЭВМ". Отладочное устройство "Электроника-580". М.: Моск. энерг. ин-т, 1986, 39 с.

Дополнительная литература

  1. Токхайм Р. Микропроцессоры: Курс и упражнения. Пер. с англ., под ред. В.Н.Грасевича. М.: Энергоатомиздат, 1988,336 с : ил.

  2. Гилмор Ч. Введение в микропроцессорную технику. Пер. с англ. М.: Мир, 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 ("Отображение символа" и "Гашение символа"). Тогда управляющая программа может иметь следующий вид:

Начало

Вызвать подпрограмму "Отображение символа" Вызвать подпрограмму "Таймер"

Вызвать подпрограмму "Гашение символа'

Вызвать подпрограмму "Таймер"

Вернуться к началу

Порядок выполнения работы

При выполнении задач следует придерживаться следующего порядка:

  1. В режиме ОТЛАДКА занести программу в память МПС-Э580, используя шестнадцатеричную форму записи двоичных чисел (разд. 3 [2]).

  2. После записи программы в память осуществить чтение содержимого используемой области памяти с целью проверки ее соответствия листингу программы.

  3. В задаче 10.1 использовать пошаговый режим выполнения программы (разд. 4 [2]). Провести самостоятельное тестирование работоспособности программы, фиксируя в ходе исполнения каждой пары команд ADI и DAA содержимое аккумулятора и значения признаков результата С и АС (признак АС присутствует в регистре F, см. с. 10 [2]).

Убедившись в правильной работе тестируемой программы, продемонстрировать преподавателю полученное решение на устройстве Э580.

4. Решение задач 10.2 и 10.3 необходимо проверить самостоятельно, используя непрерывный режим выполнения программ (разд. 6 [2]).

Убедившись в правильной работе каждой программы, продемонстрировать преподавателю полученное решение на устройстве Э580 и результаты выполненных расчетов.

Вопросы для самопроверки

  1. Дает ли система команд МП580 возможность выполнения операции вычитания для чисел, представленных в двоично-десятичном коде?

  2. Необходимо организовать декрементирование содержимого регистра, хранящего исходное число в двоично-десятичном коде. Предложите программную реализацию процедуры двоично-десятичной коррекции для данной задачи.

  3. На основании пояснений к задачам 10.2 и 10.3 составьте коды, задающие изображения символов "5", "A", "F", "7" и "S" на индикаторе устройства Э580.

4. Предложите возможные способы пересылки кодов отображаемых символов в область адресов служебного ОЗУ.

  1. При каких операндах команда MOV длится 5 машинных тактов? При каких - 7 машинных тактов?

  2. В чем отличие команды INX (DCX) от команды INR (DCR) по воздействию на признаки результата операции?

  3. Если в подпрограмме должны быть использованы регистры А, В, С и F, то какие команды PUSH и POP и в каком количестве следует разместить, соответственно, в начале и в конце подпрограммы? В каком порядке должны быть записаны команды PUSH и в каком порядке команды POP?

  1. Какой командой должна завершаться любая подпрограмма?

  2. Можно ли организовать условный переход по значению АС = 1?

  1. В каких пределах может находиться значение Тсу, полученное в результате расчета при решении задачи 10.3?

  2. Что следует предпринять, если при попытке выполнения программы в непрерывном режиме погаснет и перестанет функционировать индикатор МПС-Э580?

12. Почему программу для МПС-Э580, реализующую конечный алгоритм, следует завершать командой RST4 (код Е7)?