Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Готовые лекции по Электронике итог-2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.81 Mб
Скачать

3.4 Шестнадцатеричный код

Он образуется аналогично восьмеричному, но объединяются четыре разряда, начиная с младшего, и записываются в виде одного символа. Самое большое число, которое можно записать четырьмя двоичными разрядами 11112 = 1510, что составляет уже 2 десятичных цифры, а представить нужно в виде одного символа. Поэтому вводятся новые символы для представления чисел от 10 до 15. Для этого используются буквы латинского алфавита А, B, C, D, E, F.

Десятичный код - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Шестнадцатеричный код - 0 1 2 3 4 5 6 7 8 9 A B C D E F

Например: 1010.01112 = A716 (чаще используется обозначение A7H), 11.0111.01012 = 375H, 1111.1011.10012 = FB9H.

Шестнадцатеричный код чаще всего используется для общения человека и ЭВМ на уровне кодов.

3.5 Код Грея

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

"10"

"2"

Код Грея

0

0000

0000

1

0001

0001

2

0010

0011

3

0011

0010

4

0100

0110

5

0101

0111

6

0110

0101

7

0111

0100

8

1000

1100

9

1001

1101

10

1010

1111

11

1011

1110

12

1100

1010

13

1101

1011

14

1110

1001

15

1111

1000

Таблица 5 Сравнение двоичного кода и кода Грея

Если пользоваться двоичным, то при перемещении маски, например, из положения 0111 в положение 1000 из-за неодновременной смены трех "1" на три "0" могут кратковременно возникнуть коды 1100, 1010, 1101 и т.д., которые значительно отличаются как от предыдущего, так и от последующего значения и погрешность становится непредсказуемой. Все проблемы снимаются при использовании кода Грея, в котором при увеличении кода на 1 каждый раз изменяется только один из разрядов. Код Грея используется только для снятия информации с датчика. Для дальнейшей обработки информации код Грея переводится в двоичный позиционный по следующему алгоритму:

Каждый i-й, считая с левого старшего, разряд двоичного позиционного кода любого числа равен сумме по модулю 2 i-го и всех более левых разрядов этого числа, представленного кодом Грея.

4 Арифметические операции над двоичными кодами

4.1 Сложение

Сложение двоичных кодов производится побитно на основе следующих соотношений: 0+0=0; 0+1=1; 1+0=1; 1+1=0 и 1 - в перенос (в результате 10).

Например:

      1 перенос                 111 переносы  +9     +1001                  +7     +0111    5       0101                   1       0001   14       1110                   8       1000

4.2 Вычитание

Это действие можно выполнять так же как и в десятичных кодах, занимая 1 старшего разряда (производить заем):

     1 заем - 10     -1010    5       0101    5       0101

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

Например: прямой и дополнительный код числа +5 равен 0101, дополнительный код числа –5 равен +1 = 1010+1 = 1011.

Старший разряд "1" указывает, что код представляет отрицательное число. Код называется дополнительным потому, что он дополняет n-разрядный прямой код до значения 2n. В приведенном примере 0101+1011 = 100002 = 24.

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

Например 10110пр = 01010доп.

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

Рассмотрим различные ситуации при вычитании.

1) Вычислим в двоичных кодах результат операции 7-5 = 7+(-5).

Определим дополнительный код –5 = -00000101пр = 11111011доп.

Тогда 710-510 = 00000111доп+11111011доп = 1.00000010доп = 00000010пр = 210

Возникший перенос 1 в разряд D8 отбрасывается. Знаковый разряд D7 = 0, поэтому результат – положительное число 2, у которого прямой код такой же, как и дополнительный.

2) Определим результат операции 510-710 = 00000101пр-00000111пр = 00000101доп+11111001доп = 11111110доп = -00000010пр=-210

Здесь D7 = 1, результат отрицательный, поэтому дополнительный код переводится в прямой. Это выполняется по тому же правилу, что и перевод прямого кода в дополнительный.

3) Найдём –510-710 = 11111011доп+11111001доп=1.11110100доп = -00001100пр = -1210.

4.3 Умножение

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

610* 710          111                  111                               *110                 *110                                 000                  111                               111                      111                           *111                    *    000                           1010102 = 4210      101010

Числа со знаком умножаются в прямом коде, а знак определяется как сумма по модулю 2 знаковых разрядов.

4.4 Деление

Выполняется как вычитание со сдвигом. Например:

18:6 = 3                   22:4 = 5,5

10010 : 110              10110 : 100         - 110       11             - 100       101,1             110                            110           - 110                          - 100             000                              10,0                                              - 100                                                 000

Здесь дробная часть представляет отрицательные степени числа 2.

Например: степени 2 2 1 0 -1 -2

Код 110,11 = 4+2+0,5+0,25 = 6,75.

5 Типовые комбинационные микросхемы

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

Дешифратор – логический узел, осуществляющий коммутацию одного из N выходов по заданным n адресным входам. На рис 5-1 показан дешифратор 3х8 (3 адресных входа, 8 выходов). При подаче на входы а0а1а2 какого-либо кода на выходе с номером определенным адресным кодом появляется 1, а на остальных выходах - 0. Дешифратор используется для выбора (коммутации) одного из блоков цифрового устройства.

Рис 5-1 Дешифратор

Если число выходов N < 2n, то дешифратор называется неполным.

При стробсигнале √ = 0 все выходы обнулены.

Двухъярусная схема

При большом числе выходов применяются двухъярусные схемы с использованием стробирующих входов. Если имеется k – разрядный дешифратор, то для n > k потребуется 2n-k+1 дешифраторов.

Например, требуется построить дешифратор 4х16 используя дешифраторы 2х4. В этом случае n = 4, а k = 2, и потребуется 24-2+1 = 5 дешифраторов.

Рис.5-2 Двухярусный дешифратор

5.2 Мультиплексоры (логические коммутаторы, селекторы)

Логический узел осуществляющий коммутацию с N входов на 1 выход называется мультиплексор. Номер входа bi определяется кодом, поданным на адресные входы аi (рис.5-3б).

                                              а                                                          б Рис.5-3 Мультиплексоры

Мультиплексор можно построить с помощью дешифраторов (рис.5-3а).

Мультиплексор, как универсальный логический элемент

С помощью мультиплексора можно реализовать любую логическую функцию.

Например, построим с помощью мультиплексора схему Σmod2 {глава 1.1} для двух переменных. Для этого потребуется 2n = 4 – четырехвходовый мультиплексор.

а1

а0

D

0

0

0

0

1

1

1

0

1

1

1

0

Рис.5-4 Реализация сумматора по модулю 2 с помощью мультиплексора

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]