Для обслуживания порта отведено три регистра: регистр данных PORTB ($18, $38), регистр направления данных — DDRB ($17, $37) и выводы порта В ($16, $36). Адрес выводов порта В предназначен только для чтения, в то время как регистр данных и регистр направления данных — для чтения и записи.
Все выводы порта имеют отдельно подключаемые подтягивающие резисторы. Выходы порта В могут поглощать ток до 20 мА и непосредственно управлять светодиодными индикаторами. Если выводы РВ0…РВ7 используются как входы и замыкаются на землю, то при включенных внутренних подтягивающих резисторов выводы являются источниками тока. Дополнительные функции выводов порта В приведены в табл. 2.15.
При использовании альтернативных функций выводов регистры DDRB и PORTB должны быть установлены в соответствии с описанием альтернативных функций. При использовании возможности внутрисхемного программирования микроконтроллера следует учитывать, что программатор использует для своей работы линии MOSI, MISO и SCK. Соответственно, устройства, подключенные к этим линиям, не должны мешать работе программатора.
Рис. 2.47.
Рис. 2.48.
Рис. 2.49.
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 зарезервированы 3 ячейки памяти: регистр PORTD $12 ($32), регистр направления данных — DDRD $11 ($31) и выводы порта D — PIND $10 ($30). Регистры данных и направления данных могут читаться/записываться, ячейка PIND — только для чтения.
Порт D — 7-разрядный двунаправленный со встроенными подтягивающими регистрами. Выходные буферы порта могут поглощать ток до 20 мА. Если выводы используются как входы и на них подан низкий уровень, то при подключении подтягивающих резисторов они являются источниками тока. Некоторые из выводов порта имеют альтернативные функции, показанные в табл. 2.17.
Если выводы порта используются для обслуживания альтернативных функций, они должны быть сконфигурированы на ввод/вывод в соответствии с описанием функции.
Рис. 2.50.
Рис. 2.51.
Рис. 2.52.
PIND не является регистром, по этому адресу осуществляется доступ к физическим значениям каждого из выводов порта D. При чтении PORTD читаются данные из регистра-защелки, при чтении PIND читаются логические значения, соответствующие фактическому состоянию выводов порта.
Бит DDDn регистра DDRD выбирает направление передачи данных. Если бит установлен, вывод сконфигурирован как выход. Если бит сброшен — вывод сконфигурирован как вход. Если PORTDn установлен и вывод сконфигурирован как вход, включается КМОП подтягивающий резистор. Для отключения резистора PORTDn должен быть сброшен или вывод должен быть сконфигурирован как выход.
Альтернативные функции порта
Бит 6 ICP — вход захвата таймера/счетчика 1. Подробнее см. описание таймера.
Бит 5 Т1 — тактовый вход таймера/счетчика 1. Подробнее см. описание таймера.