Техник устанавливает, обслуживает и ремонтирует компьютерное оборудование и системы. Во-первых, он отвечает за прокладку кабелей соединения оборудования, во-вторых, он должен тщательно тестировать новые системы, решая все проблемы, стоящие перед пользователем оборудования, в-третьих, периодически техник обслуживает оборудование для того, чтобы убедится в том, что оно нормально функционирует. Знание основ и специализированного тестирующего оборудования и инструментов является необходимым.
Техники уделяют много времени работе с людьми. Они выслушивают претензии, отвечают на вопросы и иногда дают советы по приобретению оборудования, по профилактике и способам поддерживания эффективной работы оборудования. Опытные техники часто обучают новых техников, а иногда ограничиваются ролью диспетчера, перед тем как стать диспетчерами или менеджерами по сервису.
Для подготовки техника по обслуживанию компьютеров требуется один-два года подготовки по основам электроники и электротехники в колледже, профессионально-технической школе или военном училище. Он должен уметь обслужить любое новое оборудование и программное обеспечение.
Прогнозы показывают, что потребность в техниках по обслуживанию компьютеров будет высокой и после 2000 года. Экономика развивается, и потребность в компьютерном оборудовании будет увеличиваться. Следовательно, потребуется больше техников для установки и обслуживания оборудования.
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Описать двоичную систему счисления.
• Перечислить значения разрядов для каждого бита двоичного числа.
• Преобразовывать двоичные числа в десятичные.
• Преобразовывать десятичные числа в двоичные.
• Преобразовывать десятичные числа в двоично-десятичный код.
• Преобразовывать числа в двоично-десятичном коде в десятичные.
Система счисления — это не более, чем код. Для каждой отдельной величины существует приписанный ей символ. Когда код известен, можно выполнять вычисления. Это возможно с помощью арифметики и высшей математики.
Простейшей системой счисления является двоичная. Двоичная система содержит только две цифры — 0 и 1. Эти цифры имеют такое же значение, как и в десятичной системе счисления.
Двоичная система счисления используется в цифровых и микропроцессорных цепях благодаря ее простоте. Двоичные данные представляются двоичными цифрами, называемыми битами. Термин бит означает двоичная цифра (разряд) (binary digit).
Десятичная система счисления называется системой с основанием 10, поскольку она использует десять цифр от 0 до 9. Двоичная система — это система с основанием два, поскольку она использует две цифры, 0 и 1. Положение 0 или 1 в двоичном числе показывает их значение в числе и называется значением разряда или его весом. Значения разрядов двоичного числа увеличиваются как степени 2.
Счет в двоичной системе начинается с чисел 0 и 1. Как и в десятичной системе счисления, каждая двоичная цифра отличается от предыдущей на единицу. Сумма единицы и нуля дает единицу, а сумма двух единиц дает нуль, и при этом прибавляется единица в старшем разряде. На рис. 31-1 показана последовательность двоичных чисел, образованная по описанному алгоритму.
Рис. 31-1. Десятичные числа и эквивалентные двоичные числа.
Для определения наибольшего значения, которое может быть представлено данным количеством разрядов с основанием 2, используйте следующую формулу:
Наибольшее число = 2n — 1,
где n — число битов (или число использованных значений разрядов).
ПРИМЕР: два бита могут быть использованы для счета от 0 до 3, так как
2n - 1 = 22 - 1 = 4–1 = 3.
Четыре бита необходимы для счета от 0 до 15, так как
2n — 1 = 24 — 1 = 16 — 1 = 15.
31-1. Вопросы
1. В чем преимущество двоичной системы счисления перед десятичной при использовании в цифровых цепях?
2. Как определить наибольшее значение двоичного числа при заданном числе разрядов?
3. Каково наибольшее значение двоичного числа с:
а. 4 битами,
б. 8 битами,
в. 12 битами,
г. 16 битами.
Как установлено, двоичное число представляет собой число с весом каждого разряда. Значение двоичного числа может быть определено суммированием произведений каждой цифры на вес ее разряда. Метод вычисления двоичного числа показан на следующем примере:
ПРИМЕР:
Число 45 является десятичным эквивалентом двоичного числа 101101.
Дробные числа также могут быть представлены в двоичной форме путем размещения двоичных цифр справа от двоичной запятой, так же как и десятичные цифры размещаются справа от десятичной запятой. Все цифры справа от запятой имеют вес, представленный отрицательными степенями 2 или дробными значениями разрядов.
Степень 2 ∙ Значение разряда
25 = 32
24 = 16
23 = 8
22 = 4
21 = 2
20 = 1
десятичная запятая
2-1 = 1/21 = 1/2 = 0,5
2-2 = 1/22 = 1/4 = 0,25
2-3 = 1/23 = 1/8 = 0,125
2-4 = 1/24 = 1/16 = 0,0625
ПРИМЕР: Определить десятичное значение двоичного числа 111011,011.
При работе с цифровым оборудованием часто бывает необходимо преобразовывать числа из двоичной системы в десятичную, и наоборот. Наиболее популярный способ преобразования десятичных чисел в двоичные — это последовательное деление десятичного числа на 2, с записью остатка после каждого деления. Остатки, взятые в обратном порядке, образуют двоичное число.
ПРИМЕР: Преобразовать 11 в двоичное число последовательным делением на 2. (Самый Младший Разряд).
(1/2 = 0 означает, что 1 не делится на 2, так что 1 является остатком). Десятичное число 11 равно 1011 в двоичной системе.
Этот процесс может быть упрощен путем записи чисел упорядоченным образом, как это показано на примере преобразования 25 в двоичное число.
ПРИМЕР:
Десятичное число 25 равно двоичному числу 11001. Дробные числа преобразовываются по другому: число умножается на 2 и целая часть записывается как двоичная дробь.
ПРИМЕР: Преобразовать десятичную дробь 0,85 в двоичную дробь последовательным умножением на 2.
Умножение на 2 продолжается до тех пор, пока не будет достигнута необходимая точность. Десятичная дробь 0,85 равна 0,110110 в двоичной форме.
ПРИМЕР: Преобразовать десятичное число 20,65 в двоичное число. Разделите 20,65 на целую часть 20 и дробную 0,65 и примените описанные выше методы.
Десятичное 20 — двоичному 10100
и
Комбинируя два числа, получим 20,6510 = 10100,10100112.
Это 12-разрядное число является приближенным, потому что преобразование дроби было прервано после получения 7 разрядов.
31-2. Вопросы
1. Чему равно значение каждого разряда 8-разрядного двоичного числа?
2. Чему равно значение каждого разряда для 8 разрядов правее десятичной точки?
3. Преобразуйте следующие двоичные числа в десятичные:
а. 1001;
б. 11101111;
в. 11000010;
г. 10101010,1101;
д. 10110111,0001.
4. В чем состоит процесс преобразования десятичных чисел в двоичные?
5. Преобразуйте следующие десятичные числа в двоичные:
а. 27;
б. 34,6;
в. 346;
г. 321,456;
д. 7465.
Код 8421 — это двоично-десятичный код (ДДК), состоящий из четырех двоичных разрядов. Он используется для представления цифр от 0 до 9. Обозначение 8421 относится к двоичному весу 4 разрядов.
Степени 2: 23 22 21 20
Двоичный вес: 8 4 2 1
Основным достоинством этого кода является то, что он допускает легкое преобразование из десятичной формы в двоичную, и наоборот. Поэтому двоично-десятичный код используется всегда, если не оговорено другое.
Каждая десятичная цифра (от 0 до 9) представляется двоичной комбинацией следующим образом:
Хотя с помощью четырех двоичных разрядов можно представить 16 чисел (24), шесть кодовых комбинаций для чисел, больших 9 (1010,1011,1100, 1101, 1110 и 1111), в коде 8421 не используются.
Для того чтобы выразить любое десятичное число с помощью кода 8421, замените каждую десятичную цифру соответствующим 4-разрядным кодом.
ПРИМЕР: Преобразовать следующие десятичные числа в двоично-десятичный код: 5, 13, 124, 576, 8769.
Для преобразования числа из двоично-десятичного кода в десятичную систему, разбейте число на группы по 4 разряда. После этого запишите десятичные цифры, соответствующие каждой 4-разрядной группе.
ПРИМЕР: Преобразуйте числа, записанные двоично-десятичным кодом в десятичную систему: 10010101, 1001000, 1100111, 1001100101001, 1001100001110110.
Замечание: Если в крайней группе слева не хватает разрядов до четырех, то к ней добавляются нули.
31-3. Вопросы
1. Что такое код 8421 и как он используется?
2. Преобразуйте следующие десятичные числа в двоично-десятичный код:
а. 17;
б. 100;
в. 256;
г. 778;
д. 8573.
3. Преобразуйте следующие двоично-десятичные коды в десятичные числа:
а. 1000 0010;
б. 0111 0000 0101;
в. 1001 0001 0011 0100;
г. 0001 0000 0000 0000;
д. 0100 0110 1000 1001.
РЕЗЮМЕ
• Двоичная система счисления — это простейшая система счисления.
• Двоичная система счисления содержит две цифры — 0 и 1.
• Двоичная система счисления используется для представления данных в цифровых и компьютерных системах.
• Двоичные данные представляются двоичными разрядами, которые называются битами.
• Термин бит происходит от названия двоичный разряд (binary digit)
• Значение каждого более высокого разряда двоичного числа увеличивается как степень 2.
• Наибольшее число, которое может быть представлено данным количеством разрядов в двоичной системе равно 2n — 1, где n — количество разрядов.
• Значение двоичного числа может быть определено суммированием произведений каждой цифры на вес ее разряда.
• Дробные числа представляются отрицательными степенями 2.
• Для преобразования десятичного числа в двоичное, десятичное число последовательно делится на 2, и после каждого деления записывается остаток. Эти остатки, расположенные в обратном порядке, образуют двоичное число.
• Код 8421 или двоично-десятичный код используется для представления цифр от 0 до 9.
• Достоинством двоично-десятичного кода является возможность легкого преобразования чисел из десятичной формы в двоичную и наоборот.
Глава 31. САМОПРОВЕРКА
1. Запишите в двоичной форме десятичные числа от 0 до 27.
2. Сколько двоичных разрядов нужно для представления десятичного числа 100?
3. Опишите процесс преобразования десятичного числа в двоичное число.
4. Преобразуйте следующие двоичные числа в десятичные:
а. 100101,001011;
б. 111101110,11101110;
в. 10000001,00000101.
5. Опишите процесс преобразования десятичных чисел в двоично-десятичный код.
6. Преобразуйте следующие двоично-десятичные коды в десятичные числа:
а. 0100 0001 0000 0110;
б. 1001 0010 0100 0011;
в. 0101 0110 0111 1000.
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Перечислить и объяснить функции основных логических элементов.
• Нарисовать схематические обозначения для основных логических элементов.
• Начертить таблицы истинности для основных логических элементов.
Все цифровое оборудование, от простого до сложного, сконструировано с использованием небольшого количества основных схем. Эти схемы, называемые логическими элементами, выполняют некоторые логические функции с двоичными данными.
Существуют два основных типа логических схем: схемы принятия решений и память. Логические схемы принятия решений контролируют двоичные сигналы на входах и выдают выходной сигнал, основанный на состояниях входов и характеристиках логической схемы.
Схемы памяти используются для хранения двоичных данных.
Элемент И — это логическая схема, имеющая два или более входа и один выход. На выходе элемента И появляется 1 только тогда, когда на все его входы поступает сигнал 1. Если на какой-либо из входов поступает 0, на выходе появляется 0.
На рис. 32-1 показаны стандартные обозначения, используемые для элементов И. Элемент И может иметь любое количество входов, большее одного.
Рис. 32-1. Логические обозначения элемента И.
Показанные на рисунке обозначения представляют наиболее часто используемые элементы с двумя, тремя, четырьмя и восемью входами.
Работу элемента И отражает таблица на рис. 32-2. Такая таблица, называемая таблицей истинности, показывает выходное состояние элемента для любых возможных состояний входов.
Рис. 32-2. Таблица истинности для двухвходового элемента И.
Входы обозначены А и В. Выход обозначен Y. Общее число возможных комбинаций в таблице истинности определяется следующей формулой:
N = 2n,
где N — общее количество возможных комбинаций, n — общее число входных переменных.
ПРИМЕР:
Для двух входных переменных N = 22 = 4.
Для трех входных переменных N = 23 = 8.
Для четырех входных переменных N = 24 = 16.
Для восьми входных переменных N = 28 = 256.
Элемент И выполняет операцию логического умножения. Логическое умножение известно как функция И.
Выход элемента И математически может быть представлен равенством Y = А ^ В или Y = АВ. Функция И — точка между двумя переменными А и В.
32-1. Вопросы
1. При каких условиях на выходе элемента И появляется 1?
2. Нарисуйте схематическое обозначение, используемое для элемента И с двумя входами.
3. Изобразите таблицу истинности для элемента И с тремя входами.
4. Какую логическую операцию выполняет элемент И?
5. Как алгебраически изображается операция, выполняемая элементом И?
На выходе элемента ИЛИ появляется 1, если на любой из его входов подана 1. На его выходе появляется 0, если на все его входы поданы 0. Значения на выходе элемента ИЛИ с двумя входами приведены в таблице истинности на рис. 32-3.
Рис. 32-3. Таблица истинности для двухвходового элемента ИЛИ.
Общее число возможных комбинаций выражается формулой N = 22 = 4. В таблице истинности приведены все четыре комбинации.
Элемент ИЛИ выполняет логическую операцию сложения. Алгебраически операция, выполняемая элементом ИЛИ, выражается следующим образом Y = А + В или Y = А V В. Знак плюс обозначает функцию ИЛИ.
На рис. 32-4 изображены логические обозначения для элемента ИЛИ. Входы обозначены А и В, а выход обозначен Y. Элемент ИЛИ может иметь любое число входов, большее одного. На рисунке изображены элементы ИЛИ с двумя, тремя, четырьмя и восемью входами.
Рис. 32-4. Логические обозначения элемента ИЛИ.
32-2. Вопросы
1. При каких условиях на выходе элемента ИЛИ появляется 1?
2. Нарисуйте схематическое обозначение, используемое для элемента ИЛИ с двумя входами.
3. Изобразите таблицу истинности для элемента ИЛИ с тремя входами.
4. Какую логическую операцию выполняет элемент ИЛИ?
5. Как алгебраически изображается операция, выполняемая элементом ИЛИ?
Простейшей логической цепью является цепь НЕ. Она выполняет функцию, которая называется инверсией или отрицанием, и обычно называется инвертором. Цель инвертора — сделать состояние выхода противоположным состоянию входа. В логических цепях возможны два состояния — 1 и 0. Состояние 1 называют высоким, для указания, что напряжение в этом состоянии выше, чем в состоянии 0. Состояние 0 называют низким, для указания, что напряжение в этом состоянии ниже, чем в состоянии 1. Если 1, или высокое состояние, подано на вход инвертора, на выходе появится низкое состояние, или 0. Если на вход инвертора подать 0, или низкое состояние, то на выходе появится высокое состояние, или 1.
Работу инвертора отражает таблица на рис. 32-5.
Рис. 32-5. Таблица истинности для инвертора.
Вход инвертора обозначен А, а выход А- (читается «не А»). Черточка над буквой А показывает отрицание А. Поскольку инвертор имеет только один вход, то возможны только два состояния входа.
Схематическое обозначение инвертора или функции НЕ изображено на рис. 32-6. Треугольник обозначает схему, а кружочек обозначает инверсию или характеризует дополнение. Выбор схематического обозначения зависит от того, где инвертор используется. Если инвертор использует 1 в качестве указателя входа, применяется символ, изображенный на рис. 32-6(А). Если инвертор использует 0 в качестве указателя входа, берется символ, изображенный на рис. 32-6(Б).
Рис. 32-6. Логические обозначения инвертора.
32-3. Вопросы
1. Какая операция выполняется цепью НЕ?
2. Изобразите таблицу истинности для цепи НЕ.
3. Нарисуйте схематические обозначения, используемые для цепи НЕ.
4. Почему для изображения цепи НЕ используются два различных символа?
Элемент НЕ-И является комбинацией инвертора и элемента И. Поэтому он и называется НЕ-И. Элемент НЕ-И является наиболее широко используемой логической функцией. Это обусловлено тем, что он может быть использован для создания элемента И, элемента ИЛИ, инвертора или любой комбинации этих функций.
Логическое обозначение элемента НЕ-И изображено на рис. 32-7. На рисунке также показана его эквивалентность последовательно включенным элементу И и инвертору. Кружочек на выходе обозначает инвертирование функции И.
Рис. 32-7. Логические обозначения элемента И-НЕ.
На рис. 32-8 приведена таблица истинности для двухвходового элемента НЕ-И. Заметим, что выход элемента НЕ-И является дополнением выхода элемента И. Подача 0 на любой вход дает на выходе 1. Операция НЕ-И алгебраически выражается следующей формулой , где Y — выход, а А и В — входы. Элементы НЕ-И существуют с двумя, тремя, четырьмя, восемью и тринадцатью входами.
Рис. 32-8. Таблица истинности для двухвходового элемента И-НЕ.
Элементы НЕ-И наиболее доступны. Доступность и гибкость элементов НЕ-И позволяет использовать их в качестве элементов других типов. На рис. 32-9 показано, как элементы НЕ-И могут быть использованы для создания других логических функций.
Рис. 32-9. Использование элемента И-НЕ для создания других логических функций.
32-4. Вопросы
1. Что такое элемент НЕ-И?
2. Почему элемент НЕ-И так часто используется в цепях?
3. Нарисуйте логический символ, используемый для обозначения элемента НЕ-И.
4. Как алгебраически изображается операция, выполняемая элементом НЕ-И?
5. Изобразите таблицу истинности для элемента НЕ-И с тремя входами.
Элемент HE-ИЛИ является комбинацией инвертора и элемента ИЛИ. Поэтому он называется HE-ИЛИ. Подобно элементу НЕ-И, элемент HE-ИЛИ также может быть использован для создания элемента И, элемента ИЛИ или инвертора.
Логическое обозначение элемента НЕ-ИЛИ изображено на рис. 32–10. На рисунке также показана его эквивалентная схема, состоящая из последовательно включенных элемента ИЛИ и инвертора. Кружочек на выходе показывает инвертирование функции ИЛИ.
Рис. 32–10. Логические обозначения элемента ИЛИ-НЕ.
На рис. 32–11 изображена таблица истинности для двухвходового элемента HE-ИЛИ. Заметим, что его выход является дополнением выхода элемента ИЛИ. 1 на выходе появляется только тогда, когда на оба входа поданы 0. Если на все входы подана 1, то на выходе будет 0. Операция НЕ-ИЛИ алгебраически выражается следующей формулой , где Y — выход, а А и В — входы. Существуют элементы HE-ИЛИ с двумя, тремя, четырьмя и восемью входами.
Рис. 32–11. Таблица истинности для двухвходового элемента ИЛИ-НЕ.
32-5. Вопросы
1. Что такое элемент НЕ-ИЛИ?
2. Почему элемент НЕ-ИЛИ полезен при проектировании цифровых цепей?
3. Нарисуйте символ, используемый для обозначения элемента НЕ-ИЛИ.
4. Как алгебраически изображается операция, выполняемая элементом НЕ-ИЛИ?
5. Изобразите таблицу истинности для элемента НЕ-ИЛИ с тремя входами.
Реже встречающимся, но все же важным элементом является элемент исключающее ИЛИ. Элемент исключающее ИЛИ имеет только два входа в отличие от элемента ИЛИ, который может иметь несколько входов. Однако элемент исключающее ИЛИ подобен элементу ИЛИ в том, что он выдает на выходе 1, когда на какой-либо из входов подана 1. Когда же на оба входа подаются 1 или 0, на выходе элемента исключающее ИЛИ будет 0. В то время как при подаче двух 1 на вход элемента ИЛИ на выходе будет 1.
Схематическое обозначение элемента исключающее ИЛИ изображено на рис. 32–12. На рис. 32–13 изображена таблица истинности для элемента исключающее ИЛИ.
Рис. 32–12. Логическое обозначение элемента исключающее ИЛИ.
Рис. 32–13. Таблица истинности для элемента исключающее ИЛИ.
Операция исключающее ИЛИ алгебраически выражается следующей формулой Y = A B. Здесь — символ суммирования по модулю 2.
Дополнением к элементу исключающее ИЛИ является элемент исключающее ИЛИ-НЕ. Его схематическое обозначение показано на рис. 32–14. Кружочек на выходе означает инверсию или дополнение.
Рис. 32–14. Логическое обозначение элемента исключающее ИЛИ-НЕ.
На рис. 32–15 изображена таблица истинности для элемента исключающее ИЛИ-НЕ.
Операция исключающее ИЛИ-НЕ алгебраически выражается следующей формулой .
Рис. 32–15. Таблица истинности для элемента исключающее ИЛИ-НЕ.
32-6. Вопросы
1. В чем различие между элементом ИЛИ и элементом исключающее ИЛИ?
2. Нарисуйте символ, используемый для обозначения элемента исключающее ИЛИ.
3. Изобразите таблицу истинности для элемента исключающее ИЛИ.
4. Нарисуйте символ, используемый для обозначения элемента исключающее ИЛИ-НЕ.
5. Запишите алгебраические выражения для операций исключающее ИЛИ и исключающее ИЛИ-НЕ.
РЕЗЮМЕ
• На выходе элемента И появляется 1 тогда, когда на все его входы поступает сигнал 1.
• Элемент И выполняет операцию логического умножения.
• На выходе элемента ИЛИ появляется 1, если на любой из его входов подана 1.
• Элемент ИЛИ выполняет логическую операцию сложения.
• Элемент НЕ выполняет функцию, которая называется инверсией или отрицанием.
• Элемент НЕ преобразует входное состояние в противоположное выходное состояние.
• Элемент НЕ-И является комбинацией элемента И и инвертора.
• Подача 0 на любой вход элемента НЕ-И дает на выходе 1.
• Элемент НЕ-ИЛИ является комбинацией элемента ИЛИ и инвертора.
• 1 на выходе элемента НЕ-ИЛИ появляется только тогда, когда на оба входа поданы 0.
• 1 на выходе элемента исключающее ИЛИ появляется только тогда, когда уровни его входов различны.
• 1 на выходе элемента исключающее ИЛИ-НЕ появляется только тогда, когда уровни его входов одинаковы.
Глава 32. САМОПРОВЕРКА
1. Нарисуйте схематическое обозначение шестивходового элемента И.
2. Изобразите таблицу истинности для четырехвходового элемента И.
3. Нарисуйте схематическое обозначение шестивходового элемента ИЛИ.
4. Изобразите таблицу истинности для четырехвходового элемента ИЛИ.
5. Каково назначение элемента НЕ?
6. Чем отличается инвертор для входного сигнала от инвертора для выходного сигнала?
7. Нарисуйте схематическое обозначение для восьмивходового элемента НЕ-И.
8. Изобразите таблицу истинности для четырехвходового элемента НЕ-И.
9. Нарисуйте схематическое обозначение для восьмивходового элемента НЕ-ИЛИ.
10. Изобразите таблицу истинности для четырехвходового элемента НЕ-ИЛИ.
11. В чем особенность элемента исключающее ИЛИ?
12. Какое максимальное количество входов может иметь элемент исключающее ИЛИ-НЕ?
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Объяснить назначение диаграмм Вейча.
• Описать, как использовать диаграммы Вейча для упрощения Булевских выражений.
Цифровые цепи все больше и больше используются в электронике. Область их применения не ограничивается компьютерами, а распространяется на такие приложения, как техника измерений, автоматическое управление и робототехника. Во всех этих приложениях необходимы сложные переключающие цепи, которые формируются на основе пяти основных логических элементов: И, ИЛИ, И-НЕ, ИЛИ-НЕ и инвертора.
Отличительной чертой всех этих логических элементов является то, что они имеют только два рабочих состояния. Это ВКЛЮЧЕНО (1) или ВЫКЛЮЧЕНО (0). При соединении логических элементов между собой для формирования более сложных цепей необходимо получить наиболее простую цепь из всех возможных.
Булева алгебра предлагает метод представления сложных переключающих функций в форме уравнений. Булево выражение является уравнением, которое связывает состояние выхода логической цепи с состоянием ее входов. Диаграммы Вейча обеспечивают быстрый и легкий способ приведения логического уравнения к его простейшему виду.
Диаграммы Вейча обеспечивают быстрый и легкий метод приведения сложных выражений к их простейшей форме. Они могут быть составлены для двух, трех или четырех переменных. На рис. 33-1 изображено несколько диаграмм Вейча.
Рис. 33-1. Диаграммы Вейча для двух, трех и четырех переменных.
Для того, чтобы использовать диаграмму Вейча, выполните следующие шаги, которые иллюстрируются на примере.
1. Нарисуйте диаграмму, соответствующую числу переменных.
2. Нанесите на нее логические функции, отмечая их знаком X в соответствующем квадрате.
3. Для получения упрощенной логической функции объедините соседние квадраты, помеченные знаком X в группы по восемь, четыре или два. Продолжайте объединять до тех пор, пока не будут объединены все квадраты, помеченные знаком X.
4. Логически сложите слагаемые (объедините с помощью операции ИЛИ) от каждой петли, одно слагаемое на каждую петлю. (Каждое слагаемое извлекается из диаграммы Вейча и логически суммируется с другими, например ABC + BCD.)
5. Запишите упрощенное выражение.
ПРИМЕР: Упростите АВ + А-В + АВ-.
Шаг 1. Нарисуем диаграмму Вейча. Мы имеем две переменных А и В, поэтому используем таблицу для двух переменных.
Шаг 2. Нанесем логические функции, помечая их знаком X в соответствующем квадрате.
Шаг 3. Объединим соседние квадраты, помеченные знаком X, в наибольшие возможные группы. Проанализируем диаграмму — какая возможна наибольшая группа? Наибольшая возможная группа состоит из двух квадратов.
Одна из возможных групп показана штриховой линией.
Другая возможная группа на этой диаграмме показана штриховой линией.
Шаг 4. Логически сложим эти группы (операция ИЛИ):
или А, или В = А + В.
Шаг 5. Упрощенным выражением для АВ + А-В + АВ- = Y является А + В = Y, что получено из диаграммы Вейча.
ПРИМЕР: Найдите упрощенное выражение для
Шаг 1. Нарисуем диаграмму Вейча для трех переменных.
Шаг 2. Пометим знаком X логические функции каждого слагаемого на диаграмме Вейча.
Шаг 3. Объединим соседние квадраты в наибольшие возможные группы.
Шаг 4. Запишем слагаемые для каждой петли, одно слагаемое на каждую петлю: AB, B-C-
Шаг 5. Упрощенным выраженном является АВ + ВС- = Y.
Отметим необычное объединение двух нижних квадратов. Четыре угла диаграммы Вейча считаются связанными, как если бы диаграмма была свернута в шар.
ПРИМЕР: Найдите упрощенное выражение для:
Шаг 1. Нарисуем диаграмму Вейча для трех переменных.
Шаг 2. Пометим знаком X логические функции каждого слагаемого на диаграмме Вейча.
Шаг 3. Объединим соседние квадраты в наибольшие возможные группы.
Шаг 4. Запишем слагаемые для каждой петли, одно слагаемое на каждую петлю: A-D, AB-C-.
Шаг 5. Для получения упрощенного_выражения логически сложим полученные слагаемые: A-D + AB-C- = Y.
33-1. Вопросы
1. Какова функция диаграмм Вейча?
2. Сколько переменных может быть представлено на диаграмме Вейча?
3. Перечислите шаги при использовании диаграммы Вейча.
4. Упростите следующие выражения с помощью диаграмм Вейча.
а. AB-C + A-B-C + ABC- + AB-C- + A-B-C- = Y.
б. ABCD + AB-C-D + A-BCD- + A-B-C-D + AB-C-D + A-B-CD + ABC-D- = Y.
в. AB- + A-BD + B-C-D + B-C- + A-BC-D = Y.
РЕЗЮМЕ
• Диаграммы Вейча обеспечивают быстрый и легкий метод приведения сложных логических выражений к их простейшей форме.
• Диаграммы Вейча могут быть составлены для двух, трех или четырех переменных.
• Упрощенные логические выражения получаются из диаграмм Вейча путем объединения помеченных знаком X квадратов в группы из двух, четырех или восьми квадратов и последующего логического сложения объединенных выражений.
Глава 33. САМОПРОВЕРКА
1. Опишите процедуру использования диаграммы Вейча для упрощения логических выражений.
2. Упростите следующее Булево выражение с помощью диаграммы Вейча:
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Описать функции триггера.
• Перечислить основные типы триггеров.
• Нарисовать схематические обозначения триггеров.
• Описать, как триггеры используются в цифровых цепях.
• Описать, как работает счетчик и сдвиговый регистр.
• Перечислить различные типы счетчиков и сдвиговых регистров.
• Нарисовать схематические обозначения счетчиков и сдвиговых регистров.
• Перечислить применения счетчиков и сдвиговых регистров.
Последовательные логические цепи состоят из цепей, требующих синхронизации и устройств памяти. Основным строительным блоком для последовательных логических цепей являются триггеры. Триггеры могут быть соединены вместе и образовывать счетчики, сдвиговые регистры и устройства памяти.
Триггеры принадлежат к категории цифровых цепей, которые называются мультивибраторами. Мультивибратор — это цепь с положительной обратной связью, имеющая два активных устройства, рассчитанных таким образом, что одно устройство проводит ток, в то время как другое устройство закрыто. Мультивибраторы могут хранить двоичные числа, импульсы счета, синхронизировать арифметические операции и выполнять другие полезные функции в цифровых системах.
Существуют три типа мультивибраторов: бистабильные, моностабильные и астабильные. Бистабильные мультивибраторы называются триггерами.
Триггер — это бистабильный мультивибратор, на выходе которого может быть либо высокое, либо низкое напряжение, то есть либо 1, либо 0. На выходе триггера остается высокое или низкое напряжение до тех пор, пока на вход не будет подан пусковой сигнал.
Основным триггером является RS-триггер. Он образован двумя перекрестно-связанными элементами НЕ-ИЛИ или НЕ-И (рис. 34-1).
Рис. 34-1. Основная схема триггера.
RS-триггер имеет два выхода Q и Q- и два управляющих входа, R (Reset — сброс) и S (Set — установка). На выходах триггера уровни всегда противоположны или дополняющие: если Q = 1, то Q- = 0 и наоборот.
Для того чтобы понять работу цепи, предположим что выход Q, вход R и вход S имеют низкий уровень сигнала. Низкий уровень выхода Q связан с одним из входов элемента 2. На входе S также низкий уровень сигнала. На выходе элемента 2 высокий уровень. Этот высокий уровень связан со входом элемента 1, удерживая его выход на низком уровне. Когда на выходе Q появляется низкий уровень, говорят, что триггер находится в исходном состоянии (RESET). Он остается в этом состоянии неопределенно долго, до тех пор, пока на вход S элемента 2 не будет подан высокий уровень. Когда это произойдет, на выходе элемента 2 появится низкий уровень, а он связан со входом элемента 1. Поскольку на входе R элемента 1 низкий уровень, на его выходе низкий уровень изменится на высокий. Этот высокий уровень связан со входом элемента 2, обеспечивая на выходе Q- низкий уровень. Когда на выходе Q высокий уровень, говорят, что триггер находится в единичном (SET) состоянии. Он остается в этом состоянии до тех пор, пока на вход R не будет подан высокий уровень, переводящий триггер в исходное состояние.
«Недопустимое» или «неразрешенное» состояние имеет место, когда одновременно на оба входа, R и S,_подается высокий уровень. В этом случае выходы Q и Q- пытаются перейти в низкое состояние, но Q и Q- не могут быть одновременно в одинаковом состоянии без нарушения работы триггера. При одновременном отключении высокого уровня со входов R и S, оба выхода пытаются перейти в состояние с высоким уровнем. Поскольку всегда логические элементы немного отличаются друг от друга, то один из них перейдет в состояние с высоким уровнем раньше. Это заставит другой элемент перейти в состояние с низким уровнем. В этом случае имеет место непредсказуемый режим работы и, следовательно, состояние выходов триггера не может быть определено.
На рис. 34-2 изображена таблица истинности для работы RS-триггера. На рис. 34-3 изображено упрощенное схематическое обозначение RS-триггера.
Рис. 34-2. Таблица истинности для RS-триггера.
Рис. 34-3 Логическое обозначение RS-триггера.
Другим типом триггера является триггер с синхронизирующим входом. Он отличается от RS-триггера тем, что для его работы необходим дополнительный вход. Третий вход называется тактовым (или синхронизирующим) входом (CLK). На рис. 34-4 изображена логическая схема триггера с синхронизирующим входом. Сигнал высокого уровня на любом из входов входного блока триггера активизирует триггер, заставляя его изменить состояние. Входной блок, называемый «управляющим элементом», управляет или направляет тактовые импульсы на входы элементов триггера.
Рис. 34-4. Логическая схема тактируемого RS-триггера.
Триггер с синхронизирующим входом управляется логическими состояниями входов R и S при наличии тактового импульса. Изменение состояния триггера происходит только по переднему фронту тактового импульса. Передний фронт тактового импульса — это переход в положительном направлении (от низкого к высокому), что означает возрастание амплитуды импульса от нулевого напряжения до положительного значения. Это называется запуск по положительному фронту (фронту импульса, запускающему цепь).
Пока уровень на тактовом входе низкий, уровни входов R и S могут изменяться, не влияя на состояние триггера.
Входы R и S становятся чувствительными только в течение тактового импульса. Это называется синхронной работой. Триггер работает синхронно с тактовым сигналом.
Синхронная работа важна в компьютерах и калькуляторах, когда каждый шаг выполняется в определенном порядке. На рис. 34-5 изображен логический символ, используемый для обозначения тактируемого RS-триггера.
Рис. 34-5. Логическое обозначение тактируемого RS-триггера.
D-триггер полезен, когда должен быть сохранен только один бит данных (1 или 0). На рис. 34-6 изображена логическая схема D-триггера. Он имеет один вход для данных и вход для тактовых импульсов. D-триггер также называют триггером с задержкой. Вход D задерживает один тактовый импульс перед изменением уровня выхода (Q).
Рис. 34-6. Логическая схема и обозначение D-триггера.
Иногда D-триггер имеет вход PS (предустановка) и вход CLR (очистка). Когда на вход предустановки подан низкий уровень (0), он устанавливает выход Q в состояние 1. Когда на вход очистки подан 0, Q также устанавливается 0.
D-триггеры, соединенные вместе, образуют сдвиговые регистры и регистры памяти. Эти регистры широко используются в цифровых системах.
Наиболее широко используемый триггер — это JK-триггер. Он обладает всеми особенностями триггеров других типов. Логическая схема и обозначение JK-триггера показаны на рис. 34-7.
Рис. 34-7. Логическая схема и обозначение JK-триггера.
J и К — это входы. Важная особенность JK-триггера состоит в том, что при подаче на оба входа J и К высокого уровня сигнала, повторяющиеся тактовые импульсы заставляют выход переключаться или изменять состояние. Два асинхронных входа, PS (предустановка) и CLR (очистка), блокируют синхронные входы, входы данных J и К и вход тактовых импульсов. JK-триггеры широко используются во многих цифровых цепях, особенно в схемах счетчиков. Счетчики можно найти почти в каждой цифровой системе.
Защелка — это устройство, служащее временным буфером памяти. Оно используется для сохранения данных после удаления входного сигнала. D-триггер является хорошим примером защелки. Для защелки также могут быть применены другие типы триггеров.
Защелка используется на входах семисегментных индикаторов. Без защелки изображенная информация будет исчезать вместе с исчезновением входного сигнала. При наличии защелки информация сохранится на экране до тех пор, пока не будет обновлена.
На рис. 34-8 изображена 4-разрядная защелка.
Рис. 34-8. Четырехразрядная защелка.
Это устройство содержит 4 D-триггера, заключенных в один корпус интегральной микросхемы. Входы Е (разрешение) подобны тактовому входу D-триггера. Данные фиксируются, когда уровень на входе разрешения становится низким, то есть равным 0. Когда уровень на входе разрешения высокий, или 1, уровни выходов повторяют уровни входов. Это означает, что выход будет изменяться при любом изменении состояния входа; например, если на входе высокий уровень, то на выходе тоже появится высокий уровень; если на входе низкий уровень, то на выходе тоже появится низкий уровень. В таком состоянии защелка называется прозрачной.
34-1. Вопросы
1. Что такое триггер?
2. Каковы различные типы триггеров?
3. Что такое синхронизируемый триггер?
4. В чем отличие между асинхронным входом и синхронным входом?
5. Что такое защелка?
Счетчик — это логическая схема, способная считать последовательность чисел или состояний при активизации тактовым импульсом. Выход счетчика показывает двоичное число, хранящееся в счетчике в любой данный момент времени. Количество отсчетов, которое совершает счетчик перед возвращением в исходное состояние, называется коэффициентом счета счетчика.
Триггер может работать как простой счетчик, будучи соединенным, как показано на рис. 34-9.
Рис. 34-9. JK-триггер, установленный для счета.
Предположим, что сначала триггер находится в исходном состоянии. Тогда первый тактовый импульс установит его в единичное состояние (Q = 1). Второй тактовый импульс переведет триггер в исходное состояние (Q = 0). Поскольку триггер имеет два состояния, то он может определить только два уровня тактовых импульсов.
На рис. 34–10 изображена форма выходных импульсов триггера.
Рис. 34–10. Форма входных и выходных импульсов JK-триггера, установленного для счета.
Заметим, что уровень на выходе Q высокий (1) после каждого нечетного импульса, и низкий (0) после каждого четного импульса. Следовательно, когда на выходе высокий уровень, прошло нечетное количество импульсов. Когда на выходе низкий уровень, импульсов либо не было вообще, либо прошло их четное количество. Какой из этих случаев имел место — неизвестно.
Простой триггер имеет ограниченную последовательность счета, 0 и 1. Для увеличения емкости счетчика необходимы дополнительные триггеры. Максимальное количество двоичных состояний, которым может обладать счетчик, зависит от количества триггеров в счетчике. Оно может быть выражено следующей формулой:
N = 2n,
где N — максимальное количество состояний счетчика, n — количество триггеров в счетчике.
Двоичные счетчики делятся на две категории: асинхронные и синхронные, в зависимости от того, как используется последовательность тактовых импульсов.
Асинхронный означает неодновременный. По отношению к операциям счета асинхронность означает, что триггеры изменяют свое состояние неодновременно. Это обусловлено тем, что источник тактовых импульсов не соединен с тактовым входом каждого разряда. На рис. 34–11 изображен двухразрядный счетчик, соединенный для работы в асинхронном режиме. Каждый триггер счетчика называется разрядом.
Рис. 34–11. Двухразрядный счетчик.
Заметим, что выход Q- первого разряда связан с тактовым входом второго разряда. Второй разряд изменяет свое состояние только при изменении состояния выхода первого разряда. Вследствие задержки сигнала триггером, второй триггер изменяет свое состояние неодновременно с подачей тактового импульса. Следовательно, два триггера переключаются неодновременно, что является результатом асинхронного режима работы.
Асинхронные счетчики обычно называют счетчиками пульсаций. Входной тактовый импульс сначала принимает первый триггер. Второй триггер не реагирует на сигнал в тот же самый момент, вследствие его задержки первым триггером. В многоразрядном счетчике задержка имеет место на каждом триггере, так что влияние входного тактового импульса как бы «пульсирует» проходя через счетчик.
На рис. 34–12 изображен трехразрядный двоичный счетчик и графики синхронизации для каждого разряда. Для отображения счетной последовательности приведена таблица истинности.
Рис. 34–12. Трехразрядный двоичный счетчик.
Синхронный означает одновременный. Синхронный счетчик — это счетчик, в котором все разряды получают тактовый импульс одновременно, что достигается параллельным соединением их тактовых входов (рис. 34–13).
Рис. 34–13. Двухразрядный синхронный счетчик.
Синхронный счетчик также называют параллельным счетчиком, так как тактовые входы всех триггеров соединены параллельно.
Синхронный счетчик работает следующим образом. Сначала счетчик устанавливается в исходное состояние, при этом оба триггера имеют на выходе состояние 0. Когда подается первый тактовый импульс, первый триггер переключается, и на его выходе появляется высокий уровень сигнала. Второй триггер не переключается вследствие задержки между подачей входного сигнала и реальным изменением состояния выхода. Следовательно, выходное состояние второго триггера не изменяется. Когда подается второй тактовый импульс, первый триггер переключается, и на его выходе появляется низкий уровень. Поскольку на входе второго триггера был высокий уровень, он переключается, и на его выходе появляется высокий уровень. После четырех тактовых импульсов счетчик вернется в исходное состояние. На рис. 34–14 изображена временная диаграмма работы двухразрядного синхронного счетчика для четырех тактовых импульсов.
Рис. 34–14. Форма входных и выходных импульсов двухразрядного синхронного счетчика.
На рис. 34–15 изображен трехразрядный двоичный счетчик и временная диаграмма его работы. На рис. 34–16 изображен четырехразрядный двоичный счетчик и его логическое обозначение.
Рис. 34–15. Трехразрядный двоичный счетчик и временная диаграмма.
Рис. 34–16. Логическая схема и обозначение четырехразрядного синхронного счетчика.
Одним из применений счетчиков является деление частоты. Простой триггер выдает один импульс на каждые два входных импульса. Следовательно, он является устройством для деления на 2, выходная частота которого вдвое меньше входной. Двухразрядный двоичный счетчик является устройством деления на 4, выходная частота которого вчетверо меньше входной тактовой частоты. Четырехразрядный двоичный счетчик является устройством деления на 16, выходная частота которого в 16 раз меньше входной тактовой частоты (рис. 34–17).
Рис. 34–17. Счетчик в качестве делителя частоты.
Двоичный счетчик с п разрядами делит тактовую частоту на 2n. Трехразрядный счетчик делит тактовую частоту на 8 (23), четырехразрядный на 16 (24), пятиразрядный на 32 (25) и т. д. Заметим, что коэффициент счета счетчика равен коэффициенту деления частоты.
Десятичные счетчики имеют коэффициент счета, равный десяти или десять состояний в последовательности счета. Обычным десятичным счетчиком является двоично-десятичный счетчик, выдающий последовательность в двоично-десятичном коде (рис. 34–18). Элементы И и ИЛИ регистрируют появление девятого состояния и возвращают счетчик в исходное состояние к началу следующего тактового импульса. На рис. 34–19 изображено логическое обозначение десятичного счетчика.
Рис. 34–18. Синхронный двоично-десятичный счетчик.
Рис. 34–19. Логическое обозначение десятичного счетчика.
Реверсивный счетчик может считать в любом направлении в пределах заданной последовательности. Его также называют двунаправленным счетчиком. Направление счета можно изменить на обратное в любой точке последовательности счета. Его обозначение показано на рис. 34–20.
Рис. 34–20. Логическое обозначение реверсивного счетчика.
На рис. 34–21 показана логическая схема реверсивного двоично-десятичного счетчика. Входы JK-триггеров управляются входом переключения направления счета через логические элементы.
Рис. 34–21. Логическая схема двоично-десятичного реверсивного счетчика.
Счетчики могут быть остановлены после любой счетной последовательности с помощью логического элемента или комбинации логических элементов. С выхода логического элемента подается обратная связь на вход первого триггера в счетчике пульсаций. Если обратная связь подает 0 на вход JK первого триггера (рис. 34–22), то это препятствует переключению первого триггера и, следовательно, останавливает счет.
Рис. 34–22. Низкий уровень, поданный на вход JK первого триггера, препятствует его переключению и останавливает счет.
34-2. Вопросы
1. Для чего служит счетчик?
2. Каков размер счетной последовательности восьмиразрядного счетчика?
3. Как работает асинхронный счетчик?
4. Чем синхронный счетчик отличается от асинхронного счетчика?
5. Как можно остановить счетчик в любой момент счета?
Сдвиговый регистр — это последовательная логическая цепь, широко используемая для временного хранения данных. Данные могут быть загружены в сдвиговый регистр и удалены оттуда либо в параллельной, либо в последовательной форме. На рис. 34–23 показаны четыре различных метода загрузки и чтения данных в сдвиговом регистре. Благодаря их способности перемещать данные по одному биту из одного места хранения в другое, сдвиговые регистры полезны при выполнении различных логических операций.
Рис. 34–23. Методы загрузки и чтения данных в сдвиговом регистре.
Сдвиговые регистры состоят из соединенных между собой триггеров. Триггеры обладают всеми функциями, необходимыми для регистра: их можно установить в исходное состояние, предустановить, переключить или управлять уровнями 1 или 0. На рис. 34–24 изображен основной сдвиговый регистр, состоящий из четырех триггеров. Он называется четырехразрядным сдвиговым регистром, так как состоит из четырех двоичных элементов хранения информации.
Рис. 34–24. Сдвиговый регистр, составленный из четырех триггеров.
Важной особенностью сдвигового регистра является то, что он может перемещать данные вправо и влево по отношению к исходному положению разрядов. Это эквивалентно умножению или делению записанного числа на определенный множитель. Данные сдвигаются на один разряд при подаче каждого тактового импульса. Тактовые импульсы полностью управляют работой сдвигового регистра.
На рис. 34–25 изображен типичный 4-разрядный сдвиговый регистр, состоящий из JK-триггеров.
Рис. 34–25. Типичный сдвиговый регистр, составленный из JK-триггеров.
Последовательные данные и их дополнения подаются на JK входы триггера А. Остальные триггеры соединены каскадно, то есть выходы одного подсоединены ко входам следующего. Переключатели всех триггеров соединены вместе, и по этой линии подаются тактовые импульсы. Поскольку все триггеры переключаются одновременно — цепь является синхронной. Кроме того, входы очистки каждого триггера соединены вместе и образуют линию сброса. Данные, поданные на вход, сдвигаются триггерами на один разряд по каждому тактовому импульсу. Например, если на вход сдвигового регистра подано двоичное число 1011, и подан сдвиговый импульс, то число, записанное в сдвиговом регистре, выдвигается на один разряд и теряется, тогда как новое число вдвигается на один разряд. На рис. 34–26 показана последовательность совершаемых действий при записи числа в сдвиговый регистр.
Рис. 34–26. Хранение числа в сдвиговом регистре.
Одним из наиболее частых применений сдвигового регистра является преобразование данных из последовательной формы представления в параллельную, и наоборот. На рис. 34–27 показано как данные в параллельном коде могут быть загружены в сдвиговый регистр. Для работы с данными в параллельном коде входные данные предустанавливаются в сдвиговом регистре. Когда данные находятся в сдвиговом регистре, они могут быть последовательно выдвинуты, как было описано ранее.
Рис. 34–27. Загрузка данных в сдвиговый регистр при использовании параллельного входа.
Для преобразования данных из последовательной формы представления в параллельную, они сначала помещаются в сдвиговый регистр с помощью тактовых импульсов.
Когда данные находятся в сдвиговом регистре, выходы отдельных триггеров контролируются одновременно, и данные направляются по назначению.
Сдвиговые регистры могут выполнять арифметические операции, такие как умножение или деление. Сдвиг двоичного числа, хранящегося в сдвиговом регистре, вправо, дает такой же эффект, что и деление этого числа на некоторую степень 2. Сдвиг двоичного числа, хранящегося в сдвиговом регистре, влево, дает такой же эффект, что и умножение этого числа на некоторую степень 2. Сдвиговые регистры предоставляют простой и недорогой способ выполнения умножения и деления чисел.
Сдвиговые регистры часто используются для временного хранения данных. Сдвиговые регистры, используемые для хранения данных, способны хранить одно или более двоичных слов. Для сдвиговых регистров, применяемых для этих целей, существуют три требования: во-первых, он должен быть в состоянии принимать и хранить данные, во-вторых, быть способен находить и читать эти данные по команде и, в-третьих, когда данные прочитаны, они не должны быть потеряны. На рис. 34–28 изображены внешние цепи, позволяющие сдвиговому регистру читать и обслуживать данные, хранящиеся в нем. Когда на линии чтения/записи высокий уровень, она позволяет поместить в сдвиговый регистр новые данные. После того, как данные помещены в регистр, уровень на линии чтения/записи становится низким, открывая элемент 2, позволяющий данным перезаписаться во время их чтения.
Рис. 34–28. Внешние цепи сдвигового регистра для обслуживания и чтения данных.
34-3. Вопросы
1. Каковы функции сдвигового регистра?
2. Что является важной особенностью сдвигового регистра?
3. Из каких логических элементов состоят сдвиговые регистры?
4. Где чаще всего применяются сдвиговые регистры?
5. Какие арифметические операции может выполнять сдвиговый регистр, и как он их выполняет?
РЕЗЮМЕ
• Триггер — это бистабильный мультивибратор, на выходе которого может быть либо низкий, либо высокий уровень сигнала.
• Триггеры бывают следующих типов:
а. RS;
б. тактируемый RS;
в. D;
г. JK.
• Триггеры используются в цифровых цепях в качестве счетчиков.
• Защелка — это временный буфер памяти.
• Счетчик — это логическая цепь, которая может считать последовательность чисел или состояний.
• Один триггер может сосчитать последовательность из двух чисел, 0 и 1.
• Максимальное число двоичных состояний счетчика может зависеть от количества триггеров, содержащихся в счетчике.
• Счетчики могут быть либо синхронными, либо асинхронными.
• Асинхронные счетчики называют счетчиками пульсаций.
• Синхронные счетчики тактируют все каскады одновременно.
• Сдвиговые регистры используются для временного хранения данных.
• Сдвиговые регистры состоят из соединенных вместе триггеров.
• Сдвиговые регистры могут перемещать данные влево или вправо.
• Сдвиговые регистры используются для преобразования данных из последовательной формы представления в параллельную, и наоборот.
• Сдвиговые регистры могут выполнять умножение и деление.
Глава 34. САМОПРОВЕРКА
1. Опишите, как RS-триггер изменяет состояния с высокого на выходе Q на высокое на выходе Q-.
2. В чем главное отличие D-триггера от тактируемого RS-триггера?
3. Из каких компонентов состоит счетчик, и как он сконструирован?
4. Нарисуйте схему счетчика, который считает до 10 и после этого повторяет счет.
5. Чем сдвиговый регистр отличается от счетчика?
6. Какие функции выполняет и для чего может использоваться сдвиговый регистр?
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Описать функции шифраторов, дешифраторов, мультиплексоров, сумматоров, вычитающих устройств и компараторов.
• Различать схематические обозначения шифраторов, дешифраторов, мультиплексоров, сумматоров, вычитающих устройств и компараторов.
• Перечислить применения комбинационных логических схем.
• Начертить таблицы истинности для различных комбинационных логических схем.
Комбинационные логические схемы — это схемы, состоящие из комбинаций элементов И, ИЛИ, инверторов и образующие более сложные схемы. Выход комбинационных логических схем является функцией состояний их входов, типов использованных элементов и их соединений между собой. Наиболее часто встречающимися комбинационными логическими схемами являются шифраторы, дешифраторы, мультиплексоры и арифметические схемы.
Шифратор — это комбинационная логическая схема, имеющая один или более входов и создающая многоразрядный двоичный выход. Шифрование — это процесс преобразования любого символа клавиатуры или числа, поданного на вход в кодированный выход в двоичном или двоично-десятичном коде.
На рис. 35-1 изображен десятично-двоичный шифратор, называемый шифратором на «4». Его функция состоит в преобразовании отдельной цифры (от 0 до 9), поданной на вход, в четырех разрядный двоичный код на выходе. Это означает, что если на клавиатуре нажата цифра 4, то на вход 4 будет подан высокий уровень, или 1, а на выходе появится 4-разрядный код 0100.
Рис. 35-1. Десятично-двоичный шифратор.
На рис. 35-2 изображен десятично-двоичный приоритетный шифратор. Функция приоритета означает, что если две клавиши нажаты одновременно, то шифратор выдаст двоично-десятичный код, соответствующий большей десятичной цифре. Например, если на шифратор подать одновременно цифры 2 и 5, то он выдаст двоично-десятичный код 0101, соответствующий цифре 5. Шифраторы этого типа встроены в одну интегральную микросхему и состоят примерно из 30 логических элементов.
Рис. 35-2. Десятично-двоичный шифратор с приоритетом.
На рис. 35-3 изображено логическое обозначение шифратора с приоритетом. Шифраторы этого типа используются для преобразования десятичных чисел с клавиатуры в двоично-десятичный код 8421. Десятично-двоичный шифратор и десятично-двоичный приоритетный шифратор всегда можно найти там, где есть ввод с клавиатуры. Это калькуляторы, клавиатуры компьютеров, электронные пишущие машинки и телетайпы.
Рис. 35-3. Логическое обозначение десятично-двоичного шифратора с приоритетом.
35-1. Вопросы
1. Что такое шифрование?
2. Что делает шифратор?
3. В чем разница между обычным шифратором и приоритетным шифратором?
4. Нарисуйте логическое обозначение десятично-двоичного приоритетного шифратора.
5. Где применяются десятично-двоичные шифраторы?
Дешифратор — это одна из наиболее используемых комбинационных логических схем. Он преобразует сложный двоичный код в распознаваемую цифру или символ.
Например, он может дешифровать число в двоично-десятичном коде в одну из десяти возможных десятичных цифр. Выход такого дешифратора используется для работы цифрового отсчета или дисплея. Дешифратор этого типа называется дешифратор 1 на 10 или дешифратор 4 линии-на 10-линий.
На рис. 35-4 изображены десять элементов НЕ-И, требующихся для дешифрации 4-разрядного числа в двоично-десятичном коде в десятичную цифру. Когда на всех входах элемента НЕ-И высокий уровень, на его выходе 0. На всех других выходах элементов НЕ-И дешифратора — высокие уровни. Для того, чтобы каждый раз не рисовать все логические элементы цепи, используется обозначение, показанное на рис. 35-5.
Рис. 35-4. Двоично-десятичный дешифратор.
Рис. 35-5. Логическое обозначение двоично-десятичного дешифратора.
Два других типа дешифраторов — это дешифратор с восемью выходами и дешифратор с шестнадцатью выходами (рис. 35-6).
Рис. 35-6. Логические обозначения дешифраторов 1 на 8 (А) и 1 на 16 (Б).
Дешифратор с восемью выходами преобразует входное трехразрядное слово в напряжение на одном из восьми выходов. Дешифратор с шестнадцатью выходами преобразует входное четырехразрядное слово в напряжение на одном из шестнадцати выходов. Его также называют дешифратор 4 линии-на-10-линий.
Специальным типом дешифратора является дешифратор стандартного двоично-десятичного кода в коды семисегментного индикатора. Он преобразует двоично-десятичный код в специальный 7-разрядный код, обеспечивающий работу семисегментного индикатора, отображающего десятичные цифры (рис. 35-7).
Рис. 35-7. Конфигурация семисегментного индикатора.
Индикатор состоит из семи светодиодных сегментов, которые загораются в различных комбинациях, отображая каждую из десяти десятичных цифр, от 0 до 9 (рис. 35-8).
Рис. 35-8. Использование семисегментного индикатора для отображения десятичных цифр.
Кроме семисегментных светодиодных индикаторов существуют индикаторы накаливания, люминесцентные и жидкокристаллические индикаторы.
Работа каждого из этих индикаторов основана на одном принципе. Сегмент активируется либо высоким, либо низким уровнем напряжения. На рис. 35-9 изображены два типа светодиодных индикаторов: с общим анодом и с общим катодом. В каждом случае светодиодный сегмент должен быть смещен в прямом направлении для того, чтобы он излучал свет. В случае с общим катодом, при высоком уровне (1) сегмент светится, а при низком (0) — нет.
Рис. 35-9. Два различных типа светодиодных индикаторов.
На рис. 35–10 изображена декодирующая логическая цепь, преобразующая двоично-десятичный код в код семисегментного индикатора. Обращаясь к рис. 35-7, заметим, что сегмент а светится для цифр 0, 2, 3, 5, 7, 8 и 9; сегмент b светится для цифр 0, 1,2, 3, 4, 7, 8 и 9 и т. д. Для определения логической схемы, необходимой для зажигания каждого сегмента дисплея, могут быть записаны выражения Булевых функций. Логическое обозначение дешифратора двоично-десятичного кода в код семисегментного индикатора изображено на рис. 35–11, — это цепь, содержащая в интегральной микросхеме.
Рис. 35–10. Дешифратор двоичного кода в код семисегментного индикатора.
Рис. 35–11. Логическое обозначение дешифратора двоично-десятичного кода в код семисегментного индикатора.
35-2. Вопросы
1. Что такое дешифратор?
2. Для чего используются дешифраторы?
3. Нарисуйте логическое обозначение дешифратора 1 на 10.
4. Для чего предназначен дешифратор двоично-десятичного кода в код семисегментного индикатора?
5. Какие коды могут использоваться в дешифраторах?
Мультиплексор — это цепь, используемая для выбора и передачи на выход одного из нескольких входных сигналов. Например, неэлектронным мультиплексором является однополюсный многопозиционный переключатель (рис. 35–12).
Рис. 35–12. Однополюсный, многопозиционный переключатель, используемый в качестве мультиплексора в неэлектронных цепях.
Многопозиционные переключатели широко используются в электронных цепях. Однако в цепях, работающих с высокими скоростями, требуются мультиплексоры для автоматического выбора и высокоскоростного переключения.
Механическое переключение не может удовлетворительно выполнить эту задачу. Следовательно, мультиплексоры, используемые для выполнения высокоскоростного переключения, должны состоять из электронных компонентов.
Мультиплексоры имеют дело с данными двух типов: аналоговыми и цифровыми. Мультиплексоры для аналоговых сигналов состоят из реле и транзисторных ключей.
Мультиплексоры для цифровых сигналов состоят из стандартных логических элементов.
Цифровые мультиплексоры позволяют направлять цифровые данные от отдельных источников в общую линию для передачи по назначению. Типичный мультиплексор имеет несколько входов и один выход. Входы мультиплексора активируются входом выбора данных, определяющих вход, по которому данные будут приниматься. На рис. 35–13 изображена логическая схема восьмивходового мультиплексора. Заметим, что мультиплексор имеет три линии управления входами, обозначенные А, В и С. Путем подачи соответствующего двоичного кода на линии управления, может быть выбран любой из восьми входов.
Рис. 35–13. Логическая схема восьмивходового мультиплексора.
Обозначение цифрового мультиплексора показано на рис. 35–14.
Рис. 35–14. Логическое обозначение восьмивходового мультиплексора.
На рис. 35–15 изображено обозначение 16-входового мультиплексора. Заметим, что мультиплексор имеет четыре линии управления для активации шестнадцати входов данных.
Рис. 35–15. Логическое обозначение шестнадцативходового мультиплексора.
Кроме селекции потоков данных, мультиплексоры широко используются для преобразования данных из параллельного кода в последовательный. Двоичное слово, представленное параллельным кодом, подается на вход мультиплексора. Подавая на управляющие входы последовательность разрешающих кодов, можно получить на выходе последовательное представление параллельного двоичного слова, поданного на вход.
На рис. 35–16 изображена схема преобразования данных из параллельного кода в последовательный с помощью мультиплексора. Трехразрядное двоичное слово со счетчика используется для выбора нужного входа. Параллельное восьмиразрядное слово подается на вход мультиплексора.
При увеличении двоичного числа на выходе счетчика последовательно выбираются входы мультиплексора. На выходе мультиплексора появляется последовательное двоичное слово, равное параллельному, поданному на вход.
Рис. 35–16. Использование мультиплексора для преобразования данных, представленных параллельным кодом, в последовательный.
35-3. Вопросы
1. Что такое мультиплексор?
2. Как используются мультиплексоры?
3. Нарисуйте логическую схему мультиплексора?
4. С данными каких типов имеют дело мультиплексоры?
5. Как использовать мультиплексор для преобразования данных из параллельного кода в последовательный?
Сумматор
Сумматор — это главный вычислительный элемент цифрового компьютера. Компьютер выполняет всего несколько подпрограмм, в которых не используется сумматор. Сумматоры рассчитаны на работу либо в параллельных, либо в последовательных цепях. Поскольку параллельный сумматор работает быстрее и используется чаще, он будет рассмотрен более детально.
Для того чтобы понять, как работает сумматор, необходимо вспомнить правила сложения:
На рис. 35–17 изображена таблица истинности, основанная на этих правилах. Заметим, что греческая буква сигма (Σ) используется для обозначения суммы столбца. Столбец переноса обозначен С0. Эти обозначения используются в промышленности при описании сумматора.
Рис. 35–17. Таблица истинности, составленная с помощью правил сложения.
Столбец суммы в таблице истинности совпадает со столбцом выхода в таблице истинности для элемента исключающее ИЛИ (рис. 35–18). Столбец переноса совпадает со столбцом выхода в таблице истинности для элемента И (рис. 35–19).
Рис. 35–18. Таблица истинности для элемента исключающее ИЛИ.
Рис. 35–19. Таблица истинности для элемента И.
На рис. 35–20 изображены элементы И и исключающее ИЛИ, соединенные параллельно для того, чтобы обеспечить логическую функцию, необходимую для одноразрядного сложения. Выход переноса (С0) обеспечивается элементом И, а выход суммы (Σ) обеспечивается элементом исключающее ИЛИ. Входы А и В соединены со входами элемента И и элемента исключающее ИЛИ. Таблица истинности для этой цепи такая же, как и таблица истинности, полученная с использованием правил двоичного сложения (рис. 35–17).
Рис. 35–20. Схема полусумматора.
Поскольку эта цепь не учитывает какие-либо переносы, она называется полусумматором. Он может быть использован в качестве сумматора младшего разряда при сложении двоичных чисел.
Сумматор, учитывающий перенос, называется полным сумматором. Полный сумматор имеет три входа и выходы для суммы и переноса. На рис. 35–21 приведена таблица истинности для полного сумматора. Вход C1 — это вход переноса. Выход С0 — это выход переноса.
Рис. 35–21. Таблица истинности для полного сумматора.
На рис. 35–22 изображен полный сумматор, составленный из двух полусумматоров. Выходы обоих полусумматоров поданы на входы элемента ИЛИ для получения выхода переноса. На выходе переноса будет 1, если на обоих входах либо первого, либо второго элемента исключающее ИЛИ также будут высокие уровни. На рис. 35–23 показаны обозначения полусумматора и полного сумматора.
Рис. 35–22. Логическая схема полного сумматора, использующая два полусумматора.
Рис. 35–23. Логические обозначения полусумматора (А) и полного сумматора (Б).
Отдельный полный сумматор способен сложить два одноразрядных числа и вход переноса. Для сложения двоичных чисел, имеющих более одного разряда, необходимо использовать дополнительные сумматоры. Вспомним, что когда одно двоичное число складывается с другим, каждый складываемый столбец дает сумму и перенос 0 или 1 в столбец следующего разряда. Для сложения двух двоичных чисел требуется полный сумматор для каждого столбца. Например, для сложения двухразрядного числа с другим двухразрядным числом необходимы два сумматора.
Трехразрядные числа требуют трех сумматоров, четырехразрядные — четырех и т. д. Перенос, создаваемый каждым сумматором, подается на вход сумматора следующего высшего разряда. Поскольку для младшего разряда перенос не требуется, для него используется полусумматор.
На рис. 35–24 изображен 4-разрядный параллельный сумматор.
Рис. 35–24. Четырехразрядный параллельный сумматор.
Входные биты младшего разряда обозначены А0 и В0. Биты следующего разряда обозначены А1 и В1 и т. д. Биты выходной суммы обозначены Σ0, Σ1, Σ2 и т. д. Заметим, что выход переноса каждого сумматора соединен со входом переноса сумматора следующего разряда. Выход переноса последнего сумматора является старшим разрядом результата.
Вычитающее устройство
Вычитающее устройство позволяет вычитать два двоичных числа. Для того чтобы, понять, как работает вычитающее устройство, необходимо вспомнить правила вычитания.
На рис. 35–25 приведена таблица истинности, основан нал на этих правилах. Буква D обозначает столбец разности. Столбец заема обозначен буквой В0.
Рис. 35–25. Таблица истинности, составленная с помощью правил вычитания.
Заметим, что на выходе разности (D) высокий уровень появляется только тогда, когда входные переменные не равны. Следовательно, разность может быть выражена как исключающее ИЛИ входных переменных. Заем выхода появляется только тогда, когда на А подан 0, а на В подана 1. Следовательно, выход заема является дополнительным к элементу А ИЛИ В.
На рис. 35–26 изображена логическая схема полувычитателя. Она имеет два входа и выдает разность и выход заема. Разность создается элементом исключающее ИЛИ, а выход заема создается элементом И со входами А- и В. Вход А получен путем включения инвертора перед входом А- элемента И.
Рис. 35–26. Логическая схема полувычитателя.
Однако полувычитатель не имеет входа заема. Вход заема имеет полный вычитатель. Он имеет три входа и создает разность и выход заема. Логическая схема и таблица истинности полного вычитателя изображены на рис. 35–27. На рис. 35–28 изображены обозначения полувычитателя и полного вычитателя.
Рис. 35–27. Логическая схема (А) и таблица истинности (Б) для полного вычитателя.
Рис. 35–28. Логические обозначения полу вычитателя (А) и полного вычитателя (Б).
Полный вычитатель может работать только с двумя одноразрядными числами. Для того чтобы вычитать двоичные числа, имеющие большее число разрядов, должны использоваться дополнительные полные вычитатели. Вспомним, что если из 0 вычитать 1, то надо сделать заем из столбца высшего соседнего разряда. Выход заема вычитателя низшего разряда становится входом заема вычитателя высшего соседнего разряда.
На рис. 35–29 изображена блок-схема 4-разрядного вычитателя. В младшем разряде используется полувычитатель, поскольку там не нужен вход заема.
Рис. 35–29. Четырех разрядный вычитатель.
Компаратор
Компаратор используется для сравнения величин двух двоичных чисел. Схема определяет, равны два числа или нет. Компаратор не только сравнивает два двоичных числа, но также определяет какое из них больше, а какое меньше.
На рис. 35–30 приведена таблица истинности для компаратора.
Рис. 35–30. Таблица истинности для компаратора.
Когда оба сравниваемых бита одинаковы на выходе компаратора появляется высокий уровень. Столбец выхода представляет собой выход элемента исключающее ИЛИ с инверсией, также известное, как исключающее ИЛИ-HE. Элемент исключающее ИЛИ-HE по существу является компаратором, так как на его выходе появляется 1 только тогда, когда на оба входа поданы 1. Для сравнения чисел, имеющих 2 разряда и более необходимы дополнительные элементы исключающее ИЛИ-HE. На рис. 35–31 изображена логическая схема компаратора для сравнения двух 2-разрядных чисел.
Рис. 35–31. Сравнение двух 2-разрядных чисел.
Если числа равны, на выходе элемента исключающее ИЛИ-HE появляется 1. Эта 1 подается на элемент И, как указательный уровень. Если оба элемента исключающее ИЛИ-HE выдают 1 на входы элемента И, то, следовательно, числа равны, и на выходе элемента И также появляется 1. Если же на входах элемента исключающее ИЛИ-HE различные уровни, то элемент исключающее ИЛИ-HE выдает на выходе 0, и на входе элемента И также будет 0. На рис. 35–32 изображена логическая схема компаратора для сравнения двух 4-разрядных чисел. На рис. 35–33 показано обозначение 4-разрядного компаратора.
Рис. 35–32. Сравнение двух 4-разрядных чисел.
Рис. 35–33. Обозначение 4-разрядного компаратора.
35-4. Вопросы
1. Каковы правила сложения двоичных чисел?
2. В чем разница между полусумматором и полным сумматором?
3. Где используется полусумматор?
4. Каковы правила вычитания двоичных чисел?
5. Нарисуйте блок-схему 4-разрядного вычитателя.
6. В чем состоит функция компаратора?
7. Нарисуйте логическую схему компаратора.
РЕЗЮМЕ
• Шифратор имеет один или более входов и создает на выходе многоразрядный двоичный код.
• Десятично-двоичный шифратор преобразует отдельную цифру (от 0 до 9) в четырехразрядный двоичный код, представляющий эту цифру.
• Шифратор с приоритетом выдает код клавиши, соответствующей большей цифре, при одновременном нажатии двух клавиш.
• Десятично-двоичные шифраторы используются для кодировки сигналов от клавиатуры.
• Дешифратор преобразует сложный двоичный код в легко распознаваемые цифры или символы.
• Дешифратор двоично-десятичного кода — это дешифратор специального назначения, предназначенный для управления семисегментными индикаторами.
• Мультиплексор позволяет направлять цифровые данные от отдельных источников в общую линию для передачи по назначению.
• Мультиплексоры могут работать как с аналоговыми, так и с цифровыми данными.
• Мультиплексоры могут использоваться для преобразования данных, представленных параллельным кодом, в последовательный код.
• Таблица истинности для правил сложения двоичных чисел эквивалентна таблице истинности для элемента И и для элемента исключающее ИЛИ.
• Полусумматор не учитывает перенос в старший разряд.
• Полный сумматор учитывает перенос в старший разряд.
• Для сложения двух 4-разрядных чисел требуются три полных сумматора и один полусумматор.
• Таблица истинности для правил вычитания двоичных чисел эквивалентна таблице истинности для элемента И с инвертором на одном из входов и для элемента исключающее ИЛИ.
• Полувычитатель не имеет входа заема.
• Полный вычитатель имеет вход заема.
• Компаратор используется для сравнения величин двух двоичных чисел.
• На выходе компаратора появляется высокий уровень только тогда, когда два сравниваемых разряда одинаковы.
• Компаратор может также определить, какое из сравниваемых чисел больше, а какое меньше.
Глава 35. САМОПРОВЕРКА
1. Почему в логических цепях необходимы шифраторы?
2. Какой шифратор требуется для ввода данных с клавиатуры?
3. Почему в логических цепях необходимы дешифраторы?
4. Как применяются дешифраторы различных типов?
5. Кратко опишите работу цифрового мультиплексора.
6. Где могут использоваться цифровые мультиплексоры?
7. С помощью логических обозначений нарисуйте схему, содержащую полусумматор и сумматор, соединенные вместе для сложения 2-разрядных чисел.
8. Объясните, как работает сумматор, описанный в вопросе 7.
ЦЕЛИ
После изучения этой главы студент должен быть в состоянии:
• Перечислить основные блоки компьютера.
• Объяснить назначение каждого блока компьютера.
• Описать программу и объяснить, как она связана с компьютерами и микропроцессорами.
• Перечислить основные регистры микропроцессора.
• Объяснить, как работает микропроцессор.
• Перечислить группы команд, связанных с микропроцессорами.
Наибольшее применение цифровые цепи и сигналы находят в компьютерах. Компьютер — это устройство, автоматически обрабатывающее данные в цифровом виде с помощью цифровой техники. Обработка данных означает проведение различных операций с ними.
Компьютеры классифицируются по размерам и вычислительной мощности. Самые мощные компьютеры называются мэйнфреймами[4]. Они дороги, но имеют большую память и высокую скорость вычислений. Самые маленькие компьютеры — миникомпьютеры и микрокомпьютеры — более доступны и широко используются. Микрокомпьютер — это наименьший и наименее дорогой из компьютеров, еще сохраняющий все свойства и характеристики компьютера.
Компьютеры классифицируются по назначению. Основное их назначение — обработка данных. В промышленности, бизнесе и других областях компьютеры используют для хранения данных, бухгалтерского учета, складского учета и для других самых различных функций.
Компьютеры могут быть общего и специального назначения. Компьютеры общего назначения очень гибкие и могут быть запрограммированы для решения любых задач.
Компьютеры специального назначения рассчитаны на выполнение определенной задачи.
Все цифровые компьютеры состоят из пяти основных блоков: блока управления, арифметико-логического устройства (АЛУ), памяти, ввода и вывода (рис. 36-1).
Рис. 36-1. Основные блоки компьютера.
В некоторых случаях блоки ввода и вывода объединены в один блок, называемый блоком ввода-вывода. Так как блок управления и арифметико-логический блок тесно связаны между собой и их трудно отделить друг от друга, их вместе можно назвать центральным процессором (CPU) или микропроцессорным блоком.
Блок управления дешифрует каждую команду, поступающую в компьютер. После этого он выдает импульсы, необходимые для выполнения указанных функций. Если, например, команда требует сложить два числа, блок управления посылает импульсы в арифметико-логическое устройство (АЛУ) для выполнения сложения. Если команда требует запомнить слово в памяти, блок управления посылает необходимые импульсы в память для того, чтобы сохранить данные.
Современные компьютеры обладают способностью объединять несколько команд в одну. Это осуществляется с помощью программы, хранящейся в памяти. Когда команда дешифрована блоком управления, эта программа выдает последовательность инструкций для ее выполнения.
Блоки управления различных компьютеров отличаются друг от друга. В основном, блок управления состоит из индексного регистра, регистра команд, дешифратора команд, счетчика команд, генератора тактовых импульсов и схемы формирования импульсов управления (рис. 36-2).
Рис. 36-2. Блок управления компьютера.
Регистр команд запоминает командное слово, которое должно быть дешифровано. Это слово дешифруется дешифратором команд, посылающим соответствующий логический сигнал в генератор импульсов управления. Генератор импульсов управления выдает импульс при поступлении соответствующего тактового импульса. Выходной импульс генератора импульсов управления позволяет другой цепи в компьютере выполнить заданную команду.
Счетчик команд отслеживает последовательность команд, которые должны быть выполнены. Команды хранятся в программе, хранящейся в памяти. Для того чтобы программа начала выполняться, в счетчик команд помещается начальный адрес программы (определенное место в памяти).
Первая команда вызывается из памяти, дешифруется и выполняется. После этого счетчик команд автоматически перемещается к адресу следующей команды. Каждый раз, когда команда вызывается и выполняется, счетчик команд продвигается на один шаг до тех пор, пока программа не будет завершена.
Некоторые команды задают переход в другое место программы. Регистр команд содержит адрес расположения следующей команды, и он загружается в индексный регистр.
АЛУ выполняет операции, связанные с математической логикой и принятием решений. Большинство арифметико-логических устройств могут делать сложение и вычитание.
Умножение и деление программируются в блоке управления. Арифметико-логическое устройство может выполнять логические операции, такие как инверсия, И, ИЛИ и исключающее ИЛИ. Оно может также принимать решения путем сравнения заданных чисел с 0, 1 или отрицательными числами.
На рис. 36-3 изображена блок-схема арифметико-логического устройства. Оно состоит из арифметико-логической цепи и накапливающего регистра.
Рис. 36-3. Арифметико-логическое устройство (АЛУ).
Все данные в арифметико-логическую цепь и накапливающий регистр посылаются через регистр данных. Содержимое накапливающего регистра может быть увеличено на 1, уменьшено на 1, сдвинуто вправо на одну позицию или влево на одну позицию. Накапливающий регистр имеет такой же размер, как и слово памяти; в 8-разрядном микропроцессоре слово памяти и накапливающий регистр имеют размер 8 бит.
Арифметико-логическая цепь является, главным образом, двоичным сумматором. Двоичный сумматор может производить сложение, вычитание и логические операции.
Для сложения двух двоичных чисел, одно число запоминается в накапливающем регистре, а другое запоминается в регистре данных. После сложения сумма двух чисел размещается в накапливающем регистре, заменяя исходное двоичное число.
Память — это место, где хранятся программы. Программы содержат команды, указывающие компьютеру, что надо делать. Программа — это последовательный набор команд для решения определенной задачи.
Память компьютера — это просто некоторое количество регистров хранения. Данные могут быть загружены в регистры и могут быть выгружены оттуда или «считаны» для выполнения каких-либо операций, сохраняющих содержимое регистров. Каждому регистру или ячейке памяти сопоставлено число, называемое адресом. Адрес используется для определения места данных в памяти.
На рис. 36-4 изображено типичное распределение памяти.
Рис. 36-4. Распределение памяти в компьютере.
Регистры памяти сохраняют двоичные данные. Эта память, обычно называемая памятью с произвольным доступом (RAM), основана на способности ячеек памяти хранить (записывать) или находить (читать) данные, или памятью только для чтения (ROM), способной только считывать данные из памяти.
Регистр адреса ячейки памяти обеспечивает доступ к определенным ячейкам памяти с помощью дешифратора адреса ячейки памяти. Размер регистра адреса ячейки памяти определяется максимальной емкостью памяти компьютера. Например, 16-разрядный регистр адреса ячейки памяти позволяет адресовать 216 или 65 536 ячеек памяти.
Слово, которое необходимо сохранить в памяти, помещается сначала в регистр данных, а после этого в нужную ячейку памяти. Для того, чтобы прочесть данные из памяти, определяется адрес ячейки памяти, и данные из ячейки памяти загружаются в сдвиговый регистр.
Блоки ввода и вывода компьютера позволяют принимать и передавать информацию, то есть обмениваться информацией с окружающим компьютер миром. Оператор или периферийное оборудование вводят данные в компьютер через блок ввода. Данные из компьютера поступают на внешнее периферийное оборудование через блок вывода.
Блоки ввода и вывода управляются центральным процессором. Для передачи данных в компьютер и из компьютера используются специальные команды ввода/вывода (I/O).
Большинство компьютеров могут выполнять команды ввода/вывода по запросу прерываний. Прерывание — это сигнал от внешнего устройства, запрашивающий вид обслуживания: передача или прием данных. Прерывание приводит к прекращению работы компьютера над текущей программой, и переходу к работе над другой программой. Когда работа по запросу прерывания завершается, компьютер возвращается к работе над прерванной программой.
36-1. Вопросы
1. Нарисуйте блок-схему компьютера.
2. Каковы функции следующих блоков компьютера?
а. Блока управления.
б. Арифметико-логического устройства.
в. Памяти.
г. Ввода.
д. Вывода.
3. Какова функция ROM (памяти только для чтения) компьютера?
4. Что показывает последовательность команд, которые должны быть выполнены?
5. Чем определяется количество данных, которое может храниться в компьютере?
6. Дайте определение программы.
Микропроцессор содержит четыре основные части: регистры, арифметико-логическое устройство, цепи синхронизации и управления и цепи дешифрации. Микропроцессор сконструирован таким образом, что команда или программа может быть извлечена из памяти, помещена в регистр команд и дешифрована. Программа влияет на цепи синхронизации, управления и дешифрации. Программа позволяет оператору направлять данные в различные регистры и арифметико-логическое устройство и извлекать их оттуда. Регистры и арифметико-логическое устройство используются микропроцессором для обработки данных и информации.
Различные микропроцессоры отличаются друг от друга архитектурой и набором команд. На рис. 36-5 изображены основные части многих 8-разрядных микропроцессоров. Поскольку названия и количество регистров в различных микропроцессорах различны, они изображены и перечислены отдельно.
Рис. 36-5. Узлы 8-разрядного микропроцессора.
Аккумулятор — это регистр наиболее часто используемый в микропроцессоре. Он используется для приема или хранения данных из памяти или устройства ввода/вывода. Его работа также связана с работой арифметико-логического устройства. Количество разрядов в аккумуляторе определяет размер слова в микропроцессоре. В 8-разрядном микропроцессоре размер слова — 8 разрядов.
Регистр условия кода — это 8-разрядный регистр, позволяющий программисту проверить состояние микропроцессора в некоторой точке программы. В зависимости от микропроцессора этот регистр может называться регистром состояния процессора, регистром состояния или флаговым регистром (регистром признака). Один разряд в этом регистре называется флаговым разрядом. Чаще всех встречаются флаг переполнения, нулевой флаг и флаг знака. Флаг переполнения используется во время арифметических действий для определения необходимости переноса или заема. Нулевой флаг используется для определения наличия нулей во всех разрядах результата или команды. Флаг знака используется для указания знака числа — положительный или отрицательный. Из 8 разрядов этого регистра процессоры Motorola 6800 и Zilog Z80 используют 6 разрядов; процессор Intel 8080А использует 5; процессор MOS Technology 6502 использует 7.
Счетчик команд — это 16-разрядный регистр, содержащий адрес команды, извлеченный из памяти. По мере того как команды выполняются, содержимое счетчика увеличивается на единицу для извлечения адреса следующей команды. Содержимое счетчика команд может только увеличиваться. Однако, последовательность команд может быть изменена с помощью команд ветвления или перехода.
Указатель стека — это 16-разрядный регистр, содержащий адрес ячейки памяти данных, хранящихся в стеке. Стек будет обсуждаться немного позднее.
Большинство микропроцессоров имеют одинаковые наборы основных команд с различными машинными кодами и несколько собственных команд. Основные команды делятся на девять категорий:
1. Перемещение данных.
2. Арифметические.
3. Логические.
4. Сравнение и проверка.
5. Вращение и сдвиг.
6. Управление программой.
7. Стек.
8. Ввод/вывод.
9. Разные.
Команды перемещения данных перемещают данные из одного места в другое внутри микропроцессора и памяти (рис. 36-6). Данные перемещаются сразу по 8 бит в параллельном коде (одновременно) из одного места в другое.
Рис. 36-6. Команды перемещения данных.
Команды микропроцессора используют символические обозначения, указывающие, как перемещать данные. В микропроцессорах 6800 и 6502 стрелка перемещает слева направо. В микропроцессорах 8080А и Z80 стрелка перемещает справа налево. В любом случае сообщение об операции одинаково. Данные перемещаются от источника к месту назначения.
Арифметические команды влияют на арифметико-логическое устройство. Наиболее мощными командами являются сложение, вычитание, приращение и уменьшение. Эти команды позволяют микропроцессору проводить вычисления и обрабатывать данные. Они отличают компьютер от произвольной логической цепи. Результат работы этих команд помещается в аккумулятор.
Логические команды — это команды, содержащие один или более Булевых операторов: И, ИЛИ и исключающее ИЛИ. Они работают одновременно с восемью битами в АЛУ, а результаты работы этих команд помещаются в аккумулятор. Другой логической операцией является команда дополнения. Она включает дополнение до единицы и дополнение до двух. Так как дополнение осуществляется с помощью дополнительной цепи, эта операция содержится не во всех микропроцессорах. Микропроцессоры 6502 не содержат команды дополнения. Микропроцессор 8080А имеет команду дополнения до единицы. Микропроцессоры 6800 и Z80 имеют команды дополнения до единицы и дополнения до двух.
Операции дополнения обеспечивают метод представления чисел со знаками. Дополняющие числа позволяют АЛУ выполнять операции вычитания с помощью цепи сумматора. Следовательно, блок микропроцессора может использовать Одни и те же цепи для сложения и вычитания.
Команды сравнения сравнивают данные в аккумуляторе с данными в ячейке памяти или в другом регистре. Результат сравнения не хранится в аккумуляторе, но в результате сравнения может измениться флаговый бит. Сравнение может быть выполнено путем наложения (маскирования) или путем поразрядной проверки. Маскирование — это процесс вычитания двух чисел, позволяющий вычитать только определенные разряды. Маска — это заранее определенный набор разрядов, используемых для определения существования некоторых условий внутри микропроцессора. Недостаток процедуры маскирования в том, что она использует команду И и, следовательно, разрушает содержимое аккумулятора. Хотя процедура побитовой проверки также использует команду И, она не разрушает содержимое аккумулятора. Команду побитовой проверки имеют не все микропроцессоры.
Команды вращения и сдвига изменяют данные в регистре или в памяти путем перемещения данных вправо или влево на один разряд. Обе команды используют разряд переноса. Разница между этими командами состоит в том, что команда вращения сохраняет данные, а команда сдвига разрушает их.
Команды управления программой изменяют содержимое счетчика команд. Эти команды позволяют микропроцессору выбирать определенные ячейки памяти для выполнения различных программ или для повторения части той же программы. Команды могут быть безусловными, изменяющими содержимое счетчика команд, или условными, которые сначала проверяют состояние флагового бита для того, чтобы узнать, можно ли изменить содержимое счетчика команд. Если условие флагового бита не удовлетворяется, то выполняется следующая команда.
Команды стека позволяют хранить и извлекать содержимое различных регистров микропроцессора в стек.
Стек — это временная ячейка памяти, используемая для хранения содержимого счетчика команд в течение перехода к подпрограмме. Разница между стеком и другими формами памяти в способе, с помощью которого осуществляется доступ к данным или их адресация. Команда «push» запоминает содержимое регистра, а команда «pull» находит содержимое регистра. Преимущество стека в том, что данные в нем можно сохранить или прочитать с помощью одноразрядных команд. Все данные передаются из верхней части стека в аккумулятор. Это означает, что аккумулятор сообщается только с верхней ячейкой стека.
В микропроцессорах 6800 и 6502 содержимое регистра запоминается в стеке, и после этого указатель стека уменьшается на 1. Это позволяет указателю стека отметить следующую ячейку памяти, где могут быть сохранены данные. Указатель стека — это 16-разрядный регистр, использующийся для определения ячейки памяти, действующей, как вершина стека. Когда используется команда «pull», указатель стека увеличивается на 1, данные извлекаются из стека и помещаются в соответствующий регистр. В процессоре 8080А вершина стека содержит указатель на последнюю ячейку памяти. Команда «push» сначала уменьшает указатель стека на 1, а после этого помещает содержимое регистра в стек.
Команды ввода/вывода предназначены только для управления устройствами ввода/вывода. Процессоры 8080А, 8085 и Z80 имеют команды ввода/вывода. Процессоры 6800 и 6502 специальных команд ввода/вывода не имеют. Если микропроцессор использует команды ввода/вывода для работы с внешними устройствами, то ввод/вывод называется независимым.
Некоторые команды не попадают ни в одну из перечисленных категорий. Эти команды объединены вместе и названы разными командами. Среди этих команд находятся те, которые разрешают и запрещают линии прерываний, очищают или устанавливают флаговые биты, или позволяют микропроцессору выполнять арифметические операции в двоично-десятичном коде. Среди них также содержатся команды, останавливающие или временно прерывающие выполнение программ.
36-2. ВОПРОСЫ
1. Каковы основные части микропроцессора?
2. Какие регистры находятся в микропроцессоре?
3. На какие основные категории делятся команды микропроцессора?
РЕЗЮМЕ
• Компьютеры состоят из блока управления, арифметико-логического устройства, памяти и блока ввода/вывода.
• Блок управления дешифрует команды и выдает импульсы, необходимые для работы компьютера.
• Арифметико-логическое устройство выполняет математические и логические операции, а также операции, связанные с принятием решений.
• Память — это место, где хранятся данные и программы, ожидающие работы с ними.
• Блоки ввода/вывода позволяют вводить данные в компьютер и выводить их из компьютера.
• Блок управления и арифметико-логическое устройство могут находиться в одном корпусе, который называется микропроцессором.
• Программа — это набор команд, расположенных в последовательном порядке для решения определенной задачи.
• Микропроцессор содержит регистры, арифметико-логическое устройство, цепи синхронизации и управления и цепи дешифрации.
• Команды микропроцессора делятся на девять категорий:
— Перемещение данных.
— Арифметические.
— Логические.
— Сравнение и проверка.
— Вращение и сдвиг.
— Управление программой.
— Стек.
— Ввод/вывод.
— Разные.
Глава 36. САМОПРОВЕРКА
1. Опишите, как работает компьютер.
2. Каким образом компьютер, связанный с внешним миром, осуществляет получение данных от внешних устройств?
3. В чем разница между микрокомпьютером и микропроцессором?
4. Каковы функции микропроцессора?