Для организации УСО используются встроенные параллельные порты однокристальной микроЭВМ. Однако количество этих встроенных параллельных портов ограничено и может оказаться недостаточным. Например, если в микроконтроллере MCS-51 используется внешняя память данных, порты Р0, Р2 и две линии порта Р3 оказываются заняты под альтернативные функции ввода-вывода, обеспечивающие обмен с ЗУ. Если при этом нам нужно подключить, к примеру, 16-разрядный АЦП, мы сталкиваемся с проблемой нехватки портов, так как свободными остаются восемь линий порта Р1 и шесть линий порта Р3. Следовательно, мы не можем непосредственно подключить АЦП к портам.
Необходимо найти решение, позволяющее ввести 16-разрядные данные через один оставшийся свободным 8-разрядный порт Р1. Очевидно, для этого необходимо 16-разрядные данные вводить порциями по 8 разрядов (байту). Пример схемы, обеспечивающей такое подключение, представлен на рис. 1.
Рис. 1.  
В данном примере 16-разрядный поток информации с АЦП разделен на два 8-разрядных, которые подключены к одному порту Р1 через два буферных регистра.
"Отпирание" буферного регистра осуществляется подачей активного сигнала ("0") на его вход OE. Процедура ввода данных с АЦП в данном случае выглядит следующим образом:
  1. Установить бит 0 порта Р3 в "0" (тем самым устанавливается логический "0" на выходе Р3.0 и на входе OE нижнего буферного регистра, буферный регистр "отпирается", соединяя младшие 8 линий данных с АЦП с портом Р1).
  2. Ввести данные из порта Р1 (младший байт данных с АЦП).
  3. Установить бит 0 порта Р3 в "1" (тем самым устанавливается логическая "1" на выходе Р3.0 и на входе OE нижнего буферного регистра, буферный регистр "запирается", отсоединяя младшие 8 линий данных АЦП от порта Р1).
  4. Установить бит 1 порта Р3 в "0" (тем самым устанавливается логический "0" на выходе Р3.1 и на входе OE верхнего буферного регистра, буферный регистр "отпирается", соединяя старшие 8 линий данных с АЦП с портом Р1).
  5. Ввести данные из порта Р1 (старший байт данных с АЦП).
  6. Установить бит 1 порта Р3 в "1" (тем самым устанавливается логическая "1" на выходе Р3.1 и на входе OE верхнего буферного регистра, буферный регистр "запирается", отсоединяя старшие 8 линий данных АЦП от порта Р1).
Представленная схема обеспечивает ввод через 8-разрядный параллельный порт данных любой разрядности при наличии соответствующего количества буферных регистров.