Процессор Intel 8080. Изучение структуры микропроцессора ввода/вывода данных через порты. Программное умножение двух чисел, страница 2

Выбор одного из четырёх адресов порта выполняется сигналами А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.