Выбрать главу

Рис. 2.49. Выводы порта В — PINB

PINB не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта В. При чтении PORTB читаются данные из регистра-защелки, при чтении PINB читаются логические значения, соответствующие фактическому состоянию выводов порта.

Порт В как порт ввода/вывода общего назначения

Все 8 битов порта В при использовании для ввода/вывода одинаковы.

Бит DDBn регистра DDRB выбирает направление передачи данных. Если бит установлен (т. е. равен единице), вывод сконфигурирован как выход. Если бит сброшен (т. е. равен нулю) — вывод сконфигурирован как вход. Если PORTBn установлен и вывод сконфигурирован как вход, включается КМОП, подтягивающий резистор. Для отключения резистора PORTBn должен быть сброшен или вывод должен быть сконфигурирован как выход.

Альтернативные функции PORTB:

Бит 7 SCK — вход тактовой частоты для SPI.

Бит 6 MISO — выход данных для SPI.

Бит 5 MOSI — вход данных для SPI.

Бит 3 ОС1 — выход совпадения. Этот вывод может быть сконфигурирован для внешнего вывода события совпадения таймера 1. Для этого бит DDB3 должен быть установлен в 1 (вывод сконфигурирован как выход).

Бит 1 AIN1 — отрицательный вход аналогового компаратора. Если этот вывод сконфигурирован как вход (DDB1 = 0) и отключен внутренний подтягивающий резистор, этот вывод работает как отрицательный вход внутреннего аналогового компаратора.

Бит 0 AIN0 — положительный вход аналогового компаратора. Если этот вывод сконфигурирован как вход (DDB0 = 0) и отключен внутренний подтягивающий резистор, этот вывод работает как положительный вход внутреннего аналогового компаратора.

Порт D

Для порта D зарезервированы 3 ячейки памяти: регистр PORTD $12 ($32), регистр направления данных — DDRD $11 ($31) и выводы порта D — PIND $10 ($30). Регистры данных и направления данных могут читаться/записываться, ячейка PIND — только для чтения.

Порт D — 7-разрядный двунаправленный со встроенными подтягивающими регистрами. Выходные буферы порта могут поглощать ток до 20 мА. Если выводы используются как входы и на них подан низкий уровень, то при подключении подтягивающих резисторов они являются источниками тока. Некоторые из выводов порта имеют альтернативные функции, показанные в табл. 2.17.

Если выводы порта используются для обслуживания альтернативных функций, они должны быть сконфигурированы на ввод/вывод в соответствии с описанием функции.

Рис. 2.50. Регистр данных порта D — PORTD

Рис. 2.51. Регистр направления данных порта D — DDRB

Рис. 2.52. Выводы порта D — PINB

PIND не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта D. При чтении PORTD читаются данные из регистра-защелки, при чтении PIND читаются логические значения, соответствующие фактическому состоянию выводов порта.

Порт D как порт ввода/вывода общего назначения

Бит DDDn регистра DDRD выбирает направление передачи данных. Если бит установлен, вывод сконфигурирован как выход. Если бит сброшен — вывод сконфигурирован как вход. Если PORTDn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора PORTDn должен быть сброшен или вывод должен быть сконфигурирован как выход.

Альтернативные функции порта D

Бит 6 ICP — вход захвата таймера/счетчика 1. Подробнее см. описание таймера.

Бит 5 Т1 — тактовый вход таймера/счетчика 1. Подробнее см. описание таймера.

Бит 4 Т0 — тактовый вход таймера/счетчика 0. Подробнее см. описание таймера.

Бит 3 INT1 — вход внешних прерываний 1. Подробнее см. описание прерываний.

Бит 2 INT0 — вход внешних прерываний 0. Подробнее см. описание прерываний.

Бит 1 TXD — выход передатчика UART. Если разрешена работа передатчика UART, независимо от состояния DDRD1 этот вывод сконфигурирован как выход.

Бит 0 RXD — выход приемника UART. Если разрешена работа приемника UART, независимо от состояния DDRD0 этот вывод сконфигурирован как выход. Когда UART использует вывод для приема данных, единица в PORTD0 подключает встроенный подтягивающий резистор.