Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка прогр!.doc
Скачиваний:
2
Добавлен:
01.09.2019
Размер:
2.19 Mб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

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

ДИЗАЙНА И ТЕХНОЛОГИЙ

КАФЕДРА АВТОМАТИКИ

В.В. Ефремов

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО КУРСУ «ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРНЫХ СИСТЕМ В МАШИННЫХ КОДАХ»

ДЛЯ СТУДЕНТОВ СПЕЦИАЛЬНОСТИ 21.02

Часть I

Утверждено в качестве учебного пособия

Редакционно-издательским советом МГУДТ

Москва

МГУДТ

2009

УДК 681.1.142(075)

Е 92

Куратор РИС А.Н. Зайцев

Работа рассмотрена на заседании кафедры АВТОМАТИКИ и рекомендована к печати

Зав. Кафедрой А.В.Кочеров

Автор: В.В.Ефремов

Е92 В.В.Ефремов. Методические указания к лабораторным работам по курсу «Программирование микропроцессорных систем в машинных кодах» для студентов специальности 21.02. М.: ИИЦ МГУДТ 2009, 50 стр.

Работа содержит описания и программы для работы и исследования основных комплектующих элементов микропроцессорной серии К580.

В пособии использованы результаты НИР по теме «Научно-методические проблемы комплексного обучения студентов спец. 21.03.06 по электронике и микропроцессорной технике».

УДК 681.1.142(075)

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

дизайна и технологий, 2009

Содержание

  1. Лабораторная работа № 1. Исследование периферийного интерфейса КР580BB55…………………………………………………………..4

  1. Лабораторная работа № 2. Исследование универсального синхронно-асинхронного приемопередатчика KP580BB51………19

  1. Лабораторная работа № 3. Исследование программируемого таймера КР580ВИ53………………………………………………………………27

  1. Лабораторная работа № 4. Исследование программируемого контроллера прерывания KP580BH59…………………………………….32

  1. Лабораторная работа № 5. Исследование контроллера прямого доступа к памяти КР580BT57………………………………………………..43

Литература

  1. Шахнов В.Н. Микропроцессоры и микропроцессорные комплекты интегральных микросхем. М. «Радио и связь». 1980 – 540 с.

  2. Хвощ С.Т. «Микропроцессоры и микроЭВМ в системах автоматического управления. «Машиностроение» Ленинградское отделение. 1987. 640 с.

  3. Микропроцессоры кн. 3. Средства отладки, лабораторный практикум и задачник. Под ред. Л.Н. Преснухина. М. «Высшая школа». 1989. 350 с.

Лабораторная работа №1.

Исследование параллельного периферийного интерфейса KP580BB55

1. Цель работы: ознакомление с устройством, программированием и работой параллельного периферийного интерфейса (ППИ).

2. Теоретическое введение

В состав ППИ входят три 8-ми разрядных канала (буферных регистра), их называют портами PA, PB, PC. Схема может работать в трех режимах – 0, 1, 2. Программирование на работу в определенном режиме осуществляют записью управляющего слова в регистр управляющего слова.

Обращение к портам осуществляется командами ввода – IN (адр) и вывода – OUT (адр).

Адреса портов:

  1. Порт A – B0;

  2. Порт B – B1;

  3. Порт C – B2;

  4. Порт управляющей логики – B3;

В табл. 1.1 представлен формат управляющего слова, который разделяется на 2 группы.

Группа B – управляет портом B и 0-3 разрядами порта C.

Группа A включает управление портом A и 4-7 разрядом порта C.

При работе портов в режиме – 0 ввод и вывод данных осуществляется синхронно с сигналами чтения и записи, поступающими от микропроцессора по командам IN и OUT без опроса готовности внешнего устройства.

Таблица 1.1

Формат управляющего слова задания режимов ввода-вывода

разряд

Значение разряда

Группа управления

0

1 – ввод через порт C (0-3)

0 – вывод через порт C (0-3)

Группа B

1

1 – ввод через порт B (0-8)

0 – вывод через порт B (0-8)

2

0 – режим 0

1 – режим 1

3

1 – ввод через разряды 4-7 порта C

0 – вывод через разряды 4-7 порта C

Группа A

4

1 – ввод через порт A

0 – вывод через порт A

5

0 – режим 0 или 2

1 – режим 1

6

0 – режим 0 или 1

1 – режим 2

7

1 – признак управляющего слова

Таблица 1.2

Формат команды задания значения отдельным разрядам порта C

(записывается по адресу порта управляющей логики)

разряд

0

3, 2, 1

1 - установить разряд порта C

0 – сбросить разряд порта C

N изменяемого разряда (в двоичном формате)

4

5

6

7

X – значение не важно

X – значение не важно

X – значение не важно

0 – признак операции

В режиме 1 разряды порта C предназначены для приема и передачи сигналов готовности внешнего устройства и портов A и B к обмену данными с внешними устройствами и микропроцессором (см. рис. 1.1, а). При вводе данных внешнее устройство при готовности данных и низком уровне сигнала IBF формирует сигнал , по срезу которого осуществляется запись данных в порт и устанавливается сигнал IBF – подтверждения приема, при высоком уровне которого внешнему устройству запрещается формировать срез сигнала и записывать в порт очередное слово. Если при предварительном программировании интерфейса разрешено порту B и A принимать данные от ВУ установкой триггера готовности через разряды С – С2 и С4, то по фронту сигнала , высокому уровню IBF и TT-триггера разрешения формируется сигнал INT – готовности порта передать данные в МП. По сигналу INT МП переходит на подпрограмму обслуживания прерывания ввода данных. По команде IN (адр) МП вырабатывает сигнал . По срезу которого данные передаются в аккумулятор МП. По фронту сигнала порт С сбрасывает сигнал IBF и разрешает внешнему устройству формировать новый сигнал . Установка триггеров разрешения осуществляется командой установки разрядов PC2 для порта A (табл. 1.2). Сигналы INT можно определить по опросу чтением состояния порта С по разрядам С0 и С3.

При выводе данных микропроцессор подает на интерфейс сигнал , по срезу которого сигнал INT снимается, данные записываются в порт. По фронту сигнала интерфейс подает на внешнее устройство сигнал готовности канала к вводу . После получения этого сигнала внешнее устройство принимает данные из порта и формирует сигнал (подтверждения передачи), по срезу которого снимается сигнал . Если прерывания от данного внешнего устройства разрешены, т. е. предварительно программированием установлен триггер TT разрешения через разряды С2 для порта B и С6 для порта A, то после приема внешним устройством (по фронту сигнала через порт С) формируется для МП сигнал запроса на прерывание INT и МП переходит на подпрограмму вывода следующего числа и цикл вывода заканчивается.

В режиме 2 обеспечивается возможность двунаправленного обмена информацией с внешним устройством только по каналам порта A. Функции сигналов управления, используемых при передаче информации в режиме 2, и временные соотношения между ними такие же, как в режиме 1 при вводе и выводе. В режиме 2 допускается любая последовательность передачи данных, при которой сигнал появляется раньше сигнала , а сигнал раньше сигнала .

Использование разрядов порта С, а также логическая схема управления сигналами представлена на рис. 1.1, в. При программировании разрешения на прием информации предварительно устанавливается триггер через разряд С4, а при выводе через С6 порта С.

Интерфейс может работать и в смешанных режимах, в которых порт A работает, например, в режиме 2, порт B – в режиме 1 или 0.

3. Задания для домашней подготовки

3.1. Изучить устройство ППИ – KP580BB55.

3.2. Изучить программу 1.1 – ввода данных от внешнего устройства через порт B с выводом на внешнее устройство через порт A при работе портов в нулевом режиме. Написать программу ввода данных через порт B и вывод данных через порт С в 0 режиме с записью в память различных значений.

3.3. Изучить программу ввода и вывода данных от внешнего устройства через порт B и вывод данных через порт Aна светодиоды в режиме 1.

3.4. Откорректировать программу 1.2 для ввода данных в ОЗУ.

3.5. Изучить программу 1.3 для ввода данных с внешнего устройства в режиме 2 с записью в память и выводом на светодиоды.

3.6. Изучить программу 1.4 ввода данных через порт B в режиме 1 и выводом на светодиоды через порт A во 2-ом режиме.

4. Задания к лабораторной работе

4.1. Установить на панели ВМ-80 ключи SA2.1; SA2.2; SA2.3 – вверх SA2.4 – вниз. На панели МИ-2 – SA20; SA21 вниз. Набрать программу 1.1, выполнить ее в шаговом и автоматическом режимах. См. рис. 1.2-1.3.

Изменить на входе порта B ключами SA12-SA19 информацию (1 – вверх). Фиксировать данные на входе порта A. Исследовать программу, разработанную по заданию 3.2.

4.2. Ввести: программу 1.2. Установить ключи S20 и S21 вниз. Ключами SA12 – SA19 установить вводимое число. Выполнять программу по шагам. Фиксировать в табл. 1.3 состояния сигналов управления по состоянию разрядов порта C, отраженных на светодиодах (рис. 1.1; 1.3). Убедиться, что после адреса 0810 происходит программное ожидание установки сигнала INT путем зацикливания. При подаче сигнала – нажатием кнопки SA1 (левая на панели), данные с внешнего устройства вводятся в порт B и устанавливается сигнал IBF, запрещая ввод новых значений из внешнего устройства. При отпускании SA1 устанавливается сигнал INT прерывания ожиданий. Затем программа продвигается и после выполнения команды ввода IN (адр B) по сигналу данные вводятся в аккумулятор, и снимается сигнал IBF и INT, и цикл ввода заканчивается. Проверить состояние Аккумулятора. Далее после выполнения команды ввода – OUT[PA] (по адресу 0819) проверить сигнал INT – (C3) и (С7) – которые сбрасываются сигналом и далее данные из МП не должны проходить в порт до сигнала – (C6) от ВУ, т.е. нажатия кнопки SA-3, по фронту которого сигнал разрешения прерываний INT_1 (разряда C3) проверка его проведена в программе маскированием командой AN108 и, если сигнал в 3-ем разряде порта C не установлен, программа зацикливается, т.е. ожидает сигнал . Сигнал сопровождает время нахождения данных на входе порта и может быть использован для стробирования приемника внешнего устройства, низкий активный уровень снимается по срезу сигнала . Построить диаграмму следования управляющих сигналов в соответствии с табл. 1.3. По горизонтальной оси откладывать время их счета тактовой частоты Ф=2 МГц или по адресам.

Табл. 1.3. Сигналы управления. SA1-SA3 0 – нажато 1 – не нажато

Адрес (время)

Порт B

Порт A

Порт B

SA1

SA2

SA3

C7

C6

C5

IBF

C4

C3

INT

C2

C1

IBF

C0

INT

Программа 1.1. Ввода данных через порт B и вывод через порт A в 0 режиме (ключи SA2.0 SA2.1 – вниз)

адр

код

ассемблер

Комментарии

0800

0802

0804

0806

0808

3E, 8B

D3, B3

0B, B1

D3, B0

C3, 04, 08

MVIA, 8B

OUT(адр PУП)

IN PB

OUT PA

JMP.08.04

Запись управляющего слова

Программирование интерфейса

Чтение из порта B

(PB) -> (A)

Запись данных в порт A

Зацикливание

Программа 1.2 ввода данных через порт B и вывода через порт A в режимах 1 (кл. SA2.0 – вниз, SA2.1 – вниз)

адр

код

ассемблер

комментарии

0800

0802

0804

0806

0808

080A

080C

0810

0812

0814

0817

0819

081B

081D

081F

0821

0824

3E, AF

D3, B3

3E, 05

D3, B3

3E, 0D

D3, B3

21 40 08

00 00

00 00

DB B2

E6, 01

CA, 10,

08

DB, B1

D3, B0

77, 23

DB, B2

E6, 08

CA, 1D, 08

C3, 1D, 08

MVIA, AF

OUT (адр. PУП)

MVIA, 05

OUT (адр. PУП)

MVIA, 0D

OUT (адр. PУП)

LXIH 0840 NOP

IN (адр PC)

ANI, 01

JZ 8010

IN (адр PB)

OUT (адр A)

MOV MA, INX H

IN (адр PC)

ANI, 08

JZ 801D

JMP 0810

Загрузка в Акк. управляющего слова

Вывод управляющего слова в порт управлен. логики

Установка триггера

Разрешения ТГB через C2

Установка триггера

Разрешения выбора ТГA через C6

Чтение порта С

(PC -> (A)

Маскирование первого разряда порта С, проверка сигнала INT

Ожидание сигнала STB от SA2

Чтение порта B

Запись из Акк. В порт A

(А)-> (PA)

Запоминать в ячейки ОЗУ

Чтение порта С

(A) –> (PC)

Проверка сигнала INT

Ожидание сигнала

Зацикливание

Программа 1.3 ввода-вывода во 2-ом режиме

Ввод ключей SA4 – SA11. Вывод на индикаторы HL17 – HL24

(ключи SA2.0 – вниз, SA2.1 – вверх)

адр

код

ассемблер

комментарии

0800

0802

0804

0806

0808

080A

080C

080E

0810

0812

0814

0817

0819

081B

081C

081E

081D

081F

0821

0824

0827

082A

3E, C6

D3, B3

3E, 05

D3, B3

3E, 0D

D3, B3

3E, 09

D3, B3

D3, B2

E6, 20

CA, 10, 08

DB, B0

D3, B0

77

23

DB, B2

E6, 08

CA, 1D, 08

C3, 1D, 08

21, 04, 80

C3, 00, 08

MVIA, C6

OUT (адр PУП)

MVIA, 05

OUT (адр PУП)

MVIA, 0D

OUT (адр PУП)

MVIA, 09

OUT (адр PУП)

IN (адр PC)

ANI, 20

JZ 8010

IN (адр PA)

OUT (адр A)

MOV MA

INX H

IN (адр PC)

ANI, 08

JZ 801D

JMP 0810

LXIH 0840

Программирование интерфейса

Установка ТГ разрядом C2

Установка ТГ разрядом C6

Установка ТГ разрядом C4

Проверка сигнала IBF

(C5)

Ввод из порта A

Вывод через порт A

Запись в ячейку памяти

[(H) (L)]

Увеличение (HL)+1

Чтение порта C

Проверка (C3) INT A

Ожидание сигнала INT A

Зацикливание

Запись HL адр 0840

Начало программы с записью в память данных

Программа 1.4 ввода данных через порт B в режиме 1 или порт A и вывод через порт A – во 2-ом режиме

(ключи SA20 вниз «Раб» SA21 – вверх «Руч»)

адр

код

метка

ассемблер

комментарии

085A

085C

085E

0860

0862

0864

0866

0868

086A

086C

086E

0871

0873

0876

0878

087A

087D

087F

0881

0882

0883

0885

0887

088A

3E C6

D3 B3

3E 05

D3 B3

3E 09

D3 B3

3E 0D

D3 B3

DB B2

E5 01

CA 76 08

DB B1

C3 7F 08

DB B2

E6 20

CA 6A 08

DB B0

D3 B0

77

23

DB B2

E6 08

CA 83 08

C3 6A 08

LOAD:

TEST B:

TEST A:

WRITE:

WAIT2:

MVIA, C6

OUT RGCW

MVIA, SET0

OUT RGCW

MVIA, SET1

OUT RGCW

MVIA, SET2

OUT RGCW

IN PC

ANI, 01

JZ TEST A

IN PB

JMP WRITE

IN PC

ANI 20

JZ TEST B

IN PA

OUT PA

MOV MA

INX H

IN PC

ANI 08

JZ 0883

JMP TEST B

Запись управл. слова в регистр управления

Установка триггера

ТГ через C2

Установка триггера

через C4

Установка триггера

через C6

Ожидание установки

Сигнал INT.B

Чтение данных из PA

Переход к записи в PA

Ожидание установки

сигнала а IBF

Чтение данных из PA

Запись данных в PA

Загрузка данных в память с адр. В (HL)

Увеличить (HL)+1

Чтение PC

Ожидание снятия INT A

Зацикливание

4.3. Откорректировать программу 1.2 для ввода данных в память. Задавать различные значения на входе ключами SA12 – SA19. Записывать данные в память в автоматическом режиме управляя вводом ключом SA1 – (сигнал ) и при выводе ключом SA3 – (сигнал ).

Проверить правильность записанных в памяти значений.

4.4. Ввести программу 1.3 работы интерфейса во 2-ом режиме с вводом данных ключами SA(4 – 11) порта A и с выводом на светодиоды HL17 – HL24 порта A/

При выполнении программы перевести ключ SA21 вверх.

При выполнении программы по шагам команд записывать сигналы управления в табл. 1.3. После команды IN(PC) дешифровать показания аккумулятора, сравнить его с сигналами порта C, определить дальнейший путь программы, если кнопку SA2 не нажимали и сигнал не поступил. Проверить, что при подаче сигнала кнопкой SA2 устанавливается сигнал IBF и программа выходит из внутреннего цикла ожидания и переходит к вводу данных через порт A. Дешифровать состояние флагового регистра после команды ANI20.

Фиксировать сброс сигнала IBF(C5) после команды IN(PA). Записать содержание аккумулятора после команды IN(PA), перевести его в двоичную систему и сравнить с заданным значением ключами SA4 – SA11.

После команды OUT(PA) нажать кнопку SA3 и проверить состояние индикаторов HL17 – HL24 В.У., записать состояния сигналов управления порта C.

После команд MOV MA и INXH проверить содержимое регистров HL и ячеек памяти 08A0 – проверить правильность значений, записанных в память.

Вернуться к программе Кн. ПрСч. По шагам команды завершить цикл.

Установить на входе ключами SA4 – SA11 новое число, продолжить выполнение программы и проконтролировать, что если сигнал ACK с ВУ через кнопку SA3 не поступит, то данные в аккумулятор поступают, но на внешнее устройство не выводятся, программа на внешний цикл не переходит до сигнала .

4.5. Ввести программу 1.4. Набрать ключами SA12 – SA19 входное число: подать сигнал кн. SA1. Вывести число через порт A, сигналом – удерживая кнопку SA3 до считывания данных со светодиодов в автоматическом режиме. Выполнить программу по шагам команд, фиксировать изменение управляющих сигналов в табл. 1.3.