Ввод в МКС аналоговых сигналов. Параметры интегральных АЦП. Условное графическое обозначение типового АЦП, страница 7

; начальный адрес TABLE таблицы кодов

MOVC  A,@A+DPTR ; Пересылка кода в акк-р

RET

; Таблица семисегментных кодов символов от 0 до F

TABLE:   DB  3FH         ; Код цифры “0”

DB  06H         ; Код цифры  “1”

…………………………….

DB  71H         ; Код буквы  “F”

Для отображения многосимвольной информации используются линейные (однострочные) дисплеи. Такие дисплеи представляют собой “линейку”, смонтированную из отдельных ССДИ. Число знакомест (позиций или разрядов) дисплея определяется в соответствии с требованиями к МКС.

Существует два способа организации МК с линейными дисплеями: статический и динамический (мультиплексный) [3].

Первый требует наличие на входах каждого индикатора специальных буферных регистров для хранения кодов выводимых символов. Естественно, что с увеличением разрядности дисплея возрастает число дополнительных микросхем, а, следовательно, и стоимости МКС.

Второй способ (динамический) основан на том, что любой световой индикатор является инерционным прибором, а человеческому глазу отображаемая на дисплее информация, если ее обновлять с частотой не менее 20 раз в секунду, представляется неизменной. Динамический способ вывода информации на дисплей требует значительно меньших аппаратных затрат, но более сложного программного обеспечения.

Статический метод управления дисплеем. На рис. 7.24 приведена схема подключения четырехразрядного дисплея на ССДИ при статическом управлении. В схеме используются ССДИ с общими анодами (ОА), например АЛС333Б. Дисплей предназначен для отображения только десятичных цифр, поэтому в качестве преобразователей двоичного позиционного кода в семисегментный используются дешифраторы КР514ИД2. Индикатор HG1 отображает младшую десятичную цифру, а HG4 – старшую.

Коды для индикаторов HG1 и HG2 образуются дешифраторами DD1 и DD2, входы которых подключаются к порту P0 микроконтроллера. Коды для индикаторов HG3 и HG4 образуются дешифраторами DD3 и DD4, которые подключаются к порту P2. Данные для вывода на индикаторы дисплея должны быть представлены в двоично-десятичном (BCD) коде. Обычно эти данные хранятся в ячейках памяти данных МК в упакованном формате. Размещение данных в массиве DATA может быть выполнено следующим образом:

Память данных

DATA+1

Цифра 4

Цифра 3

Данные для HG4 и HG3

DATA

Цифра 2

Цифра 1

Данные для HG2 и HG1

Рис. 7.24. Схема подключения индикаторов при статическом управлении дисплеем

Обычно для вывода на индикаторы дисплея используется подпрограмма, которая вызывается из основной программы по мере необходимости обновления информации, отображаемой на дисплее. Подпрограмма может иметь следующий вид:

;DISPLAY – подпрограмма вывода на индикаторы HG1-HG4

;Входной параметр: DATA – начальный адрес ячеек ПД для

; вывода

DISPLAY:  MOV  R0,#DATA  ; Загрузить указатель адреса

MOV  P0,@R0   ; Вывод на индикаторы HG1 и HG2

INC  R0                  ; Следующий адрес

MOV  P2,@R0   ; Вывод на индикаторы HG3 и HG4

RET

На рис. 7.25 приведена схема подключения индикаторов дисплея при статическом управлении и программной перекодировке. Каждый индикатор HG1-HG4 имеет свой буферный регистр DD1-DD4 для хранения выводимого семисегментного кода. Входы всех регистров подключены к порту P0, а выбор конкретного регистра выполняется с помощью линий P2.0-P2.3. Особенность схемы является то, что ССДИ непосредственно подключены к выходам регистров DD1-DD4 без использования буферных элементов с открытым коллектором. Дело в том, что многие регистры ТТЛ-серий, например КР1533ИР33, обладают высокой нагрузочной способностью: при низком уровне сигнала на выходах IВЫХ ≤ 20 мА, что вполне достаточно для яркого свечения ССДИ. Однако для корректного отображения символов нужно подавать инверсные значения данных с порта P0 для их вывода на индикаторы.

После сброса МК на выводах всех его портов будут высокие уровни (логические 1). Поэтому регистры DD1-DD4 будут открыты, на их выходах – высокие уровни и индикаторы HG1-HG4 будут погашены. Для сохранения этого начального состояния дисплея надо в основной программе закрыть триггеры регистров DD1-DD4 подачей низкого уровня на их входы С: