|
Регістри спеціальних функційЧастину програмної моделі складають регістри спеціальних функцій (таблиця 3).
Нижче описано призначення цих регістрів. Акумулятор A (англ. Accumulator). Один з найважливіших регістрів мікроконтролера. Команди, які призначені для роботи з акумулятором, використовують його ім'я «А», наприклад, MOV A, P2. Ім'я «АСС» використовується, приміром, при побітовій адресації акумулятора. Так, наприклад, символічне ім’я п’ятого біта акумулятора при використанні мови асемблера ASM51 буде таким: АСС.5. Регістр В. Використовується під час операцій множення та ділення. Для інших команд регістр В може розглядатись як додатковий регістр внутрішньої надоперативної пам’яті (НОЗП). Регістр стану програми РСП (англ. Program Status Word – PSW). Регістр PSW містить інформацію про стан програми. Формат регістра PSW (слова стану програми – ССП) наведений у таблиці 4.
Регістр-покажчик стека РПС (англ. 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). Перший байт команди кожного типу (формату) завжди містить КОП. Другий і третій байти включають в себе або адреси операндів, або безпосередні операнди.
Рисунок 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р
СЗР, МЗР, ДДЧ, старший молодший діапазон значущий значущий десяткових розряд розряд чисел Байт зі знаком: 7р 0р
СЗР МЗР ДДЧ знак СЗР: 1 – мінус 0 – плюс Логічний байт: 7р 0р
Упаковане двійково-десяткове число: 7р 4р 3р 0р
СЗР МЗР ДДЧ старша тетрада молодша тетрада (0…9D) (0…9D) Двобайтове слово: 15р 0р
СЗР МЗР ДДЧ Рисунок 36 – Формати (типи) даних ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между... ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|