В результате работы программы получен отсортированный массив медианой которого является восьмой элемент.
Адрес Содержание
307 010
3 Реализация программы статической индикации массива из 15 элементов
Цель данной программы: циклический вывод чисел на шестиразрядный дисплей на семисегментных индикаторах (ДСИ).
Обмен информацией между микропроцессором и периферийным устройством осуществляется через специальные схемы сопряжения, или интерфейсные схемы. В данном случае роль интерфейсной схемы выполняет БИС программируемого параллельного интерфейса КР580ВВ55, включающей в себя 3 8-разрядных порта А, В и С для подключения периферийных устройств к системным шинам.
Структурная схема БИС включает в себя двунаправленный буфер ШД, три информационных регистра каналов А, В и С и схему выбора канала и управления, содержащую регистр управляющего слова. Входы А0 и А1 данной схемы задают внутренний регистр (А, В, С или регистр управления).
Режим работы каналов задается с помощью управляющего слова; задать можно один из трех режимов:
режим 0: синхронный обмен по всем трем каналам;
режим 1: асинхронный обмен или обмен по готовности по каналам А и В;
режим 2: стробируемый двунаправленный обмен только через канал А.
Структурная схема
![]()
![]() |
Программа циклического вывода чисел на индикатор. Необходимо данный массив записать по адресам 200-217
|
Адрес |
Команда |
Мнемоника |
Комментарии |
|
041 |
076 |
MVI A,200 |
Задается режим работы каналов |
|
042 |
200 |
B2 |
для организации режима синхронного вывода |
|
043 |
323 |
OUT 003 |
|
|
044 |
003 |
B2 |
|
|
045 |
323 |
OUT 007 |
|
|
046 |
007 |
B2 |
|
|
047 |
046 |
MVI H |
Длина массива |
|
050 |
017 |
B2 |
|
|
051 |
001 |
LVI B |
Адрес первого элемента массива |
|
052 |
200 |
B2 |
|
|
053 |
000 |
B3 |
|
|
054 |
377 |
RST7 |
Переход к подпрограмме по адресу 070 |
|
055 |
003 |
INX B |
Адрес следующего элемента массива |
|
056 |
045 |
DCR H |
Уменьшается количество элементов массива |
|
057 |
302 |
JNZ 054 |
Вывод следующих элементов |
|
060 |
054 |
B2 |
|
|
061 |
000 |
B3 |
|
|
062 |
303 |
JMP 047 |
Программа зациклена и работает непрерывно |
|
063 |
047 |
B2 |
|
|
064 |
000 |
B3 |
|
|
070 |
026 |
MVI D |
Обнуление регистра |
|
071 |
000 |
B2 |
|
|
072 |
056 |
MVI L |
Загрузка адреса начала таблицы кодировок |
|
073 |
300 |
B2 |
|
|
074 |
012 |
LDAX B |
Загружаем элемент массива в аккумулятор |
|
075 |
346 |
ANI |
И выделяем его младшие три разряда |
|
076 |
007 |
B2 |
00.000.111 |
|
077 |
205 |
ADD L |
Вычисляем адрес соответствующего кода |
|
100 |
137 |
MOV E,A |
|
|
101 |
032 |
LDAX D |
|
|
102 |
323 |
OUT 000 |
Выводим в порт код, соответствующий цифре |
|
103 |
000 |
B2 |
|
|
104 |
012 |
LDAX B |
Загружаем элемент массива в аккумулятор |
|
105 |
346 |
ANI |
И выделяем его средние три разряда |
|
106 |
070 |
B2 |
00.111.000 |
|
107 |
017 |
RRC |
|
|
110 |
017 |
RRC |
|
|
111 |
017 |
RRC |
|
|
112 |
205 |
ADD L |
Вычисляем адрес соответствующего кода |
|
113 |
137 |
MOV E,A |
|
|
114 |
032 |
LDAX D |
|
|
115 |
323 |
OUT 001 |
Выводим в порт код, соответствующий цифре |
|
116 |
001 |
B2 |
|
|
117 |
012 |
LDAX B |
Загружаем элемент массива в аккумулятор |
|
120 |
346 |
ANI |
И выделяем его старшие два разряда |
|
121 |
300 |
B2 |
11.000.000 |
|
122 |
007 |
RLC |
|
|
123 |
007 |
RLC |
|
|
124 |
205 |
ADD L |
Вычисляем адрес соответствующего кода |
|
125 |
137 |
MOV E,A |
|
|
126 |
032 |
LDAX D |
|
|
127 |
323 |
OUT 002 |
Выводим в порт код, соответствующий цифре |
|
130 |
002 |
B2 |
|
|
131 |
026 |
MVI D |
На этом участке программы |
|
132 |
377 |
B2 |
Формируется задержка вывода |
|
133 |
036 |
MVI E |
Элементов массива на индикаторы |
|
134 |
377 |
B2 |
|
|
135 |
035 |
DCR E |
Уменьшение на 1 Е |
|
136 |
302 |
JNZ 135 |
Если не 0 то опять уменьшаем Е |
|
137 |
135 |
B2 |
|
|
140 |
000 |
B3 |
|
|
141 |
025 |
DCR D |
Уменьшение на 1 D |
|
142 |
302 |
JNZ 133 |
Если не 0 то опять уменьшаем D |
|
143 |
133 |
B2 |
|
|
144 |
000 |
B3 |
|
|
145 |
311 |
RET |
|
|
300 |
077 |
«0» |
Таблица кодировок |
|
301 |
006 |
«1» |
|
|
302 |
133 |
«2» |
|
|
303 |
117 |
«3» |
|
|
304 |
146 |
«4» |
|
|
305 |
155 |
«5» |
|
|
306 |
175 |
«6» |
|
|
307 |
007 |
«7» |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.