Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Преобразователь двоичного кода в двоично-десятичный




ПРЕОБРАЗОВАТЕЛИ КОДОВ

В цифровых устройствах, где основная часть операций связана не с обработкой и хранением информации, а с самим ее вводом и выводом на какие-либо устройства отображения с десятичным представлением полученных результатов, имеет смысл проводить вычисления в десятичной системе счисления. Но ЭВМ требует информацию только в двоичной форме. Следовательно, десятичные цифры нужно кодировать каким-либо легко реализуемым и быстрым способом. Для этих целей используется двоично-десятичный код, в котором каждая десятичная цифра 0...9 изображается соответствующим 4-разрядным числом – тетрадой (от 0000 до 1001). Такой код называется еще кодом 8-4-2-1 (цифры, соответствующие весам двоичных разрядов). Обычно данная система счисления используется в ЭВМ при вводе и выводе информации. Однако в некоторых типах ЭВМ в АЛУ имеются специальные блоки десятичной арифметики, выполняющие операции над числами в двоично-десятичном коде. Это позволяет в ряде случаев существенно повышать производительность ЭВМ

Восьмиразрядный двоичный код соответствует значениям чисел от 0 до 255. Следовательно, для представления этих чисел в двоично-десятичном коде требуется десять двоичных разрядов: два для сотен и по четыре для десятков и единиц.

Пример

Двоичный код     x7 x6 x5 x4 x3 x2 x1 x0
Вес двоичного разряда                    
      Старшая тетрада Младшая тетрада
Двоичное число (125(10))                    
                     
Двоично-десятичный код y9 y8 y7 y6 y5 y4 y3 y2 y1 y0
Вес двоичного разряда                    
Десятичные разряды Сотни Десятки Единицы
Двоично-десятичное число                    

 

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

 

 

Таблица истинности разрядов двоично-десятичного кода

x7 x6 x5 x4 Эквив число z9 z8 z7 z6 z5 z4 z3 z2 z1 z0
                           
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             

 

 

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

 

Таблица истинности КЦ 2

p1 s3 s2 s1 s0 Комментарий α3 α2 α1
              Числа s3s2s1s0 от 0 до 9 не требуют десятичной коррекции      
               
               
               
               
               
               
               
               
               
          Для десятичной коррекции чисел s3s2s1s0 от 10 до 15 нужно прибавить число шесть (0110)      
               
               
               
               
               
          После переноса к остатку s3s2s1s0 чисел от 16 до 19 нужно прибавить число шесть (0110)      
               
               
               
          Для коррекции остатков s3s2s1s0 от чисел больше 19 нужно прибавить число двенадцать (1100)      
               
               
               

 

Пример.

Число 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

s7 s6 s5 s4 Комментарий β
        Числа s7s6s5s4 от 0 до 9 не требуют десятичной коррекции  
         
         
         
         
         
         
         
         
         
        Для десятичной коррекции чисел s7s6s5s4 от 10 до 15 нужно прибавить число шесть (0110)  
         
         
         
         
         

 

 


 


 

Рис.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, десятичная коррекция не требуется.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных