
- •1 Инструкция по технике безопастности
- •2 Методические указания по оформлению отчета к лабораторной работе
- •3 Лабораторная работа №4
- •3.1 Краткие теоретические сведения
- •3.1.1 Опрос двоичного датчика
- •3. 1. 2 Ожидание события
- •3.1.3 Ожидание импульсного сигнала.
- •3.1.4 Выделение и обработка отдельных бит информации
- •3.1.5 Формирование управляющего сигнала
- •3.1.6 Вывод управляющего слова на группу автономных устройств.
- •3. 1. 7 Формирование временной задержки малой длительности
- •3.1.8 Формирование последовательности импульсных сигналов с изменяемой длительностью и скважностью.
- •3.2 Задание на дом.
- •3.3 Контрольные вопросы
- •4 Краткие теоретические сведения
- •4.1 Цифровые индикаторы
- •4.2 Клавиатура
- •4.3 Мультиплексный режим работы цифрового индикатора
- •4.4 Сканирование клавиатуры и программное определение номера нажатой клавиши
- •4.5 Подпрограмма определения кода засветки Второй цифры в номере клавиши
- •4.6 Подпрограмма определения кода засветки первой цифры в номере клавиши
- •Программа, написанная в соответствии с алгоритмом, изображенным на рис.17, имеет вид (табл. 25):
- •4.7 Подпрограмма засветки индикаторов в мультиплексном режиме
- •4.8 Задание для домашней подготовки
- •Порядок выполнения работы
- •6 Контрольные вопросы
- •Литература
- •Содержание
- •2 Методические указания по оформлению отчета к лабораторной работе 1
- •3 Лабораторная работа №4 2
- •4 Лабораторная работа №5 24
3. 1. 7 Формирование временной задержки малой длительности
Программная реализация временной задержки использует метод программных циклов, при котором в некоторый РОН загружается число, которое затем при каждом проходе уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из программного цикла. Время задержки при этом определяется величиной числа и временем выполнения команд, образующих временный цикл. Схема алгоритма такой программы показана на рис.8
Рисунок 8 - Схема алгоритма временной задержки
Программа имеет имя TIME, и в случае ее вызова основной программой по команде CALL TIME должна завершаться командой возврата RET.
Предположим, что в программе, управляющей работой контроллера, процессор которого работает с частотой 2 МГц (период составляет 0,5 мкс), необходимо реализовать временную задержку 100 мкс. Фрагмент программы, реализующей временную задержку, требуется оформить в виде подпрограммы, т.к. предполагается, что основная программа будет производить к ней многократные обращения для формирования выходных импульсных сигналов, длительность которых 100 мкс.
Текст этой программы будет следующий (табл.16):
Таблица 16
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
|
|
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 мкс. Исходя из приведенного расчета можно записать уточненный текст подпрограммы (табл.17)
Таблица 17
Адрес |
Код |
Метка |
Мнемокод |
Комментарий |
|
|
TIME: |
MVI B, 10H; |
загрузка в регистр В числа 10 |
|
|
COUNT: |
DCR B; |
декремент содержимого регистра В |
|
|
|
JNZ COUNT |
цикл, если В0 |
|
|
|
NOP |
группа пустых операций |
|
|
|
NOP |
для точной подстройки |
|
|
|
NOP |
времени задержки |
|
|
|
NOP |
------ |
|
|
|
RET |
выход из подпрограммы |