Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общие сведения. Как и любые другие микроконтроллеры, микроконтроллеры AVR се­мейства Classic имеют порты ввода/вывода



Как и любые другие микроконтроллеры, микроконтроллеры AVR се­мейства Classic имеют порты ввода/вывода. Каждый порт состоит из опре­деленного числа выводов, через которые микроконтроллер может прини­мать или передавать цифровые сигналы. Конфигурирование каждой лини порта (задание направления передачи данных) может быть произведено программно в любой момент времени. Входные буферы портов построены по схеме триггера Шмидта. Для линий, сконфигурированных как входные, также имеется возможность подключения внутреннего подтягивающего резистора сопротивлением 35... 120 кОм между входом и проводом пита­ния VDD. Этот резистор выполнен в виде канала полевого транзистора. Кроме того, если вывод (вход) с подключенным внутренним под­тягивающим резистором подключить к общему проводу, он может слу­жить источником тока.

Максимальная нагрузочная способность выходных буферов портов ввода/вывода при лог. «0» на выходе составляет 20 мА. Благодаря этому микроконтроллер может непосредственно управлять светодиодными ин­дикаторами.

AT90S/LS8535 имеют по четыре 8-разрядных порта ввода/вывода А, В, С и D. Общее количество контактов ввода/вывода равно 32. Большинство контактов ввода/вывода имеет дополнительные функции, поскольку эти выводы также используются периферийными ус­тройствами микроконтроллера. В табл. 3 приведены альтернативные функции портов микроконтроллера.

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

Обращение к портам производится через регистры ввода/вывода, причем под каждый порт в адресном пространстве ввода/вывода заре­зервировано по 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

12.3. Конфигурирование портов ввода/вывода

Как уже было отмечено, порты имеют всего две возможности по кон­фигурированию:

• задание направления передачи данных (вход или выход);

• подключение/отключение внутреннего подтягивающего резистора.

Направление передачи данных определяется содержимым регистра пе­редачи данных DDRx. Если разряд DDRxn этого регистра установлен в «1», соответствующий n-й вывод порта является выходом. Если же разряд DDRxn этого регистра сброшен в «0», соответствующий вывод порта явля­ется входом.

Управление подтягивающим резистором осуществляется с помо­щью регистра данных порта PORTx. Если разряд Рхп регистра PORTx уста­новлен в «1» и соответствующий вывод порта является входом, между этим выводом и проводом питания подключается подтягивающий резистор. Что­бы отключить подтягивающий резистор, необходимо либо сбросить соот­ветствующий разряд регистра PORTx, либо сделать вывод порта выходом.

В табл.12.1 приведены все возможные конфигурации выводов портов ввода/вывода. При рассмотрении таблицы рекомендуется еще раз обратить внимание на схе­му, представленную на рис.5.1.

Таблица 12.1

Влияние регистров DDRx и PORTx на конфигурацию выводов портов

DDRxn Pxn Функция вывода Резистор Примечание
    Вход Отключен Третье состояние (Z)
    Вход Подключен При подключении вывода к общему проводу он является источником тока
    Выход Отключен Выход установлен в «0»
    Выход Отключен Выход установлен в «1»

Примечания:

1) n = 7...0 — номер вывода (разряд порта).

2) Если вывод используется каким-либо периферийным ус­тройством микроконтроллера, то соответствующие этому выводу разряды регистров DDRx и PORTx, как правило, должны быть установлены в соот­ветствии с дополнительной функцией вывода. Однако некоторые перифе­рийные устройства при активизации самостоятельно переопределяют кон­фигурацию используемых выводов. Об этом упомянуто при описании конкретных периферийных устройств.

Таблица 12.2

Альтернативные функции линий портов





Дата публикования: 2014-11-26; Прочитано: 226 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...