Obsluga
.pdfПриложение №6
Регистр INTCON
|
GIE |
|
EEIE |
|
|
|
T0IE |
|
INTE |
RBIE |
|
T0IF |
|
INTF |
|
RBIF |
|
7 |
|
6 |
|
|
|
5 |
|
4 |
3 |
|
2 |
|
1 |
|
0 |
||
|
|
|
|
|
|
|
|
|
|||||||||
|
Бит 7 |
|
|
|
Гобальное разрешение прерываний: |
|
|
|
|||||||||
|
|
|
GIE |
1 – разрешены все немаскированные прерывания |
|
||||||||||||
|
|
|
|
|
0 |
– |
все прерывания запрещены |
|
|
|
|
|
|||||
|
Бит 6 |
|
|
EEIE |
Разрешение прерываний по окончанию записи в EEPROM: |
||||||||||||
|
|
|
1 – |
прерывание разрешено |
|
|
|
|
|
||||||||
|
|
|
|
|
0 |
– |
прерывание запрещено |
|
|
|
|
|
|||||
|
|
|
|
|
Разрешение прерывания по переполнению TMR0: |
|
|||||||||||
|
Бит 5 |
|
|
TOIE |
1 – |
прерывание разрешено |
|
|
|
|
|
||||||
|
|
|
|
|
0 |
– |
прерывание запрещено |
|
|
|
|
|
|||||
|
Бит 4 |
|
|
INTE |
Разрешение прерывания по входу RB0/INT: |
|
|
|
|||||||||
|
|
|
1 – |
прерывание разрешено |
|
|
|
|
|
||||||||
|
|
|
|
|
0 |
– |
прерывание запрещено |
|
|
|
|
|
|||||
|
|
|
|
|
Разрешение прерывания по изменению уровней сигналов на |
||||||||||||
|
Бит 3 |
|
|
RBIE |
выводах RB4...RB7: |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
1 |
– |
прерывание разрешено |
|
|
|
|
|
|||||
|
|
|
|
|
0 |
– |
прерывание запрещено |
|
|
|
|
|
|||||
|
Бит 2 |
|
|
T0IF |
Флаг прерывания по переполнению TMR0 (сбрасывается |
||||||||||||
|
|
|
программно): |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
1 |
– произошло переполнение TMR0 |
|
|
|
|
|
||||||
|
|
|
|
|
0 |
– переполнения TMR0 не было |
|
|
|
|
|
||||||
|
|
|
|
|
Флаг прерывания по входу RB0/INT (сбрасывается |
|
|||||||||||
|
Бит 1 |
|
|
INTF |
программно): |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
1 |
– |
произошло прерывание по входу RB0/INT |
|
|
|
|||||||
|
|
|
|
|
0 |
– |
прерывания по входу RB0/INT не было |
|
|
|
|||||||
|
|
|
|
|
Флаг прерывания по изменению уровней сигналов на |
|
|||||||||||
|
|
|
|
|
выводах RB4...RB7 (сбрасывается программно): |
|
|||||||||||
|
Бит 0 |
|
|
RBIF |
1 – |
зафиксировано изменение уровня сигнала на одном из |
|||||||||||
|
|
|
|
|
0 |
– |
входов RB4...RB7 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
не было изменения уровня сигнала ни на одном из |
|
|||||||||||
|
|
|
|
|
|
|
|
входов RB4...RB7 |
|
|
|
|
|
|
|
СИМВОЛЫ КОНФИГУРАЦИИ
Состав символов можно узнать из файла .INC
|
|
Назначение |
|
Символ |
|
Назначение |
|
|
Символ |
|
|
|
|
|
_RC_OSC |
|
Сброс по сниже- |
|
|
_BODEN_ON |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
_EXTRC_OSC |
|
нию U пит. |
|
|
_BODEN_OFF |
|
|
|
|
|
_EXTRC_OSC_ CLKOUT |
|
Режим работы |
|
|
_MLCRE_ON |
|
|
|
|
|
_EXTRC_OSC_NOCLKOUT |
|
вывода –MCLR |
|
|
_MLRCE_OFF |
|
|
|
Тактовый |
|
_INTRC_OSC |
|
|
|
|
_CP_ALL |
|
|
|
генератор |
|
_INTRC_OSC_CLKOUT |
|
Защита памяти |
|
_CP_ON |
|
|
|
|
|
|
_INTRC_OSC_NOCLKOUT |
|
программ |
|
_CP_75 |
|
|
|
|
|
|
_LP_OSC |
|
|
|
|
_CP_50 |
|
|
|
|
|
_XT_OSC |
|
|
|
|
_CP_OFF |
|
|
|
|
|
_HS_OSC |
|
Защита EEPROM |
|
|
_DP_ON |
|
|
|
Сторожевой |
|
_WDT_ON |
|
памяти данных |
|
|
_DP_OFF |
|
|
|
таймер WDT |
|
_WDT_OFF |
|
Защита калибровоч- |
|
_CPC_ON |
|
|
|
|
Таймер вкл – я |
|
_PWRTE_ON |
|
ной информации |
|
_CPC_OFF |
|
|
|
|
питания |
|
_PWRTE_OFF |
|
|
|
|
|
|
|
|
PWRT |
|
|
|
|
|
|
|
|
31
Приложение №7
Регистр EECON1
|
7:5 – |
читаются как 00h |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
EEIF |
WRERR |
WREN |
WR |
RD |
|
|
7 |
|
6 |
|
|
|
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
Флаг прерывания по окончанию записи в EEPROM |
|
|
|||||||
|
Бит4 |
|
EEIF |
(сбрасывается программно): |
|
|
|
|
|||||
|
|
|
|
1 |
– запись данных в EEPROM завершена |
|
|
|
|||||
|
|
|
|
0 |
– запись данных в EEPROM не завершена или не была начата |
|
|||||||
|
|
|
|
Флаг ошибки записи в EEPROM: |
|
|
|
|
|||||
|
|
|
|
1 |
– |
запись прервана |
|
|
|
|
|
||
|
Бит 3 |
WRERR |
|
|
|
(произошел один из сбросов: по сигналу MLCR, по |
|
|
|||||
|
|
|
|
|
|
|
переполнению WDT в нормальном режиме, по снижению U |
|
|||||
|
|
|
|
0 |
– |
питания BOR) |
|
|
|
|
|
||
|
|
|
|
запись завершена |
|
|
|
|
|
||||
|
Бит 2 |
|
WREN |
Разрешение записи в EEPROM: |
|
|
|
|
|||||
|
|
1 – запись разрешена |
|
|
|
|
|
||||||
|
|
|
|
0 |
– |
запись запрещена |
|
|
|
|
|
||
|
|
|
|
Инициализизация записи в EEPROM (программно может быть |
|
||||||||
|
Бит 1 |
|
WR |
установлен только в 1, сбрасывается аппаратно): |
|
|
|||||||
|
|
|
|
1 |
– |
инициализация записи |
|
|
|
|
|||
|
|
|
|
0 |
– |
запись завершена |
|
|
|
|
|
||
|
|
|
|
Инициализизация чтения из EEPROM (программно может быть |
|
||||||||
|
Бит 0 |
|
RD |
установлен только в 1, сбрасывается аппаратно): |
|
|
|||||||
|
|
|
|
1 |
– |
инициализация чтения |
|
|
|
|
|||
|
|
|
|
0 |
– |
чтение завершено |
|
|
|
|
|
32
Приложение №8
Биты КОНФИГУРАЦИИ
Адрес 2007h
|
13 |
|
12 |
|
11 |
|
10 |
|
9 |
|
|
8 |
7 |
|
6 |
5 |
|
|
CP |
|
-PWRTE |
WDTE |
FOSC1 |
|
FOSC0 |
|
||||
|
Не задействованы (читаются как 1) |
4 |
|
3 |
2 |
1 |
|
0 |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
Бит защиты: |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
Бит 4 |
|
|
CP |
|
1 – защита выключена |
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
0 – |
защита включена |
|
|
|
|
|
|
|
|
|||||||||
|
|
Бит 3 |
|
-PWRTE |
|
Бит разрешения работы таймера включения питания PWRT: |
|
|||||||||||||||||||||||
|
|
|
|
0 – будет производиться выдержка при включении питания |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 – |
выдержки производиться не будет |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Бит разрешения работы сторожевого таймера WDT: |
|
|
||||||||||||||||
|
|
Бит 2 |
|
WDTE |
|
1 – WDT включен |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
0 – WDT выключен |
|
|
|
|
|
|
|
|
||||||||||
|
|
Бит 1,0 |
|
FOSC1 |
|
Биты выбора типа генератора |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
FOSC0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Режимы тактового генератора |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
00 |
|
|
|
LP - генератор |
|
НЧ генератор для экономичных приложений |
|
|
|||||||||||||||||||||
|
01 |
|
|
|
XT - генератор |
|
Стандартный кварцевый генератор |
|
|
|
|
|||||||||||||||||||
|
10 |
|
|
|
HS - генератор |
|
ВЧ кварцевый генератор |
|
|
|
|
|
|
|
||||||||||||||||
|
11 |
|
|
|
RC - генератор |
|
RC генератор с внешней RC цепью |
|
|
|
|
|||||||||||||||||||
|
|
Напряжение питания |
|
|
|
|
|
Тип генератора |
|
|
Макс. рабочая частота |
|
||||||||||||||||||
|
|
|
|
|
|
|
2 – 3 v |
|
|
|
|
|
|
|
|
|
|
RC |
|
|
|
|
2 Мгц |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LP |
|
|
|
|
200 Кгц |
|
|
||
|
|
|
|
|
|
|
3 – 6 v |
|
|
|
|
|
|
|
|
|
|
RC, XT |
|
|
|
|
4 Мгц |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LP |
|
|
|
|
200 Кгц |
|
|
||
|
|
|
|
|
|
4,5 – 5,5 v |
|
|
|
|
|
|
|
|
|
|
HS |
|
|
|
|
10 Мгц |
|
|
||||||
Биты конфигурации задаются с помощью директивы CONFIG. |
|
|
|
|
||||||||||||||||||||||||||
ПРИМЕР: |
LIST |
|
p=p16C77 |
|
; Выбор типа м/контроллера. |
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
#INCLUDE |
|
<P16C77.INC> ; Подключение вспомогательного файла. |
|
|
||||||||||||||||||||
|
|
|
|
|
|
;Настройка битов конфигурации |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
__CONFIG _XT_OSC & _PWRTE_ON & _CP_OFF &_WDT_ON |
|
|
||||||||||||||||||||||
|
|
|
|
|
|
............................................. |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
............................................. |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
org |
0 |
|
|
|
|
|
; Установка нулевого адреса в памяти программ. |
|
||||||||||||||||
|
|
|
|
|
|
goto |
|
START |
|
; Начало исполнения программы. |
|
|
......................
......................
-------------------------------------------------------------------------
end
Набор символов, доступных для конкретного микроконтроллера, находится в соответствующем файле .INC
33
Приложение №9
Таблица чисел, отображаемых в одном байте
|
D |
|
B |
|
|
H |
|
|
D |
|
B |
|
|
H |
|
|
D |
|
B |
|
|
H |
|
|
D |
|
B |
|
|
H |
||||
|
|
|
0000 |
0000 |
|
00 |
|
|
|
|
0100 |
0000 |
|
40 |
|
|
|
|
1000 |
0000 |
|
80 |
|
|
|
|
1100 |
0000 |
|
|
C0 |
|||
0 |
|
|
|
64 |
|
|
|
128 |
|
|
|
192 |
|
|
|
|||||||||||||||||||
|
1 |
|
0000 |
0001 |
|
01 |
|
|
65 |
|
0100 |
0001 |
|
41 |
|
|
129 |
|
1000 |
0001 |
|
81 |
|
|
193 |
|
1100 |
0001 |
|
|
C1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
2 |
|
0000 |
0010 |
|
02 |
|
66 |
|
0100 |
0010 |
|
42 |
|
130 |
|
1000 |
0010 |
|
82 |
|
194 |
|
1100 |
0010 |
|
|
C2 |
|||||||
|
3 |
|
0000 |
0011 |
|
03 |
|
|
67 |
|
0100 |
0011 |
|
43 |
|
|
131 |
|
1000 |
0011 |
|
83 |
|
|
195 |
|
1100 |
0011 |
|
|
C3 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
0000 |
0100 |
|
04 |
|
|
|
|
0100 |
0100 |
|
44 |
|
|
|
|
1000 |
0100 |
|
84 |
|
|
|
|
1100 |
0100 |
|
|
C4 |
|||
4 |
|
|
|
68 |
|
|
|
132 |
|
|
|
196 |
|
|
|
|||||||||||||||||||
|
5 |
|
0000 |
0101 |
|
05 |
|
|
69 |
|
0100 |
0101 |
|
45 |
|
|
133 |
|
1000 |
0101 |
|
85 |
|
|
197 |
|
1100 |
0101 |
|
|
C5 |
|||
|
|
|
0000 |
0110 |
|
06 |
|
|
|
|
0100 |
0110 |
|
46 |
|
|
|
|
1000 |
0110 |
|
86 |
|
|
|
|
1100 |
0110 |
|
|
C6 |
|||
6 |
|
|
|
70 |
|
|
|
134 |
|
|
|
198 |
|
|
|
|||||||||||||||||||
|
7 |
|
0000 |
0111 |
|
07 |
|
|
71 |
|
0100 |
0111 |
|
47 |
|
|
135 |
|
1000 |
0111 |
|
87 |
|
|
199 |
|
1100 |
0111 |
|
|
C7 |
|||
8 |
|
0000 |
1000 |
|
08 |
|
72 |
|
0100 |
1000 |
|
48 |
|
136 |
|
1000 |
1000 |
|
88 |
|
200 |
|
1100 |
1000 |
|
|
C8 |
|||||||
|
|
|
0000 |
1001 |
|
09 |
|
|
|
|
0100 |
1001 |
|
49 |
|
|
|
|
1000 |
1001 |
|
89 |
|
|
|
|
1100 |
1001 |
|
|
C9 |
|||
9 |
|
|
|
73 |
|
|
|
137 |
|
|
|
201 |
|
|
|
|||||||||||||||||||
|
|
|
0000 |
1010 |
|
|
0A |
|
|
|
|
0100 |
1010 |
|
|
4A |
|
|
|
|
1000 |
1010 |
|
|
8A |
|
|
|
|
1100 |
1010 |
|
|
CA |
10 |
|
|
|
|
74 |
|
|
|
|
138 |
|
|
|
|
202 |
|
|
|
||||||||||||||||
|
|
|
0000 |
1011 |
|
|
0B |
|
|
|
|
0100 |
1011 |
|
|
4B |
|
|
|
|
1000 |
1011 |
|
|
8B |
|
|
|
|
1100 |
1011 |
|
|
CB |
11 |
|
|
|
|
75 |
|
|
|
|
139 |
|
|
|
|
203 |
|
|
|
||||||||||||||||
|
|
|
0000 |
1100 |
|
|
0C |
|
|
|
|
0100 |
1100 |
|
|
4C |
|
|
|
|
1000 |
1100 |
|
|
8C |
|
|
|
|
1100 |
1100 |
|
|
CC |
12 |
|
|
|
|
76 |
|
|
|
|
140 |
|
|
|
|
204 |
|
|
|
||||||||||||||||
|
|
|
0000 |
1101 |
|
|
0D |
|
|
|
|
0100 |
1101 |
|
|
4D |
|
|
|
|
1000 |
1101 |
|
|
8D |
|
|
|
|
1100 |
1101 |
|
|
CD |
13 |
|
|
|
|
77 |
|
|
|
|
141 |
|
|
|
|
205 |
|
|
|
||||||||||||||||
|
|
|
0000 |
1110 |
|
|
0E |
|
|
|
|
0100 |
1110 |
|
|
4E |
|
|
|
|
1000 |
1110 |
|
|
8E |
|
|
|
|
1100 |
1110 |
|
|
CE |
14 |
|
|
|
|
78 |
|
|
|
|
142 |
|
|
|
|
206 |
|
|
|
||||||||||||||||
|
|
|
0000 |
1111 |
|
|
0F |
|
|
|
|
0100 |
1111 |
|
|
4F |
|
|
|
|
1000 |
1111 |
|
|
8F |
|
|
|
|
1100 |
1111 |
|
|
CF |
15 |
|
|
|
|
79 |
|
|
|
|
143 |
|
|
|
|
207 |
|
|
|
||||||||||||||||
|
16 |
|
0001 |
0000 |
|
10 |
|
|
80 |
|
0101 |
0000 |
|
50 |
|
|
144 |
|
1001 |
0000 |
|
90 |
|
|
208 |
|
1101 |
0000 |
|
|
D0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
0001 |
0001 |
|
11 |
|
|
|
|
0101 |
0001 |
|
51 |
|
|
|
|
1001 |
0001 |
|
91 |
|
|
|
|
1101 |
0001 |
|
|
D1 |
|||
17 |
|
|
|
81 |
|
|
|
145 |
|
|
|
209 |
|
|
|
|||||||||||||||||||
|
|
|
0001 |
0010 |
|
12 |
|
|
|
|
0101 |
0010 |
|
52 |
|
|
|
|
1001 |
0010 |
|
92 |
|
|
|
|
1101 |
0010 |
|
|
D2 |
|||
|
18 |
|
|
|
|
82 |
|
|
|
|
146 |
|
|
|
|
210 |
|
|
|
|||||||||||||||
19 |
|
0001 |
0011 |
|
13 |
|
83 |
|
0101 |
0011 |
|
53 |
|
147 |
|
1001 |
0011 |
|
93 |
|
211 |
|
1101 |
0011 |
|
|
D3 |
|||||||
20 |
|
0001 |
0100 |
|
14 |
|
84 |
|
0101 |
0100 |
|
54 |
|
148 |
|
1001 |
0100 |
|
94 |
|
212 |
|
1101 |
0100 |
|
|
D4 |
|||||||
|
|
|
0001 |
0101 |
|
15 |
|
|
|
|
0101 |
0101 |
|
55 |
|
|
|
|
1001 |
0101 |
|
95 |
|
|
|
|
1101 |
0101 |
|
|
D5 |
|||
21 |
|
|
|
85 |
|
|
|
149 |
|
|
|
213 |
|
|
|
|||||||||||||||||||
|
22 |
|
0001 |
0110 |
|
16 |
|
|
86 |
|
0101 |
0110 |
|
56 |
|
|
150 |
|
1001 |
0110 |
|
96 |
|
|
214 |
|
1101 |
0110 |
|
|
D6 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
0001 |
0111 |
|
17 |
|
|
|
|
0101 |
0111 |
|
57 |
|
|
|
|
1001 |
0111 |
|
97 |
|
|
|
|
1101 |
0111 |
|
|
D7 |
|||
23 |
|
|
|
87 |
|
|
|
151 |
|
|
|
215 |
|
|
|
|||||||||||||||||||
|
24 |
|
0001 |
1000 |
|
18 |
|
|
88 |
|
0101 |
1000 |
|
58 |
|
|
152 |
|
1001 |
1000 |
|
98 |
|
|
216 |
|
1101 |
1000 |
|
|
D8 |
|||
25 |
|
0001 |
1001 |
|
19 |
|
89 |
|
0101 |
1001 |
|
59 |
|
153 |
|
1001 |
1001 |
|
99 |
|
217 |
|
1101 |
1001 |
|
|
D9 |
|||||||
26 |
|
0001 |
1010 |
|
|
1A |
|
90 |
|
0101 |
1010 |
|
|
5A |
|
154 |
|
1001 |
1010 |
|
|
9A |
|
218 |
|
1101 |
1010 |
|
|
DA |
||||
|
|
|
0001 |
1011 |
|
|
1B |
|
|
|
|
0101 |
1011 |
|
|
5B |
|
|
|
|
1001 |
1011 |
|
|
9B |
|
|
|
|
1101 |
1011 |
|
|
DB |
27 |
|
|
|
|
91 |
|
|
|
|
155 |
|
|
|
|
219 |
|
|
|
||||||||||||||||
|
|
|
0001 |
1100 |
|
|
1C |
|
|
|
|
0101 |
1100 |
|
|
5C |
|
|
|
|
1001 |
1100 |
|
|
9C |
|
|
|
|
1101 |
1100 |
|
|
DC |
28 |
|
|
|
|
92 |
|
|
|
|
156 |
|
|
|
|
220 |
|
|
|
||||||||||||||||
|
|
|
0001 |
1101 |
|
|
1D |
|
|
|
|
0101 |
1101 |
|
|
5D |
|
|
|
|
1001 |
1101 |
|
|
9D |
|
|
|
|
1101 |
1101 |
|
|
DD |
29 |
|
|
|
|
93 |
|
|
|
|
157 |
|
|
|
|
221 |
|
|
|
||||||||||||||||
|
|
|
0001 |
1110 |
|
|
1E |
|
|
|
|
0101 |
1110 |
|
|
5E |
|
|
|
|
1001 |
1110 |
|
|
9E |
|
|
|
|
1101 |
1110 |
|
|
DE |
|
30 |
|
|
|
|
|
94 |
|
|
|
|
|
158 |
|
|
|
|
|
222 |
|
|
|
||||||||||||
31 |
|
0001 |
1111 |
|
|
1F |
|
95 |
|
0101 |
1111 |
|
|
5F |
|
159 |
|
1001 |
1111 |
|
|
9F |
|
223 |
|
1101 |
1111 |
|
|
DF |
||||
32 |
|
0010 |
0000 |
|
20 |
|
96 |
|
0110 |
0000 |
|
60 |
|
160 |
|
1010 |
0000 |
|
|
A0 |
|
224 |
|
1110 |
0000 |
|
|
E0 |
||||||
|
33 |
|
0010 |
0001 |
|
21 |
|
|
97 |
|
0110 |
0001 |
|
61 |
|
|
161 |
|
1010 |
0001 |
|
|
A1 |
|
|
225 |
|
1110 |
0001 |
|
|
E1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
0010 |
0010 |
|
22 |
|
|
|
|
0110 |
0010 |
|
62 |
|
|
|
|
1010 |
0010 |
|
|
A2 |
|
|
|
|
1110 |
0010 |
|
|
E2 |
||
34 |
|
|
|
98 |
|
|
|
162 |
|
|
|
|
226 |
|
|
|
||||||||||||||||||
|
35 |
|
0010 |
0011 |
|
23 |
|
|
99 |
|
0110 |
0011 |
|
63 |
|
|
163 |
|
1010 |
0011 |
|
|
A3 |
|
|
227 |
|
1110 |
0011 |
|
|
E3 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
36 |
|
0010 |
0100 |
|
24 |
|
100 |
|
0110 |
0100 |
|
64 |
|
164 |
|
1010 |
0100 |
|
|
A4 |
|
228 |
|
1110 |
0100 |
|
|
E4 |
||||||
37 |
|
0010 |
0101 |
|
25 |
|
101 |
|
0110 |
0101 |
|
65 |
|
165 |
|
1010 |
0101 |
|
|
A5 |
|
229 |
|
1110 |
0101 |
|
|
E5 |
||||||
|
|
|
0010 |
0110 |
|
26 |
|
|
|
|
0110 |
0110 |
|
66 |
|
|
|
|
1010 |
0110 |
|
|
A6 |
|
|
|
|
1110 |
0110 |
|
|
E6 |
||
38 |
|
|
|
102 |
|
|
|
166 |
|
|
|
|
230 |
|
|
|
||||||||||||||||||
|
|
|
0010 |
0111 |
|
27 |
|
|
|
|
0110 |
0111 |
|
67 |
|
|
|
|
1010 |
0111 |
|
|
A7 |
|
|
|
|
1110 |
0111 |
|
|
E7 |
||
39 |
|
|
|
103 |
|
|
|
167 |
|
|
|
|
231 |
|
|
|
||||||||||||||||||
|
|
|
0010 |
1000 |
|
28 |
|
|
|
|
0110 |
1000 |
|
68 |
|
|
|
|
1010 |
1000 |
|
|
A8 |
|
|
|
|
1110 |
1000 |
|
|
E8 |
||
40 |
|
|
|
104 |
|
|
|
168 |
|
|
|
|
232 |
|
|
|
||||||||||||||||||
|
41 |
|
0010 |
1001 |
|
29 |
|
|
105 |
|
0110 |
1001 |
|
69 |
|
|
169 |
|
1010 |
1001 |
|
|
A9 |
|
|
233 |
|
1110 |
1001 |
|
|
E9 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
42 |
|
0010 |
1010 |
|
|
2A |
|
|
106 |
|
0110 |
1010 |
|
|
6A |
|
|
170 |
|
1010 |
1010 |
|
|
AA |
|
|
234 |
|
1110 |
1010 |
|
|
EA |
43 |
|
0010 |
1011 |
|
|
2B |
|
107 |
|
0110 |
1011 |
|
|
6B |
|
171 |
|
1010 |
1011 |
|
|
AB |
|
235 |
|
1110 |
1011 |
|
|
EB |
||||
|
44 |
|
0010 |
1100 |
|
|
2C |
|
|
108 |
|
0110 |
1100 |
|
|
6C |
|
|
172 |
|
1010 |
1100 |
|
|
AC |
|
|
236 |
|
1110 |
1100 |
|
|
EC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
0010 |
1101 |
|
|
2D |
|
|
|
|
0110 |
1101 |
|
|
6D |
|
|
|
|
1010 |
1101 |
|
|
AD |
|
|
|
|
1110 |
1101 |
|
|
ED |
45 |
|
|
|
|
109 |
|
|
|
|
173 |
|
|
|
|
237 |
|
|
|
||||||||||||||||
|
|
|
0010 |
1110 |
|
|
2E |
|
|
|
|
0110 |
1110 |
|
|
6E |
|
|
|
|
1010 |
1110 |
|
|
AE |
|
|
|
|
1110 |
1110 |
|
|
EE |
46 |
|
|
|
|
110 |
|
|
|
|
174 |
|
|
|
|
238 |
|
|
|
||||||||||||||||
|
47 |
|
0010 |
1111 |
|
|
2F |
|
|
111 |
|
0110 |
1111 |
|
|
6F |
|
|
175 |
|
1010 |
1111 |
|
|
AF |
|
|
239 |
|
1110 |
1111 |
|
|
EF |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
48 |
|
0011 |
0000 |
|
30 |
|
112 |
|
0111 |
0000 |
|
70 |
|
176 |
|
1011 |
0000 |
|
|
B0 |
|
240 |
|
1111 |
0000 |
|
|
F0 |
||||||
49 |
|
0011 |
0001 |
|
31 |
|
113 |
|
0111 |
0001 |
|
71 |
|
177 |
|
1011 |
0001 |
|
|
B1 |
|
241 |
|
1111 |
0001 |
|
|
F1 |
||||||
|
|
|
0011 |
0010 |
|
32 |
|
|
|
|
0111 |
0010 |
|
72 |
|
|
|
|
1011 |
0010 |
|
|
B2 |
|
|
|
|
1111 |
0010 |
|
|
F2 |
||
50 |
|
|
|
114 |
|
|
|
178 |
|
|
|
|
242 |
|
|
|
||||||||||||||||||
|
|
|
0011 |
0011 |
|
33 |
|
|
|
|
0111 |
0011 |
|
73 |
|
|
|
|
1011 |
0011 |
|
|
B3 |
|
|
|
|
1111 |
0011 |
|
|
F3 |
||
51 |
|
|
|
115 |
|
|
|
179 |
|
|
|
|
243 |
|
|
|
||||||||||||||||||
|
|
|
0011 |
0100 |
|
34 |
|
|
|
|
0111 |
0100 |
|
74 |
|
|
|
|
1011 |
0100 |
|
|
B4 |
|
|
|
|
1111 |
0100 |
|
|
F4 |
||
|
52 |
|
|
|
|
116 |
|
|
|
|
180 |
|
|
|
|
|
244 |
|
|
|
||||||||||||||
|
53 |
|
0011 |
0101 |
|
35 |
|
|
117 |
|
0111 |
0101 |
|
75 |
|
|
181 |
|
1011 |
0101 |
|
|
B5 |
|
|
245 |
|
1111 |
0101 |
|
|
F5 |
||
|
|
|
0011 |
0110 |
|
36 |
|
|
|
|
0111 |
0110 |
|
76 |
|
|
|
|
1011 |
0110 |
|
|
B6 |
|
|
|
|
1111 |
0110 |
|
|
F6 |
||
54 |
|
|
|
118 |
|
|
|
182 |
|
|
|
|
246 |
|
|
|
||||||||||||||||||
|
55 |
|
0011 |
0111 |
|
37 |
|
|
119 |
|
0111 |
0111 |
|
77 |
|
|
183 |
|
1011 |
0111 |
|
|
B7 |
|
|
247 |
|
1111 |
0111 |
|
|
F7 |
||
|
|
|
0011 |
1000 |
|
38 |
|
|
|
|
0111 |
1000 |
|
78 |
|
|
|
|
1011 |
1000 |
|
|
B8 |
|
|
|
|
1111 |
1000 |
|
|
F8 |
||
56 |
|
|
|
120 |
|
|
|
184 |
|
|
|
|
248 |
|
|
|
||||||||||||||||||
|
|
|
0011 |
1001 |
|
39 |
|
|
|
|
0111 |
1001 |
|
79 |
|
|
|
|
1011 |
1001 |
|
|
B9 |
|
|
|
|
1111 |
1001 |
|
|
F9 |
||
57 |
|
|
|
121 |
|
|
|
185 |
|
|
|
|
249 |
|
|
|
||||||||||||||||||
|
|
|
0011 |
1010 |
|
|
3A |
|
|
|
|
0111 |
1010 |
|
|
7A |
|
|
|
|
1011 |
1010 |
|
|
BA |
|
|
|
|
1111 |
1010 |
|
|
FA |
|
58 |
|
|
|
|
|
122 |
|
|
|
|
|
186 |
|
|
|
|
|
250 |
|
|
|
||||||||||||
59 |
|
0011 |
1011 |
|
|
3B |
|
123 |
|
0111 |
1011 |
|
|
7B |
|
187 |
|
1011 |
1011 |
|
|
BB |
|
251 |
|
1111 |
1011 |
|
|
FB |
||||
60 |
|
0011 |
1100 |
|
|
3C |
|
124 |
|
0111 |
1100 |
|
|
7C |
|
188 |
|
1011 |
1100 |
|
|
BC |
|
252 |
|
1111 |
1100 |
|
|
FC |
||||
|
|
|
0011 |
1101 |
|
|
3D |
|
|
|
|
0111 |
1101 |
|
|
7D |
|
|
|
|
1011 |
1101 |
|
|
BD |
|
|
|
|
1111 |
1101 |
|
|
FD |
61 |
|
|
|
|
125 |
|
|
|
|
189 |
|
|
|
|
253 |
|
|
|
||||||||||||||||
|
|
|
0011 |
1110 |
|
|
3E |
|
|
|
|
0111 |
1110 |
|
|
7E |
|
|
|
|
1011 |
1110 |
|
|
BE |
|
|
|
|
1111 |
1110 |
|
|
FE |
62 |
|
|
|
|
126 |
|
|
|
|
190 |
|
|
|
|
254 |
|
|
|
||||||||||||||||
|
|
|
0011 |
1111 |
|
|
3F |
|
|
|
|
0111 |
1111 |
|
|
7F |
|
|
|
|
1011 |
1111 |
|
|
BF |
|
|
|
|
1111 |
1111 |
|
|
FF |
63 |
|
|
|
|
127 |
|
|
|
|
191 |
|
|
|
|
255 |
|
|
|
34
Приложение №10
КОМАНДЫ АССЕМБЛЕРА ДЛЯ ПИКов (вариант с ошибками №1)
|
МНЕМОНИКА |
ОПИСАНИЕ |
|
|
|
ПРИМЕРЫ |
Цикл. |
Флаги |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Байт-ориентированные команды |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сложить содержимое регистров |
|
|
|
ADDWF |
ABC,0 |
|
|
||
|
|
W и f. |
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x17 |
|
|
|
|
|
|||
|
|
Если d=0, результат сохраняется в |
ABC=0xC2 |
|
|
|
|
|
|||
|
|
регистре W. |
После выполнения |
|
|
||||||
|
|
Если d=1, результат сохраняется в |
W=0xD9 |
|
|
|
|
|
|||
|
|
регистре f. |
ABC=0xC2 |
|
|
|
|
|
|||
|
|
Косвенная адресация: для ее выполнения |
Косвенная адресация |
|
|
||||||
|
|
необходимо обратиться к регистру INDF. |
|
ADDWF |
INDF,1 |
|
|
|
|||
|
ADDWF f, d |
Оно вызовет действие с регистром, |
До выполнения |
|
|
|
|
|
|||
|
адрес которого указан в FSR. |
W=0x17 |
|
|
|
|
|
||||
|
|
Косвенная запись в регистр INDF не |
FSR=0xC2 (значение |
|
|
||||||
|
Сложение |
вызовет никаких действий (кроме |
регистра с адресом |
1 |
C,DC,Z |
||||||
|
W и f |
воздействия на флаги в регистре STATUS) |
в FSR=0x20) |
|
|
|
|||||
|
|
Косвенное чтение INDF (FSR=0) даст |
После выполнения |
|
|
||||||
|
|
результат 00h. |
W=0x17 |
|
|
|
|
|
|||
|
|
9-й бит косвенного адреса (IRP) сохра- |
FSR=0xC2 (значение |
|
|
||||||
|
|
няется в регистре STATUS<7>. |
регистра с адресом |
|
|
||||||
|
|
Изменение адреса счетчика команд PC |
в FSR=0x37) |
|
|
|
|
|
|||
|
|
(вычисляемый переход) выполняется |
Изменение адреса PC |
|
|
||||||
|
|
командой приращения к регистру PCL. |
|
|
ADDWF |
PCL,0 |
|
|
|
||
|
|
При этом необходимо следить, чтобы |
До выполнения |
|
|
|
|
|
|||
|
|
значение PCL не пересекало границу |
W=0x10 |
|
|
|
|
|
|||
|
|
блока памяти данных (256 байт, иначе |
PCL=0x37 |
|
|
|
|
|
|||
|
|
работа по кольцу). |
C=x |
|
|
|
|
|
|||
|
|
PCL – младший байт (8 бит <7:0>) счетчика |
После выполнения |
|
|
||||||
|
|
команд (PC), доступен для чтения записи. |
PCL=0x47 |
|
|
|
|
|
|||
|
|
PCH – старший байт (5 бит <12:8>) |
C=0 |
|
|
|
|
|
|||
|
|
счетчика команд PC, не доступен для |
|
|
|
ADDWF |
PCL,0 |
|
|
|
|
|
|
чтения и записи). Все операции с PCH |
До выполнения |
|
|
|
|
|
|||
|
|
происходят через дополнительный |
W=0x10 |
|
|
|
|
|
|||
|
|
регистр PCLATH. |
PCL=0xF7 |
|
|
|
|
|
|||
|
|
|
PCH=0x08 |
|
|
|
|
|
|||
|
|
|
C=x |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
||||||
|
|
|
PCL=0x07 |
|
|
|
|
|
|||
|
|
|
PCH=0x08 |
|
|
|
|
|
|||
|
|
|
C=1 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
ANDWF |
ABC,1 |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x17 (00010111) |
|
|
||||||
|
|
|
ABC=0xC2(11000010) |
|
|
||||||
|
ANDWF f, d |
Выполняется побитное “И” содержимого |
После выполнения |
|
|
||||||
|
регистров W и f. |
W=0x17 |
|
|
|
|
|
||||
|
|
|
ABC=0x02 (00000010) |
|
|
||||||
|
Побитное И |
Если d=0, результат сохраняется в |
|
|
|
ANDWF |
ABC,0 |
1 |
Z |
||
|
W и f |
регистре W. |
До выполнения |
|
|
|
|
|
|||
|
|
Если d=1, результат сохраняется в |
W=0x17 (00010111) |
|
|
||||||
|
|
регистре f. |
ABC=0xC2(11000010) |
|
|
||||||
|
|
|
После выполнения |
|
|
||||||
|
|
|
W=0x02 (00000010) |
|
|
||||||
|
|
|
ABC=0xC2 |
|
|
|
|
|
|||
|
|
|
Косвенная адресация |
|
|
||||||
|
|
|
|
|
|
ANDWF |
INDF,1 |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|||
|
|
|
W=0x17 |
|
|
|
|
|
|||
|
|
|
FSR=0xC2 (значение |
|
|
||||||
|
|
|
регистра с адресом в |
|
|
||||||
|
|
|
FSR=0x5A) |
|
|
|
|
|
|||
|
|
|
После выполнения |
|
|
35
|
|
|
W=0x17 |
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|
|
регистра с адресом в |
|
|
|
|
|
|
FSR=0x15) |
|
|
|
|
|
|
|
|
|
|
|
|
|
CLRF FLAG_REG |
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
FLAG_REG=0x5A |
|
|
|
|
|
|
После выполнения |
|
|
|
CLRF |
Очистить содержимое регистра f |
FLAG_REG=0x00 |
|
|
||
Z=1 |
|
|
Z |
|||
|
|
и установить флаг Z |
Косвенная адресация |
1 |
||
Очистить f |
|
CLRF INDF |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|
|
регистра с адресом в |
|
|
|
|
|
|
FSR=0xAA) |
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|
|
|
|
с адресом в FSR=0x00) |
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
CLRW |
|
|
|
CLRW |
|
До выполнения |
|
|
|
|
Очистить содержимое регистра W |
W=0x5A |
|
1 |
Z |
||
|
|
|
||||
Очистить W |
и установить флаг Z |
После выполнения |
|
|
||
|
W=0x00 |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
COMF |
REG1,0 |
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
REG1=0x13 |
|
|
|
COMF |
f, d |
|
После выполнения |
|
|
|
Инвертировать все биты в регистре f |
REG1=0x13 |
|
|
|
||
|
|
|
W=0xEC |
|
|
|
Инвертиро- |
Если d=0, результат сохраняется в |
COMF |
REG1,1 |
|
|
|
вать |
f |
регистре W. |
До выполнения |
|
|
|
|
|
Если d=1, результат сохраняется в |
REG1=0xFF |
|
|
|
|
|
регистре f |
После выполнения |
1 |
Z |
|
|
|
|
REG1=0x00 |
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
Косвенная адресация |
|
|
|
|
|
|
COMF |
INDF,1 |
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|
|
регистра с адресом в |
|
|
|
|
|
|
FSR=0xAA) |
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|
|
регистра с адресом в |
|
|
|
|
|
|
FSR=0x55) |
|
|
|
|
|
|
|
|
|
|
|
|
|
DECF |
CNT,1 |
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
CNT=0x01 |
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
После выполнения |
|
|
|
|
|
|
CNT=0x00 |
|
|
|
DECF |
f, d |
Декрементировать содержимое |
Z=1 |
|
|
|
регистра f |
DECF |
CNT,0 |
|
|
||
|
|
|
До выполнения |
|
|
|
Вычесть |
Если d=0, результат сохраняется в |
CNT=0x10 |
|
|
|
|
1 из f |
регистре W. |
W=x |
|
1 |
Z |
|
|
|
Если d=1, результат сохраняется в |
Z=0 |
|
|
|
|
|
регистре f. |
После выполнения |
|
|
|
|
|
|
CNT=0x10 |
|
|
|
|
|
|
W=0x0F |
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
|
36
|
|
Косвенная адресация |
|
|
|
|
|||
|
|
DECF |
INDF,1 |
|
|
|
|
||
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|||
|
|
регистра с адресом в |
|
|
|
|
|||
|
|
FSR=0x01) |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
FSR=0xC2 (значение |
|
|
|
|
|||
|
|
регистра с адресом в |
|
|
|
|
|||
|
|
FSR=0x00) |
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
HERE DECFSZ |
CNT,1 |
|
|
|
|
||
|
Декрементировать содержимое |
GOTO |
|
LOOP |
|
|
|
|
|
DECFSZ f, d |
регистра f с пропуском если 0 |
CONTINUE |
. |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
Если d=0, результат сохраняется в |
1) До выполнения |
|
|
|
|
|||
Вычесть |
регистре W. |
CNT=0x01 |
|
|
|
|
|
|
|
1 из f и |
Если d=1, результат сохраняется в |
PC=адрес HERE |
|
1(2) |
|
|
|
||
пропустить |
регистре f. |
После выполнения |
|
|
|
|
|||
если 0 |
|
CNT=0x00 |
|
|
|
|
|
|
|
|
Если результат не равен 0, исполняется |
PC=адрес CONTINUE |
|
|
|
|
|||
|
следующая инструкция. |
2) До выполнения |
|
|
|
|
|
||
|
Если результат = 0, то следующая |
CNT=0x02 |
|
|
|
|
|
|
|
|
инструкция не исполняется, а команда |
PC=адрес HERE |
|
|
|
|
|
||
|
выполняется за 2 цикла (во втором цикле |
После выполнения |
|
|
|
|
|||
|
выполняется NOP). |
CNT=0x01 |
|
|
|
|
|
|
|
|
|
PC=адрес HERE+1 |
|
|
|
|
|||
|
|
1) |
INCF |
CNT,1 |
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
CNT=0xFF |
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
CNT=0x00 |
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
2) |
INCF |
CNT,0 |
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
CNT=0x10 |
|
|
|
|
|
|
|
INCF f, d |
Инкрементировать содержимое |
W=x |
|
|
|
|
|
|
|
регистра f |
Z=0 |
|
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
Прибавить |
Если d=0, результат сохраняется в |
CNT=0x10 |
|
|
1 |
|
Z |
||
1 к f |
регистре W. |
W=0x11 |
|
|
|
|
|
|
|
|
Если d=1, результат сохраняется в |
Z=0 |
|
|
|
|
|
|
|
|
регистре f. |
Косвенная адресация |
|
|
|
|
|||
|
|
INCF |
INDF,1 |
|
|
|
|
||
|
|
До выполнения |
|
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|
|
|||
|
|
регистра с адресом в |
|
|
|
|
|||
|
|
FSR=0xFF) |
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|
|
|||
|
|
FSR=0xC2 (значение |
|
|
|
|
|||
|
|
регистра с адресом в |
|
|
|
|
|||
|
|
FSR=0x00) |
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
HERE |
INCFSZ CNT,1 |
|
|
|
|
||
|
|
|
GOTO |
LOOP |
|
|
|
|
|
|
Инкрементировать содержимое |
CONTINUE . |
. |
|
|
|
|
|
|
INCFSZ f, d |
регистра f |
|
|
|
|
|
|
|
|
|
1) До выполнения |
|
|
|
|
||||
|
Если d=0, результат сохраняется в |
PC=адрес HERE |
|
|
|
|
|
||
|
регистре W. |
CNT=0xFF |
|
|
|
|
|
|
|
Прибавить |
Если d=1, результат сохраняется в |
После выполнения |
1(2) |
|
|
|
|||
1 к f и |
регистре f. |
CNT=0x00 |
|
|
|
|
|
||
пропустить |
|
PC=адрес CONTINUE |
|
|
|
|
|||
если 0 |
Если результат не равен 0, исполняется |
2) До выполнения |
|
|
|
|
|||
|
следующая инструкция. |
PC=адрес HERE |
|
|
|
|
|
||
|
Если результат = 0, то следующая |
CNT=0x00 |
|
|
|
|
|
|
|
|
инструкция не исполняется, команда |
После выполнения |
|
|
|
|
|||
|
выполняется за 2 цикла (во втором цикле – |
CNT=0x01 |
|
|
|
|
|
|
|
|
NOP). |
PC=адрес HERE+1 |
|
|
|
|
37
|
|
|
1) IORWF RES,0 |
|
|
|||
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
RES=0x13 |
|
|
|
|
|
|
|
|
W=0x91 |
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||
|
|
|
RES=0x13 |
|
|
|
|
|
|
|
|
W=0x93 |
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
2) IORWF RES,1 |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
IORWF |
f,d |
Побитное “ИЛИ” содержимого |
RES=0x13 |
|
|
|
|
|
регистров W и f |
W=0x91 |
|
|
|
|
|||
|
|
|
После выполнения |
|
|
|||
Побитное |
Если d=0 – результат сохраняется в |
RES=0x93 |
|
1 |
Z |
|||
“ИЛИ” |
|
регистре W |
W=0x91 |
|
|
|
|
|
W и f |
Если d=1 – результат сохраняется в |
Z=1 |
|
|
|
|
||
|
|
регистре f. |
3) IORWF |
RES,1 |
|
|
||
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
RES=0x00 |
|
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||
|
|
|
RES=0x00 |
|
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|||
|
|
|
|
IORWF |
INDF,1 |
|
|
|
|
|
|
|
До выполнения |
|
|
||
|
|
|
|
W=0x17 |
|
|
||
|
|
|
FSR=0xC2 (значение |
|
|
|||
|
|
|
регистра с адресом в |
|
|
|||
|
|
|
|
FSR=0x30) |
|
|
||
|
|
|
После выполнения |
|
|
|||
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|||
|
|
|
регистра с адресом в |
|
|
|||
|
|
|
FSR=0x37) |
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
|
|
MOVF |
FSR,0 |
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
W=0x00 |
|
|
|
|
|
|
|
|
FSR=0xC2 |
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||
|
|
|
W=0xC2 |
|
|
|
|
|
|
|
|
FSR=0xC2 |
|
|
|
|
|
|
|
Содержимое регистра f пересылается |
Z=0 |
|
|
|
|
|
|
|
|
MOVF |
FSR,1 |
|
|
||
|
|
в регистр адресата |
1) До выполнения |
|
|
|||
MOVF |
f,d |
Если d=0 – значение сохраняется в |
FSR=0x43 |
|
|
|
|
|
После выполнения |
|
|
||||||
|
|
|
Z |
|||||
Переслать |
регистре W. |
FSR=0x43 |
|
1 |
||||
Если d=1 – значение сохраняется в |
Z=0 |
|
|
|
|
|||
f |
|
|
|
|
|
|||
|
регистре f. |
2) До выполнения |
|
|
||||
|
|
|
|
|||||
|
|
d=1 используется для проверки |
FSR=0x00 |
|
|
|
|
|
|
|
После выполнения |
|
|
||||
|
|
содержимого f на ноль. |
FSR=0x00 |
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|||
|
|
|
|
MOVF |
INDF,1 |
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|||
|
|
|
регистра с адресом в |
|
|
|||
|
|
|
FSR=0x00) |
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||
|
|
|
W=0x17 |
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|||
|
|
|
регистра с адресом в |
|
|
|||
|
|
|
FSR=0x00) |
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
|
MOVWF OPTION |
|
||||
|
|
До выполнения |
|
|
|
|
|
|
|
OPTION=0xFF |
|
|
|
|
|
|
|
W=0x4F |
|
|
|
|
|
|
|
После выполнения |
|
||||
MOVWF f |
|
OPTION=0x4F |
|
|
|
|
|
|
W=0x4F |
|
|
|
|
||
|
Переслать содержимое W в f |
|
|
|
1 |
|
|
Переслать |
|
Косвенная адресация |
|
||||
W в f |
|
|
|||||
|
MOVWF |
|
INDF |
|
|||
|
|
|
|
||||
|
|
До выполнения |
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
||||
|
|
регистра с адресом в |
|
||||
|
|
FSR=0x00) |
|
|
|
|
|
|
|
После выполнения |
|
||||
|
|
W=0x17 |
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
||||
|
|
регистра с адресом в |
|
||||
|
|
FSR=0x17) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HERE |
|
NOP |
|
|
NOP |
|
До выполнения |
|
|
|
|
|
Нет операции |
PC=адрес HERE |
1 |
|
||||
|
|
После выполнения |
|
||||
|
|
PC=адрес HERE+1 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
RLF |
REG,0 |
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
После выполнения |
|
||||
|
|
REG=11100110 |
|
|
|
|
|
|
|
W=11001100 |
|
|
|
|
|
|
|
C=1 |
|
|
|
|
RLF |
f, d |
Выполняется циклический сдвиг |
|
|
|
|
|
влево содержимого регистра f через |
Косвенная адресация |
|
|
||||
|
|
бит C регистра STATUS |
|
|
|||
|
|
RLF |
INDF,1 |
|
|
||
Циклический |
|
|
|
||||
|
До выполнения |
|
|
|
|||
сдвиг f |
Если d=0 – результат сохраняется в |
|
|
|
|||
W=xxxxxxxx |
|
|
|
||||
влево через |
регистре W. |
|
1 |
C |
|||
FSR=0xC2 (значение |
|||||||
перенос |
Если d=1 – результат сохраняется в |
|
|
||||
регистра с адресом в |
|
|
|||||
|
|
регистре f. |
|
|
|||
|
|
FSR=0x3A-00111010) |
|
|
|||
|
|
|
|
|
|||
|
|
|
C=1 |
|
|
|
|
|
|
C |
После выполнения |
|
|
||
|
|
W=0x17 |
|
|
|
||
|
|
|
|
|
|
||
|
|
|
FSR=0xC2 (значение |
|
|
||
|
|
|
регистра с адресом в |
|
|
||
|
|
|
FSR=0x75-01110101) |
|
|
||
|
|
|
C=0 |
|
|
|
RLF INDF,1
До выполнения
W=xxxxxxxx FSR=0xC2 (значение регистра с адресом в
FSR=0xB9-10111001) C=0
После выполнения
W=0x17
FSR=0xC2 (значение регистра с адресом в
FSR=0x72-01110010) C=1
39
|
|
|
|
|
|
|
|
|
|
|
|
|
RRF |
REG,0 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=xxxxxxxx |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
REG=11100110 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=01110011 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Косвенная адресация |
|
|
|||||||||
RRF |
f, d |
|
|
Выполняется циклический сдвиг |
|
|
|
RRF |
INDF,1 |
|
|
|
||||||||
|
вправо содержимого регистра f через |
До выполнения |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
бит C регистра STATUS |
W=xxxxxxxx |
|
|
|
|
|
|
|
||||||||
Циклический |
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
||||||||||
сдвиг f |
|
Если d=0 – результат сохраняется в |
регистра с адресом в |
1 |
C |
|||||||||||||||
вправо через |
|
|
|
регистре W. |
FSR=0x3A-00111010 |
|
|
|||||||||||||
перенос |
|
Если d=1 – результат сохраняется в |
C=1 |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
регистре f. |
После выполнения |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
регистра с адресом в |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
FSR=0x9D-10011101 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
C=0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
RRF |
INDF,1 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=xxxxxxxx |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
FSR=0xC2 (значение |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
регистра с адресом в |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
FSR=0x39-00111001 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
С=0 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
W=0x17 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
FSR=0xC2 (значение регистра |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
с адресом в |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
FSR=0x1C-00011100 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
C=1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
SUBWF |
REG,1 |
|
|
|||||
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
REG=0x03 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
Вычесть содержимое регистра W |
C=x |
|
|
|
|
|
|
|
||||||||
SUBWF |
f, d |
|
|
Z=x |
|
|
|
|
|
|
|
|||||||||
|
|
|
из регистра f. |
После выполнения |
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
|
C,DC,Z |
||||
Вычесть |
|
Если d=0 – результат сохраняется в |
W=0x02 |
|
|
|
|
|
1 |
|||||||||||
W из f |
|
|
|
регистре W. |
C=1 ( + результат ) |
|
|
|||||||||||||
|
|
|
Если d=1 – результат сохраняется в |
Z=0 |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
регистре f. |
|
|
SUBWF |
REG,1 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
REG=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=x |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Z=x |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
REG=0x00 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=1 ( 0 – результат) |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
Z=1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
SUBWF |
REG,1 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
До выполнения |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
REG=0x01 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=x |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
Z=x |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
После выполнения |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
REG=0xFF |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
W=0x02 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
C=0 ( - результат) |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
Z=0 |
|
|
|
|
|
|
|
40