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

ПМСУ1(6)

.doc
Скачиваний:
17
Добавлен:
13.05.2015
Размер:
1.02 Mб
Скачать

ГОУ ВПО «Сургутский государственный университет Ханты-Мансийского автономного округа – Югры»

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

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

ОТЧЕТ

по лабораторной работе № 1

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

Выполнили: студенты

Принял: преподаватель

Запевалов Андрей Валентинович

Сургут

2011

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

Адреса КПР: master – 98h, 99h.

slave – 9Ch, 9Dh.

При активации запросов IRQ3, IRQ4, IRQ5 взводятся триггеры, расположенные по адресам В1, В2, В3 – соответственно. При выходе из подпрограммы обслуживания данных прерываний триггеры необходимо сбрасывать.

При программировании Ведущему сообщить о том, что к его 0-му и 7-му IRQ подключен Ведомый. Ведомому назначить номер №7 и замаскировать все его запросы.

Вариант №9.

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

№ IRQ

Надпись

№ IRQ

Надпись

№ IRQ

Надпись

сосна

5

береза

3

граб

4

роза

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

Обслуживание IRQ5: Обслуживание IRQ3: Обслуживание IRQ4:

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

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

Адрес

Метка

Машинный код

Ассем. код

Комментарии

0800

3E

MVI A,00h

Обнуление аккумулятора

0801

00

0802

D3

OUT B3h

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

0803

B3

0804

D3

OUT B1h

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

0805

B1

0806

D3

0UT B2h

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

0807

B2

0808

3E

MVI A,14h

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

0809

14

080A

D3

OUT 98h

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

080B

98

080C

D3

OUT 9Ch

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

080D

9C

080E

3E

MVI A,09h

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

080F

09

0810

D3

OUT 99h

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

0811

99

0812

D3

OUT 9Dh

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

0813

9D

0814

3E

MVI A,81h

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

0815

81

0816

D3

OUT 99h

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

0817

99

0818

3E

MVI A,07h

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

0819

07

081A

D3

OUT 9Dh

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

081B

9D

081C

3E

MVI A,C7h

Инициализация КО1

081D

C7

081E

D3

OUT 99h

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

081F

99

0820

3E

MVI A, FFh

Инициализация КО1

0821

FF

0822

D3

OUT 9Dh

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

0823

9D

0824

3E

MVI A,C4h

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

0825

C4

0826

D3

OUT 98h

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

0827

98

0828

D3

OUT 9Ch

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

0829

9C

082A

FB

EI

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

082B

M1

21

LHI H,0BFAh

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

082C

FA

082D

0B

082E

36

MVI M,00h

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

082F

00

0830

23

INX H

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

0831

36

MVI M,77h

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

0832

77

0833

23

INX H

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

0834

36

MVI M,76h

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

0835

76

0836

23

INX H

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

0837

36

MVI M,39h

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

0838

39

0839

23

INX H

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

083A

36

MVI M,3Fh

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

083B

3F

083C

23

INX H

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

083D

36

MVI M,39h

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

083E

39

083F

CD

CALL 01C8h

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

0840

C8

0841

01

0842

C3

JMP M1

Безусловный переход по метке М1

0843

2B

0844

08

0845

N1

F5

PUSH PSW

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

0846

C5

PUSH B

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

0847

E5

PUSH H

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

0848

FB

EI

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

0849

06

MVI B,02h

Инициализация счетчика№1

084A

02

084B

M3

0E

MVI C, FFh

Инициализация счетчика №2

084C

FF

084D

M2

21

LHI H,0BFAh

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

084E

FA

084F

0B

0850

36

MVI M,77h

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

0851

77

0852

23

INX H

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

0853

36

MVI M,4Fh

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

0854

4F

0855

23

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

0856

36

MVI M,79h

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

0857

79

0858

23

INX H

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

0859

36

MVI M,73h

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

085A

73

085B

23

INX H

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

085C

36

MVI M,79h

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

085D

79

085E

23

INX H

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

085F

36

MVI M,7Dh

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

0860

7D

0861

CD

CALL 01C8h

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

0862

C8

0863

01

0864

0D

DCR C

Декремент счетчика №2

0865

C2

JNZ M2

Переход на М2 если Z=0

0866

4D

0867

08

0868

05

DCR B

Декремент счетчика №1

0869

C2

JNZ M3

Переход на М3 если Z=0

086A

4B

086B

08

086C

3E

MVI A,00h

Обнуление аккумулятора

086D

00

086E

D3

OUT B3h

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

086F

B3

0870

3E

MVI A,20h

Инициализация КО2а

0871

20

0872

D3

OUT 98h

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

0873

98

0874

E1

POP H

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

0875

C1

POP B

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

0876

F1

POP PSW

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

0877

C9

RET

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

0878

N2

F5

PUSH PSW

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

0879

C5

PUSH B

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

087A

E5

PUSH H

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

087B

FB

EI

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

087C

06

MVI B,02h

Инициализация счетчика№1

087D

02

087E

M5

0E

MVI C, FFh

Инициализация счетчика №2

087F

FF

0880

M4

21

LXI H,0BFAh

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

0881

FA

0882

0B

0883

36

MVI M,00h

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

0884

00

0885

23

INX H

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

0886

36

MVI M,00h

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

0887

00

0888

23

INX H

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

0889

36

MVI M,7Dh

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

088A

7D

088B

23

INX H

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

088C

36

MVI M,77h

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

088D

77

088E

23

INX H

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

088F

36

MVI M,73h

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

0890

73

0891

23

INX H

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

0892

36

MVI M,31h

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

0893

31

0894

CD

CALL 018Ch

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

0895

8C

0896

01

0897

0D

DCR C

Декремент счетчика №2

0898

C2

JNZ M4

Переход на М4 если Z=0

0899

80

089A

08

089B

05

DCR B

Декремент счетчика №1

089C

C2

JNZ M5

Переход на М5 если Z=0

089D

7E

089E

08

089F

3E

MVI A,00h

Обнуление аккумулятора

08A0

00

08A1

D3

OUT B1h

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

08A2

B1

08A3

3E

MVI A,20h

Инициализация КО2а

08A4

20

08A5

D3

OUT 98h

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

08A6

98

08A7

E1

POP H

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

08A8

C1

POP B

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

08A9

F1

POP PSW

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

08AA

C9

RET

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

08AB

N3

F5

PUSH PSW

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

08AC

C5

PUSH B

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

08AD

E5

PUSH H

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

08AE

FB

EI

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

08AF

06

MVI B,02h

Инициализация счетчика№1

08B0

02

08B1

M7

0E

MVI C, FFh

Инициализация счетчика №2

08B2

FF

08B3

M6

21

LHI H,0BFAh

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

08B4

FA

08B5

0B

08B6

36

MVI M,00h

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

08B7

00

08B8

23

INX H

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

08B9

36

MVI M,00h

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

08BA

00

08BB

23

INX H

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

08BC

36

MVI M,77h

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

08BD

77

08BE

23

INX H

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

08BF

36

MVI M,4Fh

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

08C0

4F

08C1

23

INX H

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

08C2

36

MVI M,3Fh

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

08C3

3F

08C4

23

INX H

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

08C5

36

MVI M,73h

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

08C6

73

08C7

CD

CALL 01C8h

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

08C8

C8

08C9

01

08CA

0D

DCR C

Декремент счетчика №2

08CB

C2

JNZ M6

Переход на М6 если Z=0

08CC

B3

08CD

08

08CE

05

DCR B

Декремент счетчика №1

08CF

C2

JNZ M7

Переход на М7 если Z=0

08D0

B1

08D1

08

08D2

3E

MVI A,00h

Обнуление аккумулятора

08D3

00

08D4

D3

OUT B2h

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

08D5

B2

08D6

3E

MVI A,20h

Инициализация КО2а

08D7

20

08D8

D3

OUT 98h

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

08D9

98

08DA

E1

POP H

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

08DB

C1

POP B

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

08DC

F1

POP PSW

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

08DD

C9

RET

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

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