Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Тема 2.1. Структурна організація МК сімейства МК51.

Розділ 2. Мікроконтролери (МК) сімейства МК51

Домашнє завдання

 

Дайте відповіді на контрольні запитання

1) Дайте визначення стекової пам'яті.

2) Яке призначення стекової пам'яті?

3) Поясніть принцип дії апаратного стека.

4) Поясніть принцип дії апаратно-програмного стека.

5) Дайте порівняльну характеристику апаратного та апаратно-програмного стеків.

6) Поясніть призначення регістра SP.

7) Які операції виконує процесор за командами CALL, RET, PUSH, POP, PUSHA, POPA?

 

 

Лекція №6. Структурна організація МК: структурна схема МК, призначення вузлів. Порядок виконання команд в МК.

Особливості архітектури MCS -51

Архітектура MCS-51 фірми Intel була свого часу визначена настільки вдало, що є сьогодні, по суті, одним із стандартів “де-факто” на світовому ринку 8-розрядних мікроконтролерів. Цю архітектуру відтворює в тому чи іншому вигляді в своїх виробах ряд фірм. За сукупним обсягом виробництва цих фірм мікроконтролери MCS-51 займають перше місце.

Поняття “архітектура” мікроконтролерів далі трактується як сукупність внутрішніх і зовнішніх програмно доступних ресурсів, системи команд, системи переривань, функцій введення/виведення і протоколів обміну по магістралі. Архітектура втілюється виробником у вигляді набору пов'язаних функціонально-топологічних модулів. Конкретний мікроконтролер являє собою певну комбінацію цих модулів, основою якої є операційне ядро (“соrе” у фірми Intel) .

Вихідна архітектура MCS -51 характеризується наступними особливостями :

· архітектура “гарвардська”, тобто пам'ять програм і даних розділені;

· операційне ядро має “акумуляторну” організацію, тобто результат операції, як правило, поміщається в регістр-акумулятор ;

· 8-розрядне АЛП з апаратним помножувачем обробляє цілочисельні операнди;

· є внутрішні пам'ять програм (4Кбайт) і ОЗП даних (128 байт) ;

· є чотири універсальних програмованих паралельних 8-розрядних порти введення/виведення з можливістю реалізації певних альтернативних функцій;

· набір блоків введення/виведення включає два 16-розрядних програмованих лічильника/таймера і дуплексний послідовний порт;

· всі регістри управління блоків введення/виведення зведені в групу регістрів спецфункцій, яка має свій діапазон адрес в просторі внутрішньої пам'яті даних.

Структура мікроконтролерів MCS -51

На рис. 2.1 наведена внутрішня структура мікроконтролера Intel 8051, відповідна вихідної архітектурі MCS-51.

Вона включає наступний набір функціональних модулів:

· 8- розрядне АЛУ з апаратною реалізацією операцій типу множення;

· внутрішні пам'ять програм ( 4Кбайт ) і ОЗУ даних ( 128 байт) ;

· чотири універсальних паралельних 8- розрядних порту введення/виведення з можливістю реалізації певних альтернативних функцій;

· два 16 - розрядних програмованих лічильника/таймера;

· дуплексний послідовний порт.

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

Зовнішній вигляд мікросхем MCS-51 в 40- вивідному корпусі і функції висновків представлені на рис. 2.2 .

Функції виводів мікроконтролерів MCS-51 наступні.

Port 0. Двонаправлений програмований 8-розрядний паралельний порт вводу/виводу з можливістю установки в високо імпедансний стан. При роботі в якості виходів кожна лінія забезпечує навантажувальну здатність рівну 8 входам малопотужної серії LS TTL.

При зверненні мікроконтролера до зовнішньої пам'яті програм або даних порт працює в режимі мультиплексування молодшого байта адреси і 8-розрядної шини даних.

При записі в розряд регістра порту Р0 логічної 1 відповідна лінія порту переходить в режим високоімпедансного входу. Для роботи в режимі порту введення/виведення необхідно зовнішнє підтягування кожної лінії порту дорівня логічної «1».

Рис. 2.1. Структура мікроконтролерів MCS-51

 

Port 1. Двонаправлений 8-розрядний паралельний порт введення/виведення. При роботі в якості виходів кожна лінія забезпечує навантажувальну здатність, рівну 4 входам малопотужної серії LS TTL. При записі в розряд регістра порту Р1 логічної 1 відповідна лінія порту переходить в режим високоімпедансного входу зі слабким підтягуванням сигналу до рівня логічної 1.

Port 2. Двонаправлений 8-розрядний паралельний порт введення / виведення. При роботі в якості виходів кожна лінія забезпечує здатність навантаження, рівну 4 входів малопотужної серії LS TTL. При записі в розряд регістра порту Р2 логічного «1» відповідна лінія порту переходить в режим високоімпедансное входу зі слабким підтягуванням сигналу до рівня логічної «1».

При зверненні мікроконтролера до зовнішньої пам'яті програм або даних з використанням 16-розрядної адреси (команди MOVX @ DPTR) через порт Р2 видається старший байт адреси. При зверненні мікроконтролера до зовнішньої пам'яті даних з використанням 8-розрядної адреси (команди MOVX @ Ri) на висновки порту Р2 видається вміст регістра спеціальних функцій Р2.

Рис. 2.2. Мікроконтролер MCS-51 в 40-вивідному корпусі і функції виводів

 

Port 3. Двонаправлений 8-розрядний паралельний порт введення / виведення. При роботі в якості виходів кожна лінія забезпечує здатність навантаження, рівну 4 входів малопотужної серії LS TTL. При записі в розряд регістра порту РЗ логічного «1» відповідна лінія порту переходить в режим високоімпедансное входу зі слабким підтягуванням сигналу до рівня логічної «1».

Виводи порту Р3 можуть виконувати альтернативні функції у відповідно з наступною таблицею.

Вывод Альтернативная функция
Р3.0. RxD- вход приемника последовательного порта
Р3.1. TxD- выход передатчика последовательного порта
Р3.2. INTO - вход внешнего прерывания 0
РЗ.З. INT1 - вход внешнего прерывания 1
Р3.4. ТО - внешний вход таймера/счетчика 0
Р3.5. T1 - внешний вход таймера/счетчика 1
Р3.6. WR# - сигнал разрешения записи во внешнюю память данных
Р3.7. RD# - сигнал разрешения чтения из внешней памяти данных

RST. Вхід ініціалізації. Високий рівень на цьому вході в перебігу двох машинних тактів запускає процес ініціалізації мікроконтролера.

ALE. Активне значення сигналу на цьому виході дозволяє фіксацію молодшого байта адреси при зверненнях до зовнішньої пам'яті.У мікроконтролерів типу 8751 з внутрішньою пам'яттю програм це вивід має альтернативну функцію PROG #. При програмуванні внутрішньої пам'яті на нього подається стробующий сигнал.

PSEN #. Активне значення сигналу на цьому виході дозволяє читання із зовнішньої пам'яті програм.

ЕА #. Сигнал на цьому вході перемикає джерело коду при зверненні до молодших 4 кбайт пам'яті програм. При ЕА = 0 і діапазоні адрес 0000Н - FFFFH мікроконтролер 8051 виконує цикл звернення до зовнішньої пам'яті програм, при ЕА = 1 звернення по одному з цих адрес призводить до читання коду з внутрішньої пам'яті.

XTAL1. Вхід інвертуючого підсилювача для синхрогенератора.

XTAL2. Вихід інвертую чого підсилювача для синхрогенератора.

Vcc. Напруга живлення (5 В).

Vss. Земля.

Лекція №7. Організація пам`яті МК і програмнодоступні ресурси.

В архітектурі MCS-51 пам'ять програм і пам'ять даних розділені (Гарвардська архітектура). Кожна з них має розмір 64 Кбайта, вибір однієї з двох матриць пам'яті здійснюється сигналами PSEN, RD #, WR #. Організація пам'яті в мікроконтролерах сімейства 8051 ілюструється рис. 2.3.

Рис. 2.3. Організація пам'яті в архітектурі MCS-51

Пам'ять програм може бути цілком зовнішньою (сигнал ЕА = 0), або при зверненні з до молодших 4 адрес код витягується з комірок внутрішньої пам'яті мікроконтролера, а вміст старших 60 К береться з зовнішньої пам'яті системи (сигнал ЕА = 1).

Мікроконтролери 87С51 мають 3 біта секретності, призначениих для захисту внутрішньої пам'яті програм від доступу ззовні. При установлених бітах секретності забороняється не тільки читання внутрішньої пам'яті ззовні, але і її до програмування.

Пам'ять даних ділиться на зовнішню і внутрішню, кожна з них має свій простір адрес. В архітектурі MCS-51 простір адрес внутрішньої пам'яті даних об'єднує всі внутрішні програмно доступні ресурси. Це простір розміром 256 байт в свою чергу ділиться на простір адрес внутрішнього ОЗП (розміром 128 байт) і простір адрес регістрів спеціальних функцій.Область внутрішнього ОЗП зображена на рис. 2.4, комірки області займають молодші адреси внутрішньої пам'яті даних з 00Н з 7FH.

 

Рис. 2.4. Структура внутрішнього ОЗУ даних

У цій області пам'яті виділяються два особливих фрагмента:

молодші 32 адреси займають чотири регістрових банки, кожен з яких містить по вісім регістрів загального призначення RO - R7. Поточний банк визначається значенням бітів RSO, RS1 регістра PSW. Таким чином, молодші 32 комірки ОЗП, крім адрес, мають імена;

комірки з адресами в діапазоні 32 - 48 мають біти, що прямо адресуються, адреси бітів цієї частини ОЗП знаходяться в діапазоні 00Н - 7FH.

На рис. 2.5 зображена область регістрів спеціальних функцій. У неї включені всі програмно доступні регістри (управління і даних) внутрішніх блоків введення/виведення.

Ця область формально займає старші 128 байт внутрішньої пам'яті даних, але звернення повинно здійснюватися за певними адресами комірок або окремих бітів. Звернення з проміжним адресами призведе до помилкового результату.

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

Видно, що всі регістри мають як символічні імена, так і адреси в якості комірок внутрішньої пам'яті. Частина регістрів містить біти, що прямо адресуються. Адреси бітів знаходяться в діапазоні 80Н - F7H. Призначення регістрів спеціальних функцій наступне:

Ім'я регістра Призначення
АСС Акумулятор, основний операційний регістр
В Додатковий регістр для операцій множення і ділення; у інших командах може розглядатися як звичайний РОН
PSW Регістр, що зберігає слово стану процесора
IP Регістр пріоритетів переривань
РЗ Регістр порту РЗ
IE Регістр дозволу переривань
Р2 Регістр порту Р2
SBUF Регістр даних послідовного порту
SCON Регістр управління послідовного порту
Р1 Регістр порту Р1
ТН1 Старший регістр таймера/лічильника 1
тно Старший регістр таймера/лічильника 0
TL1 Молодший регістр таймера/лічильника 0
TLO Молодший регістр таймера/лічильника 0
TMOD Регістр режиму таймерів/лічильників
TCON Регістр управління таймерів/лічильників
PCON Регістр управління енергоспоживанням
SP Регістр покажчика стека
DPH, DPL Покажчик даних DPTR складається з регістра старшого байта Dphі регістра молодшого байта DPL, містить 16-розрядну адресу для звернення до зовнішньої пам'яті даних
РО Регістр порту РО

Лекція №8. Методи адресації і система команд.

Система команд мікроконтроллерів MCS-51 орієнтована на організацію гнучкого введення/виводу даних через паралельних і послідовний порти, первинну обробку інформації. Особлива увага приділена операціям з бітами і передачі управління по їх значенню. Команди, що виконують такі операції, складають багаточисельну групу утворюють разом з відповідними апаратними механізмами так званий «булевий процесор» (Booleanproceccorпо термінології фірми Intel) у складі архітектури MCS-51.

В цілому систему команд MCS-51 можна охарактеризувати як вельми потужну і симетричну в тому сенсі, що програміст має можливість використовувати більшість операцій з повним набором методів адресації і програмно доступних ресурсів апаратури. На відміну від більшості Riscмікроконтроллеров, система команд MCS-51 вельми зручна для програмування на асемблері.

Розробник виробу при створенні робочої програми працює з якою-небудь крос-системою, що має свою версію мови програмування. Детальніше про системи програмування буде сказано в главі 6. Нижче викладені основні правила, які підтримуються у всіх системах програмування на мові асемблер.

Кожна команда повідомляє процесору виконувану операцію і методи доступу до операндів. Командний рядок мови асемблер містить мітку (символічна адреса), мнемоніку (символічне ім'я) команди, операнди, коментар. Ім'я команди однозначно пов'язане з виконуваною нею операцією (дією). У командах мікроконтроллерів Mcs-51 можуть оброблятися до двох операндів. Першим при цьому вказується регистр- приймач, другим регістр-джерело. Багато команд за умовчанням використовують акумулятор як одне з джерел операнда і як приймач результату.

Методи адресації є набором механізмів доступу до операндів. Одні з них прості і тому приводять до компактного формату команди і швидкого доступу до операнда, але об'єм доступних з їх допомогою ресурсів обмежений. Інші методи адресації дозволяють оперувати зі всіма наявними в системі ресурсами, але команда виходить довгою, на її введення і виконання витрачається багато часу. Набор методів адресації в кожній системі команд є компромісним поєднанням відомих механізмів адресації, вибраним проектувальниками архітектури виходячи з набору вирішуваних завдань. При цьому для процесорів з архітектурою CISC (completeinstructionsetcomputer), до якої належить Mcs-51, велику роль має зручність роботи програміста.

Команди мікроконтроллерів сімейства Mcs-51 можуть бути одно-, двух- і трехбайтнимі. Використовується чотири основні методи адресації.

· Регістрова адресація. Операнд знаходиться в одному з регістрів загального призначення R0-R7 банку, номер якого визначається розрядами RSO, Rs1 регістра PSW. Номер регістра визначається трьома молодшими бітами байта коди операції (КОП - перший байт команди). Регістрова адресація дозволяє в одному байті вказати код операції і адресу операнда. Оскільки операнд знаходиться у внутрішньому вічку, не вимагається циклів звернення до зовнішньої пам'яті даних. Формат команди складання Adda,rn наступний:

· Пряма адресація. Операнд знаходиться у внутрішній пам'яті даних, адресу вічка визначає окремий байт команди. Таким чином, команди з використанням прямої адресації мають мінімум два байти, доступні лише 256 ячеек, звернення за операндом до зовнішньої пам'яті не вимагається. Формат команди складання ADD A,direct наступний:

· Непрямо-регістрова адресація. Цей метод адресації використовує регістри R0 і R1 як покажчики. Регістри беруться з банку, визначуваного розрядами RSO, Rs1 регістра PSW. Вміст цих регістрів використовується як адреса для звернення до вічка внутрішньої пам'яті даних, що зберігає операнд. Команда виходить однобайтною, номер регістра вказує молодший біт. Довжина команди при цьому відповідає довжині команди з використанням регістрової адресації, але непряма адресація дає доступ до всього простору внутрішньої пам'яті даних. Формат команди складання ADD A @Ri наступний:

· Безпосередня адресація. Операнд знаходиться в окремому байті команди, це константа. Таким чином, команди з використанням безпосередньої адресації мають мінімум два байти, звернення за операндом до зовнішньої пам'яті не вимагається. Формат команди складання AddА, #dataследующий:

Відзначимо, що в загальному випадку для вказівки місця знаходження кожного з двох операндів, а також приймача результату, в команді має бути використаний свій метод адресації. У «акумуляторній» архітектурі Mcs-51 результат завжди поміщається в акумулятор, тому адресуються лише два операнди. Інколи один з операндів береться з певного регістра,что визначається унікальним кодом операції. По суті це п'ятий метод - неявна адресація.

Стан процесора після виконання чергової команди визначається станом акумулятора і регістра

PSW, який зберігає «слово стану процесора». Формат цього регістра і функції окремих бітів наступ-ні:

флаг Бит Функція
CY PSW.7 Флаг перенесення
АС PSW.6 Флаг допоміжного перенесення (між тетрадами)
F0 PSW.5 Флаг 0, можливе програмування користувачем в загальних цілях
RS1 PSW.4 Перший біт селектора регістрового банку
RS0 PSW.3 Нульовий біт селектора регістрового банку
OV PSW.2 Флаг переповнювання
  PSW.1 Флаг, визначуваний користувачем
Р PSW.0 Флаг парності. Вказує парне число "1" в акумуляторі

 

При описі системи команд далі використовуються наступні позначення:

Rn- один з регістрів R0 - R7 в банку регістрів, визначеному бітами регістра PSW;

Direct- адреса елементу внутрішньої пам'яті даних.

@Ri- елемент внутрішньої пам'яті даних, що побічно адресується через регістри R0 або R1 поточного банку;

#data- 8-розрядна константа, включена в команду;

#data16 - 16-розрядна константа, включена в команду;

addr16 - 16-розрядна адреса переходу в командах Lcallі LJMP;

addr11 - 11-розрядна адреса переходу в командах Acallі AJMP;

rel- 8-розрядна константа із знаком (у додатковому коді). Визначає змішення в команді Sjmpі всіх командах умовних переходів;

bit- адреса біта у внутрішній пам'яті данних.

Всього в системі команд сімейства Mcs-51 можна виділити 5 груп. Команди таким чином змінюють значення прапорів регістра PSW:

 

Команда Флаг Команда Флаг
  С OV AC   С OV AC
ADD X X X CLRC    
ADDC X X X CPLC X    
SUBB X X X ANL C,bit X    
MUL X   ANL C,/bit X    
DIV X   ORL C.bit X    
DA X     ORL C,/bit X    
RRC X     MOV C, bit X    
RLC X     CJNE X    
SETB С            

 

Арифметичні команди. Забезпечують виконання операцій складання і віднімання (у тому числі з врахуванням перенесення) над цілочисельними 8-розрядними операндами, інкремент і декремент регістрів і елементів внутрішньої пам'яті даних, двійково-десяткову корекцію вмісту акумулятора. Коротке зведення цих команд приведене в наступній таблиці, а детальніший їх опис можна знайти в Додатку 1.

Арифметичні команди мікроконтроллерів MCS-51

Мнемоніка Опис Байт Тактів Дія
ADD A,Rn Складання регістра з ADD
    акумулятором     (A)«-(A)+(Rn)
ADD A, direct Складання елементу внутрішньої ADD
    пам'яті даних з акумулятором     (A)<-(A)+(direct)
ADD A,©Ri Складання елементу внутрішньої ADD
    пам'яті даних, що побічно     (A)«-(A)+((Ri))
    адресується, з акумулятором      
ADD A,#data Складання безпосереднього байта ADD
    даних з акумулятором     (A)<-(A)+#data
ADDC A,Rn Складання регістра з ADDC
    акумулятором з врахуванням перенесення     (A)<-(A)+(C)+(Rn)
ADDC A, direct Складання елементу внутрішньої ADDC
    пам'яті даних з акумулятором з     (A)<-(A)+(C)+(direct)
    врахуванням перенесення      
ADDC A,©Ri Складання елементу внутрішньої пам'яті даних, що побічно ADDC
    адресується, з аккумулятором     (A)<-(A)+(C)+((Ri))
    з врахуванням перенесення      
ADDC A,#data Складання безпосереднього байта ADDC
    даних з акумулятором з     (A)<-(A)+(C)+#data
    врахуванням перенесення      
SUBB A,Rn Віднімання регістра з акумулятора з врахуванням SUBB
    позики     (A)<-(AMCMRn)
SUBB A, direct Віднімання елементу внутрішньої SUBB
    пам'яті даних з акумулятора з     (A)<-(AMC)-(direct)
    врахуванням позики      
SUBB A,©Ri Віднімання елементу внутрішньої SUBB
    пам'яті даних, що побічно адресується, з акумулятора з     (AMAHCH(Ri))
    врахуванням позики      
SUBB A, # data Віднімання безпосереднього SUBB
    байта даних з акумулятора з     (A)<-(A)-(C)-#data
    врахуванням позики      
INC A Інкремент акумулятора INC
          (A)«-(A)+1
INC Rn Інкремент регістра INC (Rn)<-(Rn)+1
Мнемоніка   Опис Байт Тактів Дія
INC direct Інкремент елементу внутрішньої INC
    пам'яті даних     (direct)«-(direct)+1
INC ©Ri Інкремент елементу внутрішньої INC
    пам'яті даних, що побічно     <{Ri))<-((Ri))+1
  адресується      
DEC A Декремент акумулятора DEC
          (А)<-(АН
DEC Rn Декремент регістра DEC
          (Rn)«-(Rn)-1
DEC direct Декремент елементу DEC
    внутрішньої пам'яті даних     (direct)«-(direct)-1
DEC ©Ri Декремент елементу DEC
    внутрішньої пам'яті даних     ((Ri))<-((R")H
INC DPTR Інкремент покажчика даних INC
          (DPTR)«-(DPTR)+1
MUL AB Множення А на В MUL
          (A)7.o<-(A)X(B); (B)15e
DIV AB Ділення А на В DIV
          (A)15.8<MA)/(B); (B)70
DA A Двійково-десяткова корекція DA - содержимое
    аккумулятора     аккумулятора в BCD
          IF[[(A3o)>9]V[(AC)=1])
          THEN (А30)<-(Азо)+6
          AND
          IF[[(A74)>9]V[(C)=1]]
          THEN (A7.4)<-(A74)+6

 

 

Особливістю системи команд Mcs-51 є наявність у складі цієї групи команд множення і ділення 8-розрядних цілочисельних операндів. 16-розрядний результат, що виходить, зберігається в регістрах А і В. Результатом виконання арифметичних команд є, окрім нового вмісту акумулятора, змінене значення регістра PSW.

Логічні команди. Виконують операції AND, OR, що «виключає АБО», зрушення вмісту акумулятора управо і вліво, очищення акумулятора і перестановку його тетрад. Як операнди можуть використовуватися безпосередні дані і вміст елементів внутрішньої пам'яті даних. Виконання деяких логічних команд впливає на значення прапора З (перенесення) регістра PSW.

 

Логічні команди мікроконтроллерів MCS-51

Мнемоніка Опис Байт Тактів Дія
ANL A,Rn AND регістра і акумулятора ANL (A)<-(A)A(Rn)
ANL A,direct AND вічка внутрішньої ANL
  пам'яті даних і акумулятора     (A)«-(A)A(direct)
ANL A,QRi AND що побічно адресується ANL
  елементи внутрішньої пам'яті     (A)«-(A)A((Ri))
  даних і акумулятора      
ANL A,#data AND безпосереднього байта ANL
  даних і акумулятора     (A)«-(A)A#data

 

 

Мнемоніка Опис Байт Тактів Дія
ANL direct,A AND акумулятора і вічка ANL
    внутрішній пам'яті даних     (direct)«-(direct)A(A)
ANL direct, #data AND безпосереднього байта ANL
    даних і вічка внутрішньої     (direct)«-(direct)A#data
    пам'яті даних      
ORL A.Rn OR регістра і акумулятора ORL (A)«-(A)V(Rn)
ORL A, direct OR елементу внутрішньої пам'яті ORL
    даних і акумулятора     (A)«-(A)V(direct)
ORL A,©Ri OR елементу внутрішньої пам'яті ORL
    даних і акумулятора, що побічно     (A)<-(A)V((Ri))
    адресується      
ORL A, # data OR безпосереднього байта даних і ORL
    акумулятора     (A)<-(A)V#data
ORL direct,A OR акумулятора і елементу ORL
    внутрішньої пам'яті даних     (direct)«-(direct)V(A)
ORL direct, #data OR безпосереднього байта даних і ORL
    елементу внутрішньої пам'яті даних     (direct )<-(direct)V#data
XRL A.Rn XOR регістра і акумулятора XRL
          (A)«-(A)V(Rn)
XRL A,direct XOR елементу внутрішньої пам'яті XRL
    даних і акумулятора     (A)«-(A)V(direct)
XRL A,©Ri XOR елементу внутрішньої пам'яті XRL
    даних і акумулятора, що побічно     (A)<-(A)V((Ri))
    адресується      
XRL A,#data XOR безпосереднього байта даних XRL
    і акумулятора     (A)<-(A)V#data
XRL direct,A XOR акумулятора і елементу XRL
    внутрішньої пам'яті даних     (direct )<-(direct)V(A)
XRL direct, #data XOR безпосереднього байта даних XRL
    і елементу внутрішньої пам'яті     (direct)«-(direct)V#data
    даних      
CLR A Очищення акумулятора CLR (A)<-0
CPL A Інверсія акумулятора CPL
          (A)<- —.(A)
RL A Зрушення акумулятора вліво RL
          (An+1)«-(An) n = 0-6
          (A0)<-(A7)
RLC A Зрушення акумулятора вліво через RLC
    перенесення     (An+1)«-(An) n = 0-6
          (A0)«-(C)
          (C)<-(A7)
RR A Зрушення акумулятора управо RL
          (An)«-(An+1) n = 0-6
          (A7)<-(A0)
RRC A Сдвиг аккумулятора вправо RRC
    через перенос     (An)«-(An+1) n = 0-6
          (A7)<-(C)
          (C)<-(A0)
SWAP A Перестановка тетрад SWAP
    акумулятора     (A3 o) <->(A7 4)

 

Команди пересилки даних. Здійснюють передачу даних між елементами внутрішньої пам'яті даних (команди MOV), зовнішній пам'яті даних (команди MOVX) і акумулятором.

Мнемоніка Опис Байт Тактів Дія
MOV A,Rn Пересилка з регістра в акумулятор MOV
          (A)<-(Rn)
MOV A,direct Пересилка з елементу внутрішньої MOV
    пам'яті даних в акумулятор     (А)<—(direct)
MOV A,©Ri Пересилка з елементу внутрішньої MOV
    пам'яті даних, що побічно     (direct)«-((Ri))
    адресується, в акумулятор      
MOV A,#data Пересилка безпосереднього байта MOV
    даних в акумулятор     (A)«-#data
MOV Rn,A Пересилка з акумулятора в регістр MOV
          (Rn)<-(A)
MOV Rn, direct Пересилка з елементу внутрішньої MOV
    пам'яті даних в регістр     (Rn)«-(direct)
MOV Rn,#data Пересилка безпосереднього байта MOV
    даних в регістр     (Rn)«-#data
MOV direct, A Пересилка з акумулятора в елемент MOV
    внутрішньої пам'яті даних     (direct)«-(A)
MOV direct, Rn Пересилка з регістра в елемент MOV
    внутрішньої пам'яті даних     (direct)«-(Rn)
MOV direct,direct Пересилка з елементу внутрішньої MOV
    пам'яті даних в елемент внутрішньої     (direct)«-(direct)
    пам'яті даних      
MOV direct, ©Ri Пересилка з елементу внутрішньої MOV
    пам'яті даних, що побічно     (direct)«-((Ri))
    адресується, в елемент внутрішньої      
    пам'яті даних      
MOV direct, #data Пересилка безпосереднього байта MOV
    даних в елемент внутрішньої пам'яті     (direct)«-#data
    даних      
MOV ©Ri,A Пересилка з акумулятора в елемент MOV
    внутрішньої пам'яті даних, що     ((Ri))<-(A)
    побічно адресується      
MOV ©Ri, direct Пересилка з елементу внутрішньої пам'яті даних в елемент внутрішньої MOV
    пам'яті даних, що побічно адресується     ((Ri))«-(direct)
MOV ©Ri,#data Пересилка безпосереднього байта MOV
    даних в побічно     ((Ri))«-(data)
MOV DPT R, data 16 вічко, що адресується, Завантаження 16-розрядної константи в покажчик MOV
  даних     (DPTR)<-#data15
          DPH <-#data158
          DPL <-#data7 0
MOVC A,©A+DPTR Пересилка байта коди, пов'язаної з MOVC
    DPTR, в акумулятор     (A)<-((A)+(DPTR))

 

Мнемоніка Опис Байт Тактів
MOVC A,©A+PC Пересилка байта коди, пов'язаної з РС, в акумулятор MOVC (РС)<-(РС)+1 (А)<-((А)+(РС))
MOVX A,©Ri Пересилка байта із зовнішньої пам'яті даних (8-разр. адрес) в акумулятор MOVX (A)<-«Ri))
MOVX A,©DPTR Пересилка байта із зовнішньої пам'яті даних (16-разр. адрес) в акумулятор MOVX (A)«-((DPTR))
MOVX ©Ri,A Пересилка з акумулятора в елемент зовнішньої пам'яті даних (8-разр. адрес) MOVX «Ri))<-(A)
MOVX ©DPTR.A Пересилка з акумулятора в елемент зовнішньої пам'яті даних (16-разр. адрес) MOVX (DPTR)<—(A)
PUSH direct Завантаження елементу внутрішньої пам'яті даних в стек PUSH (SP)«-(SP)+1 ((SP))<-(direct)
POP direct Вивантаження із стека в елемент внутрішньої пам'яті даних POP (direct b-((SP)) (SP)<-(SP)-1
XCH A,Rn Обмін між регістром і акумулятором XCH (AR>((Rn))
XCH A, direct Обмін між елементом внутрішньої пам'яті даних і акумулятором XCH (A)<->(direct)
XCH A,©Ri Обмін між елементом внутрішньої пам'яті даних, що побічно адресується, і акумулятором XCH (A)<->(R,))
XCHD A,©Ri Обмін молодшими тетрадами між елементом внутрішньої пам'яті даних, що побічно адресується, і акумулятором XCHD (A30K>((Ri3o))

 

Існують дві команди MOVC, що дозволяють читати в акумулятор вміст пам'яті програм. До цієї групи відносяться парні команди Pushі POP, здійснююче завантаження і вивантаження вмісту вічка, що прямо адресується, в стек (із стека). Є чотири команди взаємного обміну інформацією між елементами внутрішньої пам'яті даних (ХСН і XCHD). Команди пересилки даних значення прапорів в регістрі Pswне змінюють.

Команди роботи з бітами. Ці команди встановлюють в «1» (SETB) або «О» (CLR) біт внутрішньої пам'яті даних, що прямо адресується, змінюють його значення на протилежне (CPL), виконують операції Andі Orнад прапором перенесення З і бітом (Anlі ORL), що прямо адресується, здійснюють пересилку значення між прапором З і бітом (MOV), що прямо адресується, здійснюють передачу управління за станом прапора З або біта, що прямо адресується (JC, JNC, JB, JNB, JBC).

 

 

Мнемоніка Опис Байт Тактів Дія
CLR С Очищення флага еренесення CLR
          (С)<-0  
CLR bit Очищення біта CLR
          (bit)4—0
SETB С Установка прапора перенесення SETB
          (С)<-1
SETB bit Установка біта SETB
          (bit)<-1
CPL С Інверсія прапора перенесення CPL
          (C)<- - (С)
CPL bit Інверсія біта CPL
          (bit)<- (bit)
ANL С,bit AND біта і флага перенесення ANL (C)<-(C) Л (bit)
ANL C,/bit ANDінверсіїбіта і флага ANL
    перенесення     (CMC) Л (bit)
ORL C.bit OR біта і флага перенесення ORL
          (CMC) V (bit)
ORL С,/bit OR інверсії біта і флага ORL
    перенесення     (CMC) V —.(bit)
MOV С,bit Пересилка біта в флага перенесення MOV (C)<-(bit)
MOV bit.C Пересилка флага перенесення в біт MOV
(bitMC)
JC rei Перехід, якщо флага JC
    перенесення встановлений     (PCM PC) + 2
          IF (C)=1
          THEN
          (PC)<-(PC)+ rel
JNC rel Перехід, якщо флага JNC
    перенесення встановлений     (PCM PC) + 2
          IF (C)=0
          THEN
          (PC)<-(PC)+ rel
JB bit, rel Перехід, якщо біт встановлений JB
(PCM PC) + 3
          IF (bit)=1
          THEN
          (PC)<-(PC)+ rel
JNB bit, rel Перехід, якщо біт не встановлений JNB
(PCMPC) + 3
          IF (bit)=0
          THEN (PC)<-(PC)+ rel
JBC bit, rel Перехід, якщо біт встановлений, і очищення цього біта JBC
(PCMPC) + 3
IF (bit)=1
          THEN (bit)<-0 (PCMPC)+ rel

 

Команди цієї групи, що виконують логічні операції і значення біта, що здійснюють пересилку, змінюють значення прапора З регістра PSW. Останні команди на прапори не діють.

Команди передачі управління. Передача управління може здійснюватися безумовно або по умові, без повернення або з поверненням. У останньому випадку для повернення необхідно зберігати стан процесора. Система команд Mcs-51 окрім звичайних «довгих» переходів з використанням 16-розрядної адреси успадкувала від сімейства Mcs-48 команди передачі управління з «короткою» 11-розрядною адресою.

Команди передачі управління мікроконтроллерів MCS-51

Мнемоніка Опис Байт Тактів Дія
ACALL addrl 1 Короткий перехід з ACALL
    поверненням.     (РС)<-(РС)+ 2
          (SP)<-(SP) + 1
          ((SP))<-(PC70)
          (SP)<-(SP) + 1
          ((SP))<-(PC,5-e)
          (PC10 0)«-page address
LCALL addrl6 Довгий перехід з LCALL
    поверненням     (PC)«-(PC)+ 3
          (SP)<-(SP) + 1
          ((SP))<-(PC70)
          (SP)<-(SP) + 1
          ((SP))<-(PC,5e)
          (PC^addr^o
RET   Повернення з RET
    підпрограми     (PC158)<-((SP))
          (SP)<-(SP)-1
          (PC70)<-((SP))
          (SP)<-(SP)-1
RETI   Повернення з RETI
    підпрограми переривання     (PC15e)<-((SP))
          (SP)<-(SP)-1
          (PC70)<-((SP))
          (SP)<-(SP)-1
AJMP addrl 1 Короткий перехід без AJMP
    повернення     (PC)«-(PC)+2
          (PC10 0)<-Pa9e address
LJMP addrl 6 Довгий перехід без LJMP
    повернення     (PC)<-addr150
SJMP rel Короткий перехід з 8 SJMP
    -розрядним зсувом     (PC)<-(PC)+2
          (PC)«-(PC)+rel
JMP ©A+DPTR Пересилка байта коди, пов'язаної з DPTR, в акумулятор JMP (PC)<-(A)+(DPTR)

 

 

Група команд передачі управління включає чотири команди безвусий ловного переходу без повернення («ультракоротка» Sjmp,«короткая» AJMP, «довга» Ljmpі перехід за значенням A+dptrв команді JMP), дві команди безумовного переходу з поверненням («коротка» Acallі «довга» LCALL), вісім команд умовного переходу без повернення. Є дві команди повернення: із звичайної підпрограми - команда Retі з підпрограми обробки переривання - команда RETI. Завершує цю групу і всю систему команд NOP- «немає операції».

Команди передачі управління значення прапорів в регістрі Pswне змінюють, окрім команд умовного переходу CJNE, що впливають на значення прапора С.


Читайте також:

  1. II. Організація і проведення спортивних походів
  2. II. Організація перевезень
  3. II. Організація перевезень
  4. А. Організація Острозького колегіуму – Академії
  5. Адміністративно-територіальна організація
  6. Бюджетний устрій в зарубіжних країнах. Організація бюджетного процесу
  7. Вентиляція. Види вентиляції. Організація повітрообміну в приміщеннях, повітряний баланс, кратність повітрообміну
  8. Взаємодія органів публічної влади з трудовими колективами, підприємствами, установами, організаціями
  9. Вибір оптимального розкладу (режиму) роботи в наукових організаціях.
  10. Види податкових перевірок. Організація і здійснення перевірок.
  11. Вимоги до захисту інформації та організація технічного захисту інформації
  12. Відносини України з міжнародними економічними організаціями




Переглядів: 1885

<== попередня сторінка | наступна сторінка ==>
 | Завдання вивчення психології у вищій технічній школі

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.026 сек.