Мікроконтролери MCS-51: програмна модель, структура, команди. Мікроконтролери сімейства mcs51 Mcs 51 узагальнена структурна схема

УДК 681.5, 681.325.5 (075.8)

ББК 32.973.202-018.2 я 73

Щербіна О. Н.Обчислювальні машини, системи та мережі. Мікроконтролери та мікропроцесори в системах управління: учеб. посібник/О.М. Щербіна, П.А. Нечаєв-СПб.: З-во Політехн. ун-ту, 2012.-226 с.

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

Розглянуто фундаментальні питання логічної організації мікропроцесорних системз прикладу базової архітектури мікроконтролерного сімейства MCS-51 фірми Intel. Описано технологію програмування мікроконтролерів мовами Асемблер та СІ.

Може бути корисним для студентів та викладачів вищих технічних закладів, спеціалістів з автоматизації технологічних процесів та виробничого обладнання, а також для інженерів-проектувальників мікропроцесорних систем.

Також відповідає змісту державного освітнього стандарту дисциплін «Мікроконтролери та мікропроцесори в системах управління» та « Електронні пристроїавтоматики» бакалаврської, інженерної та магістерської підготовки за напрямом 140400 «Електроенергетика та електротехніка».

Друкується за рішенням редакційно-видавничої ради

Санкт-Петербурзького державного політехнічного університету.

© Щербина А. Н., Нечаєв П. А., 2012

© Санкт-Петербурзький державний

політехнічний університет, 2012

ISBN 978-5-7422-3553-8


Вступ.. 7

Розділ 1. Архітектура сімейства MCS51. 10

1.1 загальні характеристики 10

1.2 Структурна схема 11



1.3 Призначення висновків мікроконтролера 8051 15

1.4 Організація пам'яті 17

1.4.1 Пам'ять програм (ПЗП) 18

1.4.2 Пам'ять даних (ОЗП) 19

1.4.3 Реєстри спеціальних функцій. 20

1.4.4 Реєстр прапорів (PSW) 23

1.5 Пристрій керування та синхронізації 26

1.6 Організація портів введення-виведення 27

1.6.1 Загальні відомості. 27

1.6.2 Альтернативні функції. 27

1.7. Таймери / лічильники мікроконтролерів сімейства 8051. 28

1.7.1. Структура таймерів-лічильників. 28

1.7.2 Режими роботи таймерів-лічильників. 30

1.8. Послідовний порт 32

1.8.1. Структура послідовного порту. 32

1.8.2. Регістр керування/статусу приймача SCON.. 34

1.8.3. Реєстр керування потужністю PCON.. 36

1.9. Система переривань 37

1.9.1. Структура системи переривань. 37

1.9.2 Виконання підпрограми переривання. 40

Глава 2. Особливості мікроконтролера 80C51GB.

2.1 Функціональні особливості 42

2.2 Порти I/O P0-P5 43

2.2.1 Функціонування портів вводу-виводу. 43

2.2.2 Запис у порт.

2.3 Особливості системи переривань 8XC51GB.

Дозвіл/заборона переривань. 50

Управління пріоритетами переривань. 51

Зовнішні переривання. 54

2.3. Вузол АЦП 56

2.4. Апаратний сторожовий таймер 61

2.5. Виявлення збою тактового генератора 63

2.6. Матриця програмованих лічильників РСА 64

2.6.1. Структура PCA.. 64

2.6.2. Регістр режиму лічильника РСА (CMOD) 66

2.6.3. Регістр управління лічильника РСА (CON) 67

2.6.4. Модулі порівняння/фіксації. 68

2.7. Розширений послідовний порт 76

2.8. Таймери/лічильники 79

Розміщення висновків мікроконтролерів групи 8XC51GB.

Розділ 3. Програмування MK 8051GB.

3.1. Програмна модель 89

3.2 Типи даних 93

3.3 Способи адресації даних 93

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

3.4.1. Загальна характеристика. 95

3.4.2 Типи команд. 96

3.4.3 Типи операндів. 97

3.4.4 Команди пересилання даних мікроконтролера. 98

3.4.5 Команди арифметичних операцій 8051. 101

3.4.6 Команди логічних операцій мікроконтролера 8051. 104

3.4.7 Команди операцій над бітами мікроконтролера 8051. 106

3.5 Налагодження програм 111

Розділ 4. Мова програмування ASM-51. 112

4.2 Запис тексту програми 113

4.3. Алфавіт мови. 114

4.4 Ідентифікатори. 115

4.5 Числа 117

4.6 Директиви 118

4.7 Реалізація підпрограм мовою ASM51 122

4.7.1 Структура підпрограми-процедури ASM51. 122

4.7.2 Передача змінних параметрів у підпрограму. 123

4.7.3 Реалізація підпрограм-функцій мовою ASM51. 123

4.7.4 Реалізація підпрограм обробки переривань мовою ASM51. 124

4.8 Структурне програмування мовою асемблера. 125

4.9 Особливості трансляції багатомодульних програм. 126

4.10 Використання сегментів 128

4.10.1 Розбиття пам'яті МК на сегменти. 128

4.10.2. Абсолютні сегменти пам'яті. 129

4.10.2 Сегменти пам'яті, що переміщуються. 131

Глава 5. Мова програмування С-51. 134

5.1 Загальна характеристика мови 134

5.3 Структура програм С-51 136

5.3. Елементи мови програмування С-51 138

5.3.1. Символи.. 138

5.3.2. Лексичні одиниці, роздільники та використання прогалин. 141

5.3.3 Ідентифікатори.. 142

5.3.4 Ключові слова. 143

5.3.5 Константи.. 143

5.4. Вирази в операторах мови 146

програмування C-51 146

5.5. Пріоритети виконання операцій 148

5.6. Оператори мови програмування C-51 149

5.6.1. Оператори оголошення. 150

5.6.2 Оператори, що виконуються. 150

5.6.3 Оператор присвоєння. 151

5.6.4 Умовний оператор. 151

5.6.5 Структурний оператор (). 152

5.6.6 Оператор циклу for. 152

5.6.7 Оператор циклу з перевіркою умови до тіла циклу while. 153

5.6.8 Оператор циклу із перевіркою умови після тіла циклу do while. 154

5.6.9. Оператор break. 155

5.6.10 Оператор continue. 155

5.6.11 Оператор вибору switch. 155

5.6.12 Оператор безперечного переходу goto. 157

5.6.13 Оператор виразу. 158

5.6.14 Оператор повернення із підпрограми return. 158

5.6.15 Порожній оператор. 158

5.7. Оголошення змінних мовою програмування C-51. 159

5.7.1. Оголошення змінної. 159

5.7.3 Цілі типи даних. 161

5.7.4 Числа з плаваючою комою. 162

5.7.5 Змінні типи, що перераховуються. 162

5.7.6. Оголошення масивів у мові програмування C-51. 164

5.7.7. Структури.. 165

5.7.8. Об'єднання (суміші) 166

5.8. Використання покажчиків у мові C-51 167

5.8.1. Оголошення покажчиків. 167

5.8.2. Нетипізовані покажчики. 168

5.8.3. Пам'ять залежних покажчиків. 169

5.9. Оголошення нових типів змінних 169

5.10. Ініціалізація даних 170

5.11. Використання підпрограм у мові програмування С-51. 170

5.11.1. Визначення підпрограм.. 171

5.11.2. Параметри підпрограм.. 173

5.11.3. Попереднє оголошення підпрограм.. 174

5.11.4 Виклик підпрограм.. 176

5.11.5 Рекурсивний виклик підпрограм. 176

5.11.6 Підпрограми обробки переривань. 177

5.11.7 Області дії змінних та підпрограм. 178

5.12. Багатомодульні програми 179

Глава 6. Підготовка програм у інтегрованому середовищі розробки Keil μVision2. 182

6.1 Створення проекту мовою ASM-51 182

6.2 Приклад створення проекту мовою C для навчального контролера в інтегрованому середовищі розробки Keil μVision2 188

Глава 7. Опис навчального контролера. 199

7.1. Структура контролера 199

7.2. Адресний простір 200

7.2.1. Розподіл пам'яті. 200

7.2.2 Зовнішня пам'ять. 201

7.2.3. Внутрішня пам'ять даних. 202

7.3. Розподіл портів введення-виведення 202

7.4. Послідовний порт………………………………...203

7.5. Робота з РКІ 205

7.6. Панелі контролера…………………………………………………213

ДОДАТОК П2СТРУКТУРА ЗВІТУ ПРО ЛАБРОРАТОРНУ РОБОТУ……..217

Додаток П3 Коди машинних команд. 217

Список литературы... 224


Вступ

У освоєнні спеціальностей, пов'язаних з автоматизацією технологічних процесів та виробництв, вивчення мікроконтролерів є одним із важливих розділів.

У світі відбувається безперервний розвиток і поява нових і нових 16- і 32-розрядних мікроконтролерів і мікропроцесорів, але найбільша частка світового мікропроцесорного ринку і досі залишається за 8-розрядними пристроями. За всіма прогнозами аналітичних компаній на найближчий час лідируюче положення 8-розрядних мікроконтролерів на світовому ринку збережеться.

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

Переваги сімейства MCS-51:

· архітектура, що є стандартом де-факто;

· Надзвичайна широта сімейства та різноманітність можливостей;

· Наявність високопродуктивних та розширених версій процесорів;

· Значна кількість вільно доступних програмних та апаратурних напрацювань;

· Легкість апаратного програмування, в т. ч. і внутрішньосхемного;

· Дешевизна та доступність базових чіпів;

· Наявність спеціалізованих версій контролерів для особливих умов застосування

· Наявність версій контролерів зі зниженим рівнем електромагнітних перешкод;

· Широка популярність серед розробників старшого покоління, як у світі, так і в країнах СНД;

· Підтримка архітектури провідними навчальними закладами світу.

І, нарешті, головна перевага: освоївши базовий чіп сімейства, легко почати працювати з такими обчислювальними монстрами, як мікроконтролери Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments.

До складу сімейства MCS-51 входить цілий рядмікросхем від самих простих мікроконтролерівдо досить складних. На сьогоднішній день існує понад 200 модифікацій мікроконтролерів сімейства 8051, що випускаються майже 20-ма компаніями. Щороку з'являються нові варіанти представників цього сімейства.

Основними напрямками розвитку є:

· Збільшення швидкодії (підвищення тактової частотита переробка архітектури);

· Зниження напруги живлення та енергоспоживання;

· Збільшення обсягу ОЗУ та FLASH пам'ятіна кристалі із можливістю внутрішньосхемного програмування;

· введення до складу периферії мікроконтролера складних пристроїв типу системи керування приводами, CAN та USB інтерфейсіві т.п.

Мікроконтролери сімейства MCS-51 дозволяють виконувати як завдання керування різними пристроями, і реалізовувати окремі вузли аналогової схеми. Всі мікросхеми цього сімейства працюють з однією системою команд. Більшість з них виконується в однакових корпусах з цоколівкою, що збігається (нумерація ніжок для корпусу). Це дозволяє використовувати для розробленого пристрою мікросхеми різних фірм - виробників без переробки принципової схемипристрої та програми.

Основними виробниками різновидів 51-го сімейства у світі є фірми Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems та інші.

Характеристики аналогів мікроконтролерів сімейства MCS-51 (Intel 8XC51FA, 8XC51GB, 80С152) з розширеними можливостями наведені у табл. В 1.

Таблиця В.1

ОЗУ ПЗУ РСА АЦП WDT T/C Слід. Канали Особливості
Atmel: AT89C2051
- - - - UART Flash 2 Кб
AT89C4051 - - - - UART Flash 4 Кб
AT89S4D12 128K - - - UART, SPI Flash 4 Кб
DALLAS Semiconductor: DS5000FP
- - - + UART Bootstrap loader
DS5001FP - - - + UART Bootstrap loader
DS8xC520 16K - - + 2xUART 2 DPTR
SIEMENS: C505C
16K - + + UART, CAN 8 DPTR
C515C 64K - + + UART+ SSC+CAN 4 ШІМ, 8 DPTR
Philips: *89C51RA+
- + - + UART 2 DPTR, 4 ур. перер., clock out, Flash 8K
P51XAG1x 8K - - + 2 UART
Intel: 8xC51RA
8K - + + UART 4 рівні IRQ, clock out
8XC196KC 64K 16K - + - UART 3 ШИМ
80C196KB 64K 8K - + - UART ШИМ

Розділ 1. Архітектура сімейства MCS51

8-розрядні однокристальні мікроконтролери сімейства MCS-51 набули великої популярності у розробників мікропроцесорних систем контролю завдяки вдало спроектованій архітектурі. Архітектура мікроконтролера – це сукупність внутрішніх та зовнішніх програмно-доступних апаратних ресурсів та системи команд. Архітектура сімейства MCS-51 значною мірою визначається її призначенням - побудова компактних та дешевих цифрових пристроїв. Мікроконтролери, що виконують всі функції мікроЕОМ за допомогою єдиної мікросхеми, отримали назву однокристальних ЕОМ (ОЕОМ).

Фірма Intel випустила близько 50 моделей на базі операційного ядра мікроконтролера Intel 8051. Одночасно багато інших фірм, таких як Atmel, Philips, розпочали виробництво своїх мікроконтролерів, розроблених у стандарті MCS-51.

загальні характеристики

Основні характеристики сімейства:

· 8-розрядний центральний процесор(ЦП), орієнтований управління виконавчими пристроями;

· ЦП має вбудовану схему 8-розрядного апаратного множення та поділу чисел;

· Наявність у наборі команд великої кількості операцій для роботи з прямоадресованими бітами дає можливість говорити про процесор для роботи з бітовими даними (бульовий процесор);

· Внутрішня (розташована на кристалі) пам'ять програм масочного або репрограмованого типу, що має для різних кристалів об'єм від 4 до 32 Кб, в деяких версіях вона відсутня;

· Не менш ніж 128 байтне резидентне ОЗУ даних, яке використовується для організації, регістрових банків, стеку та зберігання даних;

· Не менше 32-х двонаправлених інтерфейсних ліній (портів), що індивідуально налаштовуються на введення або виведення інформації;

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

· Двонаправлений дуплексний асинхронний приймач (UART), призначений для організації каналів зв'язку між мікроконтролером і зовнішніми пристроямиіз широким діапазоном швидкостей передачі інформації. Є засоби для апаратно-програмного об'єднання мікроконтролерів у пов'язану систему;

· дворівнева пріоритетна система переривань, що підтримує щонайменше 5 векторів переривань від 4-х внутрішніх та 2-х зовнішніх джерел подій;

· Вбудований тактовий генератор.

Структурна схема

Структурна схема контролера представлена ​​на рис.1.1 і складається з наступних основних функціональних вузлів: блоку управління, арифметико-логічного пристрою, блоку таймерів/лічильників, блоку послідовного інтерфейсу та переривань, програмного лічильника, пам'яті даних та пам'яті програм. Двосторонній обмін здійснюється за допомогою внутрішньої 8-розрядної магістралі даних. За такою схемою збудовано практично всі представники сімейства MCS-51. Різні мікросхеми цього сімейства відрізняються лише регістрами спеціального призначення (зокрема і кількістю портів).

Блок керування та синхронізації (Timing and Control)- призначений для вироблення синхронізуючих та керуючих сигналів, що забезпечують координацію спільної праціблоків ОЕОМ у всіх допустимих режимах її роботи До складу блоку управління входять:

будову формування часових інтервалів;

логіка введення-виведення;

регістр команд;

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

дешифратор команд, логіка управління ЕОМ.

Мал. 1.1. Структурна схема контролера I8051.

Пристрій формування часових інтервалівпризначено для формування та видачі внутрішніх синхросигналів фаз, тактів та циклів. Кількість машинних циклів визначає тривалість виконання команд. Практично всі команди ОЕОМ виконуються за один або два машинні цикли, крім команд множення та поділу, тривалість виконання яких становить чотири машинні цикли. Позначимо частоту генератора, що задає через F р. Тривалість машинного циклу дорівнює 12/F г або становить 12 періодів сигналу генератора, що задає. Логіка введення - виводу призначена для прийому та видачі сигналів, що забезпечують обмін інформацією із зовнішніми пристроями через порти введення виведення Р0-Р3.

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

Реєстр управління споживанням (PCON)дозволяє зупиняти роботу мікроконтролера для зменшення споживання електроенергії та зменшення рівня перешкод від мікроконтролера. Ще більшого зменшення споживання електроенергії і зменшення перешкод можна досягти, зупинивши генератор мікроконтролера, що задає. Цього можна досягти за допомогою перемикання біт регістру керування споживанням PCON. Для варіанта виготовлення за технологією n-МОП (серія 1816 або іноземних мікросхем, у назві яких у середині відсутня буква "c") регістр керування споживанням PCON містить тільки один біт, що керує швидкістю передачі послідовного порту SMOD, а біти керування споживанням електроенергією відсутні.

Арифметико-логічний пристрій (ALU)являє собою паралельний восьмирозрядний пристрій, що забезпечує виконання арифметичних та логічних операцій. АЛУ складається з:

регістрів акумулятора, регістрів тимчасового зберігання TMP1 та TMP2;

ПЗП констант;

суматора;

додаткового регістру (реєстру);

акумулятора (ACC);

регістру стану програм (PSW).

Реєстр акумулятор та регістри тимчасового зберігання- восьмирозрядні регістри, призначені для прийому та зберігання операндів на час виконання операцій над ними. Ці регістри програмно недоступні.

ПЗУ константзабезпечує вироблення коригуючого коду при подвійно-десятковому поданні даних, коду маски при бітових операціях та коду констант.

Паралельний восьмирозрядний суматорявляє собою схему комбінаційного типу з послідовним переносом, призначену для виконання арифметичних операцій складання, віднімання та логічних операцій складання, множення, нерівнозначності та тотожності.

Реєстр B- восьмирозрядний регістр, який використовується під час операцій множення та поділу. Для інших інструкцій може розглядатися як додатковий надоперативний регістр.

Акумулятор- восьмирозрядний регістр, призначений для прийому та зберігання результату, отриманого при виконанні арифметико-логічних операцій або операцій зсуву

Блок послідовного інтерфейсу та переривань (ПІП)призначений для організації введення - виведення послідовних потоків інформації та організації системи переривання програм. До складу блоку входять:

буфер ПІП;

логіка керування;

регістр управління;

буфер передавача;

буфер приймача;

приймач послідовного порту;

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

регістр дозволу переривань;

логіка обробки прапорів переривань та схема вироблення вектора.

Лічильник команд (Program Counter)призначений для формування поточної 16-розрядної адреси внутрішньої пам'ятіпрограм та 8/16-розрядної адреси зовнішньої пам'ятіпрограм. До складу лічильника команд входять 16-розрядні буфер РС, регістр РС та схема інкременту (збільшення вмісту на 1).

Пам'ять даних (RAM)призначена для тимчасового зберігання інформації, що використовується у процесі виконання програми.

Порти P0, P1, P2, P3є квазидвунаправленными портами введення - виведення та призначені для забезпечення обміну інформацією ОЕОМ із зовнішніми пристроями, утворюючи 32 лінії введення-виведення.

Регістр стану програми (PSW)призначений для зберігання інформації про стан АЛП під час виконання програми.

Пам'ять програм (EPROM)призначена для зберігання програм і являє собою постійний пристрій (ПЗУ). У різних мікросхемах застосовуються маскові, що стираються ультрафіолетовим випромінюванням або FLASH ПЗУ.

Реєстр покажчика даних (DPTR)призначений для зберігання 16-розрядної адреси зовнішньої пам'яті даних.

Покажчик стека (SP)є восьмирозрядний регістр, призначений для організації особливої ​​області пам'яті даних (стека), в якій можна тимчасово зберегти будь-яку комірку пам'яті.

1.3 Призначення висновків мікроконтролера 8051(Рис. 1.2)

· U ss - потенціал загального дроту ("землі");

· U cc - основна напруга живлення +5 В;

· X1, X2 – висновки для підключення кварцового резонатора;

· RST - вхід загального скидання мікроконтролера;

· PSEN - дозвіл зовнішньої пам'яті програм, що видається тільки при зверненні до зовнішнього ПЗУ;

· ALE – строб адреси зовнішньої пам'яті;

· ЕА - відключення внутрішньої програмної пам'яті; рівень 0 на цьому вході змушує мікроконтролер виконувати програму тільки із зовнішнього ПЗП; ігноруючи внутрішнє (якщо останнє є);

Мал. 1.2. Призначення висновків 8051.

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

· P2 - восьмибітний квазідвунаправлений порт, аналогічний Р1, висновки цього порту використовуються для видачі адресної інформації при зверненні до зовнішньої пам'яті програм або даних (якщо використовується 16-бітова адресація останньої). Крім того, висновки порту використовуються при програмуванні для введення в мікроконтролер старших розрядів адреси;

· РЗ - восьмибітний квазідвунаправлений порт, аналогічний Р1, висновки цього порту можуть виконувати ряд альтернативних функцій, які використовуються при роботі таймерів, порту послідовного введення-виведення, контролера переривань, та зовнішньої пам'яті програм та даних;

· P0 - мультиплексований восьмибітний двонаправлений порт введення-виведення інформації, через цей порт у різні моменти часу виводяться молодший байт адреси та дані.

Організація пам'яті

Вся серія MCS-51 має гарвардську архітектуру, тобто окремі адресні місця пам'яті програм і даних. Структура пам'яті зображено на рис. 1.3.

Об'єм внутрішньої (резидентної) пам'яті програм (ROM, EPROM або OTP ROM), що розташовується на кристалі, залежно від типу мікросхеми може становити 0 (ROMless), 4К (базовий кристал), 8К, 16К або 32К. За потреби користувач може розширювати пам'ять програм встановленням зовнішнього ПЗП. Доступ до внутрішнього чи зовнішнього ПЗП визначається значенням сигналу на виведенні ЕА (External Access):

EA = V cc (напруга живлення) - доступ до внутрішнього ПЗП;

EA = V ss (потенціал землі) – доступ до зовнішнього ПЗУ.

Для кристалів без ПЗП(ROMless) висновок ЕА повинен бути постійно підключений до V ss.

Мал. 1.3. Організація пам'яті сімейства MCS-51

Строб читання зовнішнього ПЗП - (Program Store Enable) генерується при зверненні до зовнішньої пам'яті програм і є неактивним під час звернення до ПЗП, розташованого на кристалі. Область нижніх адрес пам'яті програм використовується системою переривань. Архітектура базової мікросхеми 8051 забезпечує підтримку п'яти джерел переривань:

· двох зовнішніх переривань;

· двох переривань від таймерів;

· Переривання від послідовного порту.

На рис. 1.4 зображено карту нижньої області програмної пам'яті.

Мал. 1.4. Карта нижньої області програмної пам'яті

Пам'ять програм (ПЗП)

У мікроконтролерів сімейства 8051, пам'ять програм і пам'ять даних є самостійними та незалежними один від одного пристроями, адресованими різними командами та сигналами, що управляють.

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

Пам'ять даних (ОЗП)

Об'єм розташованої на кристалі пам'яті даних – 128 байт. Об'єм зовнішньої пам'яті даних може досягати 64 Кбайт. Перші 32 байти організовані в чотири банки регістрів загального призначення, Що позначаються відповідно банк 0 - банк 3. Кожен з них складається з восьми регістрів R0-R7. У будь-який момент програмі доступний при реєстровій адресації тільки один банк регістрів, номер якого міститься в третьому і четвертому бітах слова стану програми PSW.

Адреси бітової області пам'яті мікроконтролера 8051

Таблиця 1.1

Адреса байта (Hex) Адреси бітів за розрядами
D7 D6 D5 D4 D3 D2 D1 D0
2F 7F 7E 7D 7C 7B 7A
2E
2D 6F 6E 6D 6C 6B 6A
2C
2B 5F 5E 5D 5C 5B 5A
2A
4F 4E 4D 4C 4B 4A
3F 3E 3D 3C 3B 3A
2F 2E 2D 2C 2B 2A
1F 1E 1D 1C 1B 1A
0F 0E 0D 0C 0B 0A
20h

адресний простір, що залишився, може конфігуруватися розробником на свій розсуд: в ньому можна розмістити стек, системні та користувацькі області даних. Звернення до осередків пам'яті даних можливе двома способами. Перший спосіб – пряма адресація осередку пам'яті. У цьому випадку адреса осередку є операндом відповідної команди. Другий спосіб - непряма адресація за допомогою регістрів-покажчиків R0 або R1: перед виконанням відповідної команди в один з них має бути занесена адреса осередку, до якого необхідно звернутися.

Для звернення до зовнішньої пам'яті даних використовується лише непряма адресація за допомогою регістрів R0 і R1 або 16-розрядного регістра-покажчика DPTR.

Частина пам'яті даних є бітову область, в ній є можливість за допомогою спеціальних бітових команд адресуватися до кожного розряду осередків пам'яті. Адреса прямо адресованих бітів може бути записаний також у вигляді (АдресБайту). (Розряд). Відповідність цих двох способів адресації можна визначити за таблицею. 1.1.

Архітектура сімейства MCS-51 значною мірою визначається її призначенням - побудова компактнихі дешевихцифрові пристрої. Усі функції мікроЕОМ реалізуються з допомогою єдиної мікросхеми. До складу сімейства MCS-51 входить ціла низка мікросхем від найпростіших мікроконтролерів до досить складних. Мікроконтролери сімейства MCS-51 дозволяють виконувати завдання управління різними пристроями, так і реалізовувати окремі вузли аналогової схеми. Усі мікросхеми цього сімейства працюють з однією і тією ж системою команд, більшість з них виконується в однакових корпусах з цоколівкою, що збігається(Нумерація ніжок для корпусу). Це дозволяє використовувати для розробленого пристрою мікросхеми різних фірм-виробників (таких як Intel, Dallas, Atmel, Philips тощо) без переробки принципової схеми пристрою та програми.

Малюнок 1. Структурна схема контролера К1830ВЕ751

Структурна схема контролера представлена ​​малюнку 1. і складається з наступних основних функціональних вузлів: блоку управління, арифметико-логічного пристрою, блоку таймерів/лічильників, блоку послідовного інтерфейсу і переривань, програмного лічильника, пам'яті даних і програм. Двосторонній обмін здійснюється за допомогою внутрішньої 8-розрядної магістралі даних. Розглянемо докладніше призначення кожного блоку. За такою схемою збудовано практично всі представники сімейства MCS-51. Різні мікросхеми цього сімейства відрізняються лише регістрами спеціального призначення (зокрема і кількістю портів). Система команд всіх контролерівсімейства MCS-51 містить 111 базових командз форматом 1, 2 або 3 байти і не змінюється під час переходу від однієї мікросхеми до іншої. Це забезпечує чудову переносимість програм із однієї мікросхеми на іншу.

Блок управління та синхронізації

Блок управління та синхронізації (Timing and Control) призначений для вироблення синхронізуючих та керуючих сигналів, що забезпечують координацію спільної роботи блоків ОЕОМ у всіх допустимих режимах її роботи. До складу блоку управління входять:

  • пристрій формування часових інтервалів,
  • логіка введення-виведення,
  • регістр команд,
  • регістр управління споживанням електроенергії,
  • дешифратор команд, логіка управління ЕОМ.

Пристрій формування часових інтервалівпризначено для формування та видачі внутрішніх синхросигналів фаз, тактів та циклів. Кількість машинних циклів визначає тривалість виконання команд. Практично всі команди ОЕОМ виконуються за один або два машинні цикли, крім команд множення та поділу, тривалість виконання яких становить чотири машинні цикли. Позначимо частоту генератора, що задає через F р. Тоді тривалість машинного циклу дорівнює 12/F г або становить 12 періодів сигналу генератора, що задає. Логіка введення - виводу призначена для прийому та видачі сигналів, що забезпечують обмін інформацією із зовнішніми пристроями через порти введення виведення Р0-Р3.

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

Реєстр керування споживанням (PCON) дозволяє зупиняти роботу мікроконтролера для зменшення споживання електроенергії та зменшення рівня перешкод від мікроконтролера. Ще більшого зменшення споживання електроенергії і зменшення перешкод можна досягти, зупинивши генератор мікроконтролера, що задає. Цього можна досягти за допомогою перемикання біт регістру керування споживанням PCON. Для варіанта виготовлення за технологією n-МОП (серія 1816 або іноземних мікросхем, у назві яких у середині відсутня буква "c") регістр керування споживанням PCON містить тільки один біт, що керує швидкістю передачі послідовного порту SMOD, а біти керування споживанням електроенергією відсутні.

Разом із статтею "Архітектура мікроконтролерів MCS-51" читають:


http://сайт/MCS51/tablms.php


http://сайт/MCS51/SysInstr.php


http://сайт/MCS51/port.php

Основою мікроконтролера (див. рис. 1) є 8-ми бітовий Арифметично-Логічний пристрій (АЛУ). Пам'ять МК має Гарвардську архітектуру, тобто. логічно розділена: на пам'ять програм – ПП (внутрішню або зовнішню), адресовану 16-ти бітовим лічильником команд (СК) та пам'ять даних – внутрішню (Резидентна пам'ять даних – РПД) 128 (або 256) байт, а також зовнішню (Зовнішня пам'ять даних) - ВПД) до 64 Кбайт. Фізично пам'ять програм реалізована на ПЗП (доступна лише з читання), а пам'ять даних – на ОЗУ (можливий запис та читання даних).

Прийом та видача зовнішніх сигналів здійснюється через 4 восьмибітові порти Р0..Р3. При зверненні до зовнішньої пам'яті програм (ЗПС) чи пам'яті даних (ВПД) порти Р0 і Р2 використовуються як мультиплексована зовнішня шина Адреса/Дані. Лінії порту Р3 можуть виконувати альтернативні функції (див. табл. 1).

16-бітовий регістр DPTR формує адресу ВПД або базову адресу Пам'яті програм у команді перетворення Акумулятора. Регістр DPTR може також використовуватися як два незалежні 8-мі бітові регістри (DPL і DPH) для зберігання операндів.

8-ми бітовий внутрішній регістр команд (РК) приймає код виконуваної команди; цей код дешифрується схемою управління, яка генерує сигнали, що управляють (див. рис. 1).

Звернення до регістрів спеціальних функцій - РРФ (SFR - на рис. 1 вони обведені пунктирною лінією) можливо тільки з використанням прямої байтової адресації в діапазоні адрес від 128 (80h) і більше.


Резидентна пам'ять даних (РПД) у перших моделях мікроконтролерів сімейства MCS-51 мала обсяг 128 байт. Молодші 32 байти РПД є одночасно і регістрами загального призначення – РОН (4 банки по 8 РОНів). Програма може звернутися до одного з 8-ми РОНів активного банку. Вибір активного банку РОНів здійснюється програмуванням двох біт у регістрі стану процесора – PSW.


Таблиця 1 - Призначення висновків MCS-51

№ вив. Позначення Призначення
1..8 Р1 8-ми бітовий квазідвунаправлений порт вводу/виводу
9 RST

Сигнал скидання (активний рівень – високий);

Сигнал RST обнулює: PC та більшість Реєстрів Спеціальних Функцій (SFR), забороняючи всі переривання та роботу таймерів; вибирає Банк РОНів 0; записує в порти Р0_Р3 "всі одиниці", готуючи їх на введення; записує код 07H в покажчик стека (SP);

10..17

8-ми бітовий квазідвунаправлений порт вводу/виводу; після запису у відповідний розряд "1" – виконує додаткові (альтернативні) функції:

Вхід послідовного порту – RxD;

Вихід послідовного порту – TxD;

Вхід зовнішнього переривання 0 - ~ INT0;

Вхід зовнішнього переривання 1 - INT1;

Вхід таймера/лічильника 0 – Т0;

Вхід таймера/лічильника 1 – Т1;

Вихід строб. сигналу під час запису у ВПД – ~ WR;

Вихід строб. сигналу під час читання з ВПД – ~ RD;

18, 19 X1, X2 Висновки для підключення кварцового резонатора або LC-контуру;
20 GND Загальний висновок;
21..28 P2 8-ми бітовий квазідвунаправлений порт введення/виводу; або вихід адреси A в режимі роботи із зовнішньою пам'яттю (ЗПС або ВПД);
29 PME Строб читання Зовнішньої Пам'яті Програм, видається тільки при зверненні до зовнішнього ПЗУ;
30 ALE Строб адреси Зовнішньої пам'яті (ЗПС або ВПД);
31 ЕА Відключення РПП, рівень "0" на цьому вході перекладає МК на вибірку команд тільки з ЗПС ;
39..32 Р0 8-ми бітовий двонаправлений порт введення/виведення; при зверненні до Зовнішньої Пам'яті видає адреси A (які записуються у зовнішній регістр за сигналом ALE), а потім обмінюється байтом синхронно із сигналом ~PME (для команд) або ~WR,~RD (для даних у ВПД), при зверненні до Зовнішньої Пам'яті у регістр порту Р0 записуються всі одиниці, руйнуючи інформацію, що зберігається там;
40 Ucc Виведення напруги живлення

Переключення банків РОНів спрощує виконання підпрограм та обробку переривань, т.к. не потрібно пересилати в стек вміст РОНів основної програми при виклику підпрограми (достатньо у підпрограмі перейти до іншого активного банку РОНів).

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

Розширена область РПД (у мікроконтролерів сімейства MCS-52 та наступних сімейств) з адреси 128 (80h) до 255 (FFh) може адресуватися лише з використанням непрямого методу адресації.

Таблиця 2 – Блок Реєстрів Спеціальних Функцій (s f r)

Менімо-код Найменування
0E0h * ACC Акумулятор
0F0h * B Регістр розширювач акумулятора
0D0h * PSW Слово стану процесора
0B0h * P3 Порт 3
0A0h * P2 Порт 2
90h * P1 Порт 1
80h * P0 Порт 0
0B8h * IP Реєстр пріоритетів переривань
0A8h * IE Регістр маски переривань
99h SBUF Буфер послідовного приймача-передавача
98h * SCON Регістр управління/статусу послідовного порту
89h TMOD Реєстр режимів таймерів/лічильників
88h * TCON Регістр управління/статусу таймерів/лічильників
8Dh TH1 Таймер 1 (старший байт)
8Bh TL1 Таймер 1 (молодший байт)
8Ch TH0 Таймер 0 (старший байт)
8Ah TL0 Таймер 0 (молодший байт)
83h DPH Реєстр-покажчик даних (DPTR) (старший байт)
82h DPL Реєстр-покажчик даних (DPTR) (молодший байт)
81h SP Реєстр-покажчик стека
87h PCON Реєстр управління потужністю споживання

2. ПРОГРАМНА МОДЕЛЬ MCS–51


ТИПИ КОМАНД MCS-51

Майже половина команд виконується за один машинний цикл (МЦ). При частоті кварцового генератора 12 МГц час виконання такої команди – 1 мкс. Інші команди виконуються за 2 машинних цикли, тобто. за 2мкс. Тільки команди множення (MUL) та поділу (DIV) виконуються за 4 машинні цикли.

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

3. МЕТОДИ (СПОСОБИ) АДРЕСАЦІЇ MCS–51

1. РЕЄСТРУВА АДРЕСАЦІЯ - 8-ми бітовий операнд знаходиться в РОНЕ обраного (активного) банку регістрів;

2 НЕПОСЕРЕДНЯ АДРЕСАЦІЯ (позначається знаком - #) - операнд знаходиться в другому (а для 16-ти бітового операнда і в третьому) байт команди;

3 НЕДІЛЬНА АДРЕСАЦІЯ (позначається знаком – @) – операнд знаходиться в Пам'яті Даних (РПД або ВПД), а адреса осередку пам'яті міститься в одному з РОНів непрямої адресації (R0 або R1); в командах PUSH і POP адреса міститься в покажчику стека SP; регістр DPTR може містити адресу ВПД обсягом до 64К;

4 ПРЯМА БАЙТОВА АДРЕСАЦІЯ – (dir) – використовується для звернення до осередків РПД (адреси 00h…7Fh) та до регістрів спеціальних функцій SFR (адреси 80h…0FFh);

5 ПРЯМА БИТОВА АДРЕСАЦІЯ - (bit) - використовується для звернення до 128 біт, що окремо адресуються, розташованим в осередках РПД за адресами 20H ... 2FH і до окремо адресованим бітів регістрів спеціальних функцій (див. табл. 3 і програмну модель);

6 НЕДІЛЬНА ІНДЕКСНА АДРЕСАЦІЯ (позначається знаком – @)– спрощує перегляд таблиць у Пам'яті Програм, адреса ПП визначається за сумою базового регістру (PC або DPTR) та індексного регістру (Акумулятора);

7 НЕЯВНА (ВБУДОВА) АДРЕСАЦІЯ – в коді команди міститься неявна (за замовчуванням) вказівка ​​на один з операндів (найчастіше на Акумулятор).

4. ФОРМАТ СЛОВА СТАНУ ПРОЦЕСОРУ (PSW)

C - прапор перенесення (CARY) або позики, виконує також функції "бульового акумулятора" в командах, що оперують з бітами;

AC - прапор допоміжного (додаткового) перенесення - встановлюється в "1", якщо в команді додавання (ADD, ADDC) було перенесення з молодшого зошита в старшу (тобто з 3-го біта в 4-й біт);

F0 – прапор користувача – встановлюється, скидається та перевіряється програмно;

RS1 RS0 Банк Адреса (dir)
0 0 0 00h..07h
0 1 1 08h..0Fh
1 0 2 10h..17h
1 1 3 18h..1Fh

RS1,RS0 - Вибір банку регістрів:

OV – Прапор арифметичного переповнення; його значення визначається операцією "Виключає АБО" сигналів вхідного та вихідного переносів старшого розряду АЛУ; одиничне значення цього прапора вказує на те, що результат арифметичної операції у додатковому коді вийшов за допустимі межі: –128…+127; під час виконання операції розподілу прапор OV скидається, а разі розподілу на нуль – встановлюється; при множенні прапор OV встановлюється якщо результат більше 255 (0FFH);

Розряд PSW - Резервний, містить тригер, доступний за записом або читанням;

P – прапор паритету – є доповненням кількості одиничних бітів в акумуляторі до парного; формується комбінаційною схемою (програмно доступний тільки за читанням).

У мікроконтролерах MCS-51 відсутній прапор "Z". Але в командах умовного переходу (JZ, JNZ) перевіряється комбінаційною схемою поточний (нульовий або ненульовий) вміст акумулятора.

Усі команди пересилок та обміну операндів можуть здійснюватись через Акумулятор (див. рис. 3). Причому пересилання з/в Зовнішньої Пам'яті (Пам'яті Програм або Пам'яті Даних) можуть здійснюватись лише через Акумулятор.

Більшість пересилок можуть здійснюватися також через байт (dir). Існують навіть пересилання dir – dir (див. рис. 3).

Відсутні пересилки з РВН в РОН можуть бути реалізовані як пересилки з РВН в прямоадресований байт dir (з урахуванням того, що РОН розташовані в початковій області Резидентної Пам'яті Даних, комірки якої можуть адресуватися як dir).

Команди обміну XCH дозволяють пересилати байти без руйнування обох операндів.

Арифметичні команди виконуються лише в акумуляторі. Тому перший операнд необхідно попередньо помістити в акумулятор і потім скласти або відняти другий операнд. Результат міститься в акумуляторі.


Команда віднімання SUBB виконується тільки з позикою (тобто від результату віднімається і прапор Сary). Тому для виконання команди віднімання без позики необхідно попередньо виконати команду очищення прапора С (CLRC).

Команда множення однобайтових операндів - MULAB - розміщує двобайтовий (16 біт) результат: молодший байт - в Акумулятор, старший байт - в регістр.

Результат виконання команди поділу однобайтових операндів – DIVAB – міститься: приватне – а Акумулятор, залишок – у регістр.

Арифметична команда INC додає до вибраного операнда одиницю. Арифметична команда DEC віднімає з обраного операнда одиницю. Команда десяткової корекції Акумулятора (DAA) допомагає складати двійково-десяткові числа (BCD-числа) без переведення їх у шістнадцятковий формат (hex-формат). Вихідні операнди мають бути обов'язково в BCD-форматі, тобто. у кожному зошиті одного байта знаходяться лише числа від 0 до 9 (там не можуть бути шістнадцяткові числа: A, B, C, D, E, F). Тому в одному байті можуть бути числа від 00 до 99 для упакованих BCD-чисел або числа від 0 до 9 для невпакованих BCD-чисел.

Команда DA A – десяткова корекція виконує дії над вмістом Акумулятора після складання BCD-чисел у процесорі (числа складалися за законами шістнадцяткової арифметики) наступним чином (див. приклад):

· якщо вміст молодшого зошита акумулятора більше 9 або встановлений прапор допоміжного перенесення (AC = 1), то до вмісту акумулятора додається 6 (тобто відсутні шість цифр в hex-форматі);

· якщо після цього вміст старшого зошита акумулятора більше 9 або встановлено прапор C, то число 6 додається до старшого зошита акумулятора.

Команду десяткової корекції DA A не застосовують після команди інкременту (INC), тому що команда інкременту не впливає (не змінює) на прапори С та АС.

Логічні команди:

Логічне "І" – ANL,

Логічне "АБО" - ORL,

Логічна команда "ВИКЛЮЧНЕ АБО" - XRL - виконуються в Акумуляторі (як і арифметичні), але є можливість виконати логічні команди також і в байті, що прямо адресується (dir). При цьому другий операнд може бути:

В акумуляторі або

Безпосередній операнд у команді.

Команди обертання (RR A, RL A) і команди обертання через прапор CARY (RRC A, RLC A) циклічно зрушують вміст Акумулятора на 1 біт. Посилання бітових операндів здійснюються тільки через прапор С.

АРХІТЕКТУРА МІКРОКОНТРОЛЕРІВ СІМЕЙСТВАMCS-51

Конспект лекцій з курсів

"Мікропроцесори в системах контролю", "Мікропроцесорна техніка"

«Мікропроцесорні засоби та системи»

для студентів усіх форм навчання спеціальностей

072000 – Стандартизація та сертифікація

210200 – Автоматизація технологічних процесів

230104 – Системи автоматизованого проектування

Тамбов 2005

ВСТУП.. 3

1. СТРУКТУРА МІКРОКОНТРОЛЕРА INTEL 8051. 3

1.1. Організація пам'яті. 5

1.2. Арифметико-логічний устрій. 6

1.3. Резидентна пам'ять програм та даних. 7

1.4. Акумулятор та регістри загального призначення. 8

1.5. Регістр слова стану програми та її прапори. 9

1.6. Регістри-покажчики. 10

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

1.8. Пристрій керування та синхронізації. 11

1.9. Паралельні порти введення/виведення інформації. 12

1.10. Таймери/лічильники. 13

1.11. Послідовний порт. 18

1.11.1. Реєстр SBUF.. 18

1.11.2. Режими роботи послідовного порту. 18

1.11.3. Реєстр SCON.. 19

1.11.4. Швидкість прийому/передачі. 21

1.12. Система переривань. 22

2. СИСТЕМА КОМАНД МІКРОКОНТРОЛЕРА INTEL 8051. 26

2.1. Загальні відомості. 26

2.1.1. Типи команд. 27

2.1.2. Типи операнда. 28

2.1.3. Методи адресації даних. 30

2.1.4. Прапори результату. 31

2.1.5. Символічна адресація. 32

2.2. Команди передачі. 33

2.2.1. Структура інформаційних зв'язків. 33

2.2.2. Звернення до акумулятора. 33

2.2.3. Звертання до зовнішньої пам'яті даних. 34

2.2.4. Звернення до пам'яті програм.


2.2.5. Звернення до стеку. 35

2.3. Арифметичні операції. 35

2.4. Логічні операції. 39

2.5. Команди передачі керування. 43

2.5.1. Довгий перехід. 43

2.5.2. Абсолютний перехід. 43

2.5.3. Відносний перехід. 44

2.5.4. Непрямий перехід. 44

2.5.5. Умовні переходи.. 44

2.5.6. Підпрограми.. 47

2.6. Операції із бітами. 48

Контрольні питання... 49

ЛІТЕРАТУРА.. 50

Додаток СИСТЕМА КОМАНД INTEL 8051. 51

ВСТУП

З 80-х років 20 століття у мікропроцесорній техніці виділився самостійний клас інтегральних схем – однокристальні мікроконтролери, які призначені для вбудовування у прилади різного призначення. Від класу однокристальних мікропроцесорів їх відрізняє наявність внутрішньої пам'яті, розвинені засоби взаємодії із зовнішніми пристроями.

Широкого поширення набули 8-розрядні однокристальні мікроконтролери сімейства MCS-51. Це сімейство утворилося на основі мікроконтролера Intel 8051, який здобув велику популярність у розробників мікропроцесорних систем контролю завдяки вдало спроектованій архітектурі. Архітектура мікроконтролера це сукупність внутрішніх та зовнішніх програмно доступних апаратних ресурсів та системи команд.

Надалі фірма Intel випустила близько 50 моделей на базі операційного ядра мікроконтролера Intel 8051. Одночасно багато інших фірм, таких як Atmel, Philips почали виробництво своїх мікроконтролерів, розроблених у стандарті MCS-51. Існує також і вітчизняний аналог мікроконтролера Intel 8051 – мікросхема К1816ВЕ51.

2. СТРУКТУРА МІКРОКОНТРОЛЕРА INTEL 8051

Мікроконтролер Intel 8051 виконаний на основі високорівневої n-МОП технології. Його основні характеристики такі:

· Восьмирозрядний центральний процесор, оптимізований для реалізації функцій управління;

· Вбудований тактовий генератор (максимальна частота 12 МГц);

· адресний простір пам'яті програм – 64 Кбайт;

· адресний простір пам'яті даних – 64 Кбайт;

· Внутрішня пам'ять програм - 4 Кбайт;

· Внутрішня пам'ять даних - 128 байт;

· додаткові можливостіз виконання операцій булевої алгебри (побітові операції);

· 2 шістнадцятирозрядних багатофункціональних таймера/лічильника;

· Повнодуплексний асинхронний приймач (послідовний порт);

· Векторна система переривань з двома рівнями пріоритету та п'ятьма джерелами подій.

Малюнок 1 - Структурна схема мікроконтролера Intel 8051

Основу структурної схеми (рис. 1) утворює внутрішня двонаправлена ​​8-розрядна шина, яка зв'язує між собою основні вузли та пристрої мікроконтролера: резидентну пам'ять програм (RPM), резидентну пам'ять даних (RDM), арифметико-логічний пристрій (ALU), блок регістрів спеціальних функцій, пристрій керування (CU), паралельні порти введення/виводу (P0-P3), а також програмовані таймери та послідовний порт.

2.1. Організація пам'яті

Даний мікроконтролер має вбудовану (резидентну) та зовнішню пам'ять програм та даних. Резидентна пам'ять програм (RPM) має об'єм 4 Кбайт, резидентна пам'ять даних (RDM) – 128 байт.


Залежно від модифікації мікроконтролера RPM виконується як масочного ПЗУ, одноразово програмованого чи репрограммируемого ПЗУ.

За потреби користувач може розширювати пам'ять програм встановленням зовнішнього ПЗП. Доступ до внутрішнього чи зовнішнього ПЗП визначається значенням сигналу на виведенні ЕА (External Access):

EA = VCC (напруга живлення) - доступ до внутрішнього ПЗП;

EA = VSS (потенціал землі) – доступ до зовнішнього ПЗУ.

Зовнішня пам'ять програм і даних може становити 64 Кбайт і адресуватися з допомогою портів P0 і P2. На рис.2 представлена ​​картка пам'яті Intel 8051.

Рисунок 2 - Організація пам'яті Intel 8051

Строб читання зовнішнього ПЗП - (Program Store Enable) генерується при зверненні до зовнішньої пам'яті програм і є неактивним під час звернення до ПЗП, розташованого на кристалі.

Область нижніх адрес пам'яті програм (рис. 3) використовується системою переривань. Архітектура мікросхеми INTEL 8051 забезпечує підтримку п'яти джерел переривань. Адреси, якими передається управління з переривання, називаються векторами переривання.

Малюнок 3 - Карта нижньої області програмної пам'яті

2.2. Арифметико-логічний пристрій

8-бітовий арифметико-логічний пристрій (ALU) може виконувати арифметичні операціїдодавання, віднімання, множення та поділу; логічні операції І, АБО, що виключає АБО, а також операції циклічного зсуву, скидання, інвертування і т.п. результат операції (PSW).

Найпростіша операція додавання використовується в ALU для інкрементування вмісту регістрів, просування регістра-покажчика даних (RAR) та автоматичного обчислення наступної адреси резидентної пам'яті програм. Найпростіша операція віднімання використовується в ALU для декрементування регістрів та порівняння змінних.

Найпростіші операції автоматично утворюють “тандеми” до виконання таких операцій, як, наприклад, інкрементування 16-бітових реєстрових пар. В ALU реалізується механізм каскадного виконання найпростіших операцій реалізації складних команд. Так, наприклад, при виконанні однієї з команд умовної передачі управління за результатом порівняння в ALU тричі інкрементується лічильник команд (PC), двічі проводиться читання з RDM, виконується арифметичне порівняння двох змінних, формується 16-бітна адреса переходу і приймається рішення про те, робити або не робити перехід за програмою. Усі перелічені операції виконуються лише за 2 мкс.

Важливою особливістю ALU є його здатність оперувати як байтами, а й бітами. Окремі програмно-доступні біти можуть бути встановлені, скинуті, інвертовані, передані, перевірені та використані у логічних операціях. Ця здатність досить важлива, оскільки для управління об'єктами часто застосовуються алгоритми, що містять операції над вхідними та вихідними булевими змінними, реалізація яких засобами звичайних мікропроцесорів пов'язана з певними труднощами.

Таким чином, ALU може оперувати чотирма типами інформаційних об'єктів: булевими (1 біт), цифровими (4 біти), байтними (8 біт) та адресними (16 біт). ALU виконується 51 різна операція пересилання або перетворення цих даних. Оскільки використовується 11 режимів адресації (7 для даних і 4 для адрес), то шляхом комбінування операції та режиму адресації базове число команд 111 розширюється до 255 з 256 можливих при однобайтному коді операції.

2.3. Резидентна пам'ять програм та даних

Резидентні (розміщені на кристалі) пам'ять програм (RPM) та пам'ять даних (RDM) фізично та логічно розділені, мають різні механізми адресації, працюють під управлінням різних сигналів та виконують різні функції.

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

Пам'ять даних RDM призначена для зберігання змінних у процесі виконання прикладної програми, адресується одним байтом і має ємність
128 байт. Крім того, до адресного простору примикають адреси регістрів спеціальних функцій, які перераховані в табл. 1.

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

Таблиця 1

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

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

Акумулятор

Регістр-розширювач акумулятора

Слово стану програми

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

Реєстр-покажчик даних

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

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

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

Регістр управління/статусу таймера

Таймер 0 (старший байт)

Таймер 0 (молодший байт)

Таймер 1 (старший байт)

Таймер 1 (молодший байт)

Регістр управління приймачем

Буфер приймача

Реєстр управління потужністю

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

2.4. Акумулятор та регістри загального призначення

Акумулятор (A) є джерелом операнда та місцем фіксації результату під час виконання арифметичних, логічних операцій та низки операцій передачі. Крім того, тільки з використанням акумулятора можуть бути виконані операції зсувів, перевірка на нуль, формування прапора паритету тощо.

У розпорядженні користувача є чотири банки по 8 регістрів загального призначення R0-R7 (рис. 9). Однак можливе використання регістрів лише одного з чотирьох банків, який вибирається за допомогою біт регістру PSW.

2.5. Регістр слова стану програми та його прапори

При виконанні багатьох команд ALU формується ряд ознак операції (прапорів), які фіксуються в регістрі слова стану програми (PSW). У табл. 2 наводиться перелік прапорів PSW, даються їх символічні імена та описуються умови формування.

Таблиця 2

Формат слова стану програми PSW

Ім'я та призначення

Прапор перенесення. Встановлюється та скидається апаратно чи програмно при виконанні арифметичних та логічних операцій

Прапор допоміжного перенесення. Встановлюється та скидається тільки апаратно при виконанні команд додавання та віднімання та сигналізує про перенесення або позику в биті 3

Прапор 0. Може бути встановлений, скинутий або перевірений програмою як прапор, що специфікується користувачем

Вибір банку регістрів. Встановлюється та скидається програмно для вибору робочого банку регістрів (табл. 3)

Прапор переповнення. Встановлюється та скидається апаратно при виконанні арифметичних операцій

Не використовується

Прапор паритету. Встановлюється і скидається апаратно в кожному циклі і фіксує непарну/парну кількість одиничних бітів в акумуляторі, тобто виконує контроль парності

Таблиця 3

Вибір робочого банку регістрів

Кордони адрес

Найбільш "активним" прапором PSW є прапор переносу, який бере участь і модифікується в процесі виконання багатьох операцій, включаючи додавання, віднімання та зрушення. Крім того, прапор переносу (CY) виконує функції "бульова акумулятора" в командах, що маніпулюють з бітами. Прапор переповнення (OV) фіксує арифметичне переповнення при операціях над цілими числами зі знаком і уможливлює використання арифметики в додаткові коди. ALU не керує прапорами селекції банку регістрів (RS0, RS1), їх значення повністю визначається прикладною програмою та використовується для вибору одного з чотирьох реєстрових банків.

У вигляді байта регістр PSW може бути представлений наступним чином:

У мікропроцесорах, архітектура яких спирається на акумулятор, більшість команд працюють із ним, використовуючи неявну адресацію. У Intel 8051 справа інакша. Хоча процесор має у своїй основі акумулятор, він може виконувати безліч команд і його участі. Наприклад, дані можуть бути передані з будь-якого осередку RDM будь-який регістр, будь-який регістр може бути завантажений безпосереднім операндом і т. д. Багато логічних операцій можуть бути виконані без участі акумулятора. Крім того, змінні можуть бути інкрементовані, декрементовані та перевірені без використання акумулятора. Прапори та керуючі біти можуть бути перевірені та змінені аналогічно.

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

8-бітний покажчик стека (SP) може адресувати будь-яку область RDM. Його вміст інкрементується перед тим, як дані будуть запам'ятані в стеку під час виконання команд PUSH та CALL. Вміст SP декрементується після виконання команд POP та RET. Подібний спосіб адресації елементів стеку називають передінкрементним/постдекрементним. У процесі ініціалізації мікроконтролера після сигналу RST у SP автоматично завантажується код 07Н. Це означає, що якщо прикладна програма не перевизначає стек, то перший елемент даних у стеку розташовуватиметься в осередку RDM з адресою 08Н.

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

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

Регістри з символічними іменами IP, IE, TMOD, TCON, SCON та PCON використовуються для фіксації та програмної зміникеруючих біт і біт стану схеми переривання, таймера/лічильника, приймача послідовного порту та для управління енергоспоживанням. Детально їх організація буде описана в розділах 1.8-1.12, розглядаючи особливості роботи мікроконтролера в різних режимах.

2.8. Пристрій керування та синхронізації

Кварцовий резонатор, що підключається до зовнішніх висновків мікроконтролера, керує роботою внутрішнього генератора, який формує сигнали синхронізації. Пристрій управління (CU) на основі сигналів синхронізації формує машинний цикл фіксованої тривалості, що дорівнює 12 періодів генератора. Більшість команд мікроконтролера виконується за машинний цикл. Деякі команди, що оперують з 2-байтними словами або пов'язані зі зверненням до зовнішньої пам'яті, виконуються за два машинні цикли. Тільки команди поділу та множення вимагають чотирьох машинних циклів. На основі цих особливостей роботи пристрою керування проводиться розрахунок часу виконання прикладних програм.

На схемі мікроконтролера до пристрою керування примикає регістр команд (IR). У його функцію входить зберігання коду команди, що виконується.

Вхідні та вихідні сигнали пристрою керування та синхронізації:

1. PSEN – роздільна здатність програмної пам'яті,

2. ALE – вихідний сигнал дозволу фіксації адреси,

3. PROG - сигнал програмування,

4. EA – блокування роботи з внутрішньою пам'яттю,

5. VPP – напруга програмування,

6. RST - сигнал загального скидання,

7. VPD – висновок резервного харчуванняпам'яті від зовнішнього джерела,

8. XTAL – входи підключення кварцового резонатора.

2.9. Паралельні порти введення/виведення інформації

Усі чотири порти (P0-P3) призначені для введення чи виведення інформації побайтно. Кожен порт містить керовані регістр-клапан, вхідний буфер і вихідний драйвер.

Вихідні драйвери портів P0 та P2, а також вхідний буфер порту P0 використовуються при зверненні до зовнішньої пам'яті. При цьому через порт P0 в режимі тимчасового мультиплексування спочатку виводиться молодший адресний байт, а потім видається або приймається байт даних. Через порт P2 виводиться старший байт адреси у випадках, коли розрядність адреси дорівнює 16 біт.

Усі висновки порту P3 можна використовувати реалізації альтернативних функцій, перелічених у табл. 4. Ці функції можуть бути задіяні шляхом запису 1 у відповідні біти регістра-засувки (P3.0-P3.7) порту P3.

Таблиця 4

Альтернативні функції порту P3

Ім'я та призначення

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

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

Вхід таймера/лічильника 1 або тест-вхід

Вхід таймера/лічильника 0 або тест-вхід

Вхід запиту переривання 1. Сприймається сигнал низького рівня чи зріз

Вхід запиту переривання 0. Сприймається сигнал низького рівня чи зріз

Вихід передавача послідовного порту в режимі UART. Вихід синхронізації в режимі регістру зсуву

Вхід приймача послідовного порту як UART. Введення/виведення даних у режимі регістру зсуву

Порт 0 є двоспрямованим, а порти 1-3 - квазідвоспрямованими. Кожна лінія портів може бути використана незалежно для введення чи виведення.

За сигналом RST в регістри-засувки всіх портів автоматично записуються одиниці, що налаштовують їх на режим введення.

Усі порти можуть бути використані для організації введення/виведення інформації по двонаправлених лініях передачі. Однак порти P0 і P2 не можуть бути використані для цієї мети у випадку, якщо система має зовнішню пам'ять, зв'язок з якою організується через загальну шину адреси/даних, що розділяється, що працює в режимі тимчасового мультиплексування.

Звернення до портів введення/виводу можливе з використанням команд, що оперують з байтом, окремим бітом, довільною комбінацією бітів. При цьому в тих випадках, коли порт є одночасно операндом та місцем призначення результату, пристрій керування автоматично реалізує спеціальний режим, який називається "читання-модифікація-запис". Цей режим звернення передбачає введення сигналів не з зовнішніх висновків порту, а з його регістру, що дозволяє виключити неправильне зчитування раніше виведеної інформації. Цей механізм звернення до портів реалізовано у командах:

ПЛАН ЛЕКЦІЇ

1. Введення

2. Арифметичні та логічні інструкції

3. Команди передачі даних

4. Булеві операції

5. Інструкції переходів

1. Введення

Система команд MCS-51підтримує єдиний набір інструкцій, призначений до виконання 8-бітових алгоритмів управління виконавчими пристроями. Існує можливість використання швидких методів адресації внутрішнього ОЗУ, здійснення бітових операцій над невеликими структурами даних. Є розгорнута система адресації однобітових змінних як самостійного типу даних, що дозволяє використовувати окремі біти в логічних і керуючих команд булевої алгебри.

Режими адресації : набір команд MCS-51підтримує такі режими адресації. Пряма адресація: операнд визначається 8-бітовою адресою в інструкції Пряма адресація використовується лише для молодшої половини внутрішньої пам'яті даних та регістрів SFR. Непряма адресація: інструкція адресує регістр, що містить адресу операнда Даний вид адресації використовується для зовнішнього та внутрішнього ОЗП. Для вказівки 8-бітових адрес можуть використовуватися регістри R0і R1обраного реєстрового банку або покажчик стека SP. Для 16-бітової адресації використовується лише регістр покажчика даних DPTR.

Реєстрові інструкції : регістри R0-R7поточного регістрового банку можуть бути адресовані через конкретні інструкції, що містять 3-бітове поле, що вказує на номер регістру в самій інструкції. У цьому випадку відповідного поля адреси в команді немає. Операції з використанням спеціальних регістрів: деякі інструкції використовують індивідуальні регістри (наприклад, операції з акумулятором, DPTR, і т.д.). У разі адресу операнда взагалі вказується у команді. Він визначається кодом операції.

Безпосередні константи : константа може бути прямо у команді за кодом операції.

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

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

Систему команд умовно можна розбити п'ять груп: арифметичні команди; логічні команди; команди передачі; команди бітового процесора; команди розгалуження та передачі управління. Позначення та символи, що використовуються в системі команд, наведені далі.

Таблиця. Позначення та символи, що використовуються в системі команд

Позначення, символ

Призначення

Акумулятор

Реєстри поточного обраного банку регістрів

Номер завантажуваного регістру, вказаного у команді

direct

Прямо адресована 8-бітова внутрішня адреса осередку даних, яка може бути осередком внутрішнього ОЗП даних (0-127) або регістром спеціальних функцій SFR (128-255)

Непрямо адресований 8-бітовий осередок внутрішнього ОЗУ даних

8-бітове безпосереднєце, що входить у код операції (КОП)

dataH

Старші біти (15–8) безпосередніх 16-бітових даних

dataL

Молодші біти (7–0) безпосередніх 16-бітових даних

11-бітова адреса призначення

addrL

Молодші біти адреси призначення

8-бітовий байт зміщення зі знаком

Біт із прямою адресацією, адреса якого містить КОП, що знаходиться у внутрішньому ОЗП даних або регістрі спеціальних функцій SFR

a15, a14...a0

Біти адреси призначення

Вміст елемента Х

Вміст за адресою, що зберігається в елементі Х

Розряд М елемента Х


+

*
AND
OR
XOR
/X

Операції:
додавання
віднімання
множення
поділу
логічного множення (операція І)
логічного складання (операція АБО)
додавання за модулем 2 (що виключає АБО)
інверсія елемента Х

Мнемонічні позначення функцій однозначно пов'язані з конкретними комбінаціями способів адресації та типами даних. Загалом у системі команд можливо 111 таких поєднань.

2. Арифметичні та логічні інструкції

Як п рімер арифметичної команди, Операція додавання може бути виконана однією з нижченаведених команд.

ADDA,7 F 16 - Додати до вмісту регістру А число 7 F 16 та результат зберегти у регістрі А;

ADDA,@ R0 – додати до вмісту регістру А число, адреса якого (@ – commercial at ) зберігається в регістрі R 0 (непряма адресація), та результат зберегти у регістрі А;

ADD A,R7– додати до вмісту регістру А вміст регістру R 7 та результат зберегти в регістрі А;

ADD A, # 127- Додати до вмісту регістру А число, адреса комірки зберігання якого 127 ( # – символ номера), і результат зберегти в регіс т- Ре А.

Усі арифметичні інструкції виконуються за один машинний цикл, за винятком команди INC DPTR(Зміщення покажчика даних DPTRна наступний байт), що вимагає два машинних цикли, а також операцій множення та поділу, що виконуються за 4 машинні цикли. Будь-який байт у внутрішній пам'яті даних може бути інкрементований та декрементований без використання акумулятора.

Інструкція MUL ABздійснює множення (multiplication – множення) даних в акумуляторі на дані, що знаходяться в регістрі B, поміщаючи твір у регістри A (молодша половина) та B (старша половина).

Інструкція DIV ABділить (division – поділ) вміст акумулятора на значення регістрі B, залишаючи залишок в B, а приватне – в акумуляторі.

Інструкція DA Aпризначена для двійково-десяткових арифметичних операцій (арифметичні операції над числами, поданими у двійково-десятковому коді). Вона не робить перетворення двійкового числа в двійково-десяткове, А лише забезпечує правильний результат при додаванні двох двійково-десяткових чисел.

приклад логічної команди: Операція логічного І може бути виконана однією з наступних команд:

ANLA,7 F 16 - Логічне множення вмісту регістру А на число 7 F 16 і результат зберігається у регістрі А;

ANLA,@ R1 - Логічне множення вмісту регістру А на число, адреса якого зберігається в регістрі R 1 (непряма адресація), та результат зберегти у регістрі А;

ANL A,R6- Логічне множення вмісту регістру А на вміст регістру R 6, та результат зберегти в регістрі А;

ANL A,#53 – логічне множення вмісту регістру А на число, адреса комірки зберігання якого 53 16 і результат зберегти в регістрі А.

Усі логічні операції над вмістом акумулятора виконуються за машинний цикл, інші – за два. Логічні операції можуть проводитися над будь-яким із нижніх 128 байтів внутрішньої пам'яті даних або над будь-яким регістром SFR (регістрів спеціальних функцій) у режимі прямої адресації без використання акумулятора.

Операції циклічного зсуву RL A, RLC A тощо переміщують вміст акумулятора на один біт вправо або вліво. У разі лівого циклічного зсуву молодший біт переміщається до старшої позиції. У разі правого циклічного зсуву відбувається зворотне.

Операція SWAP Aздійснює обмін молодшої та старшої зошит в акумуляторі.

3. Команди передачі даних

Команда MOV dest, srcдозволяє пересилати дані між осередками внутрішнього ОЗП або областю регістрів спеціальних функцій SFRбез використання акумулятора. При цьому робота з верхньою половиною внутрішньої ОЗП може здійснюватися тільки в режимі непрямої адресації, а звернення до регістрів SFR– лише у режимі прямої адресації.

У всіх мікросхемах MCS-51стек розміщується безпосередньо у резидентній пам'яті даних та збільшується вгору. Інструкція PUSHспочатку збільшує значення в регістрі покажчика стека SP, а потім записує в стек байт даних. Команди PUSHі POPвикористовуються тільки в режимі прямої адресації (записуючи або відновлюючи байт), але стек є завжди доступним при непрямій адресації через регістр SP. Таким чином, стек може використовувати верхні 128 байт пам'яті даних. Ці міркування виключають можливість використання стічних команд для адресації регістрів SFR.

Інструкції передачі даних включають 16-бітову операцію пересилання MOV DPTR,#data16, яка використовується для ініціалізації регістру покажчика даних DPTRпід час перегляду таблиць у програмній пам'яті або для доступу до зовнішньої пам'яті даних.

Операція XCH A,byteзастосовується для обміну даними між акумулятором і байтом, що адресується. Команда XCHD A, @ Riаналогічна попередньої, але виконується тільки для молодших зошит, що беруть участь в обміні операндів.

Для доступу до зовнішньої пам'яті даних використовується лише непряма адресація. У разі однобайтних адрес використовуються регістри R0або R1поточного регістрового банку, а для 16-розрядних – регістр покажчика даних DPTR. За будь-якого способу доступу до зовнішньої пам'яті даних акумулятор грає роль джерела чи приймача інформації.

Для доступу до таблиць, розміщених у програмній пам'яті, використовуються команди:

MOVC A,@A+ DPTR ;

MOVC A,@A+ PC .

Як базова адреса таблиці використовується вміст відповідно регістру покажчика даних DPTRабо PC(програмного лічильника), а зміщення береться з A. Ці команди використовуються виключно для читання даних із програмної пам'яті, але не для запису до неї.

4. Булеві операції

Мікросхеми MCS-51містять у своєму складі «бульовий» процесор. Внутрішнє ОЗУ має 128 прямо адресованих біт. Простір регістрів спеціальних функцій SFRможе підтримувати до 128 бітових полів. Бітові інструкції здійснюють умовні переходи, пересилання, скидання, інверсії, операції «І» та «АБО».Всі ці біти доступні в режимі прямої адресації.

Біт перенесення CFу регістрі спеціальних функцій «слово стану програми PSW» використовується як однобітний акумулятор бульового процесора.

5. Інструкції переходів

Адреси операцій переходів позначаються мовою асемблера влучною чи справжнім значенням у просторі пам'яті програм. Адреси умовних переходів асемблюються у відносне зміщення – знаковий байт, що додається до програмного лічильника PCу разі виконання умови переходу. Межі таких переходів лежать у межах між мінус 128 і 127 щодо першого байта, наступного за інструкцією. У регістрі спеціальних функцій «слово стану програми PSW» відсутня прапорець нуля, тому інструкції JZі JNZперевіряють умову "рівно нулю" як тестування даних в акумуляторі.

Існує три види команди безумовного переходу: SJMP, LJMPі AJMP- Розрізняються форматом адреси призначення. Інструкція SJMPкодує адресу як відносне усунення, і займає два байти. Дальність переходу обмежена діапазоном від мінус 128 до 127 байт щодо інструкції SJMP.

В інструкції LJMPвикористовується адреса призначення у вигляді 16-бітової константи. Довжина команди складає три байти. Адреса призначення може розташовуватись у будь-якому місці пам'яті програм.

Команда AJMPвикористовує 11-бітну константу адреси. Команда складається із двох байт. При виконанні цієї інструкції молодші 11-біт адресного лічильника заміщаються 11-бітною адресою з команди. П'ять старших біт програмного лічильника PCзалишаються незмінними. Таким чином, перехід може здійснюватися всередині 2К-байтного блоку, в якому розташовується інструкція, яка йде за командою AJMP.

Існує два види команди виклики підпрограми: LCALLі ACALL. Інструкція LCALLвикористовує 16-бітну адресу підпрограми, що викликається. У цьому випадку підпрограма може бути розташована у будь-якому місці пам'яті програм. Інструкція ACALLвикористовує 11-бітну адресу підпрограми. У цьому випадку підпрограма, що викликається, повинна бути розташована в одному 2К-байтному блоці з інструкцією, наступною за ACALL. Обидва варіанти команди кладуть на стек адресу наступної команди та завантажують у програмний лічильник PC відповідне нове значення.

Підпрограма завершується інструкцією RET, що дозволяє повернутися на інструкцію, яка йде за командою CALL. Ця інструкція знімає з стека адресу повернення і завантажує її в програмний лічильник PC . Інструкція RETIвикористовується для повернення з підпрограм обробки переривань. Єдина відмінність RETIвід RETполягає в тому що RETIінформує систему у тому, що обробка переривання завершилася. Якщо в момент виконання RETIнемає інших переривань, то вона ідентична RET.

Інструкція DJNZпризначена для керування циклами. Для виконання циклу N раз треба завантажити в лічильник байт зі значенням N та закрити тіло циклу командою DJNZ, що вказує на початок циклу.

Команда CJNEпорівнює два своїх операнда як беззнакові цілі і здійснює перехід за вказаною в ній адресою, якщо порівнювані операнди не рівні. Якщо перший операнд менше, ніж другий, то біт перенесення CF встановлюється у «1».

Усі команди в асембльованому вигляді займають 1, 2 або 3 байти.