Обмен данными с портом ввода-вывода +

2-1Все выводы порта, исключая GP3, могут быть использованы как для ввода, так и для вывода. На схеме не показаны защитные диоды, подключенные от вывода порта к Vcc и Vdd.

Входные значения на выводах нигде не защелкиваются. Значение должно непрерывно присутствовать на выводе, пока выполняется команда чтения, например, MOVF GPIO, W. Выходные значения защелкиваются в триггере и сохраняются до тех пор, пока не будут изменены следующей командой.

Еще раз подчеркнем, что при выполнении операции чтения считываются только реальные уровни на выводах. Например, если порт настроен на вывод высокого уровня, но внешняя цепь «тянет» его в низкий уровень, то по этой линии будет считываться логический «О». Эта замечательная способность микроконтроллеров PIC очень часто помогает разрабатывать простые и оригинальные схемы.

Рассмотрим пример ошибки при написании программы. Кстати, в фирменной документации к PIC12Cxxx в примере этой программы допущена опечатка, которая тиражируется в российской справочной литературе. В описании rfPIC12C509xx эта опечатка исправлена. Обратите внимание: пользователь ожидал, что получит выходные значения -00 рррр. Но вторая команда BCF считала высокий уровень на входе GP5 и перенесла его в выходную защелку. Когда командой TRIS GPIO мы настроили линию GP5 на выход, на ней появился высокий уровень, считанный раньше. Паразитный «сквозной бит» выделен жирным шрифтом. Ошибки, подобные этой, страшны тем, что могут проявляться только при определенном стечении обстоятельств, иногда очень редко.

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

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