Дешифратор-преобразователь в семисегментный код. Управление семисегментным индикатором Дешифратор из двоичного кода в семисегментный

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

А теперь взглянем на схему такого дешифратора на примере микросхемы К176ИД2:

Как и любой другой дешифратор, микросхема имеет входы для получения двоичного кода (1, 2, 4, 8) и 7 выходов, на которых формируется код в соответствии с расположением сегментов на индикаторе:

Если, к примеру, подать на вход код 0110, то микросхема установит высокие уровни на выводах А, F, E, D, C, G и в результате мы увидим цифру 6 (двоичный эквивалент ее как раз 0110). Как и простые двоично-десятичные дешифраторы, семисегментные индикаторы бывают разных типов – все зависит от того, для работы с какими типами индикаторов они рассчитаны.

Если индикаторы светодиодные, то дешифратор должен иметь хорошую нагрузочную способность, чтобы выдержать ток светодиода сегмента (К555ИД18), если жидкокристаллические, то выходной ток может быть маленьким, но дешифратор должен уметь выдавать на индикатор противофазный сигнал (К564ИД4). Люминесцентные индикаторы не требуют большого тока и обходятся «постоянкой», но им подавай относительно высокое напряжение (К176ИД2).

Для удобства конструирования всевозможных цифровых шкал (к примеру, часов или частотомеров) дешифраторы могут объединять со счетчиками. Классический пример – К176ИЕ3 и К176ИЕ4:

Достаточно на вход С такого счетчика-дешифратора начать подавать импульсы, как он начнет считать и выводить результат счета на семисегментный индикатор: 0, 1, 2, 3 и т.д. Подали импульс на вход R (сброс) и на индикаторе «0» — счетчик «сбросился». Что примечательно, ИЕ4 умеет считать до 9 (потом снова начинает с нуля), а ИЕ3 – до 6. Идеально для подсчета десятков минут или секунд в электронных часах. Возвращаясь немного назад (точнее, в

Семисегментный индикатор: программирование работы

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

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

Давайте еще раз посмотрим на схему подключения семисегментного индикатора к микроконтроллеру:

На этой схеме выводы порта PB0…..PB7 подключены к выводам индикатора в определенной последовательности. Выводу PB0 соответствует сегмент «А» и далее соответственно по порядковому номеру вывода порта и по алфавиту выводов индикатора, при этом десятичная точка «dp» подсоединена к выводу порта PB7 . Сейчас и далее мы будем рассматривать схемы подключения для индикаторов с общим катодом, а при необходимости я буду вставлять дополнения для индикатора с общим анодом.

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

На рисунке выше, черные цифры от 0 до 7 — выводы порта, зеленные латинские буквы — выводы светодиодного индикатора, красные нули — логические уровни на выходах порта (в данном случае логический уровень «0»). Для того, чтобы, к примеру, высветить на индикаторе цифру «4» и зажечь десятичную точку нам необходимо подать логическую 1 на выводы индикатора B, C, F, G и dp, что соответствует подачи логической единицы на выводы порта 1,2,5,6 и 7:

Поэтому, первое что нам необходимо сделать, это определить соответствие каждой десятичной цифре двоичного числа, которое надо выдавать на выход порта микроконтроллера для зажигания соответствующих сегментов индикатора.
Для «четверки» мы уже определили такую комбинацию = 1110 0110, что соответствует шестнадцатиричному числу 66h, определяем и для остальных цифр:

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

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

Программирование одноразрядного семисегментного индикатора

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

Алгоритм подпрограммы:

1. Инициализация индикатора (подпрограмма)
— настройка порта, к которому подключен индикатор на вывод информации
— запись кодов семисегментного индикатора, соответствующих десятичным цифрам в определенные ячейки памяти
Данная подпрограмма должна вызываться отдельно из основной программы
2. Вход в основную подпрограмму
3. Основная часть
— считываем текущую цифру
— определяем какой код семисегментного индикатора соответствует текущей десятичной цифре
— записываем определенный код индикатора в порт микроконтроллера
4. Выход из подпрограммы

Для оформления программы в виде подпрограммы нам необходимо проделать ряд действий:
1. Присваиваем имя подпрограмме инициализации индикатора — Ini_Indiкator_1 (к примеру)
2. Присваиваем имя основной подпрограмме — Indicator_1
3. Присваиваем имена переменным SRAM в которых будут храниться коды семисегментного индикатора, к примеру:
D0 (для цифры 0, и так далее), D1, D2, D3, D4, D5, D6, D7, D8, D9
— присваиваем имя переменной в которой будет хранится адрес ячейки памяти (D0) с кодом первой цифры (0) — D0_9
4. Присваиваем имя переменной, в которой будет хранится текущая цифра, которую необходимо вывести на индикатор. В эту переменную основная программа будет записывать вычисленные данные (цифры), которые мы выводим на индикатор — Data (к примеру).

Вот как, к примеру, в Algorithm Builder (остальные примеры тоже для этой программы), объявляются имена переменных в памяти программ (ОЗУ, SRAM):

В графе «Name» перечислены все имена переменных. В графе «Adress» запись «@D0_9» означает, что в переменной D0_9 хранится адрес первой переменной (D0)

Подпрограмма инициализации индикатора (подпрограмма вызывается из основной программы до обращения к подпрограмме вывода информации на индикатор):

А теперь давайте посмотрим основную часть программы и расшифруем ее:

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

Работа подпрограммы:
— Содержимое переменной Data записывается в рабочий регистр R20 , теперь в регистре число 6 (рабочий регистр может быть любой)
— Допустим, первая переменная с кодом цифры 0 у нас находится в ячейки памяти по адресу 100 . На самом деле мы не знаем адреса ячеек памяти где хранятся значения D0…D9 , но они точно следуют друг за другом. Поэтому была назначена переменная D0_9 , в которой, как мы назначили, хранится адрес ячейки памяти D0 данный момент адрес =100 ).
— Следующей командой:
@D0_9 —> Y мы загружаем в двойной регистр Y адрес переменной D0 и получаем, что в регистре Y записалось число — 100 .
— Следующей командой:
Y + R20 мы складываем число 100 с числом 6 , результат = 106 при этом сохраняется в двойном регистре Y .
— Следующей командой:
[Y] —> R20 мы записываем содержимое ячейки памяти, расположенной по адресу, который записан в двойном регистре Y (106) , а по этому адресу у нас расположена ячейка памяти переменной D6 . Теперь в рабочем регистре R20 записано число 7Dh код семисегментного индикатора для вывода цифры 6 .
— Следующей командой:
R20 —> PortB мы выводим содержимое R20 в порт PB высвечиваем цифру 6
— Возвращаемся из подпрограммы

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

Когда мы слышим слово шифратор или дешифратор, то в голову приходят фразы из шпионских фильмов. Что-то вроде: расшифруйте депешу и зашифруйте ответ.

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

Шифраторы.

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

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

Поскольку все действия в калькуляторе выполняются с двоичными числами (вспомним основы цифровой электроники), то после клавиатуры стоит шифратор, который преобразует вводимые числа в двоичную форму.

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

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

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

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

Дешифраторы.

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

Или таким.

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

Простейший пример . Вы не раз видели цифровой семисегментный индикатор, например, светодиодный. На нём отображаются десятичные цифры и числа к которым мы привыкли с детства (1, 2, 3, 4...). Но, как известно, цифровая электроника работает с двоичными числами, которые представляют комбинацию 0 и 1. Что же преобразовало двоичный код в десятичный и подало результат на цифровой семисегментный индикатор? Наверное, вы уже догадались, что это сделал дешифратор.

Работу дешифратора можно оценить вживую, если собрать несложную схему, которая состоит из микросхемы-дешифратора К176ИД2 и светодиодного семисегментного индикатора, который ещё называют «восьмёркой». Взгляните на схему, по ней легче разобраться, как работает дешифратор. Для быстрой сборки схемы можно использовать беспаечную макетную плату .

Для справки. Микросхема К176ИД2 разрабатывалась для управления 7-ми сегментным светодиодным индикатором. Эта микросхема способна преобразовать двоичный код от 0000 до 1001 , что соответствует десятичным цифрам от 0 до 9 (одна декада). Остальные, более старшие комбинации просто не отображаются. Выводы C, S, K являются вспомогательными.

У микросхемы К176ИД2 есть четыре входа (1, 2, 4, 8). Их ещё иногда обозначают D0 - D3 . На эти входы подаётся параллельный двоичный код (например, 0001). В данном случае, двоичный код имеет 4 разряда. Микросхема преобразует код так, что на выходах (a - g ) появляются сигналы, которые и формируют на семисегментном индикаторе десятичные цифры и числа, к которым мы привыкли. Так как дешифратор К176ИД2 способен отобразить десятичные цифры в интервале от 0 до 9, то на индикаторе мы увидим только их.

Ко входам дешифратора К176ИД2 подключены 4 тумблера (S1 - S4), с помощью которых на дешифратор можно подать параллельный двоичный код. Например, при замыкании тумблера S1 на 5 вывод микросхемы подаётся логическая единица. Если же разомкнуть контакты тумблера S1 - это будет соответствовать логическому нулю. С помощью тумблеров мы сможем вручную устанавливать на входах микросхемы логическую 1 или 0. Думаю, с этим всё понятно.

На схеме показано, как на входы дешифратора DD1 подан код 0101. На светодиодном индикаторе отобразится цифра 5. Если замкнуть только тумблер S4, то на индикаторе отобразится цифра 8. Чтобы записать число от 0 до 9 в двоичном коде достаточно четырёх разрядов: a 3 * 8 + a 2 * 4 + a 1 * 2 + a 0 * 1 , где a 0 - a 3 , - это цифры из системы счисления (0 или 1).

Представим число 0101 в десятичном виде 0101 = 0*8 + 1*4 + 0*2 + 1*1 = 4 + 1 = 5 . Теперь взглянем на схему и увидим, что вес разряда соответствует цифре, на которую умножается 0 или 1 в формуле.

Дешифратор на базе технологии ТТЛ - К155ИД1 использовался в своё время для управления газоразрядным цифровым индикатором типа ИН8, ИН12, которые были очень востребованы в 70-е годы, так как светодиодные низковольтные индикаторы ещё были очень большой редкостью.

Всё изменилось в 80-е годы. Можно было свободно приобрести семисегментные светодиодные матрицы (индикаторы) и среди радиолюбителей прокатился бум сборки электронных часов. Самодельные электронные часы не собрал для дома только ленивый.

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

Рисунок 6.11 – Внешний вид семисегментного индикатора и название его сегментов

Для отображения на таком индикаторе цифры 0 достаточно зажечь сегменты a, b, c, d, e, f. Для изображения цифры 1 зажигают сегменты b и c. Точно таким же образом можно получить изображения всех остальных десятичных или шестнадцатеричных цифр. Все комбинации двоичных кодов, позволяющих сформировать изображения цифр (и некоторых букв) получили название семисегментного кода.

Составим таблицу истинности дешифратора, который позволит преобразовывать двоичный (а точнее двоично-десятичный) код в семисегментный. Пусть сегменты индикатора зажигаются нулевым потенциалом. Тогда таблица истинности семисегментного дешифратора примет вид, приведенный в таблице 6.4. Конкретное значение сигналов на выходе дешифратора зависит от схемы подключения сегментов индикатора к выходу микросхемы. Эти схемы будут рассмотрены позднее, в главе, посвящённой отображению различных видов информации.

Таблица 6.4 – Таблица истинности семисегментного декодера.

Входы Выходы
№ комбинации a b c d e f g

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

Для облегчения понимания принципов работы приведённой на рисунке 6.12 схемы на выходе логических элементов "И" показаны номера строк таблицы истинности, реализуемые ими. Например, на выходе сегмента ‘a’ логическая единица появится только при подаче на вход комбинации двоичных сигналов 0001 (1) и 0100 (4). Это осуществляется объединением соответствующих цепей элементом "2ИЛИ". На выходе сегмента ‘b’ логическая единица появится только при подаче на вход комбинации двоичных сигналов 0101 (5) и 0110 (6), и так далее.

Рисунок 6.12 – Принципиальная схема семисегментного дешифратора

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

Рисунок 6.13 – Условно-графическое обозначение семисегментного дешифратора

В качестве примера семисегментных дешифраторов можно назвать такие микросхемы отечественного производства как К176ИД3. Они предназначены для подключения газоразрядных индикаторов. В современных цифровых схемах семисегментные дешифраторы обычно входят в состав больших интегральных схем.

Шифраторы

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

Таблица 6.5 – Таблица истинности восьмеричного кодера.

Входы Выходы
№ комбинации

Ещё одним источником линейного восьмеричного кода могут стать аналоговые компараторы с различными порогами срабатывания. Такая линейка компараторов используется в составе параллельного аналого-цифрового преобразователя для преобразования аналогового сигнала в цифровой код. Двоичный код более компактен и удобен для последующей обработки. Поэтому требуется преобразователь линейного кода в двоичный. Таблица истинности такого устройства несколько отличается от таблицы, приведённой в таблице 6.5. Таблица истинности кодера параллельного аналого-цифрового преобразователя приведена в таблице 6.6.

Таблица 6.6 – Таблица истинности кодера параллельного аналого-цифрового преобразователя.

Входы Выходы
№ комбинации

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

Таблица 6.7 – Таблица истинности восьмеричного

универсального кодера.

Входы Выходы
№ комбинации A2 A1 A0
X
X X
X X X
X X X X
X X X X X
X X X X X X

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

Наиболее простое решение получается для старшего разряда. Здесь можно обойтись схемой логического элемента “4ИЛИ”. Для получения единичного сигнала в выходном сигнале ‘2’ в 6 и 7 строках таблицы истинности достаточно объединить входные сигналы ‘7’ и ‘6’. Точно также добавляются строки 2 и 3, однако здесь уже потребуется дешифрация входных сигналов 2, 3, 4 и 5. Результирующая принципиальная схема восьмеричного кодера приведена на рисунке 6.15.


Рисунок 6.14 – Принципиальная схема восьмеричного кодера

В настоящее время шифраторы (кодеры) выпускаются в виде отдельных микросхем или используются в виде готовых блоков составе других микросхем, таких как параллельные АЦП. Условно-графическое обозначение шифратора приведено на рисунке 6.15.

В качестве примера интегрального исполнения шифраторов можно назвать такие микросхемы отечественного производства как К555ИВ1 (восьмеричный шифратор) и К555ИВ3 (десятичный шифратор).

Рисунок 6.15 – Условно-графическое обозначение восьмеричного шифратора

Мультиплексоры

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

Рисунок 6.16 – Коммутатор (мультиплексор), собранный на ключах

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

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

Отчет о лабораторной работе

Тема: Исследование Работы дешифраторов

Цель: Исследовать работу шифраторов и дешифраторов

Оборудование: ПК, программное обеспечение: ОС Windows

Ход Работы

1. Исследовал работу Дешифратора на логических элементах

2. Преобразователь кода для семисегментного индикатора.

3. Дешифратор для 7-сегментного индикатора на микросхеме.

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

Дещифраторы, назваемые также кодерами, могут осуществлять преобразование десятичных чисел (позиционный код) в двоичную систему счисления. Шифратор работает следующим образом: шифратор имеет n входов, в текущий момент времени только на один из которых подается сигнал (это вход будет активным); по номеру активного входа на выходах дешифратора формируется двоичных код, соответствующей позиции активного входа. Например, если активным был пятый вход, то на выходах будет комбинация (за исключением старших нулей): 5 10 =101 2 .

3. Дешифратор на логических элементах

Трехвходовый дешифратор на логических элементах «И» и «НЕ».



4. Преобразователь кода для семисегментного индикатора.

Дешифраторы и дисплейные дишеифраторы/формирователи формируют цифровые коды для семисегментного индикатора, и затем обеспечивают пеердачу кода на формирователь или непосредственно на дисплей. В семисегментном индикаторе десятичных цифр каждый сегмент (их семь) представляет собой отдельный светоизлучающий элемент (используется также буквенная идентификация сегментов, соответственно от a до g). Светящееся изображение цифр или знаков получается при подаче напряжения на определенные сегменты:
Такой преобразователь кода должен удовлетворять таблице истинности, приведенной ниже:


Дешифратор для 7-сегментного индикатора на логических элементах.

Дешифратор для 7-сегментного индикатора на микросхеме.

Данный дешифратор преобразует двоично-десятичный код (binary-decimal code), подаваемый на входы A,B,C,D, в код управления 7-сегментным индикатором. Двоично-десятичный код представляет собой упорядоченный по разрадам набор двоичных чисел, в котором разрядам приписаны следующие «веса» в порядке уменьшения старшинства. D – 8, С – 4, В – 2, A – 1. Поэтому данный код называют также кодом 8-4-2-1. Фактически в этом коде записаны десятичные числа от 0 до 15 во входных переменных таблицы истинности:



Дешифратор кода для 7-сегментного индикатора на микросхеме 7448

Вывод: Исследовал работу шифраторов и дешифраторов

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

Шифраторы, назваемые также кодерами, могут осуществлять преобразование десятичных чисел (позиционный код) в двоичную систему счисления. Шифратор работает следующим образом: шифратор имеет n входов, в текущий момент времени только на один из которых подается сигнал (это вход будет активным); по номеру активного входа на выходах дешифратора формируется двоичных код, соответствующей позиции активного входа. Например, если активным был пятый вход, то на выходах будет комбинация (за исключением старших нулей): 5 10 =101 2 .
Дешифратор или декодер выполняет обратную по отношению к шифрованию операцию, т.е. преобразует двоичный код в десятичный. Входы дешифратора служат для подачи двоичных числе, а выходы последовательно нумеруются десятичными числами. При подаче на входы двоичного числа выходной сигнал появляется на выходе, который имеет номер соответствующего десятичного числа.
Существует два типа дешифраторов: логические дешифраторы и дисплейные дешифраторы/формирователи. Логические дешифраторы представляют собой схемы средней интеграции (микросхемы, имеющие с своем составе до 100 ЛЭ), управялемые адресом. Они выбирают и приводят в активное состояние конкретный выход определяемыый адресом. Дешифраторы применяются в структурах выборки адреса запоминающих устройства, разуплотнения маршрутизации данных и т.п.

Публикации по теме