.
Порты ввода/вывода имеет буквенное обозначение. A, B, C ..и т.д., в зависимости от количества портов в микроконтроллере. Каждый порт имеет свои регистры управления, порт "A" к примеру: TRISA, PORTA, LATA, порт"B" TRISB, PORTB, LATB и т.д..
Рассмотрим настройку порта:
Допустим необходимо настроить порт "С", линии вывода С0-С3 на выход, а остальные на вход, для этого настраиваем регистр TRIS. Очень удобно записывать в двоичной системе .
movlw b'11110000' ;
movwf TRISC ;
Если необходимо весь порт настроить на выход, то достаточно очистить регистр TRIS.
clrf TRISC ;
На вход настраивать не нужно (по умалчиванию).
То же самое и с другими регистрами.
При применении встроенных модулей микроконтроллера в своих приложениях необходимо помнить, что приоритет мультиплексированных выводов порта отдается в пользу периферийных модулей. Т.е. не зависимо от того как были настроены выводы (на вход или на выход) при включении определенного модуля направление данных изменяется.
Хотя типов микроконтроллеров достаточно много, тем не менее практически все они "построены на базовом варианте" и рассматривая МК PIC18252 многое относится и к другим микроконтроллерам 18 серии.
На пример;
Порт"А".
7-разрядный или 8-разрядный (в зависимости от типа МК) порт ввода/вывода. Линия RA4/T0CKI имеет триггер Шмитта на входе и открытый сток на выходе, мультиплексирован с тактовым входом таймера TMR0. Для формирования на его выходе "1" необходимо подтянуть вывод внешним резистором к шине питания +5В.
Каналы PORTA мультиплексированы с аналоговыми входами АЦП и аналоговым входом источника опорного напряжения VREF+ и VREF-. Если модуль АЦП не задействуется, то при конфигурации нужно настроить линии порта как цифровые каналы, т.к. при сбросе или включении питания микроконтроллера часть линий ввода/вывода устанавливается как аналоговые входы.
Инициализация порта"А"
clrf PORTA ; очистка порта.
movlw 07h ; настройка как цифровых
movwf ADCON1 ; каналов ввода/вывода.
movlw b'00000111 ; настройка RA0-2 на вход
movwf TRISA ; остальные на выход.(пример)
Для настройки каналов, мультиплексированных с АЦП вместо регистра ADCON1 (в зависимости от типа МК может применятся другой регистр "ANSEL"). Настройка порта для работы с АЦП рассмотрена в соответствующей теме.
Порт"B".
Восьмиразрядный порт ввода/вывода. К каждому выводу аппаратно можно подключить внутренний подтягивающий резистор. При сбросе микроконтроллера или переключении линии порта на выход, подтягивающие резисторы отключаются.
Для настройки каналов, мультиплексированных с АЦП применяется регистр управления "ANSELH" (в зависимости от типа МК, к примеру в PIC18FXX2 его нет, как нет и каналов АЦП на этом порту). По этому, если АЦП на порту не задействовано, то с помощью этого регистра необходимо настроить каналы как цифровые линии ввода/вывода. В некоторых типов МК 18 серии для настройки отдельных цифровых каналов ввода/вывода порта"В", при конфигурации микроконтроллера необходимо прописать PBADEN=ON.
Инициализация порта "B" PIC18FXX2. (пример)
clrf PORTB ; очистка порта.
movlw 07h ; настройка как цифровых
movwf ADCON1 ; каналов ввода/вывода.
movlw b'00000111 ; настройка RA0-2 на вход
movwf TRISB ; остальные на выход.(пример)
Инициализация порта "B" PIC18FXXK20.(пример)
clrf PORTB ; очистка порта. Можно регистр LATB.
clrf ANSELH ; цифровые каналы, конф.бит PBADAN должен установлен.
movlw b'00000111 ; настройка RB0-2 на вход
movwf TRISB ; остальные на выход.(пример)
Каналы порта часто применяют как источник прерываний . К примеру, изменение логического состояния на входе каналов RB4-7 часто применяют для опроса кнопок. (более подробно можно почитать в статье....).
Порт"С".
Восьмиразрядный порт ввода/вывода. На этом порту сосредоточены в основном модули "связи", SPI, I2C, USART. Кроме этого различные модули таймеров и ШИМ. Обычно если модули не задействованы, то линии работают как цифровые каналы вводы/вывода. Настройка порта производится с помощью специальных регистров TRISC, LATC, PORTC.
Порт"D","E".
В зависимости от типа микроконтроллера порт"Е" бывает трех или восьмиразрядным портом ввода/вывода, Порт"D" восьмиразрядный.
Настройка порта "D" производится с помощью специальных регистров TRISD, LATD, PORTD. Порта "E" соответственно регистры TRISЕ, LATЕ, PORTЕ.
В некоторых типах микроконтроллеров могут быть специальные порты для управления LCD индикатором. А так же различные модули (специализированные МК) для управления нагрузкой и т.д..
Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2021 © ChipMK.ru
![]() |
|