Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PIC микроконтроллеры.docx
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
22 Мб
Скачать
☆

Регистр слова состояния status

В регистре STATUS находятся биты стpаничной адpесации, а также биты-флаги пеpеноса, десятичного пеpеноса и нуля. Флаги – это определенные разряды регистра, которые указывают на результат выполнения операции.

Флаг переноса С (Carry-перенос) показывает, было ли переполнение предыдущей операции сложения. При выполнении операции вычитания флаг С указывает на знак результата операции:

если результат операции положительный (А─В>0 т.е. А>В), то флаг С =1,

если результат операции отрицательный (А─В<0 т.е. А<В), то флаг С =0.

Кроме того, при выполнении команд сдвига, флаг C загружается в старший или младший бит двигаемого регистра (в зависимости от направления сдвига).

Флаг десятичного переноса DC (DigitCarry) показывает, было ли переполнение младшего полубайта. Информация о наличии/отсутствии переноса из младшего полубайта полезна при работе с данными в двоично-десятичномкоде.

Рис. 5.6.Регистр слово состояния STATUS

Флаг нулевого результата Z (Zero-ноль) довольно часто используется на практике.

При выполнении операции вычитания флаг Z указывает на нулевой результат операции: А─В=0, т.е. А=В – флаг Z=1.

Флаг включения питания ─PD (PowerDown) сбрасывается при выполнении команды sleep, которая используется выключения тактового генератора и перевода в режим пониженного энергопотребления (<1 мкА).

Флаги переполнения сторожевого таймера –ТО (TimeOut>) сбрасывается при наступлении тайм-аута сторожевого таймера.

Бит RP0 (STATUS<5>) служит для изменения состояния процессора.

Память данных

На Рис.5.7. приведена упрощенная модель памяти микроконтроллера РIС16F84. Память данных можно представить в виде картотечного шкафа, который имеет два отделения (банка). Внутри каждого отделения (банка) имеется ряд папок (регистров), имеющих по 8 бит данных.

В нашей картотеке присутствуют регистры двух типов. Некоторые из них имеют названия и выполняют специальные, заранее заданные функции. Такие регистры называются регистрами специального назначения SFR (Special Function Registers). Они предназначены для управления и отслеживания состояния микроконтроллера и его отдельных узлов. В частности, регистр с адресом Н’03’ является регистром STATUS, а с адресом Н’06’ представляет собой регистр PORTB параллельного порта В, связанного с выводами микроконтроллера RB0-RB7.

Рис. 5.7. Память данных микроконтроллера РIС16F84

Во всех микроконтроллерах требуется иметь возможность управлять состоянием отдельных битов регистра как для задания отдельных опций в SFR, так и для управления ножками портов ввода/вывода. В микроконтроллерах PIC для этих целей используются следующие команды:

BCF

Команда сброса бита регистра данных (Bit Clear File) позволяет программисту сбросить любой бит в любом регистре. Например, команда BCF Н’25’,5 сбрасывает 5 бит в регистре Н’25’. Состояние остальных битов при этом не изменяется.

BSF

Команда установки бита регистра данных (Bit Set File) позволяет программисту установить любой бит в любом регистре. Например. BSF H’31’,3 устанавливает 3 бит в регистре H’31’. Состояние остальных битов при этом не изменяется.

Остальные регистры, выделенные белым цветом, программист может называть по своему усмотрению, использовать для хранения данных общего назначения. В микроконтроллере РIС16F84 имеется 68 таких регистров общего назначения GPR (General Properties Registers), расположенных по адресам 0CH…4FH.

Из 14 бит, составляющих код команды 7 зарезервировано под адрес операнда в памяти данных. Семь битов дают 27 =128 адресов, т.е. страницу или банк, вмещающий в себя 128 регистров. Для преодоления этого ограничения нужно где-то взять дополнительные биты, чтобы расширить диапазон адресов. В микроконтроллере РIС16F84 для этой цели используется 5 бит регистра STATUS, который называется RP0 (Register Page 0). Этот бит выполняет роль 8-го разряда регистра адреса, расширяя адресное пространство до 256 регистров.

При RP0=0 происходит обращение к page 0 памяти данных (регистры 00Н – 4FН),

При RP0=1 происходит обращение к page 1 памяти данных (регистры 80Н – СFН).

На самом деле использование 1 банка в микроконтроллере РIС16F84 сведено к минимуму. Все 68 регистров GPR отображены на оба банка памяти, т.е по адресу H’n’ и H’(n+80Н)’ находится один и тот же регистр.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]