Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Обработка динамического дисплея

Читайте также:
  1. IV. Обработка результатов измерений
  2. Автоматическая обработка радиолокационной информации в САРП
  3. В) первичная хирургическая обработка раны;
  4. ВИДЫ ЮБОК И ИХ ОБРАБОТКА
  5. Вычислительная обработка
  6. Г.4 Обработка результатов
  7. Глава I. Обработка овощей и грибов

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

Светодиодный семисегментный индикатор представляет собой восемь светодиодов с соединенными анодами. Сегменты обозначаются буквами A,B,C,D,E,F,G,H на рис. 59.

 

Рисунок 59

Свечение сегмента возникает при подаче на общий вывод положительного напряжения, а на катод сегмента - нулевого.

Существует два способа организации интерфейса с дисплеем: статический и динамический. Недостатком первого является необходимость большого количества линий управления (количество разрядов портов микроконтроллера) - по 8 на каждый индикатор.

При динамическом способе индикации требуется количество разрядов равное сумме количества сегментов и количества разрядов.

Динамический способ является импульсным и основан на том, что если «мерцание» производится с частотой 50Гц и более, то свечение представляется человеку постоянным. Этот способ требует минимальных аппаратных затрат, обработка динамического дисплея, в том числе и преобразование кодов производится программно.

В динамическом дисплее одноименные сегменты всех индикаторов включены параллельно, образуя сегментную шину, а общие аноды индикаторов образуют шину выбора индикаторов. Таким образом, требуется значительно меньшее количество линий, чем при статическом методе. Обработка дисплея заключается в поочерёдной выдаче на шину сегментов позиционных семисегментных кодов символов и синхронным включением (выбором) индикаторов. Схема четырехразрядного динамического индикатора представлена на рис.60. Сегментная шина подключена к порту С микроконтроллера, а четыре младших разряда порта D являются разрядами выбора разрядов индикатора. Очевидно, что индикатор должен обрабатываться программой. Исходное состояние разрядов выбора микроконтроллера PD.0-PD.3 единичное. Этими уровнями все четыре транзистора закрыты, аноды разрядов индикатора отключены от источника питания и индикаторы не светятся. Программа выдает в порт С семисегментный код символа для правого (младшего) разряда индикатор, а разряд РD.0 устанавливает в нулевое состояние. Происходит включение младшего разряда индикатора (нулевой уровень открывает транзистор VT4). Свечение производится в течение некоторого времени. Затем программой разряд PD.0 устанавливается в состояние логической единицы, т.е. производится выключение младшего разряда индикатора. Далее выдается в порт С семисегментный код для следующего разряда индикатора и разряд PD.1 микроконтроллера обнуляется.

 

 

Рисунок 60

 

Открывается транзистор VT3 и происходит включение следующего разряда индикатора. Это состояние удерживается в течение некоторого временного интервала. Далее гасится разряд индикатора и т.д.

Таким образом, сигнал на одной линии выбора представляет собой импульсную последовательность со скважностью равной числу индикаторов.

При частоте «мерцания» 50Гц период импульсов равен 20мс.

На рис.61 представлены временные диаграммы сигналов выбора разрядов для четырехразрядного дисплея. Время свечения одного индикатора

5мс. Характер свечения разрядов индикатора импульсный (мерцание). Если частота мерцания выше 50 Гц, то глаз человека не замечает мерцания.

Так как глаз человека «усредняет» силу света импульсного характера, то для получения нормальной яркости амплитуда тока протекающего через сегменты, должна быть большей, чем при статической индикации. Характеристика зависимости силы света от величины тока является нелинейной.

 

Рисунок 61

 

Амплитуда импульса тока в цепи выбора индикатора должна быть в 8 раз (по числу сегментов) больше амплитуды тока в сегменте.

Функция программы – обработчика дисплея:

- преобразование значения параметра (переменной) из двоичного кода в неупакованный двоично-десятичный;

- преобразование двоично-десятичных значений в семисегментный коды;

- вывод семисегментных кодов в порт С микроконтроллера, к которому подключен четырехразрядный индикатор;

- обеспечить динамический режим индикации.

 

Преобразование двоичного кода данных в двоично-десятичный неупакованный код (по другому, выделение разрядов единиц, десятков, сотен и т.д.) производится по правилам деления целых чисел с остатком. Например, разряд единиц двоичного числа 2D (десятичный эквивалент равен 45) равен остатку от деления 2D на 10, а разряд десятков равен целому результату того же деления. На четырехразрядный дисплей можно вывести разряды тысяч, сотен, десятков и единиц. Операции для выделения этих разрядов из переменной data:

для единиц data % 10;

для десятков data % 100 / 10;

для сотен data /100 % 10;

для тысяч data / 1000.

 

В программной памяти микроконтроллера размещается массив семисегментных кодов, соответствующих числовым значениям 0,1,2,…9 (таблица 13).

SegmCod [] = {3, 0x9f, 0x25, 0xd, 0x99, 0x49, 0x41, 0x1f, 1, 9}.

_____3 – семисегментный код нуля и нулевой элемент массива.

0х25 – семисегментный код двойки – второй элемент массива.___

Значения семисегментных кодов в массиве соответствуют пространственному размещению сегментов в индикаторе и схеме подключения сегментов к разрядам порта С. Например, для того чтобы на индикаторе было изображение символа 0 (включены сегменты ABCDEF), необходимо в порт С поместить значение 00000011 или 3. (Напомним, что сегмент будет включен, если на катод подан уровень логического нуля).

Могут быть составлены семисегментные коды для других значений (таблица 13).

 

Таблица 13

 

  Значение данных   A   B   C   D   E   F   G   H   НЕХ -код символа
                   
                  $9F
                  $25
                  $D
                  $99
                  $49
                  $41
                  $1F
                   
                   

 

 

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

 

Cod_7segm = SegmCod [data % 10 ]; // Присвоение переменной Cod_7segm

//значения элемента массива SegmCod, номер

// (индекс) которого равен значению разряда

// единиц данных.

 


Дата добавления: 2015-07-20; просмотров: 122 | Нарушение авторских прав


Читайте в этой же книге: Язык Ассемблер | Типы данных, объявление данных | Операторы | Оператор if-else (ветвления ) | Оператор switch | Оператор цикла for | Программный способ формирования временных интервалов на языке Ассемблер | Программный способ формирования временных интервалов на языке СИ | Генерация пакета импульсов | Генератор заданного числа пакетов импульсов |
<== предыдущая страница | следующая страница ==>
Формирование импульсных сигналов управления с использованием таймеров микроконтроллера| Особенности схемы дисплея в учебной системе управления.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)