Логотип



Основы цифровой техники

 материалы в категории

Логические элементы- Шифраторы и Дешифраторы

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


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

Позиционный код Двоичный код
8 7 6 5 4 3 2 1 22 21 20
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1

Для наглядности, единицы, как видно, располагаются по диагонали. Если приглядимся к младшему разряду (20), то видно, что единице соответствуют единицы в позиционном коде, соответствующие числам 2, 4, 6, 8 (разрядам). Следовательно, эти разряды объединяются через схему ИЛИ. Аналогичные операции проходят над старшими разрядами. В результате получим вот такую схемку:

кодер на логических элементах

Разряд 1 висит в воздухе, как на схеме. Согласно таблице, ей соответствует код 000.

Объяснять эту схему, пожалуй, не нужно. Все понятно.


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

декодер на логических элементах

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


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

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

Цифра Двоичный код Семисегментный код
8 4 2 1 a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1

Ну в общем как видно из таблички: каждой цифре двоичного кода соответствует определенное значение семисегментного кода.

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

счетчик импульсов с индикатором

На элементах 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.

Примечание: инфа с сайта naf-st.ru

Почта сайта