
- •Теория дискретных устройств автоматики и телемеханики в электроснабжении курс лекций
- •Введение
- •1. Математическое описание дискретных устройств
- •1.1. Системы счисления
- •1.2. Дискретные сигналы
- •1.3. Логические константы и переменные. Логические операции. Логические элементы
- •1.4. Классификация логических устройств
- •1.5. Способы записи функций алгебры логики
- •1.6. Структурная схема логического устройства
- •1.7. Принцип двойственности
- •1.8. Теоремы алгебры логики
- •2. Минимизация функций алгебры логики
- •2.1. Цель минимизации фал
- •2.2. Способ представления фал с использованием карт Вейча – Карно
- •2.3. Минимизация полностью определённой фал
- •2.4. Минимизация недоопределённой фал
- •2.5. Минимизация системы фал
- •3. Техническая реализация логических устройств на реальной элементной базе
- •3.1. Техническая реализация лу на электромагнитных реле
- •3.2. Техническая реализация лу на базе диодной матрицы
- •3.3. Техническая реализация лу на цифровых микросхемах
- •4. Типовые функциональные узлы комбинационных логических устройств
- •4.1. Мультиплексор
- •4.2. Демультиплексор
- •4.3. Шифратор
- •4.4. Дешифратор
- •4.5. Цифровой компаратор
- •4.6. Функция «Исключающее или»
- •4.7. Логические элементы, реализующие сложные функции
- •5. Триггеры
- •5.1. Асинхронный rs-триггер
- •5.2. Синхронный rs-триггер
- •5.5. Двухступенчатый т-триггер
- •5.6. Двухступенчатый синхронный jk-триггер
- •5.7. Триггер с динамическим управлением
- •6. Счётчики
- •6.1. Двоичный суммирующий счётчик
- •6.2. Двоичный вычитающий счётчик
- •6.3. Двоично-кодированный счётчик
- •6.4. Двоично-десятичный счётчик
- •6.5. Распределитель тактов
- •7. Регистры
- •7.1. Параллельный регистр
- •7.2. Сдвигающий регистр
- •8. Генераторы и формирователи импульсов
- •8.1. Симметричный мультивибратор
- •8.2. Генератор с одной времязадающей rс-цепью
- •8.3. Кварцевый генератор
- •8.4. Ждущий мультивибратор (генератор одиночных импульсов)
- •8.5. Одновибратор на d-триггере
- •8.6. Одновибратор на специализированной микросхеме
- •8.7. Интегральные таймеры
- •8.8. Мультивибратор на интегральном таймере
- •8.9. Одновибратор на интегральном таймере
- •8.10. Преобразователь «напряжение – частота»
- •8.11. Формирователь импульсов на триггере Шмитта
- •9. Арифметико-логические устройства
- •9.1. Сумматоры
- •9.2. Вычитание двоичных чисел
- •10. Запоминающие устройства
- •10.1. Оперативные запоминающие устройства
- •10.2. Постоянные запоминающие устройства
- •11. Аналого-цифровые и цифро-аналоговые преобразователи
- •11.1. Аналого-цифровое преобразование
- •11.2. Цифро-аналоговое преобразование
- •Библиографический список
- •Теория дискретных устройств автоматики и телемеханики в электроснабжении курс лекций
- •443022, Самара, Заводское шоссе, 18
9.2. Вычитание двоичных чисел
Из математики известно, что вычитание – это сложение положительного и отрицательного чисел. Следовательно, для вычитания можно использовать сумматоры. Чтобы записать отрицательное число, следует представить его в дополнительном коде.
Алгоритм получения дополнительного кода:
-инвертируется каждый разряд двоичного кода – получается обратный код;
-арифметически прибавляется к полученному обратному коду единица младшего разряда – получается дополнительный код.
Теперь при сложении уменьшаемого с представленным в дополнительном коде вычитаемым получится разность. Знак результата (+ или ) зависит от значения старшего разряда разности. Если в старшем разряде «0» то разность – положительное число, представленное в прямом коде. Если в старшем разряде «1» то разность – отрицательное число, представленное в дополнительном коде.
Рассмотрим пример вычисления разности 31 – 12.
Для проведения действий используем 8-разрядные шины.
Прямой код: 31 = 00011111; 12 = 00001100.
Обратный код:
.
Дополнительный код:
.
Выполним сложение:
.
Получился 9-разрядный код. Старший (9-й) разряд отбрасывается. В полученном результате в 8-ом разряде «0», значит разность – положительное число 19, представленное в прямом коде.
Рассмотрим обратное вычисление 12 – 31.
Прямой код: 12 = 00001100; 31 = 00011111.
Обратный код:
.
Дополнительный код:
.
Выполним сложение:
.
В полученном результате в 8-ом разряде «1», значит разность – отрицательное число, представленное в дополнительном коде.
Чтобы получить результат в прямом коде, можно воспользоваться формальным приёмом. Нужно прочитать число наоборот, оставляя без изменения все нули до первой единицы, которую тоже оставляют без изменения. Все остальные разряды инвертируют. Такое действие можно выполнить с помощью сдвигающего регистра. В результате получим 00010011 = 19.
Сложение и вычитание двоичных чисел можно проводить с помощью общей схемы. Рассмотрим такую схему на примере устройства для сложения и вычитания двухразрядных чисел (рис. 9.4).
|
Рис. 9.4. Устройство для сложения и вычитания двухразрядных чисел
Схема состоит из общего управляющего узла DD1, который определяет, какое действие – сложение или вычитание – будет выполнено, и блоков сложения вычитания БСВ. В состав БСВ входит сумматор с входной логикой.
В исходном состоянии на входах DD1 («+» и «») логический 0. На входах элементов И DD3, DD7 и DD5, DD9 тоже логический 0, следовательно и на выходах этих элементов логический 0. Никаких действий схема не выполняет.
Если на вход «+» подать сигнал логической 1 (на входе «» - логический 0), разрешается работа элементов И DD3 (верх), DD5, DD7 (верх) и DD9. От входа схемы через эти элементы на входы сумматоров DD4, DD8 поступят коды Y0 + X0 и Y1 +X1. На выходах сумматоров получится результат S0 = Y0 + X0, S1 = Y1 +X1 и P (перенос в следующий разряд).
Если на вход «»
подать сигнал логической 1 (на входе «+»
- логический 0), разрешается работа
элементов И DD3 (низ), DD5,
DD7 (низ) и DD9.
Прямой код уменьшаемого Y1;
Y0 поступит на входы b
сумматоров через элементы DD5,
DD9. Обратный код вычитаемого
поступит на входы а сумматоров через
инверторы DD2, DD6
(
).
Одновременно на входе Р-1 младшего
разряда (БСВ0) появится сигнал логической
1 от входа «». Сложение
этой 1 с обратным кодом вычитаемого даст
дополнительный код. На выходах сумматоров
получится результат S0 =
Y0
X0, S1 = Y1
X1.
Подавать одновременно сигнал логической 1 на входы «+» и «» нельзя. В такой простой схеме это приведёт к сбою в работе.
Пример технической реализации АЛУ микросхема К555ИП3. Её условное графическое обозначение представлено на рис. 9.5.
|
Рис. 9.5. Условное графическое обозначение микросхемы АЛУ К555ИП3
Микросхема К555ИП3 работает с двумя четырёхразрядными входными кодами и может выполнят 16 логических и 16 арифметических операций. Вид выполняемой операции (арифметическая или логическая) определяется управляющим сигналом входа М (mode control). М = 1 – логические операции, М = 0 – арифметические.
Конкретный вид выполняемой операции зависит от управляющего кода входов S0, S1, S2 и S3. Результаты выполненной операции снимаются с выходов F0, F1, F2 и F3. Вход Р0 и выход Рn – переносы из младшего и в старший разряды. Выходы G и H служат для соединения нескольких АЛУ в многоразрядные схемы. G – схемы с последовательным переносом, Н – с параллельным. Выход К выход внутреннего цифрового компаратора. К = 1 при совпадении входных кодов a = b.
Контрольные вопросы
1. Для каких целей применяются арифметико-логические устройства?
2. Что такое сумматор? Приведите таблицу истинности, запишите ФАЛ, нарисуйте схему и условное графическое обозначение полусумматора.
3. Для чего предназначен вход переноса из младшего разряда?
4. Приведите таблицу истинности, запишите ФАЛ, нарисуйте схему и условное графическое обозначение сумматора.
5. Как нужно соединить сумматоры для получения многоразрядной схемы параллельного сумматора?
6. Поясните алгоритм вычитания двоичных кодов. Как получить дополнительный код?
7. Как определить знак разности?
8. Как схема сложения и вычитания двоичных чисел выбирает необходимое действие и формирует дополнительный код при вычитании?
9. Приведите условное графическое обозначение микросхемы АЛУ К555ИП1 и поясните принцип её работы.