ПМСУ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
0110 1110
6E
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 |
Возврат |