Практические схемы динамической индикации. Динамическая индикация. Подключение светодиодной матрицы к микроконтроллеру. Регулировка яркости сегментов

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

Количество соединительных проводников можно уменьшить, если заставить индикаторы работать в импульсном режиме. Человеческий глаз обладает инерционностью и если заставить индикаторы отображать информацию поочередно с достаточно большой скоростью, то человеку будет казаться, что все индикаторы отображают свою информацию непрерывно. В результате можно по одним и тем же проводникам поочередно передавать отображаемую информацию. Обычно достаточно частоты обновления информации 50 Гц, но лучше увеличить эту частоту до 100 Гц.

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


Рисунок 1. Структурная схема динамической индикации

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

В результате, когда коммутатор подает двоично-десятичный код с входа A на входы семисегментного дешифратора, то этот код отображается на индикаторе HL1. Когда коммутатор подает на входы семисегментного дешифратора двоично-десятичный код с входа B, то этот код отображается на индикаторе HL2, и так далее, по циклу.

Скорость обновления информации в рассмотренной схеме будет в четыре раза меньше частоты генератора. То есть для того, чтобы получить частоту мерцания индикаторов 100 Гц, требуется частота генератора 400 Гц.

Во сколько же раз мы в результате уменьшили количество соединительных проводников? Это зависит от того, где мы проведем сечение схемы. Если мы на плате индикации оставим только индикаторы, то для их работы потребуется 7 информационных сигналов для сегментов и четыре коммутирующих сигнала. Всего 11 проводников. В статической схеме индикации нам потребовалось бы 7×4=28 проводников. Как видим, выигрыш налицо. При реализации 8-ми разрядного блока индикации выигрыш будет еще больше.

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

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


Как уже упоминалось ранее, для нормальной работы светодиода требуется ток от 3 до 10 мА. Зададимся минимальным током светодиода 3 мА. Однако при импульсном режиме работы яркость свечения индикатора падает в N раз, где коэффициент N равен скважности импульсов тока, подаваемых на этот индикатор.

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

I сег дин = I сег стат ×N = 3мА×8 = 24мА.

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

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

I кл = I сег дин ×N сег = 24мА×7 = 168мА.

Как вам такой ток?! В радиолюбительских схемах я часто встречаю решения, где коммутирующий ток берется непосредственно с выхода дешифратора, который не может выдать ток больше 20 мА, и задаю себе вопрос — а где смотреть такой индикатор? В полной темноте? Получается «прибор ночного видения», то есть прибор, показания которого видны только в полной темноте.

А теперь давайте рассмотрим принципиальную схему полученного блока индикации. Она приведена на рисунке 3.



Рисунок 3. Принципиальная схема блока динамической индикации

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

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

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

Итак, применение динамической индикации позволяет минимизировать количество соединительных проводов между цифровым устройством и индикатором, но является при этом мощным источником помех, поэтому ее применение в радиоприемных устройствах нежелательно.

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

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

Литература:

Вместе со статьей "Динамическая индикация" читают:

Индикаторы предназначены для отображения различных видов информации для человека. Простейший вид информации - это...
http://сайт/digital/Indic.php

Газоразрядные индикаторы используются как для индикации битовой информации, так и для отображения десятичной информации. При построении десятичных индикаторов катод...
http://сайт/digital/GazIndic/

В настоящее время практически везде для отображения двоичной информации используются светодиоды. Это обусловлено тем...
http://сайт/digital/LED.php

Принципы работы жидкокристаллических индикаторов... Режимы работы жидкокристаллических индикаторов... Формирование цветного изображения...
http://сайт/digital/LCD.php


Схема подключения одноразрядного семисегментного индикатора
Схема подключения многоразрядного семисегментного индикатора

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

Как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр.
Сегменты обозначаются буквами от A до G; восьмой сегмент - десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.
Изредка на семисегментном индикаторе отображают буквы.

Бывают разных цветов, обычно это белый, красный, зеленый, желтый и голубой цвета. Кроме того, они могут быть разных размеров.

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

Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление.
В латинице : заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, o, q, r, t, u.
В кириллице : А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы (два разряда), Ь, Э/З.
Поэтому семисегментные индикаторы используют только для отображения простейших сообщений.

Всего семисегментный светодиодный индикатор может отобразить 128 символов:

В обычном светодиодном индикаторе девять выводов: один идёт к катодам всех сегментов, а остальные восемь - к аноду каждого из сегментов. Эта схема называется «схема с общим катодом» , существуют также схемы с общим анодом (тогда все наоборот). Часто делают не один, а два общих вывода на разных концах цоколя - это упрощает разводку, не увеличивая габаритов. Есть еще, так называемые «универсальные», но я лично с такими не сталкивался. Кроме того существуют индикаторы со встроенным сдвиговым регистром, благодаря чему намного уменьшается количество задействованных выводов портов микроконтроллера, но они намного дороже и в практике применяются редко. А так как необъятное не объять, то такие индикаторы мы пока рассматривать не будем (а ведь есть еще индикаторы с гораздо большим количеством сегментов, матричные).

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

Подключение одноразрядного семисегментного индикатора к микроконтроллеру

На схеме ниже, показано как подключается одноразрядный семисегментный индикатор к микроконтроллеру.
При этом следует учитывать, что если индикатор с ОБЩИМ КАТОДОМ , то его общий вывод подключается к «земле» , а зажигание сегментов происходит подачей логической единицы на вывод порта.
Если индикатор с ОБЩИМ АНОДОМ , то на его общий провод подают «плюс» напряжения, а зажигание сегментов происходит переводом вывода порта в состояние логического нуля .

Осуществление индикации в одноразрядном светодиодном индикаторе осуществляется подачей на выводы порта микроконтроллера двоичного кода соответствующей цифры соответствующего логического уровня (для индикаторов с ОК — логические единицы, для индикаторов с ОА — логические нули).

Токоограничительные резисторы могут присутствовать в схеме, а могут и не присутствовать. Все зависит от напряжения питания, которое подается на индикатор и технических характеристик индикаторов. Если, к примеру, напряжение подаваемое на сегменты равно 5 вольтам, а они рассчитаны на рабочее напряжение 2 вольта, то токоограничительные резисторы ставить необходимо (чтобы ограничить ток через них для повышенного напряжении питания и не сжечь не только индикатор, но и порт микроконтроллера).
Рассчитать номинал токоограничительных резисторов очень легко, по формуле дедушки Ома .
К примеру, характеристики индикатора следующие (берем из даташита):
— рабочее напряжение — 2 вольта
— рабочий ток — 10 мА (=0,01 А)
— напряжение питания 5 вольт
Формула для расчета:
R= U/I (все значения в этой формуле должны быть в Омах, Вольтах и Амперах)
R= (напряжение питания — рабочее напряжение)/рабочий ток
R= (5-2)/0.01 = 300 Ом

Схема подключения многоразрядного семисегментного светодиодного индикатора в основном та-же, что и при подключении одноразрядного индикатора. Единственное, добавляются управляющие транзисторы в катодах (анодах) индикаторов:

На схеме не показано, но между базами транзисторов и выводами порта микроконтроллера необходимо включать резисторы, сопротивление которых зависит от типа транзистора (номиналы резисторов рассчитываются, но можно и попробовать применить резисторы номиналом 5-10 кОм).

Осуществление индикации разрядами осуществляется динамическим путем:
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 1 разряда, затем подается логический уровень на управляющий транзистор первого разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 2 разряда, затем подается логический уровень на управляющий транзистор второго разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 3 разряда, затем подается логический уровень на управляющий транзистор третьего разряда
— итак по кругу
При этом надо учитывать:
— для индикаторов с ОК применяется управляющий транзистор структуры NPN (управляется логической единицей)
— для индикатора с ОА — транзистор структуры PNP (управляется логическим нулем)

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

Поэтому на помощь нам придет в этом случае другой способ — это динамическая индикация .

При динамической индикации в каждый момент времени мы будем выводить цифру только на одном индикаторе. То есть цифры, предназначенные для обоих индикаторов мы будем выводить по очереди. Но выводить по очереди мы их будем с такой частотой, что наш глаз этого не заметит. И нам будет казаться, что индикаторы работают постоянно, а не по очереди. Это позволяет нам подключить сегменты обоих индикаторов, а в последствии и большего количества индикаторов к одним и тем же ножкам порта, то есть параллельно. При таком способе будут сразу на оба индикатора подаваться по очереди сначала цифра, предназначенная для первого индикатора, а затем цифра, предназначенная для второго. И чтобы нам не виделись одновременно две цифры на каждом индикаторе, во время отображения цифры, предназначенной для определённого индикатора, мы будем на его анод положительное напряжение, а на другой анод не будем, а будем соединять его с общим проводом. Поэтому независимо от состояния его катодов светиться не будет ни один из его сегментов. Если на сегменте будет ноль, то вообще не будет разности потенциалов, а если будет единица, то разность потенциалов будет, но ток будет направлен в другую сторону и светодиод при таком направлении не будет светиться.

Новый проект мы создадим также как и обычно, скопировав код в main.c из одноименного файла прошлого проекта. Назовём проект Test08 .

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

Отключим пока от питания общий анод и добавим ещё один такой же индикатор, какой у нас уже есть в проекте.

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

Освободившиеся аноды мы подключим к ножкам другого порта. Но подключим мы не напрямую, а через ключевые транзисторы, так как при свечении нескольких сегментов индикатора одновременно через ножку порта, подключенную к аноду индикатора, потечёт слишком большой ток. Порт может выйти из строя. Это нам вовсе не интересно. Поэтому подключим наши аноды к ножкам B0 и B1 через транзисторы. Вот зачем мы перенесли кнопку на другую ножку. Причём перенесли с запасом, так как подключать впоследствии мы будем четыре индикатора.

Добавим из библиотеки транзистор. Включать мы его будем в инверсном режиме, поэтому выбираем структуру p-n-p

Подключим таких два транзистора в схему, добавив ещё два резистора по 2 килоома для ограничения тока базы. Эмиттеры подключим к питанию, а коллекторы — к анодам индикаторов (нажмите на картинку для увеличения изображения)

Также я покажу полную схему нашей сборки (нажмите на картинку для увеличения изображения)

Для аппаратуры с батарейным питанием применение LCD-индикаторов, как правило, считается более предпочтительным, чем светодиодных (LED) из-за большого тока потребления последних. Данный постулат мне кажется совсем не очевидным по следующим причинам: 1) в современных LCD-индикаторах существует подсветка, которая потребляет до 100 мА; 2) они относительно хрупки и боятся прямых лучей солнца; 3) современные LED-индикаторы (особенно superRED и ultraRED) обладают достаточной яркостью даже при токе в 1 мА через них, и при оперативной регулировке яркости в зависимости от условий освещения, средний ток потребления 4-разрядного индикатора получается не более 30 мА даже на улице, что меньше чем потребление подсветки LCD.

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

В статье рассматривается способ управления светодиодной матрицей микроконтроллером PIC среднего семейства, используя прерывания от таймеров TMR0 и TMR2. Таймер TMR2 используется для ШИМ-регулирования среднего тока через включенные сегменты. Алгоритм организации работы следующий:

1. Инициализация. Настраиваем порты микроконтроллера в соответствии со схемой подключения индикатора. Для таймеров 1 и 2 включается режим внутреннего тактирования с предделителем, равным 16 . Разрешается прерывания от периферии.

2. Создаем таблицу-знакогенератор для вывода на индикатор цифр и некоторых (преимущественно латинских) букв и знаков.

3. Резервируем два четырехразрядных переменных. В одну заносим последовательно цифровой код (для цифр – просто цифру) необходимого для вывода знака в соответствии с таблицей из п.2. В другую переменную передаются преобразованные значения из таблицы для постоянного высвечивания на индикаторе.

4. В прерывании от TMR0 последовательно высвечиваются разряды знаков в соответствии с таблицей. Перед сменой разрядов индикатор гасится. В каждом прерывании высвечивается один разряд. После этого обнуляется таймер TMR2, сбрасывается флаг прерывания от TMR2 и разрешаются от него прерывания.

5. В прерывании от TMR2 гасится индикатор и запрещается прерывание от TMR2.

6. В основной программе осуществляется регулировка периода прерывания от TMR2, а значит, времени включенного состояния индикатора путем занесения в регистр PR2 чисел от 7 до 255 в десятичном исчислении по формуле X(n+1)=2*X(n)+1. Получается шесть градаций яркости с разницей между ними в 2 раза. При PR2=255 длительность максимальна (4мс из 4мс), при PR2=7 длительность равна примерно 0.25мс.

Для демонстрации указанного принципа управления, ниже приводится схема на недорогом PIC16F628A и тестовая программа на Ассемблере, которая выводит на индикатор слово «test». При нажатии на кнопку, на индикаторе высвечивается яркость (условно цифрами от 0 до 5). При последующих нажатиях, яркость изменяется по кругу и это сразу видно на индикаторе. Сразу хочу предупредить начинающих: моделирование схемы на симуляторе типа Proteus не позволит увидеть изменение яркости в силу особенностей этой программы (Proteus). Макет схемы для проверки и экспериментов придется собирать в «железе». Впрочем, для наблюдения собственно за организацией динамической индикации (кроме изменения яркости) Proteus-модель прилагается.

Потребление схемы при минимальной яркости менее 4 мА, при максимальной – около 80 мА.

В архиве приведена тестовая программа на Ассемблере MPASM.

Для упрощения схемы и освобождения «ног» для различных действий, применена конфигурация с внутренним генератором и внутренним сбросом. При этом, у тех, что пользуется самодельным программатором без возможности подачи сигнала MCLR раньше Upp, могут быть проблемы с последующими верификацией, чтением и стиранием. Тем, кто не уверен в своем программаторе, а так же если требуется высокая стабильность генератора, можно установить кварц 4 МГц по типовой схеме с выбором в конфигурации “OSC_XT”. В случае, если в конечной схеме требуются прерывания с вывода INT0 (RB0), запятой можно управлять посредством вывода RA4, для индикатора с ОА индикатор к этому выводу подключается напрямую, несмотря на то, что он открытый. Освободившийся вывод RB0 можно использовать по назначению. В программу, в прерывании от TMR0, этом случае, добавляется после “movwf PORTB” код:

Andlw b"00000001" bsf PORTA,4 погасить запятую btfsc STATUS,Z учитываем, что в W инверсное знач. bcf PORTA,4 если 0-й бит = 0, зажечь запятую

Небольшие пояснения к программе:

Выводимое число помещается в переменные OUT_ - OUT+3 в соответствии с разрядом, а с нее в подпрограмме out__ после преобразования помещается в OUT_LED. Конечно можно было бы обойтись без переменной OUT_ и везде для вывода писать:

Movlw X call Table_s movwf OUT_LED

Однако, в исходном виде все гораздо проще и понятнее (поместил в OUT_ и забыл), а так же при множественных выводах с разных мест программы получается экономия кода (4 слова на 1 вывод) – думается хорошая компенсация за лишние 4 байта ОЗУ.

То же самое касается и вывода запятой через переменную comma_.

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

Переменная pause_ в прерывании от TMR0 используется для задания временных интервалов 4 мс.

Остальное, я думаю, понятно из алгоритма и комментариев.

P.S. Для 2 или 3 разрядов в программе требуется произвести минимальные изменения, которые, думается, по силам даже для начинающих. Для управления индикатором с количеством разрядов от 5 до 8 необходимо или применить контроллер с большим количеством выводов или же для управления разрядами применить дешифратор 3 на 8.

В первом случае изменения в программе также минимальны (применение вместо порта А другого порта и т.д.). В случае применения дешифратора программа в части прерывания от TMR0 изменится довольно серьезно.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1 МК PIC 8-бит

PIC16F628A

1 В блокнот
H1 Индикатор 4х7 FIQ-3641A 1 В блокнот
Q1-Q4 Биполярный транзистор

КТ361Е

4 В блокнот
C3 Конденсатор 22 нФ 1 В блокнот
R1-R7, R14 Резистор

150 Ом

8 В блокнот
R8 Резистор

Практическая работа №2

Тема : Разработка схемы динамической индикации.

Цель : Получить практические навыки проектирования элементов индикации цифровых устройств.

Задание : Разработать электрическую принципиальную схему цифрового семисегментного светодиодного дисплея на основе микроконтроллера в соответствии с техническим заданием.

Краткие теоретические сведения

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

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

Рисунок 1

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

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

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

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

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

Обработка дисплея заключается в поочерёдной выдаче на шину сегментов позиционных семисегментных кодов символов и синхронным включением (выбором) индикаторов.

Схема четырехразрядного динамического индикатора представлена на рисунке 3 . Сегментная шина подключена к порту С микроконтроллера, а четыре младших разряда порта D являются разрядами выбора разрядов индикатора.

Очевидно, что индикатор должен обрабатываться программой. Программа выдает в порт С семисегментный код символа для правого (младшего) разряда индикатор, а разряд РС0 устанавливает в нулевое состояние. Происходит включение младшего разряда индикатора (нулевой уровень открывает транзистор VT3).

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

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

Рисунок 2

Рисунок 3 – Электрическая схема динамической индикации

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

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

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

На рис. 2 представлена схема динамического четырехразрядного дисплея, выполненного на семисегментных цифровых индикаторах.

Шина сегментов SA-SH образована выводами порта Р2 микроконтроллера, а четыре младших разряда порта Р1 образуют шину выбора индикаторов (SELI-SEL4). Дисплей обрабатывается программным модулем следующим образом. В порт Р2 загружается семисегментный код символа правого индикатора (HG4). Усиленный элементом DD2 этот ток поступает на шину сегментов а,Ь,с... Затем в младшую тетраду порта Р1 загружается код выбора (включения) индикатора HG4: SEL1=0 , SEL2 -SEL4=1 (шестнадцатиричное значение Е). Ток логического нуля, усиленный элементом DD2, по проводу 11 протекает через резистор R7 и открывает транзистор VT4. Остальные транзисторы выключены. Напряжение питания +5В поступает через открытый транзистор на общий анод индикатора HG4, вызывая индикацию символа. Такое состояние сохраняется в течение времени 5мс. По окончании этого временного интервала МК выдает на разряд порта SEL1 высокий уровень, транзистор VT4 закрывается и ключ VT3 и индицируется символ в этом разряде свечение разряда прекращается. Затем в порт Р2 выдается семисегментный код символа индикатора HG3, а в состояние низкого уровня устанавливается разряд Р1.1. Тем самым включается дисплея и т.д.

Временной интервал, соответствующий времени свечения индикатора, может использоваться для реализации функции управления объектом.

Преобразование двоичного кода выводимых данных в семисегментный код индикатора производится программно с помощью массива семисегментных кодов. Элементами массива являются семисегментные коды символов. В соответствии со схемой, сегмент будет находиться во включенном состоянии, если на него подать низкий уровень напряжения. Из этого соображения составляется содержимое таблицы 2.

Таблица 2 – Семисегментные коды

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

Задание

1. Разработать электрическую принципиальную схему динамического цифрового семисегментного дисплея.

2. Выполнить чертеж схемы электрической принципиальной согласно ГОСТ ЕСКД.

3. Обосновать выбор схемотехнических решений.

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

Таблица 2 – Исходные данные

Вариант № Тип микроконтроллера Тип индикатора Количество сегментов
ATmega8 BL-S56A-11
ATmega16 BC56-11SRWA
ATtiny13 BL-D56A-21
ATtiny2313 BL-S56B-11
ATmega8 BA56-11GWA
ATmega16 BL-D56B-21
ATtiny13 BL-D56A-21
ATtiny2313 BL-D56A-21
ATmega16 BL-S56B-11
ATtiny13 BL-D56B-21

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то