Выбор одного из четырёх адресов порта выполняется сигналами А1А поступающими на входы адаптера D6. Базовый адрес порта можно изменит подключив ко входу CS микросхемы другой выходной сигнал дешифратора. Например, подключения выхода 1 микросхемы D9 установит новый базовый адрес 84Н.
На светодиоды поступают сигналы трех младших разрядов шины данных D2D1D0. В таблице 2 приведена программа вывода данных на светодиодный индикатор которая по очереди "зажигает" различные комбинации светодиодов — красного, желтого и зеленого цвета.
Рис.1
(А0-А15 – шина адреса;
D0-D7 – шина данных;
MRDC, MWTC, IORC, IOWC – шина управления)
Таблица 2. Программа вывода данных на светодиоды.
Первые две ассемблерные команды программы MV1 А, 80Н и OUT 83H выполняют инициализацию микросхемы параллельного адаптера 580ВВ55. Команда OUT 83Н выводит из аккумулятора в порт с адресом 83Н по шине данных байт 80Н, который записывается в регистр управления микросхемы D6 и программирует её порты А, В и С на вывод данных. Если в регистр управления D6 записать другое управляющее слово, то порты А, В и С можно настроить на ввод данных.
Следующие команды в программе записывают в порт В с адресом 81Н различные комбинации сигналов D2D1D0. Сочетание D2D1D0=111 "зажигает" три светодиода. Кодовая комбинация D2D1D0=100 гасит два светодиода, которые подключены к разрядам D1 и DO.
Примечания
Т.к. наша группа выполняла работу на новом стенде, инициализация на котором не требуется, то первые две команды мы опускаем. А порты ввода и вывода запараллелены на один и тот же адрес 05Н. С учетом вышеизложенных примечаний программа перепишется следующим образом:
Адрес |
Команда |
Код |
Описание |
||
0000100000000000 |
800Н |
MVI A, 07H |
00111110 |
3EH |
|
0000100000000001 |
801Н |
00000111 |
07H |
||
0000100000000010 |
802Н |
OUT 05H |
00000011 |
03H |
|
0000100000000011 |
803Н |
00000101 |
05H |
||
0000100000000100 |
804Н |
MVI A, 01H |
00111110 |
3EH |
|
0000100000000101 |
805Н |
00000001 |
01H |
||
0000100000000110 |
806Н |
OUT 05H |
11010011 |
D3H |
|
0000100000000111 |
807Н |
00000101 |
05H |
||
0000100000001000 |
808Н |
MVI A, 02H |
00111110 |
3EH |
|
0000100000001001 |
809Н |
00000010 |
02H |
||
0000100000001010 |
80АН |
OUT 05H |
11010011 |
D3H |
|
0000100000001011 |
80BH |
00000101 |
05H |
||
0000100000001100 |
80CH |
MVI A, 04H |
00111110 |
3EH |
|
0000100000001101 |
80DH |
00000100 |
04H |
||
0000100000001110 |
80EH |
OUT 05H |
11010011 |
D3H |
|
0000100000001111 |
80FH |
00000101 |
05H |
||
0000100000010000 |
810Н |
IN 05H |
11011011 |
DBH |
|
0000100000010001 |
811Н |
00000101 |
05H |
||
0000100000010010 |
812Н |
OUT 05H |
11010011 |
D3H |
|
0000100000010011 |
813Н |
00000101 |
05H |
||
0000100000010100 |
814Н |
NOP |
00000000 |
00H |
Нет операций |
Код команды IN мы смотрим по таблице кодов команд микропроцессора КР680ВМ80 : первый символ выбираем по вертикали, второй- по горизонтали; для команды IN код будет DB.
При помощи команды IN 05H происходит считывание информации с адреса 05Н. Эта информация перед считыванием заносится на светодиоды (их 8 штук) по средствам переключателей. После считывания выполняется команда воспроизведения на других восьми светодиодах считанной до этого информации при выполнении команды OUT 05H.
Выполнение программы завершается командой NOP.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.