Войти
Компьютерный журнал для новичков и профессионалов
  • Эксперт рассказал, как правильно заряжать аккумуляторы iPhone и iPad
  • Заводской сброс Philips S257 Телефон филипс сброс настроек стер контакты
  • От чего зависит качество фотоизображения От чего зависит качество изображений в фотоаппарате
  • Что делать, если ваш смартфон не заряжается
  • Как открыть текстовые файлы в телефоне
  • Как снять бан в Warface – способ
  • Семисегментный индикатор: программирование. Семисегментный дешифратор Ttl дешифраторы 7 сегментных индикаторов

    Семисегментный индикатор: программирование. Семисегментный дешифратор Ttl дешифраторы 7 сегментных индикаторов

    3.5 Семи сегментный дешифратор

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

    Рисунок 3.1 Семи сегментный

    индикатор, (а). Изображение и название его сегментов, (б)

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

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

    Таблица истинности семи сегментного дешифратора Таблица 3.1

    A 3

    A 2

    A 1

    A 0

    a

    b

    c

    d

    e

    f

    g


    Например, на выходе c дешифратора логический ноль появится только при подаче на вход комбинации двоичных сигналов 0010 2 = 2 10 . В качестве примера семи сегментного дешифратора можно назвать микросхему К176ИД3.

    В современных цифровых схемах семи сегментные дешифраторы обычно входят в состав больших интегральных схем.

    Рис. 3.2 Условно-графическое обозначение

    семи сегментного дешифратора DC (4-7)

    Матричный индикатор

    Матричный индикатор - матрица размерностью 5 ´ 7 = 35 ячеек (табл.3.2). С помощью матричного индикатора и дешифратора можно любому символу (букве, знаку препинания, цифре и т.д.) поставить в соответствие двоичный код. Внешний вид матричного индикатора представлен на рис. 3.3.


    Таблица кодов Таблица 3.2

    Рис. 3.3 Внешний вид матричных индикаторов, (а, б)

    и таблица кодов ячеек индикатора, (в).

    Пример. На матричном индикаторе отобразить букву «Р».

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

    Каждому символу, который может отображаться индикатором, поставлены в соответствие наборы из 35 признаков. Их номера для буквы «Р» приведены в табл. 3.3.

    Если признак соответствует данной букве, то в ячейке ставится «1» и т.д. до заполнения всей таблицы.

    Таблица признаков Таблица 3.3

    Индикаторы для диспетчерских щитов

    На рис. 3.4…3.8 изображены индикаторы рабочих мест диспетчеров.

    Рис. 3.4 Матричные индикаторы

    Рис. 3.5 Диспетчерский щит и рабочее место диспетчера энергетической системы

    Рис. 3.6 Фрагмент мнемосхемы энергетической системы

    Рис. 3.7 Фрагмент мнемосхемы энергетической системы

    Рис. 3.8 Элемент мнемосхемы

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

    Десятичный декодер

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

    На входе дешифратора двоичный код записывается в соответствии с правилами . Таблица истинности десятичного декодера приведена в таблице 1.

    Таблица 1. Таблица истинности десятичного декодера.
    Входы Выходы
    8 4 2 1 0 1 2 3 4 5 6 7 8 9
    0 0 0 0 1 0 0 0 0 0 0 0 0 0
    0 0 0 1 0 1 0 0 0 0 0 0 0 0
    0 0 1 0 0 0 1 0 0 0 0 0 0 0
    0 0 1 1 0 0 0 1 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 1 0 0 0 0 0
    0 1 0 1 0 0 0 0 0 1 0 0 0 0
    0 1 1 0 0 0 0 0 0 0 1 0 0 0
    0 1 1 1 0 0 0 0 0 0 0 1 0 0
    1 0 0 0 0 0 0 0 0 0 0 0 1 0
    1 0 0 1 0 0 0 0 0 0 0 0 0 1

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


    Рисунок 1. Принципиальная схема двоично-десятичного декодера

    Как видно на этой схеме, для реализации каждой строки таблицы истинности (минтерма) потребовался логический элемент "4И". Логический элемент "ИЛИ", необходимый для реализации СДНФ, не потребовался, так как в таблице истинности на каждом выходе (столбце) присутствует только одна логическая единица.

    Условно-графическое обозначение микросхемы дешифратора на приведено на рисунке 2. На этом рисунке приведено обозначение двоично-десятичного декодера, полная внутренняя принципиальная схема которого изображена на рисунке 1.


    Рисунок 2. десятичного декодера

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

    Семисегментный декодер

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


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

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

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

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

    Входы Выходы
    8 4 2 1 a b c d e f g
    0 0 0 0 0 0 0 0 0 0 1
    0 0 0 1 1 0 0 1 1 1 1
    0 0 1 0 0 0 1 0 0 1 0
    0 0 1 1 0 0 0 0 1 1 0
    0 1 0 0 1 0 0 1 1 0 0
    0 1 0 1 0 1 0 0 1 0 0
    0 1 1 0 0 1 0 0 0 0 0
    0 1 1 1 0 0 0 1 1 1 1
    1 0 0 0 0 0 0 0 0 0 0
    1 0 0 1 0 0 0 0 1 0 0

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


    Рисунок 4. Принципиальная схема семисегментного декодера

    Для облегчения понимания принципов работы схемы на выходе логических элементов "И" показаны номера строк таблицы истинности, реализуемые ими.

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

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


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

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

    Литература:

    Вместе со статьей "Дешифраторы (декодеры)" читают:

    Законы алгебры логики позволяют преобразовывать логические функции. Логические функции преобразуются с целью их упрощения, а это ведет к упрощению цифровой схемы...
    http://сайт/digital/AlgLog.php

    Для реализации цифровых логических схем с произвольной таблицей истинности используется сочетание простейших логических элементов. Существует два способа синтеза цифровых схем, реализующих произвольную таблицу истинности...
    http://сайт/digital/SintSxem.php

    Достаточно часто перед разработчиками цифровой аппаратуры встаёт обратная задача. Требуется преобразовать восьмиричный или десятичный линейный код в...
    http://сайт/digital/Coder.php

    Мультиплексорами называются устройства, которые позволяют подключать несколько входов к одному выходу...
    http://сайт/digital/MS.php

    Демультиплексорами называются устройства... Существенным отличием от мультиплексора является...
    http://сайт/digital/DMS.php

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

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

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

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

    На этой схеме выводы порта 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
    — Возвращаемся из подпрограммы

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

    А теперь взглянем на схему такого дешифратора на примере микросхемы К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. Идеально для подсчета десятков минут или секунд в электронных часах. Возвращаясь немного назад (точнее, в

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

    Цифра Двоичный код Семисегментный код
    a b c d e f g

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

    Как видно, ничего сложного, все элементы схемы нам знакомы . На элементах DD1.1, DD1.2 (К561ЛА7) собран генератор тактовых импульсов. Резистор R1 и кондер С1 задают частоту следования импульсов. Формулу определения частоты следования я не помню, вспомню, напишу. Можно, если не в лом, определить эту самую частоту методом "научного тыка". В любом случае, если вместо постоянного резика воткнуть переменный, то частоту можно будет регулировать в некоторых пределах. С выхода генератора импульсы поступают на счетчик, выполненный на DD2. Это реверсивный двоично-десятичный счетчик с предустановкой. Вход ±1 определяет напрвление счета, вход 2/10 - режим (двоичный или десятичный). Вход V предназначен для разрешения записи в счетчик состояния информационных входов D0 - D3. Конкретно этому счетчику (561ИЕ14, 564ИЕ14) надо подать уровень лог. 1. Резик R2 и кондер C2 образуют дифференцирующую цепь. При включении питания короткий импульс на входе V, формируемый дифференцирующей цепью, разрешает запись в счетчик состояния входов D0 - D3. Поскольку эти выводы соединены с общим проводом, в счетчик записывается 0000, т. е. он обнуляется. Тактовый генератор фигачит импульсы, счетчик их считает и с его выходов 1-2-4-8 результат счета поступает на вход дешифратора DD3 (514ИД1). Это дешифратор двоичного кода в семисегментный. С выходов дешифратора сигналы (согласно второй таблице) поступают на входы семисегментного индикатора HL1, который кажет эту инфу, т. е. ряд цифр от 0 до 9. Внутри микрухи DD3 стоит DC. Это от буржуйского Decoder – по-нашински дешифратор. На выходе переноса p (выв. 7) счетчика DD2 при его переполнении формируется сигнал. Если взять следующие узлы: DD2, DD3, HL1 и влепить их снизу счетчика DD2, аналогично соединить соответствующие входы, кроме С, выход переноса (выв. 7) предыдущего счетчика соединить со входом С следующего, то получим многозначный индикатор. После отсчета 10 импульсов первым счетчиком, второй переключится на 1. Через следующие 10 импульсов второй счетчик увеличится еще на 1 и так далее. По такому принципу деления частоты работают, например, часы. Единственное, что там коэффициент пересчета другой (не 10, а 6), все-таки в минуте 60 сек. Этот счетчик тоже можно заставить считать до 6. Берем лог. элемент И, его входы соединяем с выходами 2-4 (выв. 11 и 14), а выход подключаем к дифференцирующей цепочке R2C2. Тогда при достижении числа 6 (0110) уровень лог. 1 на выходе элемента И сформирует не без помощи цепи R2C2 импульс, который запишет в счетчик 0000. И еще, увеличивая частоту генератора цифири будут бежать быстрее, например вот так:

    Мультиплексор - это устройство, которое осуществляет выборку одного из нескольких входов и подключает его к своему выходу, в зависимости от состояния двоичного кода. Другими словами, мультиплексор - переключатель сигналов, управляемый двоичным кодом и имеющий несколько входов и один выход. К выходу подключается тот вход, чей номер соответствует двоичному коду. Ну и навороченное определение: мультиплексор - это устройство, преобразующее параллельный код в последовательный.

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

    Рис. 1 - Структура мультиплексора

    Самая большая хренотень есть не что иное, как элемент И-ИЛИ. Конкретно здесь элемент 4-х входовый. Ну а квадратики с единичками внутри, если кто не помнит, инверторы. Разберем выводы. Те, что слева, а именно D0-D3, называются информационными входами. На них чего-нибудь подают. Входы посередке, а именно А0-А1, называются адресными входами. Вот сюда именно и подается двоичный код, от которого зависит, какой из входов D0-D3 будет подключен к выходу, на этой схеме обозначенному как Y. Вход С, черт его знает, нафига он здесь. Вроде бы как разрешение работы, а может просто для понта. Ну его в баню. На схеме еще есть входы адреса с инверсией. Так вот они тоже показаны здесь для понта. На этом рисунке показан четырехвходовой, или как еще его называют, 4Х1 мультиплексор. Потому и адресных входов всего 2. Как нам известно, максимальное число переменных определяется как 2 n , где n - разряд кода. Здесь мы видим, что переменных четыре штуки, а значит разряд будет равен 2 (2 2 = 4). Для пояснения принципа работы этой схемы посмотрим на табличку истинности:

    A1 A0 Y
    D0
    D1
    D2
    D3

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

    Микросхемой мультик обозначается вот так:

    Рис. 2 - Мультиплексор

    Вообще, мультиплексоров всяких дофига. Есть и сдвоенные четырехвходовые, восьмивходовые, 16-ти входовые, счетверенные двухвходовые и пр. Тот, что на рисунке сделан от фонаря.

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

    Обычно в качестве демультиплексора используют дешифраторы двоичного кода в позиционный, в которых вводят дополнительный вход стробирования. Из-за схожести структур мультиплексора и демультиплексора в КМОП сериях есть микросхемы, которые одновременно являются мультиплексорром и демультиплексором, смотря с какой стороны подавать сигналы, например, К561КП1, работающая как переключатель 8х1 и переключатель 1х8 (то бишь, как мультиплексор и демультиплексор с восемью входами или выходами). Кроме того, в КМОП микросхемах помимо переключения цифровых сигналов (лог. 0 или 1) существует возможность переключения аналоговых. Другими словами, это переключатель аналоговых сигналов, управляемый цифровым кодом. Такие микросхемы называются коммутаторами. К примеру, с помощью коммутатора можно переключать сигналы, поступающие на вход усилителя (селектор входов). Вот напоследок простенькую схемку селектора входов УМЗЧ мы и рассмотрим. Построим ее, ну скажем, с использованием триггеров и мультиплексора.

    Рис. 3 - Селектор входных сигналов

    Вот такая нехитрая схемка. Итак, разберем работу и деталюшки. На триггерах микросхемы DD1 собран кольцевой счетчик нажатий кнопки разрядностью 2 (два триггера - 2 разряда). Двухразрядный двоичный код поступает на адресные входы D0-D1 микросхемы DD2. Микросхема DD2 представляет собой сдвоенный четырехканальный коммутатор. В соответствии с двоичным кодом к выходам микросхемы А и В подключаются входы А0-А3 и В0-В3 соответственно. Элементы R1, R2, C1 устраняют дребезг контактов кнопки. Дифференцирующая цепь R3C2 устанавливает триггеры в нулевое состояние при включении питания, при этом к выходу подключается первый вход. При нажатии на кнопку триггер DD1.1 переключается в состояние лог. 1 и к выходу подключается второй вход и т. д. Перебор входов идет по кольцу, начиная с первого.

    С одной стороны просто, с другой немного неудобно. Черт его знает, сколько раз нажали на кнопку после включения и какой вход подключен к выходу. Хорошо бы поставить индикатор подключенного входа. Вот тут-то и пригодится семисегментный дешифратор . Нажимаем ссылочку, вспоминаем семисегментный дешифратор и смотрим на схемку (там, где циферки бегут). Берем дешифратор и индикатор, обрубаем счетчик и другую галиматью, переносим дешифратор с индикатором на схему коммутатора и первые два входа дешифратора (на схеме обозначен как DD3), т. е. 1 и 2 (выв. 7 и 1) подключаем к прямым выходам триггеров DD1.1 DD1.2 (выв. 1 и 13). Входы дешифратора 4 и 8 (выв. 2 и 6) кидаем на корпус (т. е. подаем лог. 0). Все! Индикатор будет показывать состояние кольцевого счетчика, а именно циферки от 0 до 3. Цифиря 0 соответствует первому входу, 1 - 2-му и т. д.

    Регистр (от буржуйского to register - регистрировать) - это цифровой узел, предназначенный для записи и хранения числа. Некоторые регистры могут преобразовывать информацию из последовательной формы в параллельную и наоборот. Для начала рассмотрим регистр хранения.