Регистр статуса STATUS содержит признаки операции (арифметические флаги) АЛУ, состояние контроллера при сбросе и биты выбора страниц для памяти данных. Назначение бит регистра приведено в табл. 2.
Таблица 2. Назначение бит регистра STATUS (адрес 03h, 83h)
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 |
Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 |
Бит 7: IRP: бит выбора банка данных (используется при косвенной адресации) 0 = банк 0,1 (00h – FFh) 1 = банк 2,3 (100h – 1FFh) Бит IRP не используется в МК подгруппы PIC16F8X | |||||||
Биты 6-5: RP1:RP0: биты выбора банка данных (используются при прямой адресации) 00 = банк 0 (00h – 7Fh) 01 = банк 1 (80h – FFh) 10 = банк 2 (100h – 17Fh) 11 = банк 3 (180h – 1FFh) В МК подгруппы PIC16F8X используется только бит RP0 | |||||||
Бит 4: /TO: бит срабатывания сторожевого таймера 1 = после включения питания, а также командами CLRWDT и SLEEP 0 = по завершении выдержки сторожевого таймера | |||||||
Бит 3: /PD: бит снижения потребляемой мощности 1 = после включения питания, а также командой CLRWDT 0 = по команде SLEEP | |||||||
Бит 2: Z: бит нулевого результата 1 = результат арифметической или логической операции нулевой 0 = результат арифметической или логической операции ненулевой | |||||||
Бит 1: DC: бит десятичного переноса/заема (для команд ADDWF и ADDLW) 1 = имеет место перенос из 4-го разряда 0 = нет переноса из 4-го разряда | |||||||
Бит 0: C: бит переноса/заема (для команд ADDWF и ADDLW) 1 = имеет место перенос из самого старшего разряда 0 = нет переноса из самого старшего разряда Примечание: вычитание осуществляется путем прибавления дополнительного кода второго операнда. При выполнении команд сдвига этот бит загружается из младшего или старшего разряда сдвигаемого источника. |
Здесь и далее: R – читаемый бит; W – записываемый бит; S – устанавливаемый бит; U – неиспользуемый бит (читается как «0»); - n – значение бита после сброса.
|
|
Регистр статуса доступен для любой команды так же, как любой другой регистр. Однако если регистр STATUS является регистром назначения для команды, влияющей на биты Z, DC или C, то запись в эти три бита запрещается. Кроме того, биты /TO и /PD устанавливаются аппаратно и не могут быть записаны в статус программно. Для изменения регистра статуса рекомендуется использовать только команды битовой установки BCF, BSF, MOVWF, которые не изменяют остальные биты статуса. Воздействие всех команд на биты статуса можно посмотреть в разделе "Описание системы команд".
Регистры портов ввода/вывода. Контроллеры подгруппы PIC16F8X имеют два порта: PORTA (5 бит) и PORTB (8 бит) с побитовой индивидуальной настройкой на ввод или на вывод. Каждой линии порта поставлен в соответствие бит направления передачи данных, который хранится в управляющем регистре TRISA (TRISB), расположенном по адресу 85h (86h). Если бит управляющего регистра имеет значение единица, то соответствующая линия будет устанавливаться на ввод. Ноль переключает линию на вывод и одновременно выводит на нее содержимое соответствующего регистра-фиксатора порта. При включении питания все линии порта по умолчанию настроены на ввод.