Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 24

2.  Имеется другая возможность независимого управления разрядами любого порта ППА – с помощью чтения состояния выходов порта и использования логических команд. Например, надо установить 1 на выходе РС0 порта РС:

IN   PC

;

Чтение состояния выходов РС

ORI   0000 0001B

OUT   PC

;

Установить PC01

Сбросить в 0 разряд РС3 порта РС:

IN   PC

ANI   1111 0111B

OUT   PC

;

Сбросить PC30

3.  Если в качестве порта вывода используется обычный регистр, то определить программно состояния его выходов невозможно. Поэтому для реализации индивидуального управления разрядами порта необходимо после каждого вывода в порт запоминать содержимое аккумулятора в специальной ячейке ОЗУ. Это содержимое будет определять состояние выходов порта. Например:

STATUS

EQU  0900H

;

;

Адрес ячейки ОЗУ для хранения состояния выходов порта вывода

OPORT

EQU   XXH

;

Адрес порта

; Первый вывод в порт

XRA   A

OUT   OPORT

STA   STATUS

; Вывод 1 в 0-й разряд порта

LDA   STATUS

ORI   0000 0001B

OUT   OPORT

STA   STATUS

;

Запомнить состояние выходов порта

………………..

; Вывод 0 в 3-й разряд порта

LDA   STATUS

ANI   1111 0111B

OUT   OPORT

STA   STATUS

БСА обработки аналоговых сигналов V1 и V2 приведена на рис. 2.6. С помощью АЦП сигналы V1 и V2 преобразуются в двухбайтные целые двоичные числа W1 и W2. Для их сохранения необходимо выделить в ОЗУ массив, начальный адрес которого DATA_W. Предположим, что требуется вычислить функцию

 g(V1,V2,K1,K2)=W1+W2–K1, где К1 и К2 – двухбайтные коэффициенты, хранящиеся в ПЗУ.

Полученное значение функции g( ) сравнивается с двухбайтной константой Q, хранящейся в ПЗУ. Сравнение можно выполнить с помощью программы вычитания двухбайтных целых чисел g( ) – Q.

Результат сравнения определяется флагом CY микропроцессора после вычитания старших байтов. Если CY=0, то g( ) > Q, если CY=1, то g( ) < Q.

Для размещения двухбайтных констант в ПЗУ можно использовать псевдокоманду DW, которую надо записать в неисполняемую микропроцессором  часть программы, например, после команд JMP, RET, HLT:

JMP   МЕТ1

;

Команда программы

ADR_K1:

DW   XXXXH

;

Символический адрес константы K1

ADR_K2:

DW   XXXXH

ADR_Q:

DW   XXXXH

МЕТ1:

…………….

;

Очередная команда программы

Если необходимо поместить константы в заранее заданные ячейки ПЗУ, то начальный адрес задается псевдокомандой ORG:

ORG   0700H

ADR_K1:

DW   XXXXH