- •Конспект лекцій з дисципліни “Мікропроцесорні пристрої”
- •1 Основи теорії мікропроцесорних пристроїв
- •Класифікація мікропроцесорів. Варіанти архітектури
- •Базова структура мікропроцесорної системи
- •Основні характеристики мп
- •Типова структура мікропроцесора
- •Система команд мп і режими адресації
- •Організація передачі інформації в мпс. Інтерфейс
- •1.6.1 Способи передачі інформації
- •Методи обміну інформацією в мікропроцесорній системі
- •2 Мікроконтролери
- •Структура мк
- •Процесорне ядро мк
- •Резидентна пам'ять мк
- •Порти уведення/виводу
- •Таймери і процесори подій
- •Аналогово-цифрові й цифро-аналогові перетворювачі
- •Мінімізація споживання енергії в мп-системах
- •Моніторинг напруги живлення мк
- •Апаратні і програмні рішення по підвищенню надійності роботи мк
- •Контролери Intel mcs-51
- •3.1 Структурна організація Intel 8051
- •3.1.1 Арифметично-логічний пристрій
- •Зовнішня пам'ять
- •Пристрій керування і синхронізації
- •Програмна модель омк
- •Система команд Intel 8051
- •Арифметичні операції:
- •Логічні команди:
- •Бітові команди:
- •Периферійні присторої омк
- •Порти введення/виводу
- •Звертання до портів можливе тільки за прямою адресою.
- •Лічильники/таймери
- •Послідовний порт
- •Примітка
- •Мікроконтролер pic16f877
- •Характеристика мікроконтролера
- •Cтруктурна схема мікроконтролера pic16f877
- •Організація пам'яті
- •Пам’ять програм
- •Організація пам'яті даних
- •Регістр стану status
- •Лічильник команд
- •Порти введення/виводу
- •Регістри portа і trisa
- •Регістри portb і trisb
- •Регістри portc і trisc
- •Регістри portd і trisd
- •Регістри porte і trise
- •Таймери
- •Модуль таймера tmr0
- •Модуль таймера tmr1
- •Модуль таймера tmr2
- •Модуль 10-розрядного ацп
- •Adcon0 (адреса 1Fh)
- •Adcon1 (адреса 9Fh)
- •Переривання
- •Сторожовий таймер wdt
- •Біти конфігурації
- •Слово конфігурації (адреса 2007h)
- •Система команд
- •Література
Система команд
Кожна команда мікроконтролерів 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.
