Найти тему
Будни инженера

Полные и неполные порты

Микроконтроллеры AVR всегда имеют в своём составе от одного и более портов ввода-вывода. Каждый разряд (бит) такого порта присоединён к одному из выводов (контактов) микросхемы микроконтроллера.

Порты ввода-вывода могут быть полными и неполными. Если порт полный, то все его разряды (обычно это 8 бит) задействованы. В неполном порте задействованы не все биты, то есть какая-то часть разрядов неполного порта не используется.

На рисунке порт А является полным (у него задействованы все восемь разрядов), а порт В - неполным (задействовано лишь четыре разряда). Это только пример. Как это на самом деле - см. документацию на конкретную модель микроконтроллера.

Каждый порт микроконтроллера AVR имеет своё имя. Они именуются латинскими буквами, начиная от A.

Для управления каждым портом используется три регистра ввода-вывода. Это регистры PORTx, DDRx, PINx. Здесь вместо х указывается имя порта. Например, PORTB - это регистр PORT порта B.

Назначение регистров следующее:

  • PORTx - регистр для вывода данных
  • DDRx - регистр направления (определяет, как будет работать порт - как вход или как выход)
  • PINx - регистр для ввода данных

Отдельные разряды этих регистров также имеют свои имена. Разряды регистра PORTx обычно именуются как Pxn, где n - номер разряда (начиная с нуля), например, PA0 - нулевой разряд регистра вывода данных порта A.

Для регистра направления разряды именуются DDxn. Например, DDB3 - третий разряд регистра направления порта В.

Для регистра ввода разряды именуются PINxn. Например, PINC2 - второй разряд регистра ввода порта С.

Ну и для наглядности на рисунке показаны регистры и разряды порта А:

-2

На этом с портами пока всё. Продолжение следует… Подписывайтесь на канал, чтобы ничего не пропустить…