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

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

В состав программируемого таймера (ПТ) входят три независимых 16-разрядных счетчика (счетчики CT0; CT1; CT2). На входы счетчиков С0, С1, С2 поступают импульсы. Прием этих импульсов разрешается сигналами G0, G1, G2 (STB0, STB1, STB2). Под действием этих сигналов содержимое счетчиков сбрасывается. При равенстве содержимого счетчика нулю на его выходе OUT выбрасывается сигнал запросов на прерывание. Режимы работы каждого счетчика независимы и заданы значением управляющего слова, занесенным в специальный регистр для каждого счетчика. Содержимое счетчиков сбрасывается при записи управляющих слов. Частота счета возможна от 0 до 2 мГц. Величина счета в двоичном коде 216 в двоично-десятичном 104.

П.Т. – программируется через микропроцессор и после программирования готов к выполнению действий. Каждый из трех каналов ПТ программируется отдельно, путем записи управляющих слов и начальных значений содержимого счетчика они заносятся последовательно по одинаковому адресу.

Формат управляющего слова приведен в табл. 3.1.

Табл. 3.1. Формат управляющих слов П.Т.

разряд

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

0

Код счета: 0 – двоичный; 1 – двоично-десятичный

1

2

3

Режим работы при D3, D2, D1: 000 – режим 0; 001 – режим 1; 010 – режим 2; 011 – режим 3; 100 – режим 4; 101 – режим 5

4

5

Число записываемых/считываемых байтов при D5, D4: 01 – младший; 10 – младший, затем старший; 00 – копирование в спец. регистр для последующего чтения.

6

7

Выбор счетчиков при D7, D6: 00 – канала 0; 01 – канала 1; 10 – канала 2.

При программировании в соответствующий канал ПТ управляющие слова записываются командой OUT [адр] управляющего слова, затем в регистр счетчика последовательно записывают младший байт числа и старший при одинаковом адресе. Номер канала указан в управляющем слове.

Адресация каналов определяется уровнем сигналов, поданных на выводы A0 и A1 – ПТ и приведена в табл. 3.2.

Табл. 3.2. Адресация регистров ПТ

Регистр

A1

A0

Адр. В УМПК - 80

Счетчик канала 0

0

0

0

98

Счетчик канала 1

0

1

0

99

Счетчик канала 2

1

0

0

9A

Управляющего слова

1

1

0

9B

В процессе работы ПТ содержимое любого счетчика можно прочитать после прихода первого импульса C двумя способами:

1) приостановив работу счетчика подачей сигнала G (STB) L – уровня или блокировкой тактовых импульсов: прочитать с помощью двух команд ввода (IN), если запрограммировано чтение двух байтов.

2) записав в ПТ управляющее слово, содержащее нули в разрядах D4, D5; которые указывают на операцию копирования содержимого счетчика в момент чтения; прочитать содержимое счетчика двумя командами ввода. При этом считывание осуществляется без нарушения операции счета. Содержимое заданного счетчика копируется в специальном буфере, откуда и считывается. Операция считывания первого и второго байтов должна быть проведена полностью.

Каждый из счетчиков ПТ может работать в одном из шести режимов.

В режиме 0 счетчик функционирует как программируемый таймер. Сигнал OUT после занесения управляющего слова имеет низкий уровень. При низком уровне сигнала G сброс содержимого прекращается до прихода высокого уровня. Сброс содержимого счетчика происходит по срезу сигнала C при высоком уровне на входе G, начиная со второго сигнала C.

В режиме 1 счетчик работает как ждущий одновибратор. Сигнал OUT снимается по срезу первого импульса C при высоком уровне на входе G и устанавливается при сбросе счетчика. Т.о. ПТ формирует отрицательные импульсы длительностью t=n*Tc где Tc – период тактовых импульсов на входе С, n – число, загруженное в счетчик. Занесение в счетчик нового начального значения при низком уровне сигнала OUT не изменяет длительность импульса на выходе OUT после следующего положительного фронта сигнала G. Содержимое счетчика можно считывать в любой момент времени.

В режиме 2 счетчик используется как делитель частоты на n. Выходной сигнал OUT имеет низкий уровень с частотой Cвх:n. Устанавливается 0 на время одного периода сигнала Cвх. Если счетчик перезагружается между выходными импульсами, то на текущий период это не сказывается. При подаче на вход G низкого уровня на выходе OUT устанавливается 1, счетчик начинает отсчет от начальной величины счета по фронту на входе G.

В режиме 3 выходной сигнал OUT в течении одного полупериода Tn имеет высокий уровень, в другом - низкий.

Tn = n*Tc

В режиме 4 после загрузки управляющего слова выход OUT имеет высокий уровень. После занесения начального значения счетчик начинает работать. По окончании счета сигнал OUT сбрасывается, а при поступлении следующего импульса на вход C вновь устанавливается. Снятие сигнала G останавливает счет, а его повторная установка вызывает работу счетчика с начального значения.

В режиме 5 счет начинается после поступления положительного фронта на вход G. Сигнал OUT сбрасывается после окончания счета и затем устанавливается по импульсу C.

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

3.1. Ознакомиться с устройством ПТ, сигналами, форматом управляющего слова, способами программирования и чтения содержимого счетчиков.

3.2. Ознакомиться с режимами работы ПТ.

3.3. Изучить программу 3.1 и 3.2.

3.4. Написать управляющие слова для режимов 1 - 5.

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

4.1. Ввести программу 3.1. Выполнить программу по шагам команд. Вводить импульсы 00 нажатием кнопки SB1. Подать сигнал G0 ключом SA3.1 (вверх) - при этом лампа G0 включается.

По результатам построить временные диаграммы сигналов C, OUT, G, WR в соответствии с описанием режимов работы ПТ.

4.2. После остановки программы 3.1 по адресу 0825 при G0=1 ввести содержимое младшего и старшего байта счетчика в регистры A и B нажатием кн. От Рг. Затем после подачи сигнала C0 повторно ввести содержимое счетчиков после завершения цикла в программе 3.2.

Зафиксировать значения счетчиков после пяти импульсов C0 и после шестого импульса. Дать объяснение полученным результатам.

4.3. Откорректировать программу 3.1 на выполнение режимов 1 - 5. провести исследование режимов в соответствии с описанием работы. Построить временные диаграммы сигналов C0, G0, OUT, WR.

5. Содержание отчета

Отчет должен содержать:

1. Программы задания режимов.

2. Программу 3.2.

3. Временные временные диаграммы сигналов C0, G0, OUT, WR для 6-ти режимов.

Программа 3.1. Программирование работы канала 0 программируемого таймера в режиме 0 при двоичном коде счета.

адр

код

ассемблер

комментарии

0800

0802

0804

0806

0808

080A

080C

3E 30

D3 9B

3E 04

D3 98

3E 00

D3 98

C3 20 08

MVIA 30

OUT RGCW

MVIA 04

OUT RGCO

MVIA 00

OUT RGCO

JMP OUT

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

запись мл. байта в счетчик

запись ст. байта

в счетчик CO

переход к программе вывода содержимого счетчика

Программа 3.2. - OUT. Вывод содержимого счетчика канала - 0.

адр

код

ассемблер

комментарии

0820

0822

0823

0835

DB 98

47

DB 98

C3 20 08

IN RGCO

MOV BA

IN RGCO

JMP OUT

Чтение младшего байта счетчика 0 в аккумулятор

Пересылка содержимого младшего байта CO в рег. B

Чтение старшего байта счетчика CO

Зацикливание программы вывода

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

Исследование программируемого контроллера прерываний KP580BН59.

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

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

Программируемый контроллер прерываний (ПКП) состоит из буфера данных, блока управления обменом с сигналами, поступающими от МПС , , AO, , схемы каскадирования с сигналами CAS0, CAS1, CAS2, сигналами ведущий/ведомый – MS/ и устройство управления INT и входным сигналом – INT A с 8 входами сигналов запросов прерывания – IRQ0 – IRQ7. Запросы прерывания от внешних устройств подают на входы IR0 – IR7, которые запоминают в регистре запросов, если сигнал запросов от внешнего устройства задерживается до прихода первого сигнала INTA. Регистр маски содержит единицы в разрядах блокируемых запросов. Каждый последующий запрос на прерывание принимается только после выполнения программы обслуживания по данному входу со сбросом соответствующего разряда регистра обслуживаемых запросов (состояния). Это выполняют специальной командой. Очередность обслуживания программируется и может быть с фиксированным приоритетом, при котором высший приоритет присваивается запросу IR0 – низший IR7 и с циклически изменяющимся приоритетом, при котором обслуженному запросу присваивается низший приоритет. Номер запроса с низшим приоритетом можно запрограммировать.

Программирование контроллера осуществляют двумя типами команд: командами инициализации и командами управления режимом обслуживания. Запись команд в контроллер осуществляется микропроцессором. Команды инициализации подают перед началом работы контроллера. Команды управления режимом можно подавать в процессе работы контроллера.

Программирование контроллера производят последовательной записью в них команд инициализации (КИ-1 и КИ-2). Если система содержит несколько контроллеров, включенных каскадно, после команды КИ-3, которая определяет соподчиненность контроллеров.

Перед программированием прием прерываний МП запрещают командой DI (запрет прерывания с кодом F3).

Команда КИ-1 (табл. 4.1) осуществляет сброс всех разрядов регистров запроса на прерывание, регистра маски, присваивает низкий приоритет входу IR7, сбрасывает триггеры чтения состояния регистров и определяет число контроллеров прерывания в системе, разность между стартовыми адресами, младшие байты адресов подпрограмм обслуживания прерываний, которые по второму сигналу INTA выводятся контроллером прерываний на шину данных. (По первому сигналу INTA ведущий контроллер выдает на шину данных код команды CALL). По третьему сигналу INTA на шину данных ведомый контроллер выдает старший байт адреса подпрограммы обслуживания запроса, заданный командой КИ-2.

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

Табл. 4.1.

Формат команд КИ-1

A0=0

N разряда

Назначение разрядов

D0

0 – признак команды

D1

1 – один контроллер в МПС

0 – более одного контроллера в МПС

D2

Разность между адресами подпрограмм

1 – 4 байта

0 – 8 байтов

D3

0 – признак команды

D4

1 – признак команды

D5

A5 – пятый разряд адреса подпрограммы

D6

A6 – шестой разряд адреса подпрограммы

D7

A7 – седьмой разряд адреса подпрограммы

КИ-2

A0=1

Старший байт адреса подпрограммы

D7

D6

D5

D4

D3

D2

D1

D0

A15

A14

A13

A12

A11

A10

A9

A8

КИ-3 – для ведущего контроллера

A0=1

D7

D6

D5

D4

D3

D2

D1

D0

IR7

IR6

IR5

IR4

IR3

IR2

IR1

IR0

IRN=1- подчиненный ПКП подключен IRN=0 – не подключен

КИ-3 – для подчиненного контроллера

A0=0

D7

D6

D5

D4

D3

D2

D1

D0

x

x

x

x

x

N2

N1

N0

номер входа ведущего контроллера, к которому подключен данный подчиненный

Управление порядком обслуживания запросов и маскирования запросов осуществляется командами управления КУ-1, КУ-2, КУ-3 табл. 4.2.

Для задания простого приоритетного режима не требуется никаких дополнительных команд, кроме команд инициализации. После приема микропроцессором запроса на прерывание INT и выдачи сигнала INTE триггер разрешения прерываний микропроцессора сбрасывается, запрещая прием прерываний. Поэтому для организации многоуровневой системы прерываний необходимо выполнить программную установку этого триггера командой E1 (разрешение прерывания – код IR).

Команду КУ-2 используют и для задания циклического приоритета и изменения порядка приоритетов при указании номера входа запроса, которому присваивается низший приоритет, т. е. указывается дно циклического приоритета.

Команду КУ-3 используют для установки спецмаскирования и опроса состояния регистров запроса и регистра обслуживаемых запросов состояния) при организации прерываний по результату опроса слова состояния – регистра обслуживаемых запросов.

Табл. 4.2.

Команды управления

КУ-1

A0 D7 D6 D5 D4 D3 D2 D1 D0

1

M7

M6

M5

M4

M3

M2

M1

M0

Маскирование входа

1 – маска установлена

0 – маска сброшена

КУ-2

AØ D7 D6 D5 D4 D3 D2 D1 D0

Ø

Ц

К

СВ

Ø

Ø

К2

К1

К0

н омер входа запроса, которому присваивается низший приоритет

1 – сброс разряда с наивысшим приоритетом

0 – не воздействует

1 – разряды К0-К1 используются

0 – не используются

1 – режим циклического приоритета

0 – простой приоритетный режим

КУ-3

A0 D7 D6 D5 D4 D3 D2 D1 D0

0

X

СM1

СM2

0

1

П

Р1

Р0

считывание регистров

0

1

0

1

1

1

0

0

регистр

запросов

регистр

обслуж.

запр.

не воз- действ.

1 разрешает в следующем цикле считывать номер запроса с высшим приоритетом

Режим спецмаскирования

1

0

0 1

1

1

0 0

режим установлен

сброс режима

не воз- действ.

Формат слова считываемого с контроллера

После команды КУ-3-ОС

A

0

3

X

X

X

X

К2

К1

К0

код с высшим приоритетом

1 – запрос имеется

0 – запрос отсутствует

После подачи команды КУ-3=0С можно считывать слово состояния, в котором в трех младших разрядах указан номер запроса с высшим приоритетом, а в седьмом разряде высокий уровень 1 – обозначает наличие запроса на прерывание.

При организации прерываний по результату опроса (программно) каждое новое обслуживание запросов осуществляется по инициативе программы МПС путем предварительной подач команды КУ-3=0С с последующим чтением кода запроса с высшим приоритетом командой IN и сигналом RD. При этом сигналы INT и INTA между МП и КП не должны передаваться (каналы не соединены).

Прием запросов, маскирование и анализ их по приоритетам производится так же как при прерывании по запросу. Напряжение высокого уровня на входах IR0 – IR7должно удерживаться до прихода сигнала RD.

Действие команды КУ-3 прекращается после считывания регистров по команде IN (сигналу RD). При подаче команды КУ-3=0A в следующем цикле считывается содержимое регистра состояния.

Считывание содержимого регистра маски выполняется командой IN (при A0=1) без предварительной команды КУ-3.

Устройство модуля платы контроллера прерываний УМПК-80/МИ-4

Схема модуля содержит два КП, включены каскадно. БИС D9 является ведущей, а D10 ведомой. Переключатель SA5 при положении ключа вправо подключает сигнал запроса прерывания ведомого КП к входу IR7 ведущего, а при положении ключа влево – ко входу IR0 ведущего.

Дешифратор адреса формирует сигналы выборки микросхем – CS, стробирующий сигнал записи данных в регистр D11 и сигналы сброса триггеров запросов D6-D7.

Обращение к схемам осуществляется как к устройствам ввода-вывода по адресам:

  1. Выбор ведущего КП (D9) – по адресу 98-9B

  2. Выбор ведомого КП (D10) – по адресу 9C-9E

  3. Подача сигнала сброса триггеров запросов IR3 – IR5 D6, D7.1, D7.2 … B1, B2, B3.

  4. Формирование импульса запроса прерывания IR2 для КП D9 по адресу … B0

  5. Строб записи данных в регистр D11 … 99

Схема формирования запросов прерываний позволяет подавать на КП запросы прерываний ключами SA1-SA4 со схемами антидребезга. Триггеры D6; D7.1; D7.2 позволяют устанавливать запросы прерываний на входах IR3 – IR5 при нажатии кнопок SA2 – SA4 и снимать их при обращении МПС к триггерам как к ВУ с адресами B1, B2, B3 соответственно.

Схема индикации позволяет отражать команду КИ3 ведущего контроллера прерываний через выходы CAS0 – CAS2 передаваемое к ведомому КП. Передаваемые данные, управляющие слова, состояния можно отражать через регистр D11 на светодиодах HL7 – HL14.

В программе 4.1 реализовано обслуживание прерываний по запросу контроллера прерываний. В основной программе микропроцессор читает состояние датчиков внешнего устройства – ключей SA1-1 – SA1-8 на панели ВМ и выводит данные на светодиоды HL9 – HL16 ВУ. Запросы на прерывания поступают от кнопки SA1на вход IR1 ведущего КП, а от кнопок SA2, SA3, SA4 на входы IR3, IR4; IR5 ведомого КП. Запрос прерывания INT ведомого подключен к IR7 ведущего – ключом SA5 (вправо). В подпрограммах обслуживания прерываний вывести на светодиоды HL9 – HL16 ВУ на панели ВМ код подпрограммы обслуживания, в котором в младшей тетраде указать номер запроса, а в старшей тетраде число 1H при обслуживании ведущего КП и число 2H – для ведомого.

Программа 4.1. Обслуживание прерываний по запросу ПКП.

Положение ключей:

адр

код

ассемблер

комментарии

0800

0801

0805

0809

080D

0811

0815

0819

081D

0821

F3

3E 10 D3 98

3E 09 D3 99

3E 80 D3 99

3E 10 D3 9C

3E OA D3 9D

3E 07 D3 9D

3E 7D D3 99

3E C7 D3 9D

D3B1 D3B2

D3B3

D1

MVIA 10 OUT 98

MVIA 09 OUT 99

MVIA 80 OUT 99

MVIA 10 OUT 9C

MVIA OA OUT 9D

MVIA 07 OUT 99

MVIA 7D OUT 99

MVIA C7 OUT 9D

OUT B1, OUT B2, OUT B3

Программирование ПКП. Запрет прерываний.

Программирование КИ-1

Ведущего КИ-2

КИ-3

Программирование КИ-1

ведомого КИ-2

КИ-3

Маскирование КУ-1

Маскирование КУ-1

Сброс Т запросов

0834

0835

0839

FB

DB 05 D3 05

C3 34 08

E1

INSA OUTHL

JMP 08 34

Основная программа:

Разрешение пррывания

Чтение ВУ. Запись на HL

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

0908

0950

0954

0956

095A

C3 50 09

3E 11 D3 05

FB 76

3E20 D398

C9

JMP 09 50

MVIA 11 OUT 05

EI.HLT

MVIA 20 OUT 98

RET

Запись перехода при обслу-живании запроса IR1 вщ

Подпрограмма обслуживания IR1 ведущего ПКП

Разреш. прерывания, останов

Сброс запроса ком. КУ-2

Возврат к основн. программе

0A18

0A20

0A28

C3 70 OA

C3 80 0A

C3 90 0A

JMP OA 70

JMP 0A 80

JMP 0A 90

Запись перехода в начало подпрограммы обслуж. IR3 ПКП D10 (ведомого)

Обслуживание IR4.D10

Обслуживание IR5.D10

0A70

3E 23 D305

FB 76 3E20

D3 9C

D3 98 D3B1

C9

MVIA 23 OUT HL

EI.HLT.MVIA20

OUT

OUT 98 OUT TM

RET

Вывод кода подпр. IR3 ведомого ПКП

Стоп. Сброс IR3 ведомого ПКП

Сброс IR7 вдщ. ПКП. Возвр.

0A80

3E 24 D3 05

FB 76 3E20

D3 9C

D3 98 D3B2

C9

MVIA 24 OUT HL

EI MVIA 20 OUT

9C

OUT 98 OUT T3

RET

Вывод кода подпр. IR4 ведомого ПКП

Стоп. Сброс IR4 ведомого ПКП

Сброс IR7 вдщ. ПКП. Возвр.

0A90

E3 25 D3 05

FB 763E20D3

9C

D3 98 D3 B3

C9

MVIA 25 OUT HL

EI.HLT MVIA20

OUT 9C

OUT 98 OUTT14

RET

Вывод кода подпр. IR5 ведущего ПКП

Сброс IR5

Сброс IR7 вдщ. ПКП. Возвр.

Программа 4.2. Исследование состояния ПКП по опросу МП при выполнении программы 4.1

адр

код

ассемблер

комментарии

083C

083D

0841

F3

3E 0A D3 98

DB 98 D3 05

D1

MVIA 0A OUT 98

IN 98 OUT HL

Запрет прерываний

Запись команды КУ 3=0A в ведущ. ПКП для чтения регистра запросов

Чтение регистра запросов (Р3). Запись состояния на светодиоды

0845

0849

3E 0A D3 9C

D3 9C D3 05

MVIA 0A D3 9C

IN9C OUT HL

Запись КУ-3 чтения Р3 в ведомый ПКП.

Чтение Р3 и вывод на светодиоды

084D

0851

3E 0B D3 98

DB 98 D3 05

MVIA OB OUT 98

IN 98 OUT HL

Запись КУ-3=0B для чтения регистра состояния (РС)

Чтение регистра состояния ведущ. ПКП индикации РС

0855

0859

3E 0B D3 9C

DB 9C D3 05

MVIA 0B OUT 9C

IN 9C OUT HL

Запись КУ-3 в ведомый ПКП

Чтение и индикация РС.

085D

0861

3E 0C D3 98

DB 98 D3 05

MVIA 0C OUT 98

IN98 OUT HL

Запись КУ-3=0C для чтения кода запроса с высшим приоритетом (PSW). Чтение PSW

0865

0869

3E 0C D3 9C

DB 9C D3 05

MVIA 0C OUT 9C

IN 9C OUT HL

Запись КУ-3 – 0C для чтения кода запроса с высшим приор

Чтение PSW ведомого

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

3.1. Изучить устройство, сигналы, принципы программирования ПКП-КР580 ВН 59.

3.2. Изучить программу 4.1 – обслуживания прерывания по запросу ПКП. Дешифровать команды инициализации и управления.

3.3. Нарисовать схему алгоритма программы обслуживания прерываний по запросу ПКП.

3.4. Изучить программу 4.2 исследования состояния ПКП по опросу МП. Дешифровать команды КУ-3 в соответствии с форматом команд.

3.5. Откорректировать программы 4.1 и 4.2 для реализации обслуживания прерываний по опросу состояний ПКП микропроцессором, сократив число запросов до одного в ведущем ПКП.

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

4.1. Ввести программу 4.1. Выполнять ее в автоматическом режиме. При запуске программы при отсутствии запросов на прерывание на выходных светодиодах ВМ80 отражается состояние ключей входного устройства. Проверить это переключением тумблеров SA1.1. – SA1.8. Осуществить запрос прерывания нажатием кнопки SA1. Проверить соответствие слова на светодиодах HL9 – HL16 на панели ВМ коду запроса – 1.1Н. Произвести сброс запроса нажатием кнопок «стоп» и «пуск» при выполнении команды КУ3=20. Выполнить прерывания нажатием кнопок SA2-SA4. Проверить правильность работы системы по индикации результатов на светодиодах. При правильной работе при нажатии кнопки SA1 – выводится число 11, SA2 – 23; SA3 – 24; SA4 – 25.

Проследить путь выполнения программ по шагам команд.

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

4.3. Ввести программу 4.2 в программу 4.1. Отключить сигнал INT ключом SA2.3 – вверх на панели ВМ – третьим ключом слева. Выполнять программу по шагам команд. Исследовать состояние регистров: запросов, состояния, кода запроса с высшим приоритетом.

4.4. Вывести самостоятельно откорректированную программу 4.1 и 4.2 для реализации прерываний по опросу в соответствии с заданием 3.5.

Проверить правильность ее функционирования в шаговом и автоматическом режимах.

5. Отчет должен содержать

    1. Форматы команд КИ-1, КИ-2, КИ-3, КУ-1, КУ-2, КУ-3, слова состояния.

    2. Программы 4.1, 4.2 скорректированную по 4.1 и 4.2, в соответствии с заданием 3.5.

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

Исследование контроллера прямого доступа к памяти KP580BТ57.

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