ВУЗ:
Составители:
Объем банков ПД – 128 байт (до адреса 7Fh).
В начале банка размещаются SFR, затем РОН, выполненные как
статическое ОЗУ. Некоторые часто используемые SFR могут быть
доступны из любого банка ПД (без предварительного выбора
соответствующего банка памяти).
Регистры общего назначения (РОН). Предназначены для
записи/считывания данных в процессе работы. Обратиться к ним можно
либо прямой адресацией, либо косвенной (через регистр FSR).
Регистры специального назначения (SFR - Special Function Registers).
С помощью SFR осуществляется управление функциями ядра МК и
периферийными модулями (таймерами, АЦП, портами).
Все регистры – РОН и SFR – представлены на карте памяти (таблица 3.1)
* - регистр косвенной адресации - не физический регистр (при
использовании косвенной адресации: обращение к регистру, адрес которого
находится в FSR).
Закрашенные участки ПД не реализованы, значение при чтении 00h.
Жирным шрифтом выделены регистры, которые доступны из любого банка
памяти.
Примечания к таблице 3.1:
1. Эти регистры не реализованы в PIC16F876
2. Резервные регистры, их нельзя использовать
Рассмотрим наиболее необходимые для работы с PIC16F877
регистры.
Регистр STATUS
В регистре STATUS содержатся флаги состояния АЛУ, флаг причины
сброса МК и биты управления банками памяти.
Регистр STATUS может быть адресован любой командой, как и любой
другой регистр ПД. Если обращение выполняется командой, которая
воздействует на флаги Z, DC и С, то изменение этих флагов блокируется.
Эти биты устанавливаются/сбрасываются согласно логике АЛУ.
Поэтому при изменении битов регистра STATUS рекомендуется
использовать команды, не влияющие на флаги АЛУ (SWAPF, MOVWF,
BCF и BSF).
Регистр STATUS (адрес 03h, 83h, 103h, 183h)
R/W
-
0
R/W
-
0
R/W
-
0
R
-
1
R
-
1
R/W
-
x
R/W
-
x
R/W
-
x
IRP RP1 RP0 -TO -PD Z DC C
D7 D0
R – бит для чтения W – бит для записи -n – значение после сброса
-х – неизвестное значение после сброса
бит 7: IRP – бит выбора банка при косвенной адресации
1 = банк 2, 3 (100h – 1FFh)
0 = банк 0,1 (000h – 0FFh)
биты 6-5: RP1:RP0 – биты выбора банка при прямой адресации
11 = банк 3 (180h – 1FFh)
10 = банк 2 (100h – 17Fh)
01 = банк 1 (080h – 0FFh)
00 = банк 0 (000h – 07Fh)
бит 4: -ТО – флаг переполнения сторожевого таймера
1 = после сброса или выполнения команд CLRWDT, SLEEP
0 = после переполнения WDT
бит 3: -PD – флаг включения питания
1 = после сброса или выполнения команды CLRWDT
0 = после выполнения команды SLEEP
бит 2: Z – флаг нулевого результата
1 = нулевой результат выполнения арифметической и логической операций
0 = ненулевой результат выполнения арифметической и логической операций
бит 1: DC – флаг десятичного переноса/заема (для команд ADDWF,
ADDWL, SUBWF, SUBWL); заем имеет инверсное значение
1 = был перенос из младшей тетрады
0 = не было переноса из младшей тетрады
бит 0: С – флаг переноса/заема (для команд ADDWF, ADDWL, SUBWF,
SUBWL); заем имеет инверсное значение
1 = был перенос из младшего бита
0 = не было переноса из младшего бита
Примечание. Флаг заема имеет инверсное значение. Вычитание выполняется
путем прибавления дополнительного кода второго операнда. При выполнении
команд сдвига RRF и RLF бит С загружается старшим или младшим битом
сдвигаемого регистра.
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »