Как уже было отмечено, порты имеют всего две возможности по конфигурированию:
• задание направления передачи данных (вход или выход);
• подключение/отключение внутреннего подтягивающего резистора.
Направление передачи данных определяется содержимым регистра передачи данных DDRx. Если разряд DDRxn этого регистра установлен в «1», соответствующий n-й вывод порта является выходом. Если же разряд DDRxn этого регистра сброшен в «0», соответствующий вывод порта является входом.
Управление подтягивающим резистором осуществляется с помощью регистра данных порта PORTx. Если разряд Рхп регистра PORTx установлен в «1» и соответствующий вывод порта является входом, между этим выводом и проводом питания подключается подтягивающий резистор. Чтобы отключить подтягивающий резистор, необходимо либо сбросить соответствующий разряд регистра PORTx, либо сделать вывод порта выходом.
В табл.12.1 приведены все возможные конфигурации выводов портов ввода/вывода. При рассмотрении таблицы рекомендуется еще раз обратить внимание на схему, представленную на рис.5.1.
Таблица 12.1
Влияние регистров DDRx и PORTx на конфигурацию выводов портов
| DDRxn | Pxn | Функция вывода | Резистор | Примечание |
| Вход | Отключен | Третье состояние (Z) | ||
| Вход | Подключен | При подключении вывода к общему проводу он является источником тока | ||
| Выход | Отключен | Выход установлен в «0» | ||
| Выход | Отключен | Выход установлен в «1» |
Примечания:
1) n = 7...0 — номер вывода (разряд порта).
2) Если вывод используется каким-либо периферийным устройством микроконтроллера, то соответствующие этому выводу разряды регистров DDRx и PORTx, как правило, должны быть установлены в соответствии с дополнительной функцией вывода. Однако некоторые периферийные устройства при активизации самостоятельно переопределяют конфигурацию используемых выводов. Об этом упомянуто при описании конкретных периферийных устройств.
Таблица 12.2
Альтернативные функции линий портов
| Вывод | Альт. функция | Описание |
| PORTA | ||
| PA0 | ADC0 | Вход АЦП, канал 0 |
| PA1 | ADC1 | Вход АЦП, канал 1 |
| PA2 | ADC2 | Вход АЦП, канал 2 |
| PA3 | ADC3 | Вход АЦП, канал 3 |
| PA4 | ADC4 | Вход АЦП, канал 4 |
| PA5 | ADC5 | Вход АЦП, канал 5 |
| PA6 | ADC6 | Вход АЦП, канал 6 |
| PA7 | ADC7 | Вход АЦП, канал 7 |
| PORTB | ||
| PB0 | T0 | Счетный вход таймера-счетчика 0 |
| PB1 | T1 | Счетный вход таймера-счетчика 1 |
| PB2 | AIN0 | Прямой вход аналогового компаратора |
| PB3 | AIN1 | Инверсный вход аналогового компаратора |
| PB4 | SS | Вход выбора микросхемы для интерфейса SPI |
| PB5 | MOSI | Выход Master’а и вход Slave’а для SPI |
| PB6 | MISO | Вход Master’а и выход Slave’а для SPI |
| PB7 | SCK | Выход тактовых импульсов для SPI |
| PORTC | ||
| PC0 | - | |
| PC1 | - | |
| PC2 | - | |
| PC3 | - | |
| PC4 | - | |
| PC5 | - | |
| PC6 | TOSC1 | Входы для подключения кварцевого резонатора при работе таймера-счетчика 2 в асинхронном режиме |
| PC7 | TOSC2 | |
| PORTD | ||
| PD0 | RXD | Вход приемника UART |
| PD1 | TXD | Выход передатчика UART |
| PD2 | INT0 | Вход запроса внешнего прерывания 0 |
| PD3 | INT1 | Вход запроса внешнего прерывания 1 |
| PD4 | OC1B | Выход схемы сравнения В таймера-счетчика 1 |
| PD5 | OC1A | Выход схемы сравнения А таймера-счетчика 1 |
| PD6 | ICP | Вход на схему захвата таймера-счетчика 1 |
| PD7 | OC2 | Выход схемы сравнения таймера-счетчика 2 |






