Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
Шаг 3. А теперь ближе к практике: знакомтесь — микроконтроллеры AVR 93 З.б. Подсистема ввода-вывода Микроконтроллеры серии AVR всегда имеют в своем составе от одного до семи портов ввода-вывода. Каждый разряд такого порта подсоединен к одному из выводов (контактов) микросхемы. Порты ввода-вывода слу жат для обмена информацией с внешними устройствами. Как уже гово рилось, порты могут быть полные и неполные. Полный порт содержит 8 разрядов. В неполных портах задействованы они не все. Каждый порт имеет свое имя. Они именуются латинскими буквами от А до G. Для управления каждым портом ввода-вывода используется три спе циальных РВВ. Это регистры PORTx, DDRx и PINx. Под «х» здесь подраз умевается конкретная буква — имя порта. Например, для порта А имена регистров управления будут такими: PORTA, DDRA и PINA. Рассмотрим теперь назначение каждого из этих регистров: ♦ PORTx — регистр данных (используется для вывода информации); ♦ DDRx — регистр направления передачи информации; ♦ PINx — регистр ввода информации. Отдельные разряды приведенных выше регистров также имеют свои имена. Разряды регистра PORTx обычно именуются как Рхп. Где «п» — это номер разряда. К примеру, разряды регистра PORTA будут имено ваться следующим образом: РАО, PAI, РА2 — РА7. Разряды порта DDRx именуются как DDxn (для порта А — DDA0, DDA1 — DDA7). Разряды порта PINx именуются как PINxn (для порта А — PINA0, PINA1 — PINA7). Для других портов буква А заменяется соответственно на В, С, D, Е, F, G. Любой порт ввода-вывода микроконтроллера серии AVR устроен таким образом, что каждый его разряд может работать как на ввод, так и на вывод. То есть он может быть входом, а может быть выходом. Для переключения режимов работы служит регистр DDRx. Каждый разряд регистра DDRx управляет своим разрядом порта. Если в каком-либо разряде регистра DDRx записан ноль, то соответствующий разряд порта работает как вход. Если же в этом разряде единица, то разряд порта работает как выход. Для того, чтобы выдать информацию на внешний вывод микросхемы, нужно в соответствующий разряд DDRx записать логическую единицу, а затем записать байт данных в регистр PORTx. Содержимое соответству ющего бита этого байта тут же появится на внешнем выводе микросхемы и будет присутствовать там постоянно, пока не будет заменено другим, либо пока данная линия порта не переключится на ввод. Для того, чтобы прочитать информацию с внешнего вывода микро контроллера, нужно сначала перевести нужный разряд порта в режим ввода. То есть записать в соответствующий разряд регистра DDRx ноль.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==