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

3.2.2.1 Регистры port а и trisa

PORTA – 6 - разрядный порт ввода вывода. Все каналы PORTA имеют соответствующие биты направления в регистре TRISA, позволяющие настраивать канал как вход или выход. Запись '1' в TRISA переводит соответствующий выходной буфер в 3-е состояние. Запись '0' в регистр TRISA определяет соответствующий канал как выход, содержимое защелки PORTA передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).

Чтение регистра PORTA возвращает состояние на выводах порта, а запись производится в защелку PORTA. Все операции записи в порт выполняются по принципу «чтение - модификация - запись», т.е. сначала производится чтение состояния выводов порта, затем изменение и запись в защелку.

RA4 - имеет триггер Шмидта на входе и открытый сток на выходе, мультиплицирован с тактовым входом TOCKI. Все остальные каналы PORTA имеют TTL буфер на входе и полнофункциональные выходные КМОП буферы.

Каналы PORTA мультиплицированы с аналоговыми входами АЦП и аналоговым входом источника опорного напряжения VREF. Биты управления режимов работы каналов порта ввода/вывода PORTA находятся в регистре ADCON1.

Примечание: После сброса по включению питания выводы настраиваются как аналоговые входы, а чтение дает результат '0'.

Биты регистра TRISA управляют направлением каналов PORTA, даже когда они используются как аналоговые входы. Пользователь должен удостовериться, что соответствующие каналы PORTA настроены на вход при использовании их в качестве аналоговых входов.

Пример: Инициализация PORTA

;Настроить PORTA как порт дискретного ввода/вывода

;назначение выводов порта А осуществляется в регистре ADCON1(9fh)

;(раздел 1.8.1) установкой управляющих битов:

; PCFG3, PCFG2, PCFG1, PCFG0 = 000001100b, или 0x06.

; ADCON1 находится в 1-м банке.

BCF STATUS, RP1 ;Выбрать банк 0

BCF STATUS, RP0 ;RP1=0, RP0=0

CLRF PORTA ;Инициализация защелок PORTA

BSF STATUS, RP0 ;Выбрать банк 1(RP0=1)

MOVLW 0X06 ;

MOVWF ADCON1; Каналы PORTA - цифровые входы/выходы

MOVLW 0xCF ; Значение для инициализации

; направления каналов PORTA

MOVWF TRISA ; Настроить RA<3:0> как входы,

; настроить RA<5:4> как выходы

; Биты TRISA<7:6> всегда

; читаются как '0'.

Действия в отношении регистров PORTВ и TRISВ, аналогичны действиям с регистрами PORTA и TRISA кроме того, что PORTВ работает только как дискретный и настраивать его не надо.

При написании программы, следует учитывать, что регистры PORTA и PORTB расположены в нулевом банке, а регистры TRISA и TRISB – в первом.

3.2.2.2 Регистры portb и trisb

PORTB - 8-разрядный двунаправленный порт ввода/вывода. Биты регистра TRISB определяют направление каналов порта. Установка битва в '1' регистра TRISB переводит выходной буфер в 3-е состояние. Запись '0' в регистр TRISB настраивает соответствующий канал как выход, содержимое защелки PORTB передается на вывод микроконтроллера (если выходная защелка подключена к выводу микроконтроллера).

К каждому выводу PORTB подключен внутренний подтягивающий резистор. Бит –RBPU (OPTION_REG <7>) определяет подключены (–RBPU=0) или нет (–RBPU=1) подтягивающие резисторы. Подтягивающие резисторы автоматически отключаются, когда каналы порта настраиваются на выход и после сброса по включению питания POR.