Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ФЭ, Часть 2.doc
Скачиваний:
6
Добавлен:
22.12.2018
Размер:
1.01 Mб
Скачать

3. Распределение памяти "Микролаб", запись данных и выполнение программ.

Команды машинного языка КР580ИК80 принято записывать в виде двухразрядных шестнадцатиричных чисел. Текст программы содержит 5 колонок: Адрес - Содержимое - Метка - Команда – Комментарии (см. тексты программ в конце работы). В первых двух колонках помещают адрес ячейки памяти и содержимое этой ячейки. Третья колонка содержит мнемоническое обозначение команды. Мнемоника гораздо легче для запоминания, чем машинные коды. В колонке комментариев записывают примечания, которые облегчают понимание программы. Метки служат для быстрого нахождения в программе подпрограмм. Колонки команд и меток содержат текст программы на языке "ассемблер". Последовательность кодов в колонке "содержимое" вместе с адресами называется программой в машинных кодах ("на машинном языке").

Область ОЗУ пользователя – с адреса 8000 по 83С6. Наши программы должны находиться именно в этой области. Перед занесением программы на цифровой части клавиатуры набирают начальный адрес (обычно 8000) и нажимают клавишу УСТ.АД.. На четырех левых индикаторах дисплея отражается текущий адрес. Поочередно набирая коды команд программы, записывают их нажатием клавиши ЗАПИСЬ. При этом 5-й и 6-й индикаторы отражают код записанной команды или ее части (команда может содержать от одного до трех слов и занимать до трех ячеек памяти). Показания индикатора адреса увеличиваются на единицу. Два правых индикатора показывают содержимое ОЗУ по текущему (новому) адресу.

1. текущий адрес;

2. данные предыдущего адреса;

3. вводимые данные.

После набора программы ее необходимо проверить, для чего после сброса (клавиша СБРОС) вновь устанавливают начальный адрес программы и, нажимая клавишу АД+, проверяют соответствие содержимого ОЗУ тексту программы. Для запуска программы устанавливают начальный адрес и нажимают клавишу ПУСК. Переключатель АВТ-ШАГ должен стоять в положении АВТ (автоматическая работа). Можно просмотреть выполнение каждой команды программы по шагам. Для этого переключатель АВТ-ШАГ ставят в положение ШАГ (пошаговый режим), устанавливают начальный адрес программы и нажимают клавишу ПУСК. Выполняется первая команда программы. После каждого нажатия клавиши выполняется следующая команда.

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

Задание № 1. Изучение распределения памяти "Микролаб", запись и исправление данных.

1. Включить "Микролаб" и подготовить ее к работе (нажать кнопку "СБРОС").

2. Проверить содержимое некоторой ячейки в области ОЗУ пользователя: набрать это число на клавиатуре (оно появляется на четырех правых индикаторах) и нажать клавишу УСТ. АД. Теперь адрес высвечивается на четырех левых индикаторах. Два крайних правых индикатора покажут содержимое этой ячейки. Сразу после включения "Микролаб" эти данные будут случайными.

3. Проверить содержимое следующих ячеек, нажимая кнопку АД +. При этом происходит приращение адреса на 1; на двух крайних правых индикаторах информация меняется – они показывают данные установленного (т.е. текущего) адреса, а данные предыдущего адреса смещаются левее.

3. Вызвать и запустить программу, хранящуюся в ПЗУ с адреса 300, для чего выполнить следующие действия:

1). Нажать кнопку СБРОС.

2). Набрать на клавиатуре начальный адрес программы (число 300) и нажать кнопку УСТ. АД. На двух крайних правых индикаторах появится код команды, хранящейся по этому адресу (в нашем случае это С3).

3). Нажать клавишу ПУСК. Индикаторы погаснут, выполняется программа – музыкальный фрагмент.

Убедиться, что при этом МП не реагирует на клавиатуру. Прервать выполнение программы, нажав клавишу СБРОС. Вернуться к выполнению программы с помощью кнопки ВОЗВРАТ.

4. Отработать запись данных в память:

1). Нажать кнопку СБРОС.

2). Набрать на клавиатуре адрес 8000 и нажать кнопку УСТ.АД.

3). Нажать кнопки 3, Е (эти данные – 3Е – появятся на двух крайних правых индикаторах) и затем – ЗАПИСЬ (запись данных 3Е по адресу 8000). На индикаторах происходит приращение адреса на 1 (теперь на четырех левых индикаторах высвечивается адрес 8001), а данные, записанные в ячейку 8000, смещаются левее.

4). Нажать кнопку СБРОС. Установить адрес 8000 и убедиться в том, что данные (3Е) записаны в эту ячейку.

Проверить, что записать эти данные в ПЗУ по адресу, например, 01D5 невозможно.

5. Провести эксперимент по исправлению ошибки.

1). Набрать на клавиатуре адрес 8022, но не устанавливать его. Считая адрес ошибочным, набрать правильный (например, 8202) и нажать УСТ.АД.

2). Ввести данные по этому адресу. Нажать, например, кнопки 7 и 9. Допустим, что это не те данные, которые необходимо было ввести: правильные данные 7А. Набрать эти данные на клавиатуре: неправильные данные сместятся левее и будут утеряны ("Микролаб" сохраняет только крайнее две цифры). Нажать кнопку ЗАПИСЬ. Теперь данные 7А запишутся по адресу 8202.

3). Изменить уже введенные данные: нажать кнопку АД – (уменьшение адреса на 1) – и, тем самым, вернуться к адресу 8202 и данным 7А. Набрать новые данные – 6А – и ввести их нажатием кнопки ЗАПИСЬ.

Задание № 2. Ввод и запуск различных программ.

1. Программа № 1: Вывод звуковых сигналов (см. ниже):

1). Занести в память программу № 1 с адреса 8000.

2). Проверить содержимое ОЗУ по адресам 8000-800D.

3). Запустить программу и проверить ее работу, нажимая разные цифровые клавиши.

4). Внести изменение в программу: в ячейку 8009 записать код 00. Для этого остановить работающую программу клавишей СТОП и установить адрес 8009. Затем набрать код 00 и нажать клавишу ЗАПИСЬ.

5). Запустить измененную программу с адреса 8000.

6). Нажать поочередно клавиши 1,4,5,7.

2. Программа №2: Бегущие огни.

1). Занести в память программу № 2

2). Запустить программу с начального адреса.

3). Если программа не работает, проверить содержимое ОЗУ. Найдя ошибки, исправить их.

Программа № 1. Вывод звуковых сигналов.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

CD

READ

CALL KEYIN

Вызов подпрограммы чтения с клавиатуры

8001

16

8002

02

8003

FE

CPI 07

Сравнение кода ключа с 07

8004

07

8005

C2

JNZ READ

Возврат, если кнопка 7 не нажата

8006

00

8007

80

8008

CD

CALL BEEP

Вызов подпрограммы подачи звукового сигнала, если кнопка 7 нажата

8009

50

800А

03

800B

C3

JMP READ

Повторение программы

800C

00

800D

80

Программа № 2. Бегущие огни.

Адрес

Содержимое

Метка

Команда

Комментарии

8000

3E

MVI A,81

Программирование интерфейса

8001

81

8002

D3

8003

FB

OUT FB

8004

3E

SEQ

MVI A,92

Установка кода горения 1,4,7 светодиодов

8005

92

8006

D3

OUT F9

8007

F9

8008

16

MVI D,01

Задание времени задержки

8009

01

800A

CD

CALL DELAY

Вызов подпрограммы временной задержки

800B

22

800C

80

800D

3E

MVI A,49

Установка кода горения

2,5,8 светодиодов

800E

49

800F

D3

OUT F9

8010

F9

8011

16

MVI D,01

Задание времени задержки

8012

01

8013

CD

CALL DELAY

Вызов подпрограммы временной задержки

8014

22

8015

80

8016

3E

MVI A, 24

Установка кода горения 3,6 светодиодов

8017

24

8018

D3

8019

F9

801A

16

MVI D, 01

Задание времени задержки

801B

01

801C

CD

CALL DELAY

Вызов подпрограммы времени задержки

801D

22

801E

80

(Продолжение программы № 2)

Адрес

Содержимое

Метка

Команда

Комментарии

801F

C3

JMP SEQ

Возврат в основную программу "Бегущие огни"

8020

04

8021

80

8022

01

DELAY

LXI B,2500

Начало внутренней петли задержки

8023

00

8024

25

8025

0B

LOOP

DCX B

Внутренняя петля, генерирующая задержку 0,786 с

8026

78

MOV A,B

8027

B1

ORA C

8028

C2

JNZ LOOP

8029

25

802A

80

802B

15

DCR D

Основная петля задержки

802C

C2

JNZ DELAY

802D

22

802E

80

802F

C9

RET

Возврат

Лабораторная работа № 13.