Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[5]

f - поле, определяющие адреса используемого регистра из внутреннего ОЗУ контроллера.

Все команды работы с байтами делят на подгруппы:

1)Команды арифметических операций.

2)Команды логических операций.

3)Команды пересылки данных.

1) Команды арифметических операций.

fW d = 0

а) ADDWF f, d ; f +W\ Wd f, d = 1

Сложить содержимое регистра F с содержимым рабочего регистра W, результат в W, если d=0 и в f, если d=1.

КОП: 000 111 Пример. ADDWF FSR, 0; FSR+WW.

Для данной команды составим КОП:

11

5

0

0 0 0 1 1 1

1 1 1 1 1

0

0

0100

1 1

- 1xC4H

d

<

-►

адрес

FSR=4H

f W, d = 0

б) SUBWF f, d ; f-W= \ команда вычитания.

{f d 1 W d 0 команда декремента (уменьшения на 1).

{f d 1 W d 0 команда спецдекремента.

Уменьшение f на единицу и с попуском следующей команды, если получен нулевой результат.

Замечание. Реально процессор при пропуске, вместо выполнения следующей команды, выполнит пустую операцию, если при вычитании получен нулевой результат.

Команда DECFSZ используется для организации цикла. Пример. MOVLW 0x10H; W загрузить 10Н

MOVWF COUNT ; W перегрузить в яч. ОЗУ с адресом COUNT

L1 ......; метка L1

<команда 1 > 1,N

повторяется (тело цикла)

<команда 2 >J

DECFSZ COUNT, 1 ; COUNT<-COUNT-1 GOTO L1

Тело цикла будет повторено столько раз, какое значение было изначально загружено в ячейку ОЗУ COUNT.

if d 1 W, d 0 команда инкремента (увеличения на 1).


Пример. INCF FSR, 1; FSR<- FSR+1 INCF 4, 1; FSR- FSR+1 t

адрес FSR

W d 0; команда спец. инкремента.

Инкремент, но с пропуском следующей команды, если получен нулевой результат.

Замечание. Нулевой результат возникнет при переполнении регистра f. Эта команда также используются для организации цикла.

2) Команды логических операций.

а) ANDWF f, d - логическое умножение ("И"). IORWF f, d - логическое сложение ("ИЛИ").

XORWF f, d - логическое сложение по модулю два (исключающее ИЛИ).

(W, d = 0

If , d = 1

Замечание. Все логические операции выполняются побитно

0010 1010

&

0110 1100 0010 1000

f 0 W -

RLF f , d -1- на 1 бит влево

б)> команды логического сдвига:

RRF f , d -J- на 1 бит вправо

- Jf , d = 1 f -If , d = 0

Схема сдвигов имеет вид:

нулевой бит регистра status

c

<-

реги

пр F

-►

Влево

Для получения сдвига вправо необходимо изменить направление стрелок.

в) SWAPF f ,d ; команда обмена тетрад в регистре f.

регистр F

•<--

-

-►

7

4

3

0

<-

►<-

ff , d = 1 W, d = 0

7

0

г) CMPF f , d ; команда инверсии бит регистра f.


0

1

0

1

1

0

0

0

0

1

0

0

5x84H

<-х-х-►

КОПвFSR

б) BTFSC f, в; - команда пропуска следующей команды, если бит №в в

регистре F=0.

11

8

7

5

4

0

<-

-Х-

-ь.

<-

КОПвf

в) BTFSS f , в - команда пропуска следующей команды, если бит №в=1.

Эти две команды используются для организации условных переходов. При этом в качестве следующей команды используется безусловный переход GOTO, а анализируются биты регистра STATUS. Пример. Переход, если результата равен нулю.

[W, d = 0

3) Команды пересылки данных.

а)MOV f , d ; f - f d =1

[W, d = 0

Переслать значение из регистра f в рабочий регистр W, если d=0 и назад в регистр £,если d=1.

Пересылка из f в f используется для установки признаков результата в регистр STATUS, например, нужно проверить содержимое ячейки ОЗУ.

б)MOVWF f ; W-f - пересылка значения из W в F.

Замечание. Во всех перечисленных командах работы с байтами регистра f выбирается из текущего банка внутреннего ОЗУ, который определяется четвертым и пятым битом регистра FSR.

2.10.2. Команды работы с битами PIC16C58

Битовый формат данных команд имеет вид: КОП- код операции;

f - регистр, используемый как источник операндов(любая ячейка ОЗУ); в - номер бита из регистра f, с которым выполняются действия в команде.

BCF f , в] команды установки - в 0] 0100 а)\УЖОП

BSF f , в J бита №в регистра F - в TJ 0101

Пример: BSF FSR, 4 ; установка в единицу четвертого бита FSR (FSR.4=1)



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28]