Все порты микроконтроллеров AVRв режиме цифрового ввода-вывода представляют собой полноценные двунаправленные порты, у которых каждый из выводов может работать как в режиме ввода, так и в режиме вывода. Это означает, что каждый отдельный разряд порта может быть настроен либо как вход, либо как выход, независимо от настройки всех остальных разрядов того же порта.
Настроить разряды порта можно при помощи команд сброса и установки бита SBIи CBI. То же самое касается изменения значения на выходе (если разряд сконфигурирован как выход) или включения/ отключения внутреннего резистора нагрузки (если разряд сконфигурирован как вход).
Все эти настройки выполняются отдельно для каждого вывода порта. Выходной буфер каждого из выводов порта содержит симметричный выходной каскад с высокой нагрузочной способностью. Нагрузочная способность каждого вывода любого порта достаточна для непосредственного управления светодиодным дисплеем.
Все выводы любого порта имеют индивидуально подключаемые резисторы нагрузки, которые в случае необходимости могут подключаться между этим выводом и источником питания. Входные схемы каждой линии порта имеют по два защитных диода, подключённых к цепи питания и к общему проводу, как это показано на рис. 7.
Рис. 7 - Эквивалентная схема входных цепей одного разряда порта ввода-вывода
Буква “x” в описании имён регистра означает название порта, сточная буква “n” означает номер разряда. При использовании этого имени в программе вместо этих символов нужно подставлять конкретную букву названия порта и конкретный номер разряда.
Например, PORTB3 – для бита номер 3 порта B, если в документации этот бит назывался PORTxn.
Для каждого порта ввода-вывода в микроконтроллере имеется три специальных регистра:
♦ PORTx – регистр данных;
♦ DDRx – регистр управления;
♦ PINx – регистр непосредственного чтения состояния линий порта.
Регистр непосредственного чтения состояния линий порта доступен только для чтения, в то время как регистр данных и регистр управления доступны как для чтения, та и для записи.
Однако тоже возможна запись логической единицы в любой разряд регистра PINx. Она приведёт к переключению соответствующего разряда регистра данных (PORTx). Каждый разряд регистра PORTx управляет включением и отключением резистора внутренней нагрузки, если соответствующий разряд порта находится в режиме ввода.
Другое по теме:
Разработка функциональной и принципиальной схем управляющего автомата Курсовая работа предусматривает разработку функциональной и принципиальной схем управляющего устройства (УУ) в виде цифрового автомата, реализующего микропрограммный принцип построения: "одно состояние - одна микрокоманда". Структурн ...