ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ГРАЖДАНСКОЙ АВИАЦИИ»

_______________________________________________________________________________________________________________________

Кафедра вычислительных машин, комплексов, систем и сетей

МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ

Пособие

к выполнению лабораторных работ № 3, 4

для студентов V курса

специальности 220100

дневного обучения

Москва - 2005

ББК 6Ф0.3

С 50

Рецензент канд. техн. наук, доц.

С 50 Микропроцессорные системы: Пособие к выполнению лабораторных работ № 3, 4. –М.: МГТУ ГА, 20с.

Данное пособие издается в соответствии с рабочей программой учебной дисциплины «Микропроцессорные системы» по Учебному плану специальности 220100 для студентов V курса дневного обучения.

В пособии изложены рекомендации по подготовке и проведению лабораторных работ № 3, 4 на учебно-отладочном устройстве «Электроника –580».

Рассмотрено и одобрено на заседаниях кафедры 25.04.05 г. и методического совета 25.04.05 г.

Редактор

Подписано в печать 05.09.05 г.

Печать офсетная Формат 60х84/16 0,93 уч.-изд. л.

0,96 усл. печ. л. Заказ № 000/ Тираж 150 экз.

Московский государственный технический университет ГА

125993 Москва, Кронштадтский бульвар, д. 20

Редакционно-издательский отдел

125493 Москва, ул. Пулковская, д.6а

© Московский государственный

технический университет ГА, 2005

Лабораторная работа № 3

НЕ нашли? Не то? Что вы ищете?

Тема: Разработка модуля временной задержки

1. Цель работы: привитие навыков разработки программных модулей по исследованию времени выполнения командных циклов микропроцессоров.

2. Краткие теоретические сведения

Выполнение каждой команды в микропроцессорной БИС осуществляется в строго определенной последовательности, определяемой кодом команды и синхронизируется во времени синхросигналами Ф1 и Ф2, вырабатываемыми генератором тактовых импульсов.

В МП К580 коды команд выполняются по машинным циклам (МЦ), продолжительность которых составляет от 3-х до 5-ти машинных тактов, отсчитываемых по передним фронтам тактовых импульсов Ф1.

Ф1 Т

t

Ф2

t

Рис.1. Временное представление последовательности

тактовых импульсов Ф1, Ф2

Длительность машинного такта может быть установлена произвольно в интервале от 0,5 до 2 мкс (тактовая частота fт = 1/Т = 2.. 5 МГц).

Процессор, кроме нахождения в одном из МЦ, может функционировать в состояниях ОЖИДАНИЕ, ЗАХВАТ и ОСТАНОВ. Управление работой МПС осуществляется генерацией управляющих сигналов по двум шинам:

·  по шине управления собственно МП (WR, DBIN, INTE, …) в каждом такте работы МП;

·  по шине данных путем генерации слова состояния процессора (PSW) в каждом МЦ.

Число машинных циклов и общее количество тактов, необходимое для выполнения команды, определяется ее типом. При этом число МЦ равно суммарному числу обращений к запоминающим устройствам (ЗУ) и устройствам ввода-вывода (УВВ), необходимых для выборки и выполнения команды.

Например, самые короткие команды:

·  RAL –сдвиг аккумулятора А влево с переносом (1 машинный цикл, 4 такта);

·  RRС – сдвиг аккумулятора А вправо циклический (1 машинный цикл, 4 такта);

·  RLC – сдвиг аккумулятора А влево циклический (1 машинный цикл, 1 такт), т. к. требуют только одного обращения к ЗУ для выборки байта команды.

Тогда команда RAL выполняется за время 0.5 * 4 = 2,0 мкс (при использовании ГТИ с частотой 2 МГц).

Самая длинная команда XTHL – обмен содержимым между вершиной стека и парой регистров (H-L), хотя и однобайтная требует 5 МЦ – 18 тактов (9.0 мкс), так как необходимо выбрать из ЗУ 3 байта (КОП, младший байт и старший байт указателя стека), а содержимое указателя стека (старший и младший байты) записать в ЗУ.

Исключение составляют команды:

DAD D (1 байт, 3 цикла,10 тактов, 5.0 мкс - сложение 16-разрядных чисел, находящихся в регистрах D и E с 16-разрядным числом, находящимся в регистрах H и L). Результат заносится в регистр H и L. Содержимое аккумулятора не меняется;

HLT – (останов) – 1 байт, 1 цикл, 7 тактов, 3.5 мкс.

Обращение к ЗУ в обеих командах осуществляется только один раз (выборка кода операции).

После включения напряжения питания и подачи тактовых импульсов Ф1 и Ф2 микропроцессор запускается подачей 1 на вход «Сброс» (RESET) в течение не менее трех периодов Ф1, вследствие чего счетчик команд, регистр команд и внутренние триггеры разрешения прерывания ожидания сбрасываются в нулевое состояние.

Первый цикл М1 всегда является циклом выборки кода команды и состоит из 4 или 5 тактов. Три последующих МЦ (МЦ2, 3, 4) всегда выполняются за три такта, а М5 – за три или за пять тактов.

Время выполнения команды – время выборки, декодирования и собственно выполнения команды.

Строгая временная синхронизация выполнения команд позволяет разрабатывать программные модули временной задержки в различных устройствах автоматики.

Пример 1. Необходимо разработать программный модуль задержки времени на интервал Тс = 0,5 с при тактовой частоте ГТИ fт = 2.5 МГц. Расчетный операнд, определяющий задержку времени Тс = 0,5 с, отобразить на индикаторах учебно-отладочного устройства (УОУ).

Количество переключений определяется вариантом задания.

Последовательность работы модуля задержки времени представлена в табл. 1.

Выполнение последовательности действий начинается с установления вершины стека SP в адрес 83FAH и указания в регистровой паре (HL) Адреса 1. В ячейке, косвенно адресуемой этим адресом, будут фиксироваться переключения после отработки заданной временной задержки Тс = 0,5 с.

Таблица 1

Последовательность работы модуля задержки

№ п/п

Последовательность действий

Реализующая команда

1

Установить вершину стека SP в Адрес 83FAH

LXI SP, 83FA – 3 байта

2

Указать в регистровой паре (HL) Адрес 1

LXI H, Адрес 1 - 3 байта

3

Записать в пару регистров (ВС) операнд NЦ для заданного Тс

LXI В, NЦ - 3 байта

4

Занести в стек содержимое регистровой пары (ВС)

PUSH BC – 1 байт

5

Уменьшить на 1 содержимое регистровой пары (ВС)

DCX BC – 1 байт

6

Переслать содержимое регистра В аккумулятор (регистр А)

MOV A, B – 1 байт

7

Сравнить содержимое пары регистров (ВС) с нулем

ORA C – 1 байт

8

Если содержимое пары регистров (ВС) равно 0, то перейти к п.9, иначе – к п.5

JNZ M1 -3 байта

9

Записать в аккумулятор № варианта

MVI A, № вар. – 2 байта

10

Увеличить на 1 содержимое Адреса 1

INR M - 1 байт

11

Сравнить содержимое Адреса 1 с содержимым аккумулятора

CMP M 1 байт

12

Если Адрес 1 равен содержимому аккумулятора, то перейти к п.13, иначе – к п.3

JNZ M2 – 3 байта

13

Останов

HLT – 1 байт

Запись операнда Nц в стек осуществляется для реализации его отображения на индикаторах УОУ.

Собственно процесс выработки временной задержки начинается с уменьшения на 1 операнда в регистровой паре (ВС) и продолжается до его обнуления. Момент выработки временной задержки фиксируется переключением, сопровождаемым приращением на 1 содержимого ячейки, указанного адреса (Адрес 1). Число переключений задается в аккумуляторе, как номер варианта. При накоплении в ячейке значения, равного указанному адресу (Адрес 1, равный заданному числу переключений), решение задачи завершается. Таким образом, заданная временная задержка отрабатывается по данной последовательности действий количество раз, равное номеру варианта.

Для определения численного значения операнда (в данном случае числа циклов Nц), соответствующего заданной временной задержке Тс = 0,5 с, необходимо предварительно произвести следующий расчет.

При программном способе заданное значение операнда циклически уменьшается на 1 до тех пор, пока результат не станет равным нулю. Если известна продолжительность цикла tЦ (tЦ - сумма времени командных циклов, реализующих заданную временную задержку), то общая задержка Тс определяется из выражения

Тс = Nц * tЦ. (1)

Следовательно,

Nц = . (2)

В данном примере заданная задержка реализуется командами DCX BC; MOV A, B; ORA C; JNZ M1, каждая из которых имеет следующую длину машинных циклов:

DCX BC – 5Т; MOV A, B – 5Т; ORA C – 4Т; JNZ M1 – 10Т.

На выполнение этих команд требуется

tЦ = 5Т + 5Т + 4Т + 10Т = 24Т.

Так как Т = 1/fT, то

tЦ = = 9,6 мкс.

В соответствии с (2) число циклов

Nц = = = 52

Заменяя Nц=5208310 на его шестнадцатеричное представление, получим

Nц = СВ73Н,

являющееся значением операнда Nц, которое необходимо поместить в регистровую пару (ВС) для выработки программной временной задержки ТС = 0,5 с.

В предположении, что в задании указан Адрес 1, равный 83FFH, а номер варианта NВ = FFH, программа, реализующая временную задержку ТС = 0,5 с, примет вид, представленный в табл.2.

Таблица 2

Программа модуля реализации временной задержки

Адрес

Код команды

Метка

Мнемоника

Комментарий

8200

31

LXI SP, 83FA

Установить вершину стека SP

в ячейке с адресом 83FA

8201

FA

8202

83

8203

21

LXI H, 83FF

Указать в регистровой паре (HL)

8204

FF

Адрес1=83FF для регистрации переключений

8205

83

8206

01

M2:

LXI B, CB73

Разместить в регистровой паре

(ВС) операнд NЦ=СВ73Н, задающий требуемое значение временной задержки

8207

73

8208

CB

8209

C5

PUSH BC

Занести в стек число циклов NЦ=СВ73Н

820А

0B

M1

DCX BC

Уменьшить на 1 число циклов в паре регистров (ВС)

820В

78

MOV A, B

Переслать содержимое регистра В в регистр А

820С

В1

ORA C

Сравнить содержимое регистров В и С с нулем

820D

C2

JNZ M1

Если содержимое (ВС) 0,

то переход на метку М1

по адресу 820А

820E

0A

820F

82

8210

3E

MVI A, FF

Записать в аккумулятор число переключений, равное номеру варианта задания

8211

FF

8212

34

INR M

Увеличить на 1 счетчик переключений в 83FFH

8213

BE

CMP M

Сравнить значение счетчика в 83FFH с заданным в А

8214

C2

JNZ M2

Если (83FF) А, то перейти в начало цикла отработки временной задержки, начинающегося с записи в (ВС) NЦ=СВ73Н

8215

06

8216

82

8217

76

HLT

Останов

После выполнения программы на индикаторах УОУ будет получено отображение, представленное на рис. 2.

Из за большого объема этот материал размещен на нескольких страницах:
1 2