- •Порядок выполнения работы.
- •Вопросы для самопроверки.
- •1. Переведите программу (табл.8.2.) в машинный код и введите в микролабораторию.
- •Программа работы.
- •1. Включите микролаб и введите программу (табл.9.2.) в оперативную память микролаба с адреса 8000. При работе используйте руководство, описанное в лабораторной работе №8
- •Вопросы для самопроверки.
1. Переведите программу (табл.8.2.) в машинный код и введите в микролабораторию.
Табл.8.2.
Программа, демонстрирующая действие логических команд.
Адрес |
Содержимое |
Метка |
Команда |
Комментарии |
8000 |
... 3E |
|
MVI A, 81 |
Программирование интерфейса КР580ИК55 |
8001 |
... 81 |
|
||
8002 |
... D3 |
|
OUT FB |
|
8003 |
... FB |
|
||
8004 |
... DB |
START |
IN FA |
Чтение данных с входного порта в аккумулятор |
8005 |
... FA |
|
||
8006 |
... 06 |
|
MVI B, OA |
0000 0101 - В |
8007 |
... 0A |
|
||
8008 |
... A0 |
|
ANA B |
А*В-А |
8009 |
... D3 |
|
OUT F 9 |
Запись данных в порт вывода |
800A |
... F9 |
|
||
800B |
... C3 |
|
JMP START |
Зацикливание программы |
800C |
... 04 |
|
||
800D |
... 80 |
|
Каждое мнемоническое обозначение должно быть преобразовано в соответствующий КОП и дополнено необходимыми данными (если нужно).
Эта программа считывает данные с переключателей входного порта, а затем объединяет их по "И" с числом 0000 1010. Результат появляется на светодиодных индикаторах. Затем программа возвращается на начало, и процесс бесконечно повторяется, так что можно изменить входные данные и проверить соответствующие выходные.
2. Проверьте правильность ввода программы.
3. Установите на начальный адрес 8000 и нажмите кнопку ПУСК. Программа выполняется.
4. Установите входные переключатели в 1. Индикаторы показывают 0000 1010.
5. Измените положение переключателей и проверьте соответствующие выходы. Биты, которые объединяются по "И" с нулями, не зависят от положения переключателей.
6. Нажмите кнопку СБРОС для возвращения управления монитору. Заметьте, что переключатели не влияют больше на состояние индикаторов. Замените команду ANA B (по адресу 8008) командой ORA B (КОП-ВО).
7. Запустите программу.
8. Посмотрите на соответствие между различными положениями входных переключателей и состояниями индикаторов. Заметьте различия между функциями "И" и "ИЛИ". Выходы битов, объединенных по "ИЛИ" с нулями, зависят от положения переключателей.
9. Нажмите кнопку СБРОС. Замените команду ORA B на XRA (КОП-А8). Повторите шаги 7 и 8. Биты, объединенные по "Исключающему ИЛИ" с единицами, инвертируются.
Вопросы для самопроверки.
1. Что такое шина адреса, шина данных, шина управления?
2. Как обратиться к программе, хранимой в памяти "Микролаба"?
3. Что такое "бит", "байт", "слово"?
4. Запишите любое четырехразрядное двоичное число как шестнадцатеричное; тоже как десятичное.
5. Как вводится программа в ОЗУ "Микролаб"?
6. Чем отличается ОЗУ от ПЗУ?
Лабораторная работа N 9.
Построение систем управления технологическими процессами на базе микропроцессорных систем.
Цель работы: понять принцип управления технологическими процессами на базе микропроцессорных систем. Разобрать работу программы "бегущие огни" и ее использование для управления внешними устройствами. Научиться изменять временные задержки в управляющей программе.
После определения характеристик и составления алгоритмов работы объектов управления можно писать программы управления технологическими процессами. Такие программы опираются в первую очередь на логику работы всего устройства в целом, и часто имеют блоки, которые устанавливают управляющие сигналы, организуют программную задержку, изменяют управляющие сигналы (рис.9.1).
Для иллюстрации процесса управления в лабораторной работе мы будем поочередно зажигать светодиоды, организуя "бегущие огни".
Для организации программной задержки используется свойство микропроцессора выполнять определенную команду за определенное время и алгоритм работы, изображенный на рис.9.2.
Один такт микропроцессора КР580ИК80 длится 0,5мкс. Команде DCX требуется для выполнения четыре такта. Для JNZ в случае выполнения условия требуется 10 тактов, если условие не выполняется - 7 тактов и т.д. Таким образом, для того чтобы рассчитать время задержки, необходимо просуммировать время выполнения всех команд в цикле задержки и умножить на количество раз выполнения этого цикла.
Время задержки, получаемой фрагментом LOOP программы табл.9.1. определяется по формуле:
задержка= (N-1)*24+31 (тактов) = (N-1)*12мкс+15,5мкс
Используя для организации задержки один регистр, мы сможем посчитать до 256. Использование команды DCX B, уменьшающей содержимое пары регистров B и C, позволяет увеличить счет (и задержку) до значения 65536 циклов. Таким образом максимальная задержка:
(65536-1)*12+15,5 = 0,786 с.
Табл.9.1.
-
Метка
Команда
Комментарии
DALAY
LXI B, 0
Начало счета внутренней петли
LOOP
DCX B
Уменьшающийся счет
MOV A, B
Проверка на 0
ORA C
JNZ LOOP
Повторять пока не 0
DCR D
Уменьшение основного счетчика
JNZ DALAY
Повторять пока не 0
RET
Возврат из п/п
Команда LXI B, 0 заносит 0 в пару регистров B, C. Далее вырабатывается задержка 0,786с. Регистр D используется для счета основной задержки (присвоение происходит в основной программе), т.е. определяет сколько раз выполнится задержка 0,786с.
Таким образом, в программе "бегущие огни" существует две петли: внешняя и внутренняя. Внутренняя петля вырабатывает задержку равную 0,786 с, а внешняя - множество таких задержек. Такая организация программы называется вложением.
Полная программа "бегущие огни" представлена в табл. 9.2.