Как уже было отмечено, порты имеют всего две возможности по конфигурированию:
• задание направления передачи данных (вход или выход);
• подключение/отключение внутреннего подтягивающего резистора.
Направление передачи данных определяется содержимым регистра передачи данных 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 |
|
|