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

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

Порт ввода-вывода – логическое объединение сигнальных линий, через которое принимаются и передаются данные.
Каждая линия порта, как правило, обозначается как Pnx, где

  • n – обозначение порта;
  • x – номер бита (линии) в порте.

Каждый порт ввода-вывода обслуживают как минимум 3 служебных регистра:

  • регистр, содержащий данные (уровни сигналов) на всех линиях порта и используется для записи сигналов в порт;
  • регистр, содержащий состояния входов порта, доступен только для чтения, используется при чтении данных из порта;
  • регистр направления линий порта: каждая линия порта может быть сконфигурирована как вход или как выход в зависимости от значения бита этого регистра.

Если какая-то линия порта ввода-вывода в схеме не используется, она должна быть определена как выход (соответствующий бит регистра направления должен соответствовать выходу), и ее выходное значение должно быть равно 0.

Большинство линий ввода-вывода могут быть сконфигурированы для выполнения альтернативных функций, обозначенных в назначении выводов микроконтроллера.

Для всех линий портов ввода-вывода, как правило, доступна программная конфигурация входных подтягивающих резисторов. Подтягивающие резисторы осуществляют доопределение потенциалов «брошенных» входов напряжением высокого (Pull-up) или низкого (Pull-down) уровня.
Подтягивающий резистор

Для обращения к отдельным линиям порта используется маскирование битов.

Входные элементы управления

В качестве входных элементов управления могут использоваться

  • другие элементы схемы;
  • тумблеры;
  • джамперы;
  • множественные переключатели;
  • кнопки.

Тумблеры предназначены для коммутации цепей управления. Обрабатываемый сигнал с тумблера – потенциальный.

Различают 1-позиционные и 2-позиционные тумблеры:

1-позиционные
Однопозиционный тумблер
2-позиционные
tumbler2
Джамперы, как правило, используются для переключения режима работы, и их состояние проверяется только в момент включения питания микроконтроллера. Установка джампера замыкает 2 вывода, между которыми он установлен.
Джампер
Множественные переключатели представляют собой набор 1-позиционных тумблеров в миниатюрном формате.
Множественный переключатель
Кнопки предназначены для коммутации цепей управления. Обрабатываемый сигнал с кнопки – импульсный и фиксирует момент нажатия кнопки и момент ее отжатия.
Кнопки

Выходные элементы управления

В качестве выходных элементов управления могут использоваться

  • другие элементы схемы;
  • элементы индикации (единичные светодиоды или светодиодные сборки, в частности, - 7-сегментные индикаторы).

Единичные светодиоды

Светодиод7-сегментные индикаторы

Различают 7-сегментные индикаторы с общим анодом и с общим катодом.

При подаче логической единицы на соответствующий сегмент индикатора с общим катодом светодиод сегмента включается. При этом общий вывод сегментов (катод) должен быть соединен с логическим нулем.

При подаче логического нуля на соответствующий сегмент индикатора с общим анодом светодиод сегмента включается. При этом общий вывод (анод) должен быть соединен с логической единицей.

7-сегментный индикатор

В таблице приведены коды для отображения цифр на 7-сегментном индикаторе

Цифра G F E D C B A Код
7-сегментный индикатор 0 1 1 1 1 1 1 0x3F
7-сегментный индикатор 0 0 0 0 1 1 0 0x06
7-сегментный индикатор 1 0 1 1 0 1 1 0x5B
7-сегментный индикатор 1 0 0 1 1 1 1 0х4F
7-сегментный индикатор 1 1 0 0 1 1 0 0x66
7-сегментный индикатор 1 1 0 1 1 0 1 0x6D
7-сегментный индикатор 1 1 1 1 1 0 1 0x7D
7-сегментный индикатор 0 0 0 0 1 1 1 0x07
7-сегментный индикатор 1 1 1 1 1 1 1 0x7F
7-сегментный индикатор 1 1 0 1 1 1 1 0x6F

Назад

2 комментария к “Порты ввода-вывода”

  1. Александр

    Уважаемая Елена не подскажите как написать в языке Си: если на три порта микрконтроллера при считывании датчиков будут нули то нужно четвертый порт перевести на выход if((PINA+PINB+PINC)==0){POTD=0xFF;} ,но компилятор ругается на такую запись в атмелстудио

    1. Елена Вставская

      Порт подразумевает, что датчик подключен ко всем 8 линиям? Он параллельным кодом выдает сигнал? Порт перевести на выход — имеется в виду линии сконфигурирован как выходы, значение не важно? Или вывести значение в порт? Тогда какое? Или все-таки задействуются отдельные линии порта?
      В предложенной строке — как минимум, опечатка в POTD

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх