logo search
Ответы_МПС

Порт ввода/вывода «в» мк pic16f84

PORT A <5> | TRIS A

PORT B <8> | TRIS B

RB7 RB0

7 0

1

1

0

0

0

0

1

1

1

1

1

1

0

0

0

0

PORT B

TRIS B

0-вывод

1-ввод

В PIC16F84 имеет 2 порта:

-PORT A ( 5 bit)

-PORT B (8 bit)

Порт А представляет собой 5 битовый фиксатор соответствующий выводам МК RA0-RA4. Линия RA4 имеет вход триггера Шмита, а выход с открытым стоком. Все остальные линии порта имеют TTL входные уровни, и CMOS выходные буферы.

К каждой линии порта поставлен в соответствии бит направления передачи данных, хранящийся в управл. регистре TRIS A.

Если бит управл. регистром TRIS A имеет значение «1», то соответствующую линию порта настроена на ввод «0», переключает линию на вывод и одновременно выводит на нее содержимое регистра порта. Линии порта по умолчанию настроены на ввод. Вывод RA4 мультиплексирован с тактовым входом таймера.

PORT B это двунаправленный 8-ми битовый порт, соот. выводам RB7-RB0. Управляющий регистр для него TRIS B. Работает также как и TRIS A. У каждой ножки порта Б имеется небольшая активная нагрузка на линию питания, она автоматически отключается, если ножка запрограммирована на вывод. Подключение нагрузки осуществляется битом RB PU, регистра OPTION. При сбросе нагрузки отключаются.

4 линии порта Б, RB7-RB4 смогут вызвать прерывания (RB IF) при изменении значения сигнала на любой из них. Если эти линии настроены на ввод, то они опрашиваются и защелкиваются в цикле чтения Q1, новая величина входного сигнала, сравнивается со старой в каждом командном цикле. При несовпадении значения сигнала на ножке и фиксаторе генерируется запрос прерывания RB IF. Любая линия настроена на вывод в том сравнении не участвует.

Линия RB0 мультиплексирована с входом внеш. Прерывания INT.

На ножку, работающую в режиме вывода не должны нагружаться внешние источники токов, т.к. результирующие токи могут повредить кристалл.

Необходимо выдерживать определенную последовательность при обращении к портам ввода-вывода. Запись в порт вывода происходит в конце командного цикла. При чтении данные должны быть стабильны в начале командного цикла, т.е. надо быть стабильны в начале командного цикла, т.е надо быть внимательным в операциях чтения следующих сразу же а записью в тот же порт необходимо учитывать инерционность установление напряжения на выводах, поэтому может потребоваться программная задержка ( 1-2 ком. цикла), чтобы напряжение на ножке, котор. зависит от нагрузки, успело стабилизироваться до начала исполнения след. команды.