ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Преобразователь двоичного кода в двоично-десятичныйПРЕОБРАЗОВАТЕЛИ КОДОВ В цифровых устройствах, где основная часть операций связана не с обработкой и хранением информации, а с самим ее вводом и выводом на какие-либо устройства отображения с десятичным представлением полученных результатов, имеет смысл проводить вычисления в десятичной системе счисления. Но ЭВМ требует информацию только в двоичной форме. Следовательно, десятичные цифры нужно кодировать каким-либо легко реализуемым и быстрым способом. Для этих целей используется двоично-десятичный код, в котором каждая десятичная цифра 0...9 изображается соответствующим 4-разрядным числом – тетрадой (от 0000 до 1001). Такой код называется еще кодом 8-4-2-1 (цифры, соответствующие весам двоичных разрядов). Обычно данная система счисления используется в ЭВМ при вводе и выводе информации. Однако в некоторых типах ЭВМ в АЛУ имеются специальные блоки десятичной арифметики, выполняющие операции над числами в двоично-десятичном коде. Это позволяет в ряде случаев существенно повышать производительность ЭВМ Восьмиразрядный двоичный код соответствует значениям чисел от 0 до 255. Следовательно, для представления этих чисел в двоично-десятичном коде требуется десять двоичных разрядов: два для сотен и по четыре для десятков и единиц. Пример
Существуют различные способы преобразования кодов, основанные либо на синтезе комбинационных схем, построенных на логических элементах и ИС средней степени интеграции, или реализации в форме таблиц на программируемых ИС. В предлагаемом устройстве применяется сочетание табличной и алгоритмической форм преобразования. Сначала производится преобразование старшей тетрады двоичного кода (16 комбинаций) в двоично-десятичный код, а затем к полученному числу прибавляется младшая тетрада двоичного кода с применением десятичной коррекции.
Таблица истинности разрядов двоично-десятичного кода
Схема преобразователя (см. рис.1) содержит комбинационную цепь КЦ 1, которая вырабатывает промежуточный двоично-десятичный код без учета младшей тетрады двоичного кода, группу двоичных сумматоров и две комбинационные цепи КЦ 2 и КЦ 3, формирующие коды десятичной коррекции двоичных кодов декад единиц и десятков соответственно.
Таблица истинности КЦ 2
Пример. Число 143(10) в двоичном коде имеет вид 1000 1111, а в двоично-десятичном коде должно быть 01 0100 0011 На выходе КЦ 1 вырабатывается код 01 0010 1000 ~ 128 После прибавления к z3z2z1z0 = 1000 числа x3x2x1x0 = 1111 получается перенос р1 в разряд десятков и остается остаток s3s2s1s0 = 0111. Для десятичной коррекции к остатку нужно прибавить число α3α2α1α0 = 1100. В результате в разряде единиц остается код 0011, и образуется еще один перенос в разряд десятков (р2). Две единицы от переносов р1 и р2 суммируются с числом 0010 и окончательно получается код 01 0100 0011. Таблица истинности КЦ 3
Рис.2. Схема преобразователя двоичного кода в двоично-десятичный
Другой вариант преобразователя представлен на рис. 2. Сигнал каждого разряда двоичного кода можно разложить на соответствующие значения двоичных разрядов единиц, десятков и сотен двоично-десятичного кода: x7 ~ 128 = 100 + 20 + 8, x6 ~ 64 = 40 + 20 + 4, x5 ~ 32 = 20 + 10 + 2, x4 ~ 16 = 10 + 4 + 2, x3 ~ 8 = 8, x2 ~ 4 = 4, x1 ~ 2 = 2, x0 ~ 1 = 1. Необходимо сложить значения бит входного кода в каждом двоичном разряде выходного кода, выполняя при необходимости десятичную коррекцию, если в десятичном разряде возникает число больше 9.
Сигналы десятичной коррекции Перенос р1 вычитает из десятичного разряда единиц число 16, поэтому при наличии сигнала р1 необходимо вернуть число 6, т. е. код коррекции α2α1. В случае, когда перенос р1 отсутствует, но остаток s3s2s1s0 вместе с х2 превышает число 9, код коррекции тоже должен быть α2α1. Если же имеется сигнал р1 и при этом остаток s3s2s1s0 вместе с х2 превышает число 9, необходимо для десятичной коррекции прибавить число 12, следовательно, код коррекции α3α2. И, наконец, когда и переноса р1 нет, и остаток s3s2s1s0 вместе с х2 меньше 10, десятичная коррекция не требуется. Не нашли, что искали? Воспользуйтесь поиском:
|