Выводы микроконтроллеров AVR сгруппированы в порты. Как правило порты состоят из восьми выводов, но также они могут быть и урезанными, как, например, у некоторых микроконтроллеров семейства Tiny. Порт позволяет одновременно выполнять операции над всеми выводами, входящими в его состав. Это такие операции как установка направления передачи данных, установка логических уровней на выводах и чтение состояния выводов. 
   Многие выводы микроконтроллеров AVR помимо основного назначения, имеют дополнительные функции, которые часто востребованы. Это обстоятельство осложняет использование порта в качестве параллельной шины данных, а иногда и делает полностью невозможным.

   Обойти эту проблему можно тремя способами:
- использовать микроконтроллер с избыточными ресурсами (с большим количеством портов и периферии),
- использовать внешние микросхемы расширители портов,
- программно реализовать виртуальные порты, составленные из выводов разных физических портов.

   В этом материале пойдет речь о программных виртуальных портах.

   Поиск в Интернете устройства, которое соответствует заголовку данной статьи, оказался безрезультатным. На Форумах считают, что такое устройство нельзя создать. Однако, в настоящее время изготовлен и испытан макет 16- разрядного АЦП на микроконтроллере (МК) ATmega 16, который входит в состав комерческого продукта.

   LPT и COM порты уже большая редкость на современных стационарных компьютерах, а про ноутбуки то и говорить нечего. USB медленно, но верно вытеснила их, усложнив жизнь разработчикам и упростив пользователям. Эх, как приятно было когда-то подключить микроконтроллер к COM порту компьютера, используя всего лишь max232 и не заботясь о драйверах. Еще чуть-чуть и это будет возможно только на промышленных компах.
   Следуя общей тенденции, производители микросхем стали выпускать доступные микросхемы для работы с USB. Такие как USB-UART преобразователи или микроконтроллеры с поддержкой этой шины. К сожалению последние, несмотря на наличие библиотек, все еще сложны в освоении, поэтому неискушенному инженеру проще использовать первый вариант. И в этой статье мы рассмотрим две подобные микросхемы - FT232 и CP2103 и схемы преобразователей на их основе.

   Для грамотного использования микроконтроллера необходимо иметь представление об электрических характеристиках его выводов. Эти характеристики определяют максимально допустимый втекающий/вытекающий ток и уровни входных/выходных напряжений. От них зависит что и как можно подключать к микроконтроллеру, и к чему это приведет. 
   Сегодняшний материал посвящен как раз этой теме. Данные, приведенные ниже, взяты из описания на микроконтроллер Atmega16 в разделах Electrical Characteristics и Typical Characteristics. Для более детального изучения этого вопроса, рекомендую обязательно их посмотреть.

Написал новый драйвер семисегментного индикатора. Он имеет следующие особенности:

- предназначен для микроконтроллеров AVR,
- легко интегрируется в готовый проект, 
- может использоваться с компиляторами IAR, GCC, CodeVision,
- поддерживает подключение индикаторов через сдвиговые регистры,
- поддерживает подключение индикаторов через различные буферы,
- поддерживает индикаторы с общим катодом и с общим анодом,
- предоставляет возможность посегментной или поразрядной развертки,
- позволяет выводить на один индикатор несколько переменных,
- при стандартном подключении позволяет работать с 8-ю разрядами,
- при подключении через сдвиговые регистры - с 16 разрядами.