PIC-Контроллеры. Воробьева Г.С - 42 стр.

UptoLike

42
3. ПРОГРАММНАЯ МОДЕЛЬ PIC16F877
Микроконтроллер PIC16F877 построен по Гарвардской
архитектуре и имеет разделенную память программ и память данных.
На кристалле интегрировано 8К (8192) 14-битных слов FLASH
памяти программ.
Память данных разбита на так называемые банки, каждый из
которых имеет объем 128 байт. Выбор банков осуществляется
переключением битов RP1 и RP0 (биты 6 и 5, регистра STATUS).
Младшие ячейки каждого банка зарезервированы для регистров
специальных функций, потом расположены универсальные регистры,
выполненные как статическая память. Для уменьшения программы и
более быстрого доступа некоторые часто используемые регистры
специальных функций расположенные в одном банке, могут быть
отображены в другом банке.
Управление периферийными устройствами сводится к установке
(сбросу) и опросу соответствующих битов регистров специальных
функций. Карта памяти данных приведена в приложении 1. Для работы
с регистрами используются те же команды, что и для работы с ячейками
ОЗУ. Система команд приведена в приложении 2.
Ниже будут описаны основные, необходимые для управления
микроконтроллером, регистры.
На демонстрационной плате отладочного комплекта MPLAB ICD
к порту С через переключатели подключена линейка светодиодов. Для
настройки на вывод порта С в регистр-защелку TRISC нужно записать
«0», и соответственно «1» - на ввод. Направлением обмена данными
порта В управляет регистр TRISB, и т.д. Регистр TRISC находится в
первом банке (прил. 1). При включении и сбросе регистры TRIS
устанавливаются в «1», т.е. по умолчанию все порты настроены на ввод
во избежание конфликта.
Если требуется осуществить косвенную адресацию, используют
регистры косвенной адресации FSR и INDF. Для того чтобы прочитать
ячейку памяти данных или записать в нее, нужно занести в регистр FSR
адрес этой ячейки, а данные в регистр INDF. Следует отметить, что
седьмой бит регистра STATUS – IRP и седьмой бит регистра FSR
отвечают за выбор банка при косвенной адресации.
Управление прерываниями осуществляется записью в регистр
INTCON соответствующих битов. Вектор прерываний находится по
адресу 0004h памяти программ, следовательно, данный адрес
необходимо зарезервировать для обработчика прерываний. Возврат из
обработчика прерываний осуществляется командой RETFIE.