Сделай Сам Свою Работу на 5

Программные флаги статуса





Размещение флагов в регистре статуса следующее:

  b7 b6 b5 b4 b3 b2 b1 b0
f3= IFR RP1 RP0 TO PD Z DC C

C - Флаг переноса/заема:

Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из самого старшего разряда происходит перенос. Вычитание осуществляется путем прибавления дополнительного кода второго операнда. При выполнении команд сдвига этот бит всегда загружается из младшего или старшего бита сдвигаемого источника.

;----------------Пример

;SUBWF Examрle #1

clrf 0x20 ;f(20h)=0

movlf 1 ;wreg=1

subwf 0x20 ;f(20h)=f(20h)-wreg=0-1=FFh

;Carry=0: Результат отрицательный.

;SUBWF Examрle #2

movlw 0xFF

movwf 0x20 ;f(20h)=FFh

clrw ;wreg=0

subwf 0x20 ;f(20h)=f(20h)-wreg=FFh-0=FFh

;Carry=1: Результат положительный.

DC - Флаг десятичного переноса/заема:

Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из четвертого разряда происходит перенос. Механизм установки десятичного бита переноса “DC” тот же самый, отличается тем, что отслеживается перенос из четвертого бита.

Z - Флаг нулевого результата:

Устанавливается, если результатом арифметической или логической операции является ноль.

PD - Power Down ( режим хранения данных) :



Устанавливается в “1” при включении питания или команде CLRWDT. Сбрасывается в “0” командой SLEEP.

TO - Time Out. Флаг срабатывания Watchdog таймера:

Устанавливается в “1” при включению питания и командами CLRWDT, SLEEP. Сбрасывается в “0” по завершению выдержки времени таймера WDT.

RP1, RP0 - Биты выбора страницы памяти данных при прямой адресации

RP1,RP0:

00= Страница 0 (00h-7Fh),

01= Страница 1 (80h-FFh),

10= Страница 2 (100h-17Fh),

11= Страница 3 (180h-1FFh).

На каждой странице расположено 128 байт. В кристалле PIC16C84 используется только RP0. В этом кристалле RP1 может использоваться просто как бит общего назначения чтения/записи. Однако надо помнить, что в последующих разработках он будет использоваться.

IRP - Бит выбора страницы памяти данных при косвенной адресации

IRP0:

0= Страницы 0,1 (00h-FFh),

1= Страница 2,3 (100h-1FFh).

Этот бит в кристалле PIC16C84 использовать не имеет смысла. Поэтому его можно использовать как бит общего назначения чтения/записи. Однако, надо помнить, что в последующих разработках он будет использоваться.

Аппаратные флаги статуса



Аппаратные Биты статуса TO (Time Out) и PD (Power Down).

По состоянию битов регистра статуса “TO” и “PD” можно определить, чем был вызван “Сброс”:

· просто включением питания,

· срабатыванием таймера watchdog,

· выходом из режима пониженного энергопотребления(Sleeр) в результате срабатывания watchdog таймера,

· по внешнему сигналу /MCLR.

На состояние этих битов могут повлиять только следующие события:

События TO PD Примечание
Включение  
WDT таймер X Не воздействует на бит PD
Sleeр команда  
CLRWDT команда  

Примечание: Событие WDT timeout происходит независимо от состояния TO бита. Sleeр команда выполняется независимо от состояния PD бита.

Ниже показаны состояния битов TO и PD после “Сброса”

TO PD “Сброс” был вызван следующими событиями
Выход из Sleeр по завершению задержки Watchdog
Завершение задержки Watchdog
X Выход из Sleeр по внешнему сигналу MCLR
Включение питания
X X “0”-импульс на входе MCLR

Примечание: Биты TO и PD сохраняют текущее состояние до тех пор, пока не произойдет одно из событий перечисленных в таблице. “0”-Импульс низкого уровня на входе кристалла /MCLR не не изменяет состояние битов TO и PD.

Организация встроенного ПЗУ

Программный счетчик в PIC16C84 имеет ширину 13 бит и способен адресовать 8Кх14бит объема программной памяти. Однако, физически на кристалле имеется только 1Кх14 памяти (адреса 0000h-03FFh). Обращение к адресам выше 3FFh фактически есть адресация в тот же первый килобайт. Вектор сброса находится по адресу 0000h, вектор прерывания находится по адресу 0004h.



PC <12:0>
Stack Level 1
Stack Level 2
. . . . . . . . . . . .
Stack Level 8
Reset Vector 0000h
   
   
   
Interruрt Vector 0004h
  On-Chiр Program Memory   0005h   03FFh
  0400h   1FFFh

 

EEPROM PIC16C84 рассчитан на ограниченное число циклов стирания/записи. Чтобы записать в программную память, кристалл должен быть переведен в специальный режим при котором на ножку /MCLR подается напряжение программирования Vрrg, а питание Vdd должно находиться в пределах 4.5 В ...5.5В. PIC16C84 непригоден для применений, в которых часто модифицируется программа. Запись в программную память осуществляется побитно, последовательно с использованием только двух ножек. Паспортное значение количества записей в программную память PIC16C84 равно 100(min) и 1000 (tiр), практически-же микросхемы выдерживают несколько тысяч перезаписей. Число перезаписей памяти данных (64 байта) достанет 1000000.

 

PC и адресация ПЗУ

(f2). Программный счетчик

Ширина программного счетчика - 13 бит. Младший байт программного счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт программного счетчика (PCH) не может быть прямым образом прочитан или записан. Старший байт программного счетчика может быть записан через PCLATH регистр, адрес которого 0Ah. В зависимости от того, загружается ли в программный счетчик новое значение во время выполнения команд CALL, GOTO, или в младший байт программного счетчика (PCL) производится запись, - старшие биты программного счетчика загружаются из PCLATH разными способами так, как показано на рисунке.

Случай команд GOTO, CALL

Случай команд, у которых результат помещается в f2

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.