Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
konspekt_lektsy_po_PTsU.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.31 Mб
Скачать

6.2 Организация периферийных модулей

6.2.1 Порты ввода/вывода

В рассматриваемом МК реализовано 6 каналов порта ввода/вывода, т.е. один порт в неполном объеме. Существуют МК, в которых количество портов может быть до 4-х и носят названия соответственно Port А, B, C, D. Все каналы портов ввода/вывода. Все каналы портов мультиплексированы с дополнительными функциями периферийных модулей МК. При этом линия порта ввода/вывода может работать как порт ввода/вывода или как линия периферийных функций. Непосредственно работу портов задает регистр GPIO, который и представляет собой 6-разрядный порт, т.е. логическая 1 в соответствующем разряде определяет высокий уровень на данном выходе порта. Все каналы GPIO имеют соответствующие биты направления, расположенных в регистре TRISIO, позволяющие настраивать канал как вход или выход. Запись «1» в TRISIO переводит соответствующий выходной буфер в 3-е состояние. Запись «0» в регистр TRISIO определяет соответствующий канал как выход, содержимое защелки GPIO передается на вывод микроконтроллера. Вывод GP3 может работать только на вход, чтение соответствующего бита TRISIO дает результат «1».

Чтение регистра GPIO возвращает состояние на выводах порта, а запись производится в защелку GPIO. Все операции записи в порт выполняются по принципу «чтение - модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку. Биты регистра TRISIO управляют направлением канала GPIO, даже если они используются как аналоговые функции, т.е. пользователь программно должен задать режимы работы внешних портов. Дополнительно порты GPIO содержат индивидуальные биты разрешения прерывания по изменению уровня сигналов, данная информация хранится в регистре IOGB. Кроме этого каналы программно могут подключать внутренние подтягивающие резисторы при работе портов на вход. Данные резисторы автоматически выключаются при настройке порта на выход. Информация о данных резисторах находится в регистре WPU. Работа прерывания по изменению уровня сигнала на входе заключается в следующем: сигнал на выходе GPIO постоянно сравнивается со значением, сохраненным при последнем чтении регистра GPIO. В случае несовпадения одного из значений формируется флаг события и пре разрешенном прерывании генерируется прерывание.

Можно условно выделить:

1)блок управления портом. Сюда входят 4 D-триггера, представляющие собой защелки соответствующих разрядов регистров: GPIO, TRISIO, WPU, IOCB.

2)дополнительные функции. Подтягивающий резистор, представляющий собой p-n-переход с модулем управления (R=50кОм).

3)блок формирования прерывания. 2 динамические D-триггера с выходным сигналом формирования события.

Порт ввода/вывода имеет защитные диоды, позволяющие принимать сигналы от -0,6 относительно земли до + 0,6 В от напряжения питания.

Порт GP0 имеет мультиплексированные возможности работать как аналоговый вход, так и положительный вход встроенного компаратора. Для работы порта ввода/вывода используются следующие регистры специального назначения:

  • GPIO

  • TRISIO (регистр направления)

  • ANSEL (регистр выбора аналогового или цифрового канала)

  • WPU, IOCB

  • INTCON, OPTIONREG, CMCON (регистры определяют дополнительные функции портов)