Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КЛ_Мікропроцесорні пристрої.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆
    1. Система команд

Кожна команда мікроконтролерів PIC16F87X складається з одного 14-розрядного слова, поділеного на код операції (OPCODE), що визначає тип команди, і одного або декілька операндів, що визначають операцію

команди. Повний список команд дивіться в додатку В. Команди поділені на наступні групи: байторієнтовані команди, біторієнтовані команди, команди управління і операцій з константами. Опис полів коду операції дивіться в таблиці 4.4.

Таблиця 4.4 – Опис полів коду операції

Поле

Опис

f

Адреса файлового регістра (від 0x00 до 0x7F)

W

Робочий регістр (акумулятор)

b

Адреса біта усередині 8-бітового регістра

k

Символьне поле, константа або мітка

x

Будь-яке значення (=0 або 1)

Компілятор згенерує код з x=0. Це потрібно для сумісності зі всіма програмними продуктами Microchip.

d

Вибір, де зберігати результат: d=0 (зберігати в W)

d=1 (зберігати в f) За умовчанням d=1

label

Ім'я мітки

TOS

Вершина стека

PC

Лічильник команд (програмний лічильник)

PCLATH

Записуваний буфер для старших 5 біт РС

GIE

Прапор дозволу глобальних переривань

WDT

Сторожовий таймер

TO

Біт тайм-ауту (Time-out bit)

PD

Біт пониження живлення (Power-Down bit)

dest

Призначення або регістр W, або інший регістр, вказаний в описі команди

[ ]

Опціонально, тобто необов'язкове використання запису, який

поміщений в квадратні дужки

( )

Вміст

->

Занести в…

< >

Бітове поле в регістрі

Для байторієнтованих команд «f» є покажчиком регістра, а «d» покажчиком адресата результату. Покажчик регістра визначає, який регістр повинен використовуватися в команді. Покажчик адресата визначає, де буде збережений результат. Якщо «d»=0, результат зберігається в регістрі W. Якщо «d»=1, результат зберігається в регістрі, який використовується в команді.

У біторієнтованих командах «b» визначає номер біта, що бере участь в операції, а «f» – покажчик регістра, який містить цей біт.

У командах управління або операціях з константами «к» являє вісім або одинадцять біт константи або значення літералів.

Система команд акумуляторного типу, ортогональна і поділена на три основні групи:

  • Байторієнтовані команди.

  • Біторієнтовані команди.

  • Команди управління і операцій з константами.

Усі команди виконуються за один машинний цикл, окрім умовних команд, в яких отримується дійсний результат, й інструкцій, що

змінюють значення лічильника команд РС. У разі виконання команди за два машинні цикли, в другому циклі виконується інструкція NOP. Один машинний цикл складається з чотирьох тактів генератора. Для тактового генератора з частотою 4 МГц усі команди виконуються за 1 мкс, якщо умова істинна або змінюється лічильник команд РС, команда виконується за 2 мкс.

На рисунку 4.16 показана форма команд трьох основних груп.

13

8

7

6

0

OPCODE

d

f(FILE #)

Байт-орієнтовані операції з файловим регістром

d = 0 для запису результата в W d = 1 для запису результата в f

f = 7-бітна адреса файлового регістра

13

10

9

7

6

0

OPCODE

b (BIT #)

f(FILE #)

Біторієнтовані операції з файловим регістром

b = 3-бітна адреса

f = 7-бітна адреса файлового регістра

13

8

7

0

OPCODE

k (символ)

Символьні команди і команди управління (загальний вигляд)

k = 8-бітне безпосереднє значення

Команди управління - GOTO и CALL

13

11

10

0

OPCODE

k (символ)

k = 11-бітне безпосереднє значення

Рисунок 4.16 – Форма команд трьох основних груп

Примітка. Для сумісності програмного забезпечення з наступними версіями мікроконтролерів PICmicro не використовуйте команди TRIS і OPTION.