Предыдущий <<   ПОРТЫ   >>Следующий

Порты A, B, C и D - это двунаправленные восьмиразрядные порты ввода-вывода. Они  имеют аналогичную структуру. Каждый порт представлен тремя регистрами: PORTx, PINx и DDRx. Каждый бит регистров соответствует выводу МК. Так, PORTA.0, PINA.0 и DDRA.0 соответствуют выводу 40 МК AT90s8535 (см. рисунок).

Каждый вывод порта может быть настроен на ввод или на вывод. Да... Не звучит. Вывод на вывод. Давайте условимся - контакт(вывод) МК будем обзывать pin.  Итак - каждый pin может быть настроен на ввод или вывод в любых комбинациях. 

Для того, чтобы pin стал выходом, надо записать лог. "1" в соответствующий разряд регистра DDRx. В этом случае то, что будем записывать в регистр PORTx - будет отображаться на pin МК, то есть управлять внешней схемой, зажигать светодиод или еще что...

 

 

Если pin настроен на вход, то состояние pin-а может быть прочитано МК в регистре PINx. Регистр PORTx в этом случае управляет подтягивающим резистором (на Vcc) - при записи "1" в соответствующий разряд PORTx он включается. Входное сопротивление настроенного на ввод pin-а велико, и если он никуда не подключен  ("болтается в воздухе"), то достаточно поднести к устройству руку, чтобы МК начал читать оттуда все что угодно, но чаще - наводку 50 Гц

Почти каждый pin модет выполнять альтернативную функцию (а в некоторых МК - более одной). Естественно, что использовать его в качестве обычной линии ввода-вывода нельзя. Альтернативные функции (на рисунке - в скобках) включаются при разрешении и соответствующей настройке соответствующих им периферийных устройств. Но режим ввод/вывод надо настроить самому.

Так, если нужно использовать USART (асинхронный последовательный интерфейс), то нужно включить USART, разрешить работу приемника и передатчика и настроить PORTD.1 на выход (на вход без подтягивающих резисторов все линии всех портов настроены по сбросу).


срочно визитки изготовляют ·· септик ·· Дешевые Домены

(с)nml 11-Jul-2009