
- •Инструкция по технике безопасности
- •Методические указания по оформлению отчёта к лабораторным работам.
- •2.1.Правила оформления отчёта.
- •Содержание отчёта:
- •Лабораторная работа мп – 1 Исследование микро-эвм на основе микропроцессора кр580ик80
- •3.2 Краткие теоретические сведения
- •3.3.Учебный микропроцессорный комплект (умк)
- •3.4 Задание для домашней подготовки
- •3.5. Подготовка умк к работе
- •3.6. Задания к лабораторной работе
- •3.6.2. Индикация и модернизация содержимого озу.
- •3.6.3. Модификация содержимого регистров микропроцессора
- •3.6.4. Заполнение озу константой
- •3.6.5. Копирование областей памяти
- •3.6.6. Вычисление контрольной суммы массива памяти
- •3.7. Выполнение программы пользователя
- •3.8. Контрольные вопросы
- •Лабораторная работа мп-2 Исследование цикла выполнения команд микропроцессора кр580ик80
- •4.2. Теоретические сведения
- •4.3. Задание для домашней подготовки
- •4.4. Порядок выполнения работы
- •4.5. Контрольные вопросы
- •Лабораторная работа мп-3 Программирование арифметических операций в системе команд микропроцессора кр580вм80
- •Основные теоретические сведения.
- •Приемы программирования типовых арифметических задач
- •5.3.2. Десятичное сложение
- •5.3.3. Умножение
- •Порядок выполнения работы
- •5.5 Контрольные вопросы
- •6. Лабораторная работа мп-4 Программная реализация типовых функций управления на основе микропроцессора к580ик80
- •6.2. Краткие теоретические сведения
- •6.2.1. Опрос двоичного датчика
- •6.2.2. Ожидание события
- •6.2.3. Ожидание импульсного сигнала
- •6.2.4. Выделение и обработка отдельных бит информации
- •6.2.5. Формирование управляющего сигнала
- •6.2.6. Вывод управляющего слова на группу автономных устройств
- •6.2.7. Формирование временной задержки малой длительности
- •6.2.8. Формирование последовательности импульсных сигналов с изменяемой длительностью и скважностью.
- •6.3. Задание на дом
- •7.Лабораторная работа мп-5
- •7.3. Задание для домашней подготовки
- •7.4. Порядок выполнения работы
- •7.5. Контрольные вопросы
- •Приложение
- •Литература
6.2.6. Вывод управляющего слова на группу автономных устройств
Управляющие слова формируются по командам логических операций.
Команда ΛNI используется для сброса тех бит, которые в маске заданы нулем. Команда ORI используется для установки бит в XRI инвертирует отдельные биты (в соответствии с выражением I+X=X), а также для обнуления выходного порта (Х+Х=0).
Рассмотрим несколько примеров формирования управляющего слова для случая, когда выходной порт работает на 8 светодиодных индикаторах. Будем считать, что копия управляющего слова содержится в аккумуляторе.
Пример 1. Погасить светодиоды L0, L5, L7, не изменяя состояния остальных светодиодов, управляемых из порта I.
ANI 5EH ; установка в нуль D0, D5 и D7
OUT Ø1Н ; вывод слова в порт I
Пример 2. Включить светодиоды L2, L3, L4.
ORI 1CH ; установка в «I» D2, D3, D4
OUT Ø1H ; вывод слова в порт I
Пример 3. Выдать на светодиоды управляющее слово. Управляющий байт для светодиодов L0+L3, хранится в младшей тетраде регистра В, а для светодиодов L4+L7 – в тетраде регистра С.
MVI A,ØFH; загрузка в А маски OOOOIIII
ANA B ; маскирование В
MOV B,A ; сохранение в регистре В кода OOOOХХХХ
MOV A, C ;
ANI ØFØH ; наложение маски IIIIOOOO
ORA B ; упаковка тетради
OUT ØIH ; выдача управляющего слова в порт I
Пример 4. Реализовать пульсирующую световую индикацию на выходе D5, не изменяя состояния остальных светодиодов.
LOOP: XRI 2ØH ; наложение маски OOIOOOOO
OUT Ø1H ; вывод в порт I
CALL DELAY ; задержка
JMP LOOP ; цикл
Командой CALL DELAY осуществляется вызов программы временной задержки необходимой длительности.
6.2.7. Формирование временной задержки малой длительности
Программная реализация временной задержки использует метод программных циклов, при котором в некоторый POH загружается число, которое затем при каждом проходе уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из программного цикла. Время задержки при этом определяется величиной числа и временем выполнения команд, образующих программный цикл.
Схема алгоритма такой программы показана на рис.6.7.
B = X
B = B - 1
нет
да
Рис. 6.7. Схема алгоритма временной задержки
Программа имеет имя TIME, и в случае ее вызова основной программой по команде CALL TIME должна завершаться командой возврата RET.
Предположим, что в программе, управляющей работой контроллера, процессор которого работает с частотой 2 МГц (период составляет 0,5 мкс), необходимо реализовать временную задержку 100мкс. Фрагмент программы, т.к. предполагается, что основная программа будет производить к ней многократные обращения для формирования выходных импульсных сигналов, длительность которых кратна 100мкс.
Текст этой подпрограммы будет следующей:
TIME: MVI B, X : загрузка В числом Х
COUNT: DCR B : декремент В
JNZ COUNT : цикл, если В≠0
RET : возврат
Для получения требуемой временной задержки необходимо определить величину числа Х, загруженного в регистр В, а это выполняется в основании расчета времени выполнения команд, образующих подпрограмму. При этом необходимо учитывать, что команды MVI B, X и RET выполняются однократно, а число повторений команд DCR и JNZ равно числу Х. Кроме того, обращение к подпрограмме осуществляется по команде CALL TIME, время исполнения которой необходимо учитывать при подсчете временной задержки.
В описании команд МП К580ИК80 указывается, за сколько тактов основной частоты синхронизации выполняются команды микропроцессора. На основании этих данных может записать:
CALL TIME - 17 тактов – 8,5 мкс.
MVI B, X - 7 тактов – 3,5 мкс.
DCR B - 5 тактов – 2,5 мкс.
JNZ COUNT - 10 тактов – 5 мкс.
RET - 10 тактов – 5 мкс.
Таким образом, однократно выполняемые команды в этой подпрограмме требует 17 мкс. (8,5 + 3,5 + 5,0). Следовательно, для получения требуемой задержки в 100 мкс. Необходимо выполнить команды DCR и JNZ столько раз, чтобы время их выполнения составило 83 мкс. (100 – 17). Однако время выполнения этой пары команд составляет 7,5 мкс. (2,5 + 5). Поэтому, если принять Х = 10 то возможно получить временную задержку 75 мкс. недостающие 8 мкс. можно получить четырехкратным исполнением команды пустой операции NOP, время выполнения которой равно 2 мкс. Исходя из приведенного расчета, можно записать уточненный текст подпрограммы.
TIME : MVI B, 10 H : загрузка в регистр В числа 10
COUNT: DCR B : декремент счетчика
JNZ COUNT : цикл, если В≠0
NOP : группа пустых операций для
NOP : точной подстановки времени
NOP : задержки
NOP :
RET : возврат в основную программу.