В начало

Система команд МК (Лекция)

 

ПЛАН ЛЕКЦИИ

1. Команды передачи данных (4 команды)

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

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

4. Команды побитных операций (2 команды)

5. Команды передачи управления (9 команд)

6. Команды безадресные (2 команды)

 

Общие свойства микроконтроллеров  среднего уровня:

- все команды 14 разрядные;

- все команды считываются одновременно;

- все команды выполняются за один машинный цикл (кроме команд передачи управления,   они за два);

- количество команд 34;

 

1. Команды передачи данных

1) MOVLW     L                                            L®(W)

Правило записи констант: их можно записывать в десятеричной, в шестнадцатеричной, в двоичной, в восьмеричной системе счисления и в ASCII коды.

Десятеричная: D'53'  или.53                        Пример: MOVLW .53;    53®(W)

Шестнадцатеричная: H'9F'  или 0x9F        Пример: MOVLW  0x9F;    0x9F®(W)

Двоичная: B'11000001'                                 Пример: MOVLW  B'11000001'

Восьмеричная используется очень редко.

ASCII – код: A'R' или 'R'                              Пример: MOVLW    'R'

 

2) MOVWF  F    (W) ® (F)

Fлюбой регистр, любая ячейка памяти кроме регистра W.

 

3) MOVE  F,d

Из регистра F передать в приемник.

 

MOVE FSR, 1

если  (FSR) = 0, то Z=1 (самый простой способ проверить на ноль)

MOVE FSR, F эквивалентен MOVE FSR, 1

4) SWAP F,d команда обмена тетрадами в регистре F

Примеры:

SWAP FSR,0

(FSR)=SFH                (W)=0

после операции:

(FSR)=F5H                 (W)=F5H

 

SWAP FSR

(FSR)=SFH                (W)=0

после операции:

(FSR)=(F5H)              (W)=0

 

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

1) сложение в 2 вариантах

2) вычитание в 2 вариантах

3) инкремент

4) декремент

5) команды очистки в 3 вариантах

 

1. Сложение

1.1. ADDLW  L                      L+(W) ® (W)

ADDLW.25;    (W)=.10

после операции: (W)=.35

1.2. ADDWF F,d                   

После команд сложения устанавливается 3 признака:

признак C: если сумма больше чем 255 то C=1, иначе С=0.

признак десятичного переноса DC: если произошел перенос из младшей тетрады в старшую (из 3-го разряда в 4-ыйразряд) то DC=1

признак Z:  если сумма равна нулю то Z=1.

 

2. Вычитание.

2.1. SUBLW  L                      L-(W) ® (W)

                                                                

2.2. SUBWF F,d                   

После команд вычитания устанавливается 3 признака:

признак C: если разность положительна или равна 0 то C=1, иначе С=0.

признак десятичного переноса DC: если произошел перенос из младшей тетрады в старшую (из 3-го разряда в 4-ыйразряд) то DC=1

признак Z:  если разность равна нулю то Z=1.

 


3. Инкремент

INCF F,d                                (F) + 1 ®

 

После этой команды устанавливается признак Z (например если F=255)/

 


4. Декремент

DECF F,d                               (F) - 1 ®

 

После этой команды устанавливается признак Z.

 

5. Три команды обнуления.

5.1. CLRF  F                          0 ® (F)

5.2.  CLRW                            0 ® (W)

5.3.  CLRWDT                       0 ® (WDT)

Обнуления регистров сторожевого таймера.

 

 

 

 

 

 

 

 

 

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

1) Конъюнкция в 2 вариантах

2) Дизъюнкция в 2 вариантах

3) Исключающее ИЛИ в 2 вариантах

4) Инверсия

5) Команды сдвигов в 2 вариантах

 

1. Конъюнкция

1.1.  ANDLW   L                   L Ù (W) ® (W)

 


1.2.  ANDWF  F,d                 (F) Ù (W) ®

 

2. Дизъюнкция

2.1. IORLW  L                       L Ú (W) ® (W)

 

2.2.  IORWF  F,d                   (F) Ú (W) ®

 

 

3. Исключающее ИЛИ

3.1. XOLW  L                        L " (W) ® (W)

 


3.2.  XOWF  F,d                    (F)  " (W) ®

 

 


4. Инверсия

COMF  F,d                            (F) ®

 

 

5. Команды сдвигов. Сдвиг через перенос.

5.1. RLF  F,d

5.2.  RRF F,d

если d=0 дублируется в (W).

 

4. Команды побитных операций

1. BSF  F,b                             1 ® F.b 

2. BCF  F,b                            0 ® F.b 

Примеры:

1) BSF STATUS,5                 ; 1 ® STATUS.5  5 разряд в регистре STATUS установлен в 1.

2) BCF STATUS,5                 ; 0 ® STATUS.5  5 разряд в регистре STATUS установлен в 0.

 

5. Команды передачи управления

1) Безусловный переход 1 команда

2) Условный переход 4 команды

3) Команды вызова подпрограммы 1 команда

4) Команды возврата из подпрограммы 3 команды

 

1. Безусловный переход

GOTO метка

Переход в пределах 1 страницы от 0 до 1247 слов

 

2. Условный переход

2.1. BTFSS  F,b

Если  (F.b) = 0 то (PC)+1 ®  (PC)

Если  (F.b) = 1 то (PC)+2 ®  (PC)

2.2. BTFSC  F,b

Если  (F.b) = 0 то (PC)+2 ®  (PC)

Если  (F.b) = 1 то (PC)+1 ®  (PC)

2.1. и 2.2. удобны для организации ветвления.

 

2.3.  DECFZ  F,d

 

 


 (F) –1 ®

 

 

Результат проверятся на 0:

Если  (F) = 0 то (PC)+2 ®  (PC)

Если  (F) ¹ 0 то (PC)+1 ®  (PC)

 

2.4. INCFZ  F,d

 

(F) +1 ®

 

Результат проверятся на 0:

Если  (F) = 0 то (PC)+2 ®  (PC)

Если  (F) ¹ 0 то (PC)+1 ®  (PC)

 

2.3. и 2.4. удобны для организации цикла.

 

Пример:

MOVLW .255            ;255 ®  (W)

MOVWF  count

DECFZ  count, F

GOTO $-1     ; $ - текущая команда

 

3. Команды вызова подпрограммы

CALL имя

(PC10-0) ¬ имя

(SP) + 1 ® (SP)   ;SP- указатель стека

(PC) ® ((SP))       ; (())-адрес

(PC) ¬ имя

Если вызов подпрограммы по прерыванию то в счетчики записывается:

(PC10-0) ¬ 0x04 ;адрес для вектора прерывания

 

4. Команды возврата из подпрограммы

4.1. RETURN

((SP)) ® (PC)

(SP)-1®(SP)

4.2. RETLW  L

((SP)) ® (PC)

(SP)-1 ®(SP)

L ® (W)

 

 

4.3. RETFIE  команда возврата из обработки прерывания

((SP)) ® (PC)

(SP) - 1® (SP)

GIE=1  ;разрешение прерывания

 

6. Команды безадресные

1. NOP нет операции

Изменяется только счетчик команд, используется для коротких задержек. Выполняется за 1 машинный такт.

2. SLEEP

Микроконтроллер переходит в спящий режим. В нем ток потребления в 1000 раз меньше.

Выводится из этого режима внешними прерываниями если они возможны или по сторожевому таймеру.

Шрифт ККМ ШТРИХ-МИНИ, ЭЛВЕС-МИНИ
Шрифт ККМ ШТРИХ-МИНИ, ЭЛВЕС-МИНИ


Remember Me
Remember Me


iTunes Gift Card (Россия) 1000 рублей
iTunes Gift Card (Россия) 1000 рублей