Кожен мікроконтролер містить порти введення-виведення, до яких, можна підключити яке або пристрій, будь це світлодіод або кнопка. У деяких AVR мікроконтролерах деякі порти введення-виведення можна конфігурувати як аналогові порти введення-виведення, наприклад АЦП (аналого-цифровий перетворювач), ШІМ (Широтно-імпульсна модуляція).
Порти введення-виведення AVR мікроконтролера Attiny13:

Як ми бачимо на картинці вище, у мікроконтролера Attiny13, 6 портів вводу-виводу (PB0 – PB5) і 2 ніжки з харчування (VCC, GND). Але, перша ніжка мікроконтролера Attiny13 (порт PB5), за замовчуванням не порт введення-виведення, а скидання (Reset) мікроконтролера. Його можна перемкнути в порт вводу-виводу спеціальним фьюз бітом (RSTDISBL), але тоді мікроконтролер не підтримуватиме внутрісхемних програмування (За SPI інтерфейсу).

Увага! Не встановлюєте без потреби фьюз біт RSTDISBL, В іншому випадку ваш мікроконтролер перестане програмуватися по SPI інтерфейсу (внутрісхемних програмування).

У цифровій порт виводу можна записати два значення: логічний «0″ (низький рівень) і логічну «1″ (високий рівень).

Але для початку треба конфігурувати ніжку мікроконтролера як порт виводу командою:
Config Port (Порт) = Output
Де «порт» необхідно вказати ім’я порту, наприклад:
Config PORTB.2 = Output
Так ми сконфігуріруем 7 ніжку (PB2) мікроконтролера Attiny13 як порт виводу.

Також ми можемо, конфігурувати цілу групу портів A, B або C (і.дз.). Зазвичай в одній групі портів, кілька портів введення-виведення. Приклад конфігурування групи портів як порти виводу:
Config Port (Група портів) = Output
Де «група портів» необхідно вказати букву групи, наприклад:
Config PORTB = Output
Так ми сконфігуріруем групу портів B як порти виводу.

Тепер, коли порт налаштований як порт виводу, можна записати в нього два значення (логічний «0″ і логічну «1»), наприклад:
Port (Назва порту) = (Значення)
Де «Ім’я порту» необхідно вказати ім’я порту, а де «значення» 1 або 0, наприклад:
PortB.2 = 1
У групу портів можна записати значення 1 або 255, наприклад:
PortB = 255

Автор: Яковлєв Олександр В’ячеславович (м.Вітебськ, Білорусь)