- •Оглавление.
- •Изучение цифроаналоговых преобразователей (цап).
- •3. Основные параметры цап.
- •Введение.
- •1.Цифроаналоговые преобразователи.
- •2. Основные параметры цап.
- •3. Основные типы цап.
- •Порядок выполнения работы.
- •Изучение аналогово-цифровых преобразователей (ацп).
- •Введение.
- •1. Аналогово-цифровые преобразователи.
- •2. Входные и выходные сигналы ацп. Основные параметры.
- •3. Работа мультивибраторного ацп.
- •Порядок выполнения работы.
- •2. Структура микропроцессорной лаборатории.
- •3. Распределение памяти "Микролаб", запись данных и выполнение программ.
- •Порядок выполнения работы.
- •Программирование в машинных кодах (1).
- •1. Программные средства.
- •2. Форматы команд и данных.
- •3. Команды мп кр580ик80.
- •2. Арифметические и логические команды.
- •4. Команды переходов.
- •4. Команды ввода/вывода и управления.
- •Порядок выполнения работы.
- •Программирование в машинных кодах (2).
- •1. Архитектура эвм "Микролаб".
- •2. Программы временной задержки.
- •3. Индикация данных.
- •Порядок выполнения работы.
- •Программирование в машинных кодах (3).
- •Вариант № 1.
- •Вариант № 2.
- •Вариант № 3.
- •Вариант № 4.
- •Вариант № 5.
- •Вариант № 6.
- •Литература.
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.