Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Как и любые другие микроконтроллеры, микроконтроллеры 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!