Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Выводы портов в достаточной степени автономны, и их режим может устанавливаться независимо друг от друга. По умолчанию при включении питания все дополнительные устройства отключены, а порты работают на вход, причем находятся в состоянии с высоким импедансом (т. е. высоким входным сопротивлением). Работа на выход требует специального указания, для чего в программе нужно установить соответствующий нужному выводу бит в регистре направления данных (DDRx, где х — буква, обозначающая конкретный порт, например для порта А это будет DDRA). Если бит сброшен (т. е. равен лог. 0), то вывод работает на вход (установка по умолчанию), если установлен (т. е. равен лог. 1) — то на выход. Для установки выхода в требуемое состояние нужно отдельно установить в данное состояние соответствующий бит в регистре данных порта (обозначается PORTx).
Регистр данных PORTx фактически есть просто выходной буфер, все, что в него записывается, оказывается на выходе. Но в режиме ввода регистр данных PORTx играет иную роль — управление подключением «подтягивающего» резистора (pull-up) сопротивлением 35-120 кОм.
Примечание: глобальное разрешение использование pull-up резисторов определяется битом PUD в специальном конфигурационном регистре SFIOR.
Процедура чтения уровня на выводе порта, если он находится в состоянии работы на вход, связана с чтением содержимого «регистра» PINx. PINx не является в полном смысле регистром – это просто некий диапазон адресов, чтение по которым предоставляет доступ к информации из буферных элементов на входе порта. Записывать что-то по адресам PINx, естественно, нельзя.
Чтение же регистра данных PORTx дает возможность считывания содержимого выходного буфера порта.
Ниже представлена итоговая таблица конфигурации портов в режиме цифрового ввода – вывода.
DDRxn | PORTxn | I/O | Нагрузочный резистор | Описание |
Вход | Не подключен | Третье состояние (Hi-Z) | ||
Вход | Подключен | При низком уровне Pxn обеспечивают вытекающий ток | ||
Выход | Не подключен | Низкий уровень, двухтактный выход | ||
Выход | Не подключен | Высокий уровень, двухтактный выход |
Рис. Схематическое обозначение управления портом.
Используемые регистры для работы с портами AtMega16 (в скобках указаны адреса в пространстве памяти, начальное значение регистров – 0х00 (кроме PINx)):
Варианты подключения кнопок и индикаторов к выводам порта контроллера.
Рис. Подключение кнопки с активным «0» при нажатии
Рис. Подключение кнопки с активной «1» при нажатии. Вывод должен быть подтянут к «0».
Рис. Подключение LED индикатора с включением «0».
Рис. Подключение LED индикатора с включением «1».
Выбор конкретной схемотехнической реализации зависит от конкретных электрических характеристик выводов порта (нагрузочная способность, входные токи и т.д.)
Дата публикования: 2015-10-09; Прочитано: 409 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!