Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПМСУ1(4)

.doc
Скачиваний:
11
Добавлен:
13.05.2015
Размер:
846.34 Кб
Скачать

ГОУ ВПО Сургутский государственный университет

ХМАО – Югры

Факультет автоматики и телекоммуникаций

Кафедра автоматики и компьютерных систем

Отчёт по лабораторной работе №6.

«Изучение особенностей функционирования КПР»

Выполнили

Проверил доцент

Запевалов А. В.

Цель работы: изучить особенности функционирования КПР.

Задание: Создать программное обеспечение, отображающее основную надпись и реагирующее на запросы от трёх источников прерываний. Подпрограммы обслуживания запросов осуществляют отображение на дисплее в течение 3-5 секунд определённой надписи.

Вариант 25.

Основная надпись

IRQ

Надпись

IRQ

Надпись

IRQ

Надпись

Югра

4

СурГУ

5

гр. 1271

3

учеба

Блок-схема алгоритма программы:

Блок-схема алгоритма обработки IRQ4:

Блок-схема алгоритма обработки IRQ5:

Блок-схема алгоритма обработки IRQ3:

Код программы:

Адрес

Метка

Код

Assembler

Комментарий

0800h

3E

MVI A, 14h

Инициализация КИ1 (00010100)

0801h

14

0802h

D3

OUT 98h

Отправка Ведущему КИ1

0803h

98

0804h

D3

OUT 9Ch

Отправка Ведомому КИ1

0805h

9C

0806h

3E

MVI A, 0Ah

Инициализация КИ2 (00001010)

0807h

0A

0808h

D3

OUT 99h

Отправка Ведущему КИ2

0809h

99

080Ah

D3

OUT 9Dh

Отправка Ведомому КИ2

080Bh

9D

080Ch

3E

MVI A, 81h

Инициализация

080Dh

81

080Eh

D3

OUT 99h

Отправка Ведущему КИ3 (10000001)

080Fh

99

0810h

3E

MVI A, 07h

Инициализация

0811h

07

0812h

D3

OUT 9Dh

Отправка Ведомому КИ3 (00000111)

0813h

9D

0814h

3E

MVI A, С7h

Инициализация (11000111) (КО1)

0815h

С7

0816h

D3

OUT 99h

Маскирование прерываний Ведущего

0817h

99

0818h

3E

MVI A, FFh

Инициализация (11111111) (КО1)

0819h

FF

081Ah

D3

OUT 9Dh

Маскирование прерываний Ведомого

081Bh

9D

081Ch

3E

MVI A, C3h

Инициализация (11000011) (КО2д)

081Dh

C3

081Eh

D3

OUT 98h

Дно приоритетов Ведущего на IRQ3

081Fh

98

0820h

D3

OUT 9Ch

Дно приоритетов Ведомого на IRQ3

0821h

9C

0822h

3E

MVI A, 00h

0823h

00

0824h

D3

OUT B1h

Сброс триггера

0825h

B1

0826h

D3

OUT B2h

Сброс триггера

0827h

B2

0828h

D3

OUT B3h

Сброс триггера

0829h

B3

082Ah

FB

EI

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

082Bh

M1

21

LXI H, 0BFAh

Инициализация указателя

082Ch

FA

082Dh

0B

082Eh

36

MVI M, 00h

Запись кода пробела

082Fh

00

0830h

23

INX H

Инкремент указателя

0831h

36

MVI M, 77h

Запись кода буквы «А»

0832h

77

0833h

23

INX H

Инкремент указателя

0834h

36

MVI M, 73h

Запись кода буквы «Р»

0835h

73

0836h

23

INX H

Инкремент указателя

0837h

36

MVI M, 31h

Запись кода буквы «Г»

0838h

31

0839h

23

INX H

Инкремент указателя

083Ah

36

MVI M, 3Fh

Запись кода буквы «О»

083Bh

3F

083Ch

23

INX H

Инкремент указателя

083Dh

36

MVI M, 70h

Запись кода буквы « »

083Eh

70

083Fh

CD

CALL 01C8h

Сканирование дисплея

0840h

C8

0841h

01

0842h

C3

JMP M1

0843h

2B

0844h

08

0845h

IRQ4

F5

PUSH PSW

Запись в стек слова состояния

0846h

C5

PUSH B

Запись в стек пары BC

0847h

E5

PUSH H

Запись в стек пары HL

0848h

FB

EI

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

0849h

06

MVI B, 02h

Инициализация 1-го счётчика

084Ah

02

084Bh

M2

0E

MVI C, FFh

Инициализация 2-го счётчика

084Ch

FF

084Dh

M3

21

LXI H, 0BFAh

Инициализация указателя

084Eh

FA

084Fh

0B

0850h

36

MVI M, 00h

Запись кода пробела

0851h

00

0852h

23

INX H

Инкремент указателя

0853h

36

MVI M, 6Eh

Запись кода буквы «У»

0854h

6E

0855h

23

INX H

Инкремент указателя

0856h

36

MVI M, 31h

Запись кода буквы «Г»

0857h

31

0858h

23

INX H

Инкремент указателя

0859h

36

MVI M, 73h

Запись кода буквы «Р»

085Ah

73

085Bh

23

INX H

Инкремент указателя

085Ch

36

MVI M, 6Eh

Запись кода буквы «У»

085Dh

6E

085Eh

23

INX H

Инкремент указателя

085Fh

36

MVI M, 39h

Запись кода буквы «С»

0860h

39

0861h

CD

CALL 01C8h

Сканирование дисплея

0862h

C8

0863h

01

0864h

0D

DCR C

Декремент 2-го счётчика

0865h

C2

JNZ M3

0866h

4D

0867h

08

0868h

05

DCR B

Декремент 1-го счётчика

0869h

C2

JNZ M2

086Ah

4B

086Bh

08

086Ch

3E

MVI A, 00h

086Dh

00

086Eh

D3

OUT B2h

Сброс триггера

086Fh

B2

0870h

3E

MVI A, 20h

0871h

20

0872h

D3

OUT 98h

Отправка Ведущему команды EOI

0873h

98

0874h

E1

POP H

Извлечение из стека пары HL

0875h

C1

POP B

Извлечение из стека пары BC

0876h

F1

POP PSW

Извлечение из стека слова состояния

0877h

C9

RET

Выход из подпрограммы

0878h

IRQ5

F5

PUSH PSW

Запись в стек слова состояния

0879h

C5

PUSH B

Запись в стек пары BC

087Ah

E5

PUSH H

Запись в стек пары HL

087Bh

FB

EI

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

087Ch

06

MVI B, 02h

Инициализация 1-го счётчика

087Dh

02

087Eh

M4

0E

MVI C, FFh

Инициализация 2-го счётчика

087Fh

FF

0880h

M5

21

LXI H, 0BFAh

Инициализация указателя

0881h

FA

0882h

0B

0883h

36

MVI M, 06h

Запись кода цифры «1»

0884h

06

0885h

23

INX H

Инкремент указателя

0886h

36

MVI M, 07h

Запись кода цифры «7»

0887h

07

0888h

23

INX H

Инкремент указателя

0889h

36

MVI M, 5Bh

Запись кода цифры «2»

088Ah

5B

088Bh

23

INX H

Инкремент указателя

088Ch

36

MVI M, 06h

Запись кода цифры «1»

088Dh

06

088Eh

23

INX H

Инкремент указателя

088Fh

36

MVI M, F3h

Запись кода буквы «Р.»

0890h

F3

0891h

23

INX H

Инкремент указателя

0892h

36

MVI M, 31h

Запись кода буквы «Г»

0893h

31

0894h

CD

CALL 01C8h

Сканирование дисплея

0895h

C8

0896h

01

0897h

0D

DCR C

Декремент 2-го счётчика

0898h

C2

JNZ M5

0899h

80

089Ah

08

089Bh

05

DCR B

Декремент 1-го счётчика

089Ch

C2

JNZ M4

089Dh

7E

089Eh

08

089Fh

3E

MVI A, 00h

08A0h

00

08A1h

D3

OUT B3h

Сброс триггера

08A2h

B3

08A3h

3E

MVI A, 20h

08A4h

20

08A5h

D3

OUT 98h

Отправка Ведущему команды EOI

08A6h

98

08A7h

E1

POP H

Извлечение из стека пары HL

08A8h

C1

POP B

Извлечение из стека пары BC

08A9h

F1

POP PSW

Извлечение из стека слова состояния

08AAh

C9

RET

Выход из подпрограммы

08ABh

IRQ3

F5

PUSH PSW

Запись в стек слова состояния

08ACh

C5

PUSH B

Запись в стек пары BC

08ADh

E5

PUSH H

Запись в стек пары HL

08AEh

FB

EI

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

08AFh

06

MVI B, 02h

Инициализация 1-го счётчика

08B0h

02

08B1h

M6

0E

MVI C, FFh

Инициализация 2-го счётчика

08B2h

FF

08B3h

M7

21

LXI H, 0BFAh

Инициализация указателя

08B4h

FA

08B5h

0B

08B6h

36

MVI M, 00h

Запись кода пробела

08B7h

00

08B8h

23

INX H

Инкремент указателя

08B9h

36

MVI M, 77h

Запись кода буквы «А»

08BAh

77

08BBh

23

INX H

Инкремент указателя

08BCh

36

MVI M, 7Dh

Запись кода буквы «Б»

08BDh

7D

08BEh

23

INX H

Инкремент указателя

08BFh

36

MVI M, 73h

Запись кода буквы «Е»

08C0h

73

08C1h

23

INX H

Инкремент указателя

08C2h

36

MVI M, 66h

Запись кода буквы «Ч»

08C3h

66

08C4h

23

INX H

Инкремент указателя

08C5h

36

MVI M, 6Eh

Запись кода буквы «У»

08C6h

6E

08C7h

CD

CALL 01C8h

Сканирование дисплея

08C8h

C8

08C9h

01

08CAh

0D

DCR C

Декремент 2-го счётчика

08CBh

C2

JNZ M7

08CCh

B3

08CDh

08

08CEh

05

DCR B

Декремент 1-го счётчика

08CFh

C2

JNZ M6

08D0h

B1

08D1h

08

08D2h

3E

MVI A, 00h

08D3h

00

08D4h

D3

OUT B1h

Сброс триггера

08D5h

B1

08D6h

3E

MVI A, 20h

08D7h

20

08D8h

D3

OUT 98h

Отправка Ведущему команды EOI

08D9h

98

08DAh

E1

POP H

Извлечение из стека пары HL

08DBh

C1

POP B

Извлечение из стека пары BC

08DCh

F1

POP PSW

Извлечение из стека слова состояния

08DDh

C9

RET

Выход из подпрограммы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]