Журнал РАДИОЛОЦМАН, декабрь 2017
Это почти следствие закона Мура: в следующем году микрокомпьютеры будут иметь больше возможностей, и у команды разработчиков будет больше идей. К сожалению, количество выходных выводов при этом остается тем же. Найти даже один лишний выход для диагностики, тестирования или стандартного ввода/вывода может быть очень непросто.
![]() |
||
Рисунок 1. | Эта однобитная «шина» может обеспечить неограниченное количество параллельных выходов. |
Однобитная шина на Рисунке 1 при добавлении простых дополнительных схем может поддерживать неограниченное количество параллельных выходов. Последовательно-параллельным преобразователем 74HC164 управляет выход микрокомпьютера с RC-фильтром нижних частот. Для ввода данных в преобразователь каждый бит представляется переходом «1» ® «0» ® «1» с различными длительностями состояний «0». Если длительность состояния «лог. 0» больше, чем постоянная времени фильтра нижних частот, в регистр заносится «0». При кратковременном состоянии «лог. 0» в регистр заносится «1». Таким образом, синхронизация и данные замешаны в один сигнал. Их разделение выполняется фильтром нижних частот (Рисунок 2).
![]() |
||
Рисунок 2. | Импульсы синхронизации и данных замешаны в один сигнал. |
В Листинге 1 показана простая подпрограмма «Whip», выполняющая функцию вывода для восьми бит. Предполагалось, что постоянная времени RC-фильтра равна 3 мкс, а инструкция микрокомпьютера при частоте генератора 4 МГц или больше выполняется за время 1 мкс или меньше. В подпрограмме используется манипуляция выходным битом My_Bit порта My_Port.
Листинг 1. Процедура преобразования для микроконтроллера PIC.
Whip MOVWF My_Data ; передаваемые данные в регистре W MOVLW 8 MOVWF Bit_Counter ; установить для 8 бит BSF My_Port, My_Bit ; исходный уровень сигнала на выходе высокий Bl: RLF My_Data, F ; данные для отправки в CC BTFSS STATUS, CC BCF My_Port, My_Bit ; «0», поэтому для спада импульса еще не время CALL Delay_10us ; если «1» - высокий уровень на выходе остается 100 мкс BCF My_Port, My_Bit ; если «1» - спад импульса NOP ; низкий уровень на выходе будет не менее 0.2 мкс BSF My_Port, My_Bit ; по переднему фронту данные записываются в HC164 DECFSZ Bit_Counter GOTO Bl RETURN |
![]() |
||
Рисунок 3. | В этой схеме использован другой последовательно-параллельный регистр – MC14094, имеющий вход строба, который позволяет без промежуточных уровней обновлять состояние сразу всех выходов. |
Хотя таким устройствами с медленной реакцией, как реле или ЖК-дисплеи, схема на Рисунке 1 управляет хорошо, при подключении к ней светодиодов во время записи в 74HC164 может возникать раздражающее мерцание. Для решения этой проблемы в схеме на Рисунке 3 использован другой последовательно-параллельный регистр – MC14094, имеющий вход строба, который позволяет без промежуточных уровней обновлять состояние сразу всех выходов. Сигналы данных и стробы записи формируются схемой сдвоенного ждущего мультивибратора MC14538B. Схема может управлять такими устройствами, как дисплейные модули на основе контроллера HD44780.