Рис. 8.22.
Генератор прямоугольного сигнала с кристаллом кварцаТриггер
Соединив два логических вентиля И-НЕ или ИЛИ-НЕ, так что выходы подключены к входам, можно сохранить один бит. Таким образом, мы создали простую ячейку памяти, которая называется флип-флоп, или триггер. Триггер является самым простым примером схемы последовательного действия, даже если в этой «базовой» конфигурации не предусмотрено использование тактового сигнала. Входы триггера помечены буквами R (RESET) и S (SET) и имеют выход Q. Триггер также может быть представлен в виде простого прямоугольника, на котором указаны входы S и R и выход Q. Такой триггер также называется RS-триггером. Память в наших компьютерах построена не на триггерах, но с использованием технологий, позволяющих хранить огромное количество битов в маленьком пространстве.
Рис. 8.23.
Триггер с двумя вентилями ИЛИ-НЕ (74НС02) и его символПроанализируем работу нашей маленькой ячейки памяти.
• Подадим ноль на оба входа S и R.
• Мы не знаем, каково состояние выхода Q, поэтому предположим, что он находится в высоком уровне.
• Выход Q соединен с входом нижнего вентиля, который будет иметь входы в высоком и низком уровне.
• На выходе нижнего вентиля находится высокий уровень, который будет распространяться до одного из двух входов верхнего вентиля
• На верхнем вентиле мы будем иметь оба входа в низком уровне, поэтому его выход будет в высоком уровне (и это подтверждает нашу первоначальную гипотезу).
Теперь предположим, что S и R находятся в низком уровне, а на выходе Q мы имеем 0.
• Подадим 0 к обоим входам S и R.
• Мы не знаем, каково состояние выхода Q, поэтому предположим, что он находится в низком уровне.
• Распространяем выходной сигнал Q к нижнему вентилю, оба входа которого в состоянии 0, а его выход, соответственно, будет в высоком уровне.
• Подаем сигнал 1 с выхода нижнего вентиля на вход верхнего вентиля.
• Входы верхнего вентиля имеют значения 0 и 1, поэтому выход Q будет равен 0 (и это подтверждает нашу гипотезу).
Установив R и S на ноль, триггер сохраняет значение, которое было установлено. Такое состояние называется режимом удерживания, или HOLD. Чтобы установить выход Q в высокий уровень, выход SET устанавливается в 1. Для сброса выхода надо подать 1 на RESET. Следует избегать ситуации, когда оба SET и RESET находятся в высоком уровне, потому что при этом выход продолжает изменяться и не имеет стабильного значения.
Таблица 8.9.
Принцип работы триггераТриггеры последовательного действия должны также получать тактовые сигналы. Мы можем изменить схему на рис. 8.23, добавив два других вентиля И, управляемые тактовым сигналом. Таким образом, команды SET и RESET смогут достигнуть триггера только тогда, когда тактовый сигнал будет в высоком уровне.
Существуют другие типа триггеров, такие как D-триггер, Т-триггер и JK-триггер. Триггер может быть использован для поддержания или запоминания состояния входа или выхода.
Рис. 8.24.
RS-триггер с тактовым сигналомРис. 8.25.
RS-триггер запоминает входные сигналы до тех пор, пока «Ардуино» не прочтет их и не поменяет состояниеПредставьте себе, что вы имеете дело с переменным сигналом при нажатии на простую кнопку один раз. Вы можете решить эту задачу с помощьюпрограммного обеспечения и микроконтроллера или использовать триггер, который замеряет давление на кнопку и сохраняет это состояние, так что микроконтроллер фиксирует факт нажатия кнопки. Триггеры можно использовать для создания предупреждающих систем, так что, как только датчик обнаруживает аномальное состояние, сигнал сохраняется до тех пор, пока это необходимо. Мы можем подключить кнопку к «Ардуино» при помощи триггера. В настройках перезагружаем триггер, так чтобы он был готов воспринимать нажатие кнопки. При нажатии на кнопку сигнал SET переходит в высокий уровень и триггер запоминает положение «1», которое может быть прочитано «Ардуино», до тех пор пока триггер не сбросится, для чего надо отправить сигнал «1» на Reset.
Рис. 8.26.
Триггер, используемый для предотвращения выключения кнопкиТриггер может быть использован в качестве схемы, предотвращающей выключение кнопок. В этом случае необходимо использовать переключатель вместо простой кнопки. С переключателем только один из входов триггера будет активен: или только R, или только S. В то время как переключатель переходит из одного состояния в другое, могут произойти скачки, которые будут игнорироваться триггером, так как на R и S мы имеем «О» и устройство находится в состоянии удержания (HOLD).
Если триггер состоит из логических вентилей И-НЕ, его поведение аналогично, но состояния инвертированы. Чип 74НС279 содержит 4 RS-триггера с вентилями И-НЕ.
Таблица 8.10.
Принцип работы триггера с вентилями И-НЕРегистры