![](/user_photo/2706_HbeT2.jpg)
ПМСУ1(7)
.docРоссийская Федерация
Ханты-Мансийский автономный округ
Департамент образования и науки
Сургутский государственный университет ХМАО
Факультет автоматики и телекоммуникаций
Кафедра автоматики и компьютерных систем
Отчёт
по лабораторной работе №6
“ Изучение особенностей функционирования КПР”
Выполнил: студенты
Проверил: преподаватель
Сургут
20
Изучение особенностей функционирования КПР.
Задание:
Создать программное обеспечение, отображающее основную надпись и реагирующее на запросы от трех источников прерываний. Подпрограммы обслуживания запросов осуществляют отображение на дисплее в течение 3–5с определенной надписи.
Адреса КПР: master – 98h, 99h;
slave – 9Ch, 9Dh;
При активизации запросов IRQ3 IRQ4 IRQ5 взводятся триггеры, расположенные по адресам
B1, B2, B3 – соответственно. При выходе из подпрограмм обслуживания данных прерываний триггеры необходимо сбрасывать.
При программировании Ведущему сообщить о том, что к его 0-му и 7-му входу IRQ подключен Ведомый.
Ведомому назначить №7 и замаскировать все его запросы.
Вариант 4.
Основная надпись № IRQ
Серега 5 “УЧЕБА_”
1 “БОРЕЦ_”
3 “ГРУППА”
0011 1001
39
0111 1001
79
0111 0011
73
0011 0001
31
0111 0111
77
0011 0111
37
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-hiklFs.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-ajYWbl.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-8Mjy1s.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-W9idab.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-OJH63c.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-wwsIWU.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-qnJ_BA.png)
0110 1110
6E
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-X5uJiv.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-YuuneZ.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-CGFwL7.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-dbZhm_.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-yBogzt.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-R2iDQR.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-u1LZFq.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-zqvkDE.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-K5QgsI.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-Ktc2p9.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-qhWf8t.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-fFB5DA.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-_X6xB5.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-eTZjp6.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-HRhQf3.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-a7Vo9W.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-TRWXQM.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-73qLuC.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-T6ED4k.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-f1HJvL.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-EJyajQ.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-u2NERX.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-rfo9_X.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-CnO62R.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-VHG0Zr.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-DAtWNW.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-x9oe0a.png)
![](/html/2706/269/html_9dhTLLNKK9.QFox/img-pwD0A1.png)
0110 0110
66
0111 1101
7D
0011 1111
3F
1011 1110
BE
Блок - схема
Основная программа Подпрограмма №1
Подпрограмма №2 Подпрограмма №3
Листинг программы на языке Assembler:
Основная программа:
Адрес |
Метка |
Машинный код |
Assembler |
Комментарии |
0800 0801 |
|
3E 14 |
MVI A, 14h
|
Управляющее слово КИ1 Младший байт адреса таблицы векторов 00h master
slave
|
0802 0803 |
|
D3 98 |
OUT 98h
|
|
0804 0805 |
|
D3 9C |
OUT 9Ch
|
|
0806 0807 |
|
3E 09 |
MVI A, 09h
|
Управляющее слово КИ2 Старший байт адреса таблицы векторов 09h master
slave
|
0808 0809 |
|
D3 99 |
OUT 99h
|
|
080A 080B |
|
D3 9D |
OUT 9Dh
|
|
080C 080D |
|
3E 81 |
MVI A, 81h
|
Управляющее слово КИ3 для master 1000 0001
|
080E 080F |
|
D3 99 |
OUT 99h
|
|
0810 0811 |
|
3E 07 |
MVI A, 07h
|
Управляющее слово КИ3 для slave 0000 0111
|
0812 0813 |
|
D3 9D |
OUT 9Dh
|
|
0814 0815 |
|
3E D5 |
MVI A, D5h
|
Управляющее слово КO1 для master 1101 0101
|
0816 0817 |
|
D3 99 |
OUT 99h
|
|
0818 0819 |
|
3E FF |
MVI A, FFh
|
Управляющее слово КO1 для slave 1111 1111
|
081A 081B |
|
D3 9D |
OUT 9Dh
|
|
081C 081D |
|
3E C3 |
MVI A, C3h
|
Управляющее слово КО2д
master
|
081E 081F |
|
D3 98 |
OUT 98h
|
|
0820 0821 |
|
3E 00 |
MVI A, 00h
|
Сброс триггеров |
0822 0823 |
|
D3 B1 |
OUT B1
|
|
0824 0825 |
|
D3 B3 |
OUT B3
|
|
0826 |
|
FB |
EI |
Разрешение прерываний |
0827 0828 0829 |
M8
|
21 FA 0B |
LHI H, 0BFA
|
Инициализация указателя
|
082A 082B |
|
36 77 |
MVI M, 77h
|
Запись символа “А”
|
082C |
|
23 |
INX H |
|
082D 082E |
|
36 31 |
MVI M, 31h
|
Запись символа “Г”
|
082F |
|
23 |
INX H |
|
0830 0831 |
|
36 79 |
MVI M, 79h
|
Запись символа “Е”
|
0832 |
|
23 |
INX H |
|
0833 0834 |
|
36 73 |
MVI M, 73h
|
Запись символа “Р”
|
0835 |
|
23 |
INX H |
|
0836 0837 |
|
36 79 |
MVI M, 79h
|
Запись символа “Е”
|
0838 |
|
23 |
INX H |
|
0839 083A |
|
36 39 |
MVI M, 39h
|
Запись символа “С”
|
083B 083C |
|
0E FF |
MVI C, FF
|
Инициализация счетчика
|
083D 083E 083F |
M7
|
CD 29 04 |
CALL 0429
|
Задержка 1мс
|
0840 0841 0842 |
|
CD C8 01 |
CALL 01C8 |
Однократное сканирование дисплея |
0843 |
|
0D |
DCR C |
Декремент |
0844 0845 0846 |
|
С2 3D 08 |
JNZ 083D
|
Если не равно 0, то переход на метку M7
|
0847 0848 0849 |
|
C3 27 08 |
JMP 0827
|
Безусловный переход на M8
|
Подпрограмма 1 (IRQ 5 “УЧЕБА_”)
Адрес |
Метка |
Машинный код |
Assembler |
Комментарии |
0850 |
M1 |
FB |
EI |
Разрешение прерываний |
0851 |
|
F5 |
PUSH PSW |
Сохранение информации в стек |
0852 |
|
C5 |
PUSH B |
|
0853 |
|
D5 |
PUSH D |
|
0854 |
|
E5 |
PUSH H |
|
0855 0856 0857 |
|
21 FA 0B |
LHI H, 0BFA
|
Инициализация указателя
|
0858 0859 |
|
36 00 |
MVI M, 00h
|
Запись символа “ ”
|
085A |
|
23 |
INX H |
|
085B 085C |
|
36 77 |
MVI M, 77h
|
Запись символа “А”
|
085D |
|
23 |
INX H |
|
085E 085F |
|
36 7D |
MVI M, 7Dh
|
Запись символа “Б”
|
0860 |
|
23 |
INX H |
|
0861 0862 |
|
36 79 |
MVI M, 79h
|
Запись символа “Е”
|
0863 |
|
23 |
INX H |
|
0864 0865 |
|
36 66 |
MVI M, 66h
|
Запись символа “Ч”
|
0866 |
|
23 |
INX H |
|
0867 0868 |
|
36 6E |
MVI M, 6Eh
|
Запись символа “У”
|
0869 086A |
|
0E FF |
MVI C, FF
|
Инициализация счетчика
|
086B 086C 086D |
M4
|
CD 29 04 |
CALL 0429
|
Задержка 1мс
|
086E 086F 0870 |
|
CD C8 01 |
CALL 01C8
|
Однократное сканирование дисплея
|
0871 |
|
0D |
DCR C |
Декремент |
0872 0873 0874 |
|
С2 6B 08 |
JNZ 086B
|
Если не равно 0, то переход на метку M4
|
0875 0876 |
|
3E 20 |
MVI A, 20h
|
Управляющее слово КО2a
master
|
0877 0878 |
|
D3 98 |
OUT 98h
|
|
0879 087A |
|
3E 00 |
MVI A, 00h
|
Сброс триггера B3 |
087B 087C |
|
D3 B3 |
OUT B3 |
|
087D |
|
E1 |
POP H |
Извлечение информации из стека |
087E |
|
D1 |
POP D |
|
087F |
|
C1 |
POP B |
|
0880 |
|
F1 |
POP PSW |
|
0881 |
|
C9 |
RET |
Возврат |
Подпрограмма 2 (IRQ 1 “БОРЕЦ_”)
Адрес |
Метка |
Машинный код |
Assembler |
Комментарии |
0890 |
M2 |
FB |
EI |
Разрешение прерываний |
0891 |
|
F5 |
PUSH PSW |
Сохранение информации в стек |
0892 |
|
C5 |
PUSH B |
|
0893 |
|
D5 |
PUSH D |
|
0894 |
|
E5 |
PUSH H |
|
0895 0896 0897 |
|
21 FA 0B |
LHI H, 0BFA
|
Инициализация указателя
|
0898 0899 |
|
36 00 |
MVI M, 00h
|
Запись символа “ ”
|
089A |
|
23 |
INX H |
|
089B 089C |
|
36 BE |
MVI M, BEh
|
Запись символа “Ц”
|
089D |
|
23 |
INX H |
|
089E 089F |
|
36 79 |
MVI M, 79h
|
Запись символа “Е”
|
08A0 |
|
23 |
INX H |
|
08A1 08A2 |
|
36 73 |
MVI M, 73h
|
Запись символа “Р”
|
08A3 |
|
23 |
INX H |
|
08A4 08A5 |
|
36 3F |
MVI M, 3Fh
|
Запись символа “О”
|
08A6 |
|
23 |
INX H |
|
08A7 08A8 |
|
36 7D |
MVI M, 7Dh
|
Запись символа “Б”
|
08A9 08AA |
|
0E FF |
MVI C, FF
|
Инициализация счетчика
|
08AB 08AC 08AD |
M5
|
CD 29 04 |
CALL 0429
|
Задержка 1мс
|
08AE 08AF 08B0 |
|
CD C8 01 |
CALL 01C8
|
Однократное сканирование дисплея
|
08B1 |
|
0D |
DCR C |
Декремент |
08B2 08B3 08B4 |
|
С2 AB 08 |
JNZ 08AB
|
Если не равно 0, то переход на метку M5
|
08B5 08B6 |
|
3E 20 |
MVI A, 20h
|
Управляющее слово КО2a
master
|
08B7 08B8 |
|
D3 98 |
OUT 98h
|
|
08B9 |
|
E1 |
POP H |
Извлечение информации из стека |
08BA |
|
D1 |
POP D |
|
08BB |
|
C1 |
POP B |
|
08BC |
|
F1 |
POP PSW |
|
08BD |
|
C9 |
RET |
Возврат |