Рис. 8.25. RS-триггер запоминает входные сигналы до тех пор, пока «Ардуино» не прочтет их и не поменяет состояние
Представьте себе, что вы имеете дело с переменным сигналом при нажатии на простую кнопку один раз. Вы можете решить эту задачу с помощьюпрограммного обеспечения и микроконтроллера или использовать триггер, который замеряет давление на кнопку и сохраняет это состояние, так что микроконтроллер фиксирует факт нажатия кнопки. Триггеры можно использовать для создания предупреждающих систем, так что, как только датчик обнаруживает аномальное состояние, сигнал сохраняется до тех пор, пока это необходимо. Мы можем подключить кнопку к «Ардуино» при помощи триггера. В настройках перезагружаем триггер, так чтобы он был готов воспринимать нажатие кнопки. При нажатии на кнопку сигнал SET переходит в высокий уровень и триггер запоминает положение «1», которое может быть прочитано «Ардуино», до тех пор пока триггер не сбросится, для чего надо отправить сигнал «1» на Reset.
Рис. 8.26. Триггер, используемый для предотвращения выключения кнопки
Триггер может быть использован в качестве схемы, предотвращающей выключение кнопок. В этом случае необходимо использовать переключатель вместо простой кнопки. С переключателем только один из входов триггера будет активен: или только R, или только S. В то время как переключатель переходит из одного состояния в другое, могут произойти скачки, которые будут игнорироваться триггером, так как на R и S мы имеем «О» и устройство находится в состоянии удержания (HOLD).
Если триггер состоит из логических вентилей И-НЕ, его поведение аналогично, но состояния инвертированы. Чип 74НС279 содержит 4 RS-триггера с вентилями И-НЕ.
Таблица 8.10. Принцип работы триггера с вентилями И-НЕ
Регистры
С использованием триггеров мы можем создавать регистры – устройства, способные хранить группу битов. Каждый регистр содержит определенное количество триггеров: регистр на 8 бит будет содержать 8 триггеров. Регистры различаются по типу входа и вывода, которые могут быть последовательными либо параллельными. Последовательная шина формируется из одного канала, по которому будут переноситься биты один за другим, в соответствии с заданной частотой. Параллельная шина использует большее число проводов, по которым биты будут посылаться одновременно. Параллельные шины быстрее последовательных, но требуют большего количества проводов. Таким образом, мы имеем четыре типа регистров:
• SISO – последовательный вход / последовательный выход;
• SIPO – последовательный вход / параллельный выход;
• PISO – параллельный вход / последовательный выход;
• PIPO – параллельный вход / параллельный выход.
Все регистры работают с тактовым сигналом для синхронизации операций. Когда мы имеем последовательный вход или выход, данные загружаются по одному биту за раз с выключением тактового сигнала. Регистры PIPO и SISO кажутся бесполезными, но они используются в качестве линии задержки или синхронизации нескольких неодновременных входов, перед их обработкой центральным процессором. Несмотря на то, что вы можете построить регистры с помощью одиночных триггеров, учитывая их распространенность и полезность, были разработаны интегральные схемы, которые содержат комплексные регистры.
Интегральная схема 74НС164 представляет собой сдвиговый регистр типа SIPO. С помощью 3 входов мы можем контролировать 8 выходных сигналов. Один вход используется для тактового сигнала, один – для сигнала RESET и один вход для поступающих данных. Эти чипы могут быть использованы для увеличения числа выходов в микроконтроллерах. Регистр 74НС164 в действительности имеет два входа А и В, которые подключены к логическому вентилю И. Приведем вход В в состояние «1», а вход А будем использовать для последовательного ввода данных. Для загрузки данных мы должны подать на вход один бит за раз и создать один такт, то есть сделать так, чтобы он перешел из низкого уровня в высокий. Биты в ячейках регистра будут проходить с каждым тактом. Один бит выйдет в конце линии, и новый бит сможет зайти в первую ячейку. Такт представляет собой сигнал прямоугольной формы, который должен быть синхронизирован с данными.
Рис. 8.27. Сдвиговый регистр 74НС164 и схема его принципа работы
Подключим 74НС164 к «Ардуино», чтобыдобавить 8 новых цифровых выходов. Нам понадобятся следующие компоненты:
• макетная плата;
• интегральная схема 74НС164;
• 8 светодиодов;
• 8 резисторов на 220 Ом;
• «Ардуино UNO»;
• конденсатор на 0,1 мкФ;
• перемычки или соединительные провода.
Пробная схема электрической цепи для сдвигового регистра выглядит следующим образом:
Рис. 8.28. Схема соединения интегральной схемы 74НС164 с «Ардуино»
Необходимые действия:
1. Вставляем схему 74НС164 в центр макетной платы.
2. Соединяем шины электропитания с двух сторон
3. Подключаем конденсатор на ОД мкФ на две шины питания, соединив его между 5 В и землей.
4. Подключаем вывод 7 микросхемы к земле, а вывод 14 к источнику питания на 5 В.
5. Вставляем сопротивления на 220 Ом и светодиоды, стараясь быть очень аккуратными. Начнем с выводов 3, 4, 5 и 6, затем переходим к противоположной стороне микросхемы и вставляем светодиоды и резисторы к контактам 10, 11, 12 и 13. Проверьте полярность диода!
6. Подключаем вывод 2 (вход В) к линии питания на 5 В.
7. С помощью перемычки соединяем вывод 8 микросхемы (CLOCK) с выводом 3 «Ардуино».
8. С помощью перемычки соединяем вывод 9 микросхемы (CLEAR) с выводом 4 «Ардуино».
9. С помощью перемычки соединяем вывод 1 микросхемы (вход данных А) с выводом 5 «Ардуино».
10. Подключаем источник питания 5 В и землю от «Ардуино» к шинам электропитания макетной платы
Рис. 8.29. Схема, реализованная на макетной плате