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

Управление портом



Выводы портов в достаточной степени автономны, и их режим может устанавливаться независимо друг от друга. По умолчанию при включении питания все дополнительные устройства отключены, а порты работают на вход, причем находятся в состоянии с высоким импедансом (т. е. высоким входным сопротивлением). Работа на выход требует специального указания, для чего в программе нужно установить соответствующий нужному выводу бит в регистре направления данных (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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



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