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

Порты ввода-вывода



9.1. Организация ввода/вывода

Порты ввода-вывода обеспечивают ввод и вывод данных в параллельном формате. Обычно порты ввода-вывода выполняются 8-разрядными. В режиме ввода данные с внешних контактов порта пересылаются в регистры микроконтроллера. В режиме вывода данные из регистров перемещаются на контакты микроконтроллера. Вывод данных, как правило, производится в «защелку» порта. Данные при этом присутствуют на выходных контактах до новой операции вывода в этот порт. В системе команд микроконтроллера для ввода и вывода данных обычно предусматриваются специальные команды.

В зависимости от выполняемых функций порты могут быть:

0 однонаправленными, предназначенными только для выполнения одной из

операций (ввод или вывод) по всем линиям;

0 двунаправленными, предназначенными для выполнения любой из операций ввода-вывода по всем линиям одновременно; направление передачи может быть изменено программно в процессе работы;

0 с индивидуальной настройкой линий; направление передачи данных по каждой линии программируется независимо от остальных. Последний вариант построения схемы порта в настоящее время наиболее распространен. Например, микроконтроллер АТтеgа163 имеет 32 линии ввода-вывода с индивидуальной настройкой, сгруппированных в 4 параллельных порта: порт А порт В, порт С, порт D. Направление передачи данных любого вывода любого порта может быть изменено независимо от направлений других выводов. Для работы с портами в микроконтроллере предусмотрено 12 регистров, по три на каждый из портов (рис. 5.8):

0 регистры данных (Data Register): PORTA, PORTB, PORTC и PORTD;

0 регистры направления (Data Direction Register): DDRA, DDRB, DDRC и DDRD;

0 регистры входных контактов (Port A Input Pins): PINA; PINB, PINC и PIND.

Все выводы портов имеют индивидуальные подтятвающие резисторы (pull-up resistors). Для подключения этих резисторов в регистре специальных функций ввода/вывода SFIOR (Special Function Input Output Register) предусмотрен бит PUD (Pull-up Disabled).


Рис. 9.1. Регистры портов ввода/вывода

Любая линия порта выполняет функции выхода при записи логической единицы в соответствующий бит регистра направления DDRx (x ∈ A, B, C, D).

Регистры PINx не хранят информацию и фактически не являются настоящими регистрами. Они разрешают доступ к физическим сигналам на линиях соответствующего порта. При чтении PORTx читается защелка данных выбранного порта, а при чтении PINx- значение на контактах порта. Регистры PINx доступны только для чтения, в то время как регистры PORTx и DDRx -для чтения и записи.

Внутренние подтягивающие резисторы подключаются только при PUD=0, если контакты портов сконфигурированы как входы.

Выходы портов выдерживают втекающий ток до 20mA и могут быть непосредственно подключены к светодиодным индикаторам. Однако, вытекающий ток порта не должен быть более 4 мА, а суммарная загрузка порта - не более 80 мА.





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



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