Либо - дорого - у Maxim готовые драйверы с заданием тока на каждый сегмент, обнаружением неисправностей и т.д. Либо 1 порт на сегменты, другой на разряды. И хоть какие буквы рисуй, всё в контроллере. Частота там меньше килогерца, в прерывании от таймера байт со значением сегментов выставляется в порт сегментов и продвигается 1-ца в порте разрядов. А байты с сегментами обновляются при измерении, дешифратор - выборка из таблички.