69383

ХАРАКТЕРИСТИКА КОМАНД МІКРОКОНТРОЛЕРА

Лекция

Коммуникация, связь, радиоэлектроника и цифровые приборы

Мнемоніка команди представлення коду операції у вигляді сполучення латинських літер що мають визначений зміст використовуються англійські слова або скорочення наприклад MOV PUSH POP JMP CLR NOP. Мнемокод включає в себе мнемоніку команди та опис операндів які беруть участь в операції.

Украинкский

2014-10-04

208 KB

0 чел.

РОЗДІЛ 2 ПРОГРАМУВАННЯ МІКРОПРОЦЕСОРНИХ СИСТЕМ НА БАЗІ МІКРОКОНТРОЛЕРІВ РОДИНИ МК-51

Тема 2.2 Характеристика команд мікроконтролера

леКЦІЯ 3 ХАРАКТЕРИСТИКА КОМАНД МІКРОКОНТРОЛЕРА

САМОСТІЙНА РОБОТА СТУДЕНТІВ


  1.  МНЕМОНІКА КОМАНДИ ТА МНЕМОКОД

Мнемоніка команди  представлення коду операції у вигляді сполучення латинських літер, що мають визначений зміст (використовуються англійські слова або скорочення, наприклад, MOV, PUSH, POP, JMP, CLR, NOP). Мнемоніки введені для полегшення написання програм, і складають основу мови асемблера.

Мнемокод включає в себе мнемоніку команди та опис операндів, які беруть участь в операції.

  1.  КОД ОПЕРАЦІЇ КОМАНДИ

Код операції команди (КОП)  комбінація бітів (не більше восьми для 8-розрядних МК-в ), що знаходяться на початку машинного коду команди і визначають тип операції, що підлягає виконанню у момент часу. КОП дістається з пам'яті і розміщується в програмно недоступний регістр команд. Потім він декодується і визначається тип команди, яка повинна бути виконана. Для 16-х мікропроцесорів КОП частково може знаходитися у другому байті машинного коду команди. Крім КОП в машинний код команди можуть входити адреси та операнди.

  1.  МАШИННИЙ КОД КОМАНДИ

Машинний код команди представляє собою двійковий код команди, який складається з одного або декількох байтів в залежності від типу команди конкретного МК-ра.

  1.  ОПЕРАНДИ

Операндами у мікропроцесорній техніці називають дані, які приймають участь у виконанні тієї чи іншої команди (операції). В залежності від способу адресації операндів, дані можуть знаходитися у регістрах, пам’яті, у машинному коді команди і т.ін.

  1.  КОМЕНТАР

Коментар використовується для полегшення читання програми. Компілятор (асемблер) пропускає коментарі, що показані в програмі через “;” після або до мнемоніки команди, не генеруючи при цьому ніякого машинного коду.

  1.  ФОРМАТИ КОМАНД

8-розрядний МК типу MCS-51, наприклад, АТ89С51 має команди тринадцяти форматів (типів) (рисунок 1). Перший байт команди кожного типу (формату) завжди містить КОП. Другий і третій байти включають в себе або адреси операндів, або безпосередні операнди.

Команди першого типу мають довжину 1 байт. Крім КОП в склад команди може входити адреса одного з восьми РЗП поточного банку регістрів або адреса регістра, що використовувався для непрямої адресації пам'яті.

Команди другого типу містять два байти, з яких:

  •  перший байт виконує функції, що описані вище;
  •  другий байт є 8-розрядним безпосереднім операндом (БО), який входить в саму команду.

D7    .   .   .    D0

1

КОП

D7   .   .   .   D0

2

КОП

#D8

3

КОП

ad

4

КОП

bit

5

КОП

rel

6

а10a9a8

КОП

a7 . . . . . . a0

D7  .  .  .  D0

7

КОП

ad

#D8

8

КОП

ad

rel

9

КОП

add

ads

10

КОП

#D8

rel

11

КОП

bit

rel

12

КОП

ad16H

ad16L

13

КОП

D16H

D16L

Рисунок 1 – Формати команд

Другий байт команд третього типу являє собою пряму адресу комірки резидентної пам’яті даних (РПД) або одного з 21 регістрів спеціальних функцій (таблиця 1).

Таблиця 1 – Регістри спеціальних функцій

Позначення

Найменування

Адреса

*   ACC

Акумулятор

0E0H

*   B

Регістр В

0F0H

*   PSW

Регістр стану програми

0D0H

SP

Регістр-покажчик стеку

81H

DPTR

Регістр-покажчик даних (2 байти):

DPL

Молодший байт

82H

DPH

Старший байт

83Н

*   P0

Порт 0

80H

*   P1

Порт 1

90H

*   P2

Порт 2

0A0H

*   P3

Порт 3

0B0H

*   IP

Регістр пріоритетів переривань

0B8H

*   IE

Регістр дозволу (масок) переривань

0A8H

TMOD

Регістр режимів таймерів/лічильників

89H

*   TCON

Регістр керування-статусу таймерів/лічильників

88H

TH0

Таймер/лічильник 0 (старший байт)

8CH

TL0

Таймер/лічильник 0 (молодший байт)

8AH

TH1

Таймер/лічильник 1 (старший байт)

8DH

TL1

Таймер/лічильник 1 (молодший байт)

8BH

*   SCON

Регістр керування послідовним портом

98H

SBUF

Буфер послідовного порту

99H

PCON

Регістр керування енергоспоживанням

87H

* - регістри, які допускають побітову адресацію.

Другий байт команд четвертого типу містить адресу одного з 128 біт РПД, які адресуються прямо, (рисунок 2) або адресу біт регістрів спеціальних функцій, які допускають пряму бітову адресацію (рисунок 3).

Рисунок 2 - Організація побітової адресації ОЗП

Другий байт команд п'ятого типу є 8-розрядним числом зі знаком в додатковому коді, яке в командах передачі керування додається до поточного значення програмного лічильника (до адреси наступної команди), чим забезпечується перехід в програмі на +127 комірок вперед або на -128 назад відносно наступної команди. Значення цього числа обчислюється компілятором за формулою:

rel = АДРЕСА МІТКИ – АДРЕСА НАСТУПНОЇ КОМАНДИ (1)

Рисунок 3 - Адреси біт регістрів спеціальних функцій

Двобайтова команда шостого типу крім коду операції (КОП) містить одинадцятирозрядну пряму адресу (a10, a9, …, a1, a0), що забезпечує перехід в програмі всередині сторінки, об'ємом 2 Кбайт або виклик підпрограми в тому ж діапазоні адрес.

Другі і треті байти команд 7…11 типів є сполученням описаних вище команд:

  •  прямої адреси байта (ad, ads, add);
  •  прямої адреси біта (bit);
  •  8-розрядного числа зі знаком (rel);
  •  безпосереднього операнда (D8).

Другі і треті байти команд 12-го і 13-го типів представляють відповідно:

  •  пряму 16-бітову адресу переходу або підпрограми;
  •  16-бітовий безпосередній операнд.
  1.  ФОРМАТИ ДАНИХ

Під час роботи з мікроконтролером необхідно знати не тільки формати команд, які управляють роботою МК, але й формати даних (операндів), що приймають участь у виконанні тієї або іншої команди (операції) (рисунок 4).

  1.  ДОВЖИНА КОМАНД У БАЙТАХ ТА ЇХ РОЗМІЩЕННЯ У ПАМ'ЯТІ ПРОГРАМ

У 8-розрядному МК-рі, наприклад, AT89C51, багатобайтові команди зберігаються в сусідніх комірках пам’яті та адресуються за першим байтом, причому двобайтові слова даних і адреси розташовуються в порядку зростання адреси ЗП – спочатку старший, а потім молодший байти. Як видно з рисунка 2, для цього МК-ра команди можуть мати довжину 1,2 або 3 байти.

Байт без знака:

7р 0р

.

.

.

.

.

.

0..255

СЗР, МЗР, ДДЧ,

старший молодший діапазон

значущий значущий десяткових

розряд розряд чисел

Байт зі знаком:

7р 0р

.

.

.

.

.

.

-128...+127

СЗР МЗР ДДЧ

знак СЗР:

1 – мінус

0 – плюс

Логічний байт:

7р 0р

X7

X6

X5

X4

X3

X2

X1

X0

Вісім незалежних логічних змінних

Упаковане двійково-десяткове число:

7р 4р 3р 0р

.

.

.

.

.

.

0...+99

СЗР МЗР ДДЧ

старша тетрада молодша тетрада

(0…9D) (0…9D)

Двобайтове слово:

15р 0р

.

.

.

.

.

.

.

.

.

.

.

.

.

.

0...+65535

СЗР МЗР ДДЧ

Рисунок 4 - Формати (типи) даних

Програма, яка керує роботою МК-ра, послідовно, команда за командою, розміщується в сусідніх комірках пам'яті в порядку зростання їх адрес. Адреса команди, яка повинна використовуватись, знаходиться у програмному лічильнику РС. Пристрій керування мікроконтролера на підставі прочитаного коду операції, що міститься завжди в першому байті команди, визначає, скільки ще байтів міститься в команді, та керує їх читанням з пам'яті шляхом збільшення на одиницю адреси, яка видається при кожному звертанні до ЗП. Після читання з пам'яті чергової команди МК формує адресу КОП наступної команди.

  1.  ВПЛИВ КОМАНД НА ПРАПОРЦІ

Як відзначалося раніше, одним з основних регістрів МК-ра є регістр прапорців (ознак).

Прапорці регістра ознак встановлюються під час виконання ряду команд МК-ра. Під час описання системи команд, яка, як правило, оформлюється у вигляді таблиці, в одній з колонок показується вплив окремих команд на ті або інші прапорці [2, 12, 14, 15].

Якщо команда не змінює прапорець, то ставлять риску, якщо змінює, то ставлять плюс, а якщо встановлює у який-небудь стан, то пишуть нуль (0) або одиницю (1). Як правило, команди пересилок не змінюють прапорці, окрім команд, які пересилають дані у регістр прапорців. Частіше прапорці змінюють арифметичні, логічні команди і команди порівняння.

Окремі прапорці (ознаки) аналізуються під час виконання команд умовних переходів, виклику і повернення з підпрограм, що дозволяє передавати керування в програмі в залежності від поточного значення прапорців.

В таблиці 2 показано вплив на прапорці команд МК типу АТ89С51.

Таблиця 2 – Команди, що впливають на встановлення прапорців МК

Мнемоніка

Прапорці

C

OV

AC

ADD

x

x

x

ADDC

x

x

x

SUBB

x

x

x

MUL

0

x

DIV

0

x

DAА

x

RRC

x

RLC

x

SETB C

1

CLR C

0

CPL C

x

ANL C, bit

x

ANL C, /bit

x

ORL C, bit

x

ORL C, /bit

x

MOV C, bit

x

CJNE

x

Примітки:

  1.  x – прапорець, дорівнює 0 або 1.
  2.  Операції над вмістом регістра прапорців PSW або його окремих розрядів також впливають на встановлення прапорців.
  3.  Прапорець паритету (парності) P встановлюється/скидається апаратно та відображає число одиниць в акумуляторі.
  4.  ЧАС ВИКОНАННЯ КОМАНД

В МК-рі типу MCS-51 окремі команди виконуються за 1, 2 або 4 машинні цикли.

Всі машинні цикли однакові і складаються з 6 станів: (S1, S2, .., S6) по дві фази в кожному стані (P1, P2). Тривалість однієї фази дорівнює періоду тактової частоти fBQ. Тобто один машинний цикл складається з 12 фаз (12 періодів fBQ). Знаючи значення fBQ, можна визначити TBQ = 1/fBQ, а отже, і час машинного циклу tМЦ = TBQ*12.

Більшість команд МК типу MCS-51 виконуються за 1 або 2 машинні цикли, а множення і ділення – за 4 машинні цикли. Якщо, наприклад, fBQ = 12 МГц, то TBQ = 1/12*10-6 с, TМЦ = (1/12)*12*10-6 = 1 мкс, а окремі команди виконуються за 1, 2 або 4 мкс.

  1.  СПОСОБИ АДРЕСАЦІЇ ОПЕРАНДІВ МІКРОКОНТРОЛЕРА

Тип звертання (адресації) до операндів (даних, що беруть участь в операції) називають способом адресації. До способів адресації операндів також відносять те, як в командах передачі керування дається вказівка на адресу переходу.

У МК типу MCS-51 існують наступні способи адресації операндів  даних, що беруть участь в операції:

  •  неявна;
  •  регістрова (пряма регістрова);
  •  пряма (байтова і бітова);
  •  безпосередня;
  •  непряма;
  •  відносна;
  •  базово-індексна;
  •  стекова.

При неявній адресації інформацію про адресу операнда, який бере участь в операції, пристрій керування МК-ра одержує з коду операції команди. Таким чином часто адресуються акумулятор і прапорець перенесення, наприклад:

INC  A,

CLR  C.

При регістровій адресації команда містить трьохрозрядну пряму адресу одного з восьми робочих регістрів поточного банку регістрів загального призначення (РЗП) резидентної пам’яті даних (РПД). Для вибору робочого (поточного) банку використовуються розряди PSW3, PSW4 (RS0, RS1) регістра прапорців. Приклади команд з регістровою адресацією:

MOV  A, R5;

XCH  A, R3.

Пряма байтова адресація застосовується для звертання до комірок РПД і до регістрів спеціальних функцій. В цьому випадку команда включає в себе пряму 8-розрядну адресу операнда, яка при описанні команд мікроконтролера позначається ad, наприклад:

ADD  A, ad;

DEC  ad.

Пряма бітова адресація використовується для звертання до 128 бітів РПД, які адресуються окремо, і до бітів регістрів спеціальних функцій, які адресуються окремо, (див. програмістську модель МК-ра). При цьому команда містить пряму 8-розрядну адресу біта, який бере участь в операції. Ця адреса при описанні команд позначається bit, наприклад:

SET  bit;

MOV  C, bit.

При безпосередній адресації операнд входить до складу самої команди і дістається з пам'яті при виконанні команди одразу ж після її коду операції. Безпосередній операнд позначається #D8, #D16, наприклад:

MOV  A, #D8;

MOV  DPTR, #D16.

При непрямій адресації в команді міститься посилання на регістр, в якому міститься адреса операнда. Ця адресація може використовуватися для звернення до комірок РПД або зовнішньої пам’яті даних ЗПД. В якості регістрів-вказівників РПД використовуються регістри R0, R1 робочого (поточного) банку РЗП. Це, наприклад, наступні команди:

MOV  A, @Ri;

MOV  ad, @Ri.

В якості регістрів-вказівників ЗПД застосовуються ті ж R0 і R1, що дозволяє вибрати одну з 256 комірок зовнішньої пам'яті даних, або 16розрядний регістр-вказівник даних (DPTR), який забезпечує адресацію однієї з 65536 = 64 К восьмирозрядних комірок ЗПД. Наприклад, наступні команди:

MOVX  A, @Ri;

MOVX  @DPTR, A.

Відносна адресація застосовується в командах переходів для обчислення адреси команди, на яку передається керуванння. При цьому в команді задається 8-розрядний зсув відносно адреси самої команди, який при описанні команд позначається як rel. Зсув сприймається як число зі знаком, що представлене у додатковому коді. Це дозволяє здійснювати переходи на +127 байт вперед і на –128 байт назад відносно адреси наступної команди. Наприклад, наступні команди:

JNZ  rel;

DJNZ  ad, rel,

де rel – 8-бітний зсув. Зсув обчислюється компілятором шляхом віднімання від адреси мітки команди, на яку потрібно перейти, адреси наступної команди.

При базово-індексній адресації адреса операнда обчислюється як сума 16-розрядної базової адреси, що міститься в регістрах DPTR або PC, і 8-бітного індексу, що знаходиться в пам’яті програм в акумуляторі. Це дозволяє звертатися до елементів таблиць, масивів і т.ін. Наприклад, наступні команди:

MOVC  A, @A+DPTR;

MOVC  A,@A+PC.

Стекова адресація виділена в самостійний вид адресації умовно, щоб підкреслити специфіку роботи зі спеціальною областю пам'яті, яка називається стеком.

При записі до стеку (команда PUSH) стек розширюється, а при читанні зі стеку (команда POP) стек стискається. В будь-якому випадку операція виконується відносно крайньої (останньої) заповненої комірки, яка називається “вершиною стеку”. Формально стек  це пам'ять з організацією типу “останній увійшов  перший вийшов”.

У мікроконтролері MCS-51 при виконанні команди PUSH початкове значення SP збільшується на одиницю та за отриманою адресою байт записується у стек. При виконанні команди POP зі стеку зчитується байт за початковою адресою SP, після чого значення SP зменшується на 1.


САМОСТІЙНА РОБОТА СТУДЕНТІВ

  1.  ПРИКЛАДИ КОМАНД, ЯКІ ВИКОРИСТОВУЮТЬ РІЗНІ СПОСОБИ АДРЕСАЦІЇ ОПЕРАНДІВ

PAGE   \* MERGEFORMAT 1


 

А также другие работы, которые могут Вас заинтересовать

80457. Звуки (с), (с’), позначення їх буквами Сс 155 KB
  Навчити читати склади, слова з новими буквами. Розвивати уміння читати анаграми. Виховувати бережливе ставлення до природи. Обладнання. Фішки звуків; демонстраційні картки з великою і малою буквами Сс...
80458. Закріплення знань про звук (дз), буквосполучення дз 34 KB
  Мета. Закріплення вміння читати склади,слова і текст з буквосполученням «дз», вміння робити звуко-буквенний аналіз слів. Розвивати мовленнєві навички,словниковий запас, пам’ять,увагу. Виховувати бережливе ставлення до природи,любов до птахів.
80459. WE ARE AT HOME 60 KB
  It is Sunday today. Mrs. Black usually gets up at 8 o’clock and does the cooking breakfast. Kate does the washing up after breakfast. Then Mr. Black and Kate go shopping. They have a dog. Kate walks the dog every day but she never feeds it. Father does it.
80460. Смаки і захоплення 188 KB
  Смаки і захоплення. Вчити учнів розкривати позитивний образ Я; відрізняти здорові і шкідливі захоплення; показати різноманітність смаків і захоплень учнів класу; виховувати здоровий спосіб життя. Повідомлення теми і завдань уроку Кожна людина це неповторна особистість у якої свої погляди смаки і захоплення.
80461. Множення й ділення круглих чисел 200 KB
  Сучасні підходи до вивчення математики в початковій школі передбачають розвиток уваги спостережливості образного і логічного мислення формують особисті якості дитини: зібраність організованість здатність швидко та якісно приймати рішення доводити і відстоювати свою думку.
80462. Різноманітність тваринного світу. Інтегрований урок (природознавство, математика, трудове навчання) 299.5 KB
  Учити розрізняти групи тварин: хребетні безхребетні; формувати вміння визначити істотні ознаки тварин. Закріплювати знання нумерації багатоцифрових чисел: читати записувати представляти число у вигляді суми розрядних доданків; удосконалювати обчислювальні навички вміння розвязувати задачі та знаходження...
80463. Київ – столиця України 49 KB
  Мета. Поглиблювати інтерес до історії рідного краю, знайомити дітей з витоками історії українського народу. Формувати знання про Київську Русь, місто Київ, його заснування. Познайомити дітей з визначними місцями столиці. Розвивати вміння фантазувати; прогностичне мислення.
80464. Колір як засіб передавання характеру образу 58.5 KB
  Продовжити знайомити учнів із виражальними можливостями кольорів; учити правильно добирати кольори і створювати засобами кольору певний за характером образ; розвивати фантазію уміння орієнтуватись в мікропросторі зорове сприймання уміння добирати кольори для передавання настрою емоцій...
80465. Тяжко тому жити, хто не хоче робити. Л. Глібов «Коник-стрибунець» 134.5 KB
  Мета: поглибити знання учнів про особливості байок закріпити знання поняття байка байкар розширити знання учнів про життя та творчість Л.Глібова малюнки коника мурашки картки Друкар; дитячі книги з творами Л.Глібова Коник-стрибунець мультиплікаційний фільм аудіо відеоматеріали.