Существуют 2 способа зажигания светодиодов от МК:
1-ый способ, когда МК выдает на порт напряжение, от которого горит светодиод. В этом случае светодиод подключается между выводом МК и землей.
2-ой способ, когда светодиод горит от цифрового питания, а МК закорачивает его своим портом накоротко, чем гасит. В этом случае светодиод подключается между выводом МК и плюсом цифрового питания.
Баластный резистор для ограничения тока нужен в любом из этих случаев, как это уже подсказали ранее.
Практика показывает, что МК легче выдерживает большой ток при закоротке на землю, чем ток, который ему приходится отдавать вовне. Отсюда предпочтительнее реализовывать 2-ой способ. Т.е. зажечь светодиод, подсоединив его одним концом к цифровой земле, а другим концом через сопротивление 1 ком к шине питания. При этом пин порта МП присоединяется к точке соединения светодиода и сопротивления. Высокий уровнь или Z-состояние не мешают светодиоду светиться, а низкий уровень закорачивает светодиод, пропуская весь ранее протекающий через него ток на землю.
Несмотря на то, что в даташите на МК допускаются достаточно высокие токи через порт, там же упоминается ограничение на СУММАРНЫЙ допустимый ток. Поэтому управлять сразу десятком светодиодов достаточно стрёмно. Тогда уж лучше взять какую-нибудь сборку из 8 логических элементов "НЕ" и переключать светодиоды через нее.