В результате работы программы получен отсортированный массив медианой которого является восьмой элемент.
Адрес Содержание
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).
Ссылка на скачивание - внизу страницы.