Обращение к портам ввода/вывода

Обращение к портам производится через регистры ввода/вывода, причем под каждый порт в адресном пространстве ввода/вывода заре­зервировано по 3 адреса. По этим адресам размещаются три регистра. Для порта А этими регистрами являются: регистр данных порта PORTА, регистр направления данных DDRА и ре­гистр выводов порта PINА. Поло­жение этих регистров в адресном пространстве ввода/вывода приведено в разделе 16. При сбросе микроконтроллера регистры DDRА и PORTА очищаются, а все выводы портов после сброса устанавливаются в тре­тье состояние.

Следует заметить, что «регистры» PINА (PINB и.т.д) на самом деле регистрами не яв­ляются, по этим адресам осуществляется доступ к физическим значениям сигналов на выводах порта. Соответственно, они доступны только для чте­ния, тогда как регистры PORTА и DDRА доступны и для чтения, и для запи­си.

Таким образом, запись в порт означает запись требуемого состояния для каждого вывода порта в соответствующий регистр данных порта PORTx. А чтение состояния порта выполняется чтением либо регистра данных порта PORTx, либо регистра выводов порта PINx. При чтении ре­гистра выводов порта PINx происходит считывание логических уровней сигналов, присутствующих на выводах порта. А при чтении регистра дан­ных порта PORTx происходит считывание данных, находящихся в регист­ре-защелке порта. Причем сказанное справедливо как для входных, так и для выходных контактов.

Рисунок 5.1 - Упрощенная схема одного канала порта ввода/вывода

На рис. 5.1 приведена структурная схема одного из каналов порта ввода/вы­вода. На схеме имеются следующие обозначения:

WP: Запись в PORTA

WD: Запись в DDRA

RL: Чтение регистра-защелки порта

RP: Чтение состояния вывода порта

RD: Чтение регистра DDRA


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: