Микроконтроллеры AVR всегда имеют в своём составе от одного и более портов ввода-вывода. Каждый разряд (бит) такого порта присоединён к одному из выводов (контактов) микросхемы микроконтроллера.
Порты ввода-вывода могут быть полными и неполными. Если порт полный, то все его разряды (обычно это 8 бит) задействованы. В неполном порте задействованы не все биты, то есть какая-то часть разрядов неполного порта не используется.
На рисунке порт А является полным (у него задействованы все восемь разрядов), а порт В - неполным (задействовано лишь четыре разряда). Это только пример. Как это на самом деле - см. документацию на конкретную модель микроконтроллера.
Каждый порт микроконтроллера AVR имеет своё имя. Они именуются латинскими буквами, начиная от A.
Для управления каждым портом используется три регистра ввода-вывода. Это регистры PORTx, DDRx, PINx. Здесь вместо х указывается имя порта. Например, PORTB - это регистр PORT порта B.
Назначение регистров следующее:
- PORTx - регистр для вывода данных
- DDRx - регистр направления (определяет, как будет работать порт - как вход или как выход)
- PINx - регистр для ввода данных
Отдельные разряды этих регистров также имеют свои имена. Разряды регистра PORTx обычно именуются как Pxn, где n - номер разряда (начиная с нуля), например, PA0 - нулевой разряд регистра вывода данных порта A.
Для регистра направления разряды именуются DDxn. Например, DDB3 - третий разряд регистра направления порта В.
Для регистра ввода разряды именуются PINxn. Например, PINC2 - второй разряд регистра ввода порта С.
Ну и для наглядности на рисунке показаны регистры и разряды порта А:
На этом с портами пока всё. Продолжение следует… Подписывайтесь на канал, чтобы ничего не пропустить…