Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Регістри спеціальних функцій





Частину програмної моделі складають регістри спеціальних функцій (таблиця 3).

Таблиця 3 – Регістри спеціальних функцій  
Позначення Найменування Адреса  
* 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  
* - регістри, які допускають побітову адресацію.

Нижче описано призначення цих регістрів.

Акумулятор A (англ. Accumulator). Один з найважливіших регістрів мікроконтролера. Команди, які призначені для роботи з акумулятором, використовують його ім'я «А», наприклад, MOV A, P2. Ім'я «АСС» використовується, приміром, при побітовій адресації акумулятора. Так, наприклад, символічне ім’я п’ятого біта акумулятора при використанні мови асемблера ASM51 буде таким: АСС.5.

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



Регістр стану програми РСП (англ. Program Status Word – PSW). Регістр PSW містить інформацію про стан програми. Формат регістра PSW (слова стану програми – ССП) наведений у таблиці 4.

Таблиця 4 – Формат регістра РСП
Позиція Символ Ім’я та призначення
PSW.7 C Прапорець перенесення (англ. Carry flag). Встановлюється та скидається апаратними засобами при виконанні арифметичних і логічних операцій. Програмно доступний.
PSW.6 AC Прапорець допоміжного перенесення (англ. Auxiliary carry flag). Встановлюється та скидається апаратними засобами при виконанні команд додавання і віднімання та сигналізує про перенесення (переповнення) або позику в біті 3 (вважаючи молодший біт нульовим). Програмно доступний.
PSW.5 F0 Прапорець F0 (англ. User controlled flag). Може бути встановлений в 0 чи 1 або перевірений програмою як прапорець, який спеціфікується користувачем.
PSW.4 PSW.3 RS1 RS0 Вибір банку регістрів (англ. Register select bank switch flag). Встановлюється та скидається програмою для вибору робочого банку регістрів.
PSW.2 OV Прапорець переповнення (англ. Overflow flag). Встановлюється та скидається апаратно при виконанні арифметичних операцій. Програмно доступний.
PSW.1 Не використовується.
PSW.0 P Прапорець пріоритету (англ. Parity flag). Встановлюється і скидається апаратно в кожному циклі команди та фіксує непарне/парне (1/0) число одиничних біт в акумуляторі, тобто виконує контроль за парністю.

Регістр-покажчик стека РПС (англ. Stac Pointer SP). 8-бітовий регістр, вміст якого інкрементується перед записом даних у стек при виконанні команд PUSH і CALL. При початковому скиданні в покажчик стека заноситься значення 07Н, а область стека в ОЗП даних починається з адреси 08Н. При необхідності, шляхом перевизначення покажчика стека, область стека може бути розташована в будь-якому місці внутрішнього ОЗП даних мікроконтролера.

Регістр-покажчик даних (англ. Data Pointer – DPTR). Складається зі старшого байта (DPH) та молодшого байта (DPL). Містить 16-бітову адресу при зверненні до зовнішньої пам’яті. Може використовуватися як 16-бітовий регістр або як два незалежних 8-бітових регістри.

Порт 0 – Порт 3 (англ. Port P0, Port P1, Port P2, Port P3). Виконують функцію 32-х ліній введення/виведення, згруповані в чотири 8‑бітові порти.

Буфер послідовного порту (англ. Serial Bufer ‑ SBUF). Являє собою два окремих регістри: буфер передавача та буфер приймача. Коли дані записуються в SBUF, вони надходять у буфер передавача, причому запис байта в SBUF автоматично ініціює його передачу через послідовний порт. Коли дані зчитуються з SBUF, вони вибираються з буфера приймача.

Регістри таймерів (англ. Timer - T). Регістрові пари (TH0, TL0) та (TH1, TL1) утворюють 16-бітові регістри-лічильники відповідно таймера/лічильника0 і таймера/лічильника1.

Регістри керування. Регістри спеціальних функцій IP, IЕ, TMOD, TCON, SCON і PCON містять біти керування та біти стану системи переривань, таймерів/лічильників, послідовного порту, схеми керування споживанням енергії від джерела живлення:

- регістр пріоритетів переривань РП (англ. Interrupt Pointer ‑ IP);

- регістр дозволу переривань (англ. Interrupt Enable ‑ IE);

- регістр режимів таймерів/лічильників (англ. Timer-Counter Mode ‑ TMOD);

- регістр керування таймерами/лічильниками (англ. Timer-Counter Control ‑ TCON);

- регістр керування послідовним портом (англ. Serial Control ‑ SCON);

- регістр керування енергоспоживанням (англ. Pover Control ‑ PCON).

Система команд

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

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

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

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

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

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

Формати команд

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

  D7 . . . D0        
КОП        
      D7 . . . D0
КОП   #D8    
           
КОП   ad    
           
КОП   bit    
           
КОП   rel    
           
a10a9a8 КОП   a7 . . . . . . a0   D7 . . . D0
         
КОП   ad   #D8
           
КОП   ad   rel
           
КОП   add   ads
           
КОП   #D8   rel
           
КОП   bit   rel
           
КОП   ad16H   ad16L
           
КОП   D16H   D16L
             

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

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

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

- перший байт виконує функції, що описані вище;

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

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

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

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

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

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

Адреси біт регістрів спеціальних функцій зображені на рисунку 35.

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

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

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

- прямої адреси байта (ad, ads, add);

- прямої адреси біта (bit);

- 8-розрядного числа зі знаком (rel);

- безпосереднього операнда (D8).

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

- пряму 16-бітову адресу переходу або підпрограми;

- 16-бітовий безпосередній операнд.

Формати даних

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

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

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

СЗР МЗР ДДЧ

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









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.