Первый режим
Сформируем первое управляющее слово:
Режим канала А


|
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
К
анал
А (вывод)
Канал С3-0(ввод)
К
анал
С7-4(ввод)
Канал
В (ввод)
Режим канала В
Сформируем второе управляющее слово для канала А:
*



|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |



Значение разряда С
Номер разряда канала С
Сформируем второе управляющее слово для канала В:
*



|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |



Значение разряда С
Номер разряда канала С
Блок схема
Запись
управляющих слов в РУС
Инициализация
счетчика


Чтение
данных из канала С



нет

да
Чтение
данных из канала В
Обнуление
младшего полубайта
Временное
сохранение полученных данных в регистр
В
Чтение
данных из канала В
Обнуление
старшего полубайта
Временное
сохранение полученных данных в регистр
Е
Сдвиг
на четыре разряда влево содержимого
аккумулятора
А
В
Временное
сохранение полученных данных в регистр
D
Перенос
данных из регистра В в аккумулятор
Сдвиг
на четыре разряда вправо содержимого
аккумулятора
А
E


Сложение
содержимого аккумулятора и регистра
D
Передача
данных в канала А

Чтение
данных из канала С
нет

да
Инкремент
счетчика
Копирование
данных из счетчика в аккумулятор
Вывод
данных в порт 05
Листинг
|
Адрес |
Метка |
Машинный код |
Ассемблеровский код |
Коментарии |
|
0810 |
|
3Е |
MVI А, АFh |
Запись первого управляющего слова в РУС |
|
0811 |
|
AF |
|
|
|
0812 |
|
D3 |
OUT B3 |
|
|
0813 |
|
B3 |
|
|
|
0814 |
|
3Е |
MVI А, 0Dh |
Запись второго управляющего слова для канала А |
|
0815 |
|
0D |
|
|
|
0816 |
|
D3 |
OUT B3 |
|
|
0817 |
|
B3 |
|
|
|
0818 |
|
3Е |
MVI А, 05h |
Запись второго управляющего слова для канала В |
|
0819 |
|
05 |
|
|
|
081A |
|
D3 |
OUT B3 |
|
|
081B |
|
B3 |
|
|
|
081C |
|
0Е |
MVI С, 00h |
Инициализация счетчика |
|
081D |
|
00 |
|
|
|
081E |
M1 |
DB |
IN B2 |
Чтение данных из канала С |
|
081F |
|
B2 |
|
|
|
0820 |
|
E6 |
ANI 01 |
Проверка состояния С0 |
|
0821 |
|
01 |
|
|
|
0822 |
|
CA |
JZ M1 |
|
|
0823 |
|
1E |
|
|
|
0824 |
|
08 |
|
|
|
0825 |
|
DB |
IN B1 |
Чтение данных из канала В |
|
0826 |
|
B1 |
|
|
|
0827 |
|
E6 |
ANI F0 |
Обнуление младшего полубайта |
|
0828 |
|
F0 |
|
|
|
0829 |
|
47 |
MOV B, A |
Временное сохранение полученных данных в регистр В |
|
082A |
|
DB |
IN B1 |
Чтение данных из канала В |
|
082B |
|
B1 |
|
|
|
082C |
|
E6 |
ANI OF |
Обнуление старшего полубайта |
|
082D |
|
0F |
|
|
|
082E |
|
5F |
MOV E, A |
Временное сохранение полученных данных в регистр Е |
|
082F |
|
07 |
RLC |
Сдвиг на четыре разряда влево содержимого аккумулятора |
|
0830 |
|
07 |
RLC |
|
|
0831 |
|
07 |
RLC |
|
|
0832 |
|
07 |
RLC |
|
|
0833 |
|
A8 |
XRA B |
А |
|
0834 |
|
57 |
MOV D, A |
Временное сохранение полученных данных в регистр D |
|
0835 |
|
78 |
MOV A, B |
Перенос данных из регистра В в аккумулятор |
|
0836 |
|
0F |
RRC |
Сдвиг на четыре разряда вправо содержимого аккумулятора |
|
0837 |
|
0F |
RRC |
|
|
0838 |
|
0F |
RRC |
|
|
0839 |
|
0F |
RRC |
|
|
083A |
|
B3 |
ORA E |
А |
|
083B |
|
82 |
ADD D |
Сложение содержимого аккумулятора и регистра D |
|
083C |
|
D3 |
OUT B0 |
Передача данных в канала А |
|
083D |
|
B0 |
|
|
|
083E |
M2 |
DB |
IN B2 |
Чтение данных из канала С |
|
083F |
|
B2 |
|
|
|
0840 |
|
E6 |
ANI 08 |
Проверка состояния С3 |
|
0841 |
|
08 |
|
|
|
0842 |
|
CA |
JZ M2 |
|
|
0843 |
|
3Е |
|
|
|
0844 |
|
08 |
|
|
|
0845 |
|
08 |
INC C |
Инкремент счетчика |
|
0846 |
|
7С |
MOV A, C |
Копирование данных из счетчика в аккумулятор |
|
0847 |
|
D3 |
OUT 05 |
Вывод данных в порт 05 |
|
0848 |
|
05 |
|
|
|
0849 |
|
C3 |
JMP M1 |
Переход на метку |
|
084A |
|
1E |
|
|
|
084B |
|
08 |
|
Вывод: проделав данную лабораторную работу, мы изучили особенности функционирования ППИ в нулевом и первом режимах, а также принципы формирования первого и второго управляющих слова.











