Порты ввода и вывода, необходимы микроконтроллеру для возможности обмена данными с различными устройствами, например, пьезоизлучателями, индикаторами, реле. С помощью AVR портов, проводится не только обмен данными, но и синхронизация схемы.
Количество AVR портов зависит от модели микроконтроллера. (1-7) портов. Как правело, порты AVR восьмиразрядные, если разрядность не ограничивается количеством выводов на корпусе микроконтроллера.
Порты AVR обозначаются латинскими буквами, например, PORTA, PORTB… PORTG. Каждый вывод – имеет порядковый номер, причем, нумерация начинается с (0). Если микроконтроллер позволяет использовать 8 разрядов, то нумерация выглядит так – PB0… PB7.
Выводы портов - могут выполнять также и альтернативные функции.. Если, например, сигнал модуля USART совпал с выводом BP5, то BP4 и BP3, работают в режимах (SCK, MISO и MOSI). они не могут использоваться как элементы порта ввода/вывода. Если модуль отключить. Эти выводы продолжают работать как элементы порта.
Управлять любым портом X Можно с помощью трех регистров:
The Port X Data Direction Register DDRx – Восьмибитный порт, обеспечивающий передачу данных каждой линии порта X. 0 – вход, 1 – выход. Каждый из 8 бит, отвечает за свою линию порта Px (0-7). Поскольку выводы порта нумеруются с (0) – первый бит отвечает за BP0, второй – за BP1… восьмой – за BP7. Если вы хотите заставить конкретный вывод работать на вход – значения регистра =0, на выход =1. При включении, параметры всех выводов, сбрасываются на (0).
The Port X Data Register (PORTx) - режим работы порта, на вход или на выход, определяет принцип работы с регистром.Порт X работает на вход. Регистр отвечает за синхронизацию напряжение линии с напряжением внутреннего питания. Эта процедура, осуществляется при помощи внутреннего сопротивления.Порт X работает на выход. Регистр управляет выходной линией.
The Port X Input Pins Address (PINx) - этот регистр считывает информацию, когда порт X находится в режиме входа. Например, прочитать линию PB6, можно только с помощью входного бита PINB6. У этого регистра есть еще несколько полезных функций: определения функциональности передатчика информации; определения всех узловых точек от передатчику к получателю;