Назад
8276 BE CMP M
; Сравниваем эталон
; с текущим элементом
8277
DA
70 82
JC
MAXI
; Текущий элемент больше –
; меняем эталон
827A
C3
71 82
JMP
M2
; Замыкаем цикл
827D C9 M3: RET ; Возврат из подпрограммы
Для реализации функции поиска минимума, в данной программе
необходимо поменять команду JC MAXI по адресу 8277 на команду
JNC MAXI. Этот прием поменяет условие сравнения на
противоположное и позволит выполнить поиск минимума.
4.Во многих задачах, связанных с реальным временем,
требуется отсчитывать известные отрезки времени. Если в
подпрограмме известно время выполнения каждой команды, можно
обеспечить четко определенный интервал задержки, связанный со
временем выполнения подпрограммы. Если подпрограмма
циклическая, то за счет изменения параметра цикла можно
управлять временем задержки. Подпрограмма перестраиваемой
задержки найдет применение при решении задач, зависящих от
времени, например, для отсчета временных интервалов (для часов)
или включения на заданное время различных устройств (для
выдачи сообщений на индикатор или отображения результатов
вычислений) при автоматическом режиме работы. При вызове
подпрограммы (таблица 3.16) в регистровой паре ВС необходимо
задать число, которое будет управлять количеством циклов
задержки, выполняемых в подпрограмме. Каждая единица в
регистровой паре увеличивает суммарную задержку на 60
машинных тактов, т.е. на 24·10
-6
с. При задании максимального
числа задержка превысит 1,5 с.
Таблица 3.16 − Подпрограмма изменяемой программной
задержки
Начальные условия в регистрах:
BC - количество условных единиц задержки по 60 тактов
Результаты:
Минимальная задержка при тактовой частоте 2,5 МГц
составляет около 29·10
-6
с
Максимальная задержка составляет более 1,5 с
51
Адрес
Ко
д
Метка Команда Комментарий
8280 0B
DELAY
:
DCX B
; Уменьшаем счетчик
; задержки
8281 E3 XTHL
; Балластная операция
; задержки
8282 E3 XTHL
; Балластная операция
; задержки
8283 78 MOV A,B
; Проверяем пару BC на
нуль
8284 B1 ORA C
; соединяя регистры
; операцией ИЛИ
8285
C2
80
82
JNZ
DELAY
; Замыкаем цикл до
; обнуления BC
8288 C9 RET
; Возврат из
подпрограммы.
5.Подпрограмма перекодировки используется в задачах
преобразования кодов, например, при переводе кодов клавиатуры,
при вычислениях с помощью таблиц: вычисление квадрата, куба
числа, вычисление тригонометрических функций и т.п.
Таблица 3.17 − Подпрограмма перекодировки (выбора элемента
байтового массива)
Начальные условия в регистрах:
HL - начальный адрес таблицы перекодировки (массива
байтов) А - входной кодовый элемент (номер элемента
массива)
Результаты:
A - выходной перекодированный элемент (выбранный
элемент массива)
Адрес
Ко
д
Метка
Команд
а
Комментарий
82
90
E5
CODE
R:
PUSH
H
; Адрес таблицы
кодирования –
; в стек
82 D5 PUSH ; Освободим пару DE для
52
91 D работы
82
92
5F
MOV
E,A
; Младший байт смещения
; в массиве
82
93
16
00
MVI
D,00
; Старший байт смещения
равен
; нулю
82
95
19 DAD D
; Формируем адрес элемента
; массива
82
96
7E
MOV
A,M
; Считываем элемент из
таблицы
82
97
D1 POP D
; Восстановим пару
регистров DE
82
98
E1 POP H
; Восстановим адрес начала
; таблицы
82
99
C9 RET ; Возврат из подпрограммы
Для подобных задач в памяти помещают таблицу перекодировки,
количество элементов в которой соответствует полному набору
значений преобразуемой величины (например, всех значений
квадрата числа для всех комбинаций). Преобразуемый элемент
выступает в качестве адреса смещения в таблице, а преобразование
происходит заменой элемента на значение из таблицы. Похожее
действие выполняется при чтении элемента массива. Конечно,
байтовый характер таблицы накладывает ограничения по
разрядности и взят для простоты примера, но для преобразования,
например, кодов клавиатуры или индикатора вполне подходит
(таблица 3.17). При вызове подпрограммы в регистровой паре HL
задается начальный адрес таблицы перекодировки, а в
аккумуляторе указывается преобразуемый байт. Подпрограмма
возвращает преобразованное значение в аккумуляторе.
Все подпрограммы проверены на работоспособность и
занимают отдельные области памяти. Для вызова любой
подпрограммы нужно задать значения в требуемые регистры и
вызвать подпрограмму. Например, для вызова подпрограммы
копирования массива в другую область памяти требуется
выполнить целый ряд действий, пример которых указан в таблице
3.18. В примере мы выбрали расположение массива источника с
адреса 1234Н, массива приемника с адреса 2000Н, а количество
пересылаемых бит задали равным 64 (40Н).
53
Таблица 3.18 − Вызов подпрограммы копирования массива
Адрес
Код
Метка
Команда Комментарий
8200
21 34
12
MAIN:
LXI
H,1234H
; Задаем начальный адрес
; массива-источника
8203
11 00
20
LXI
D,2000H
; Задаем начальный адрес
; массива-приемника
8206 06 40
MVI
B,40H
;Задаем количество
; пересылаемых байт
8208
CD 60
82
CALL
MOU
; Вызываем подпрограмму
; пересылки
3.6 Контрольные вопросы
1.Опишите характеристики комплекта МПК серии КР580.
2.Перечислите основные компоненты структуры МП КР580ИК80.
3.Какие регистры доступны программисту в МП КР580ИК80?
4.Опишите назначение слова состояния МП.
5.Перечислите способы адресации МП серии КР580ИК80.
6.Какие функциональные группы системы команд МП КР580 вы
знаете?
7.Какие группы команд влияют на состояние регистра флагов МП?
8.Перечислите основные компоненты структуры МП системы на
основе комплекта КР580.
9.Что такое подпрограмма и ее назначение?
19.Как можно активизировать подпрограмму?
4 ПЕРИФЕРИЙНЫЕ ЭЛЕМЕНТЫ СЕРИИ КР580
4.1 Программируемый таймер КР580ВИ53
54
В микропроцессорных устройствах часто возникает
необходимость выполнять операции по подсчету числа внешних
импульсов, формированию отрезков времени переменной
продолжительности, изменению коэффициента пересчета схемы
делителя и т.п. Применение БИС программируемого таймера (ПТ)
КР580ВИ53 позволяет унифицировать и упростить подобные
задачи.
4.1.1 Основные характеристики ПТ
Микросхема КР580ВИ53 представляет собой
однокристальное трехканальное программируемое устройство,
предназначенное для получения программно управляемых
временных задержек и выполнения времязадающих функций в МП
системах.
Программируемый таймер применяется в устройствах,
выполненных на основе МП комплектов К580, и позволяет
повысить эффективность программирования процессов управления
и синхронизации внешних устройств, работающих в реальном
масштабе времени. Эффективно использование таймера в
музыкальных электронных синтезаторах. Основные электрические
параметры БИС таймера КР580ВИ53 при температуре окружающей
среды от -10 до +25 С приведены ниже.
Выходное напряжение логического нуля U
0
,
не более, В 0.4
Выходное напряжение логической единицы U1,
не более, В 2.4
Ток потребления I, мА 115
Ток утечки на входах, мкА −1,…..+1
Ток утечки на выходах, мкА −1.5,..+1.5
Максимально тактовая частота f, Гц 2∙10
6
.
Конструктивно ПТ выполнен в пластмассовом 24−х выводном
корпусе типа DIP.
4.1.2 Структура КР580ВИ53
55
Условное графическое обозначение таймера приведено на
рисунке 4.1.
КР580ВИ53
CLK0
GATE0
OUT0
CLK1
GATE1
OUT1
CLK2
GATE2
OUT2
Ucc
GND
D7
D6
D5
D4
D3
D2
D1
D0
CS
A0
A1
WR
RD
1
2
3
4
5
6
7
8
21
19
20
23
22
9
11
10
15
14
13
18
16
17
24
12
Рисунок 4.1 − Условное графическое обозначение ПТ КР580ВИ53
Назначение входных, выходных и управляющих сигналов
таймера и описание выводов микросхемы указано в таблице 4.1 В
структуру БИС ПТ (рисунок 4.2) входят: буфер магистрали данных
(БМД), предназначенный для обмена данными и управляющими
словами между МП и ПТ, схема управления чтением/записью
СхУпр Чт/Зп, обеспечивающая выполнение операций ввода–вывода
информации в ПТ, регистр управляющего слова РгУс,
предназначенный для записи управляющих слов, задающих
режимы работы счетчиков, и трех вычитающих счетчиков каналов
СТ0 – СТ2.
Таблица 4.1 − Назначение сигналов программируемого таймера
Название
вывода
Контакт Функция сигнала
D0 – D7 1 – 8 Канал данных
A0, A1 19, 20
Адресные входы выбора каналов ПТ или
регистра управления
RD 22 Сигнал чтения информации из БИС на ШД
WR 23 Сигнал записи информации с ШД в БИС
56
CS 21 Выбор микросхемы, обращение к БИС
CLK0–
CLK2
9, 15, 18 Входы синхронизации счетчиков
GATE0−
GATE2
11, 14, 16 Входы управления счетчиков
OUT0−
OUT2
10, 13, 17 Выходные сигналы счетчиков
Ucc 24 Напряжение питания +5 В
GND 12 Напряжение питания 0 В
Для подключения таймера к шинам МП системы необходимо
входы данных таймера D0-D7 соединить с разрядами шины данных
ШД. Из шины адреса ША на ПТ необходимо подать два младших
бита адреса А0 и А1. Старшие разряды адреса нужны для
идентификации устройства, т.е. для определения его адреса.
Поэтому необходимо использовать внешнее устройство, на которое
поступают старшие разряды шины адреса. Для этого используется
дешифратор, выходной сигнал которого подключен к входу выбора
микросхемы CS. На схеме подключения ПТ к шинам МП системы
(рисунок 4.3) дешифратор (ДШ) выбирает базовый адрес,
выделенный для ПТ, из адресного пространства
микропроцессорной системы.
БМД
СхУпр
Чт/Зп
РгУС
СТ0
А1
А0
RD
WR
CS
D0 - D7
CLK0
GATE0
OUT0
СТ2
CLK2
GATE2
OUT2
СТ1
CLK1
GATE1
OUT1
Рисунок 4.2 − Структурная схема ПТ КР580ВИ53
57
ШИНА АДРЕСА ША
ШИНА ДАННЫХ ШД
ШИНА УПРАВЛЕНИЯ
ШУ
A0 A1 CS D0 - D7 RD WR
КР580ВИ53
CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2
ДШ
IOR
IOW
А0
А1
Рисунок 4.3 − Схема подключения ПТ КР580ВИ53 к МП системе
Из набора сигналов шины управления требуются всего два сигнала:
чтения IOR и записи IOW. Остальные сигналы для таймера
задаются потребителем отдельно и независимо для каждого канала:
− входная частота i-го канала CLK
i
;
− разрешение/запрет работы данного канала таймера GATE
i
;
− выходной сигнал i-го канала OUT
i
.
4.1.3 Программирование таймера
Для программирования таймера выполняются операции
обмена между таймером и МП, которые задаются сигналами
управления и адресными входами (таблица 4.2). Для
программирования любого счетчика необходимо выполнить
определенный набор действий.
1. В адрес регистра управляющего слова записывается
специальное управляющее слово инструкции режима выбранного
счетчика.
Таблица 4.2 − Сигналы управления работой ПТ
Операции
Сигналы управления
RD WR CS A1 A0
58
Загрузка СТ0 с ШД D0 – D7 1 0 0 0 0
Загрузка СТ1 с ШД D0 – D7 1 0 0 0 1
Загрузка СТ2 с ШД D0 – D7 1 0 0 1 0
Запись слова управления с ШД D0-
D7 в РгУс
1 0 0 1 1
Чтение СТ0 на ШД D0 – D7 0 1 0 0 0
Чтение СТ1 на ШД D0 – D7 0 1 0 0 1
Чтение СТ2 на ШД D0 – D7 0 1 0 1 0
Отключение ПТ от ШД D0-D7 0 1 0 1 1
Отключение ПТ от ШД D0-D7 1 1 0 Х Х
Отключение ПТ от ШД D0-D7 Х Х 1 Х Х
Примечание: Х − безразличное состояние сигнала
2.В выбранный счетчик записывается начальное значение N в
виде одного или двух байтов.
3.Разрешается работа выбранного счетчика установкой
соответствующего внешнего разрешающего сигнала GATE
i
.
Разрешение может быть установлено постоянно или задаваться
импульсами.
Запись управляющего слова и начального значения
осуществляется с помощью команд вывода OUT.
При своей работе счетчик с каждым тактовым импульсом будет
вычитать из своего значения единицу. Максимальная емкость
каждого счетчика составляет 16 бит, что позволяет изменять
значение содержимого счетчика от 65535 до 0. Управляющее слово
режима (рисунок 4.4) для каждого счетчика уникально. Оно
содержит номер выбираемого счетчика (0, 1 или 2), задаваемый в
разрядах D7 и D6, количество байтов (один или два) для задания
начального значения счетчика (разряды D5 и D4), номер одного из
шести режимов, в котором будет работать данный счетчик (разряды
D3, D2, D1) и вид используемого счетчика (разряд D0).
59
D7
1 - двоично-десятичный, 0 - двоичный
Вид функционирования счетчика
D6
D5
D4
D3
D2
D1
D0
Выбор режима
0
Режим
2
Реж.
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
Режим
3
0
0
0
Реж.
1
Реж.
4
Реж.
5
Число записываемых и считываемых
байтов данных
0
1
0
1
0
0
1
1
Только
младший
Копирова-
ние
счетчиков
Только
старший
Младший,
потом
старший
Выбор счетчика
0
1
0
1
0
0
1
1
Счетч. 1
Счетч. 0
Счетч. 2
Запрещено
Рисунок 4.4 − Формат управляющего слова инструкции режима
БИС КР580ВИ53
С помощью разрядов D5 и D4 управляющего слова можно
выбрать способ задания начального значения содержимого
счетчика. Из возможных 16-ти бит можно на выбор задавать
начальное значение только младшего байта, начальное значение
только старшего байта или оба байта, причем младший байт
записывается вперед. Разряд D0 позволяет выбирать режим
двоичного или двоично-десятичного счетчика.
60