Космонавтика  Архитектура 3-х шинных систем 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [ 18 ] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

р ц.

1й --

§

о

ее о.

га а.

рация тракта, по которому должна обновляться или записываться цифра. Ниже в этой главе будут рассмотрены вопросы программного управления цифровым индикатором.

Выходы устройства 74LS42

вывод 2 вывод 3 Коды адреса

вывод 1

о 1 1

Рис. 4.9. Логические значения сигналов на выводах схемы 74LS42, показанной на рис. 4.8, соответствующие различным кодам адреса.

4.7. Программное управление клавишным пультом

В оставшейся части этой главы рассмотрим программное обеспечение для управления работой клавишного пульта. Из клавишного пульта будет поступать информация о замыкании ключа, которая однозначно соответствует позиции замкнутого ключа и должна быть зарегистрирована. Обсудим испоЛьзуемые на практике экономичные методы разработки и отладки программного обеспечения. Наконец, рассмотрим программное обеспечение, необходимое для функционирования системы, базирующейся на одном из четырех типов микропроцессоров, представленных в этой книге, а именно 8080, 8085, Z80 и 6800.

Системы, основанные на микропроцессорах 8080 и 8085, могут иметь идентичное программное обеспечение. Оно же может использоваться и для систем, основанных на микропроцессоре Z80. Однако мы не приведем здесь программ, написанных с использованием мнемоник микропроцессора Z80. Более важно уметь понимать суть взаимодействия рассматриваемых программных и аппаратных средств микропроцессорных систем управления. Программные средства будем разрабатывать небольшими частями, соответствующими отдельным функциям управления. Потом эти части объединим в функциональную программу программного обеспечения. По сравнению с попыткой представить задачи в виде одной функции этот подход позволяет легче решить общую задачу проектирования программных средств. Причем программное обеспечение в этом случае удобнее отлаживать.

4.8. Программный метод формирования сигналов на входах матрицы клавишного пульта

Рассмотрим, программные средства, необходимые для управления аппаратными средствами, выполняющими установку по способу взаимного исключения на входных линиях клавишного пульта уровня, соответствующего логическому 0. Напомним, что только одна входная линия клавишного пульта в лбой



момент времени может находиться в состоянии логического (к Сначала рассмотрим блок-схему, определяющую поря;10к выполнения указанных действий. Затем представим программное обеспечение, реализующее эту блок-схему, для микропроцессоров 8080, 8085, Z80 и 6800.

Отметим еще раз, что микропроцессоры 8080, 8085 и Z80 могут выполнять программы, разработанные для микропроцессора 8080. Поэтому будем представлять программное обеспечение только в мнемониках микропроцессоров 8080 и 6800. Микропроцессор Z80 может выполнять программы, разработанные для микропроцессора 8080, однако набор команд микропроцессора Z80 Шире, чем у микропроцессора 8080. Микропроцессор Z80 имеет свой собственный набор мнемоник. Читателю должно быть пoняfнo, что структура программного обеспечения для разных микропроцессоров может быть различной. Поэтому, используя микропроцессоры в качестве системных контроллеров, следует обращаться к руководствам по их программному обеспечению. Руководства содержат наборы мнемоник конкретных микропроцессоров. Однако общая структура программного обеспечения микропроцессоров подобна структуре программного обеспечения каждого отдельно взятого микропроцессора.

На рис. 4.10 показана блок-схема алгоритма генерации входных сигналов для клавишного пульта. Отметим, что формирование входных сигналов осуществляется с помощью подпрограммы. Начальное значение слова Si устанавливается при инициализации микропроцессорной системы. Ниже в этой главебудет точно определено, что подразумевается под термином - инициализация микропроцессорной системы. Сейчас же достаточно знать, что начальное значение слова Si должно быть записано в память перед тем, как микропроцессор начнет работать по программе, блок-схема которой представлена на рис. 4.10. Это требование легко объясняется тем, что, судя по блок-схеме, программа должна принимать решение, зависящее от значения слова Si. Значение этого слова должно быть установлено после включения питания, иначе оно будет иметь некоторое произвольное значение, обусловленное случайным состоянием памяти. Случайное значение Si приведет к тому, что решение, принимаемое программой после анализа этого слова, окажется ошибочным.

Программа, блок-схема которой дана на рис. 4.10, сначала выбирает слово из памяти. Затем производится проверка на равенство значения этого слова коду lOie. Если факт равенства устанавливается, то это означает,что последняя входная линия уже имела уровень логического О и следующей линией, на которой должен устанавливаться уровень логического О, является линия Ro. Если текущее значение слова Si не равно 10ш, то программа просто сдвигает содержимое слова на один разряд

Шаг 1.

Шаг г

Шаг 2 В

Шаг 3

Начало

Запись данных об активной горизонталь ной линии клавиатуры в ячеПку S,


Сдвиг данных в S, на I разряд влево. О - позиция D

Запись значений данных в память

S,= 00000001 ROW = S,

Шаг 2а

Шаг 4

Шаг 5

Шаг S

Нивсргмрова-иие ROW

Вывод ROW d порт FE

Возврат

Рис. 4.10. Блок-схейа программы генерации входных сигналов матрицы клавишного пульта.

влево. При выполнении этого сдвига в первой позиции слова должно появиться значение 0. Подчеркиваем это, так как различные микройроцессоры выполняют операцию сдвига слова различными способами. Некоторые микропроцессоры могут в первый разряд сдвинутого слова поместить 1. Чтобы точно определить, как выполняется сдвиг влево, необходимо обратиться к руководству по программному обеспечению используемого микропроцессора.



Если анализируемое слово оказывается равным lOie, то согласно блок-схеме программы (см. рис. 4.10) будет установлено новое значение слова, равное 01 le. После этого выполнение программы продолжается с точки В, указанной на блок-схеме. На этом шаге программа записывает новое слово в память. По-

D, Do

о о о о о 1 о о

да наступает время отладки программы или программное обеспечение кому-либо передается, хорошая документация будет бесценной. В некоторых случаях стремление получить хорошую

Активна* горизонтальная линия

Инвертированные данные

111110 11

Запись данных в порт ЕЕ

Рис. 4.11. Этот рисунок поясняет действия, выполняемые в шагах 3-5 блок-схемы, показанной на рис. 4.10. Слово состояний входных линий матрицы записывается в память. Затем оно инвертируется и записывается в порт вывода. Активной линии соответствует логическое значение 0.

мешенное в память слово будет анализироваться при следующем обращении к этой программе.

После записи нового значения слова в память слово, определяющее значения сигналов на горизонтальных линиях матрицы клавишного пульта, инвертируется. Это действие заключается в установке значения 1 во всех разрядах, за исключением разряда, соответствующего входной линии подлежащей активизации. Разряд, определяющий активизируемую линию, принимает значение 0. Описанные действия иллюстрируются рис. 4.11. В конце концов, программа выведет сформированное слово в определенный порт вывода.

Напомним, что на рис. 4.4 порт вывода, связанный со входными линиями клавишного пульта адресовался кодом FE. На рис. 4.12 представлен текст программы для микропроцессора 8080, соответствующий блок-схеме, приведенной на рис. 4.10. Следует учитывать, что эта программа представляет собой один из возможных вариантов реализации блок-схемы, представленной на рис. 4.10. Совершенно ясно, что существует много различных способов программной реализации данной блок-схемы. Это аналогично большому разнообразию методов схемной реализации каких-либо функций.

Какой бы вариант реализации программы ни был избран, программа всегда должна быть хорошо документирована. Ког-

311 ООКВ

312 ООЕВ 3V3 ООЕВ 3U ООЕВ >

315 ООЕВ ,

316 ООЕВ

317 ООЕВ

318 ООЕВ

319 ООЕВ

320 ООЕВ

321 ООЕВ

322 ООЕЗ

323 ООЕВ

324 ООЕВ

32 5 ООЕВ , *

326 ООЕВ *

327 ООЕВ зА 04 10 OHOW LDA KROVf

328 ООЕЕ *

329 ООЕЕ ** (ШАГ 2)

330 ООЕЕ *

331 ООЕ FE 10 - CPI ЮН

332 oovo сг 00 Jnz okowi

333 00F3 *

334 OOi3 (ШАГ 2A)

335 0OF3 *

33 6 OOF3 ЗЕ 01 i!Vr A.OIK

337 OOFS СЗ Г9 00 JMf ST3

338 O0F8 *

339 00F8 * (ШАГ гв)

340 00F8

341 00F8 ОТ OROWl HLC

342 OOF9

343 OOF9 *х .* (щАг з)

344 OOF9 *

345 O0F9 32 04 10 ST3 STA KEOW - *

(ШАГ 4) СМА

* **к(шдг 5) *

ООТ OFEH

* (ШАГ 6) *

♦ 1h()( * )h( .

* ПРОГРАММА ШВОДА АКТИВНОГО НАБОРА НА ПУЛЫ *

* ИМЯ этой ПРОГРАМШ-ОКОГ ♦

* ЭТОРИС.4.12

* * ♦ )( )( ♦

* РИС.4.12-ПОДПР01ТАМИА К РИС.4.10 В ЫНЕМОНИКВ 8080 х ** * **)( * ♦

ПОВХОРШЙ вызов АКТИВНОГО НАБОРА

СКАНИРОВАНИЕ НАБОРА ЗАКОННЕЮ??? ЕСЛИ НЕТ,ТО ШАГ 2В

ПЕРЕМЕСТИТЬ АКТИВШЙ НАБОР ИДХЯ НА ШАГ 3

СДВИНУТЬ ДАННЫЕ-ВЛЕВО,О В DO СОХРАНИТЬ АКТИВШЙ НАБОР ИНВЕРТИРОВАТЬ СЛОВО,НАБОРА ВЫВЕСТИ АКТИВНЫЙ НАБОР В ПОРТ ГВ

346 OOFC

347 OOFC

348 OOFC

349 OOFC 2P

350 OOFD

351 OOFD

352 OOFD

353 OOFD D3

354 OOFF

355 OOFP

356 00№

357 OOFF СЭ

358 0100

359 0100

Рис. 4.12.. Программа на языке ассемблера микропроцессора 8080, соответствующая блок-схеме, представленной на рис. 4.10.

документацию стимулирует использование простых приемов программирования и оправдывает прямолинейность в способах программной реализации блок-схем.

На рис. 4.\13 приведена программа, соответствующая блок-схеме, показанной на рис. 4.10; данная программа предназначена для микропроцессора 6800. В микропроцессоре 6800 при-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [ 18 ] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57