7.4. Система команд мп кр1816ве51
МП КР1816ВЕ51 виконує понад 250 команд по обробці цифрової інформації із всіма його складовими, які приведені,наприклад, в [3], і частину із них розглянемо далі. По функціональному призначенню систему команд, яку використовує МП КР1816ВЕ51, можна розділити на наступні групи:
А) переміщення (пересилання) MOV <байт призначення>, <байт
джерело>; (MOV - aбревіатура команди) - переміщення (пересилання) байта даних від регістра джерела до регістра призначення, або між регістрами та пам’яттю. Наприклад:
■ MOV А, Rn; – передати те, що міститься в регістрі Rn в регістр A, де n = від 0 до 7 (один із вісьми регістрів загального призначення одного банку);
■ MOV R3, R0; – передати те, що міститься в регістрі R0 в регістр R3;
■ MOV А, R5; – передати те, що міститься в регістрі R5 в регістр А;
■ MOV R5, А; – передати те, що міститься в регістрі А в регістр R5;
■ MOV А,#37Н; – занести в регістр А число (константу) 37Н (0011 0111 В);
■ MOV Rn, ,#45Н; – занести в регістр Rn число 45Н (0100 0101 В);
■ MOV PSW,Rn; – занести в регістр PSW те, що вміщує регістр Rn;
■ MOV @Rn,А; – занести в комірку резидентної памяті даних, що знаходиться за одресою, яка знаходиться у регісті Rn; те, що вміщує А (акумулятор);
■ MOV 24Н,@Rn; – занести в комірку резидентної памяті даних, що
знаходиться за одресою, наприклад, 24Н те, що вміщує така ж комірка за
адресою, яка знаходиться у регісті Rn;
■ MOV 51Н,45Н; – занести в комірку резидентної памяті даних, що знаходиться за одресою, наприклад, 51Н, те, що вміщує така ж комірка за адресою, наприклад, 45Н;
■ MOV 51Н,#45Н; – занести в комірку резидентної памяті даних, що знахо-диться за одресою, наприклад, 51Н, безпосередньо число, наприклад, 45Н;
■ MOV @Rn,Р0; – занести в комірку резидентної памяті даних, що знаходиться за адресою, яка знаходиться у регісті Rn; те, що вміщує порт Р0;
■ MOV @Rn,#45Н; – занести в комірку резидентної памяті даних, що знаходиться за одресою, яка знаходиться у регісті Rn, число, наприклад, 45Н;
■ MOV С, Р3.7; – занести у біт перенесення С, те, що вміщує, наприклад, сьомий біт порта Р3;
■ MOV Р3.7,С, – занести, наприклад, у сьомий біт порта Р3 значення біту перенесення С;
■ MOV DPTR,#1245Н; – занести в показник DPTR даних із зовнішньої памяті, безпосередньо адресу, наприклад, 1245Н;
■ MOVХ @DPTR,А; – занести в комірку зовнішньої памяті, адресу якої вміщує показник DPTR, те ,що вміщує А (акумулятор);
■ MOVХ А,@DPTR; – занести в А дані із зовнішньої комірку памяті, адресу яких вміщує показник DPTR;
Б) перетворення даних (арифметичні та логічні).До них входять команди: додавання, віднімання , збільшення чи зменшення кодів на 1, які можуть знаходитись або в регістрах, або пам”яті. Сюди входять також команди, які реалізують логічні операції АБО та ТА, виключальне АБО, порівняння та інвертування акумулятора і біту перенесення. Наприклад:
■ ADD А,Rn; та ADDC А,Rn; – до того, що знаходиться в акумуляторі А додати або додати з урахуванням перенесення вмістиме регістра Rn;
Наприклад, (А)= АЕН; (R3) = 75Н; біт перенесення СY=1; неохідно виконати команду АDDС А, R3; після операції отримуємо:
СY = 0000 0001
АЕН = 1010 1110
75Н = 0111 0101
= 1 0010 0100 = 24Н та ще біт перенесення CY = 1, значення якого повинно враховуватись в наступній команді.
■ ADD А,#77Н; та ADDC А,#77Н; – до того, що знаходиться в акумуляторі А додати або додати з урахуванням перенесення для другого випадку, безпосередньо число,наприклад, 77Н; результат залишити в А;
■ ADD А, @Rn; та ADDC А, @Rn; – до того, що знаходиться в акумуляторі
А додати або додати з урахуванням перенесення вмістиме комірки резидентної памяті, адреса якої знаходиться в регістрі Rn; результат залишити в А;
■ SUBB А,Rn; – від того, що знаходиться в акумуляторі А відняти з запозиченням та з урахуванням перенесення те, що знаходить в регістрі Rn;
■ SUBB А, @Rn; – від того, що знаходиться в акумуляторі А відняти з
запозиченням та з урахуванням перенесення те, що знаходить в комірці
резидентної пам’яті, адреса якої знаходиться в регістрі Rn; результат - в А;
■ SUBB А,#37Н; – від того, що знаходиться в акумуляторі А відняти з запозиченням та з урахуванням перенесення число, н., 37Н; результат - в А;
■ ANL С, <біт порта> та ORL С,< біт порта >– виконати логічні операції ТА та АБО в другому випадку між бітом перенесення та бітом указаного порта;
результат операції присвоїти біту перенесення С; наприклад:ANL С,Р1.1;
ORL С,Р1.0;
■ ANL С, </біт порта> та ORL С,</біт порта >– виконати логічні операції
ТА та АБО в другому випадку між бітом перенесення та інвертованим бітом указаного порта; результат операції присвоїти біту перенесення С; наприклад:ANL С,/АС;
■ ANL <байт призначення>,<байт джерела> та ORL <байт призначення>,<байт джерела> – виконати порозрядно логічні операції ТА та АБО в другому випадку між байтом призначення та байтом джерела; резуль-тат операції присвоїти байту призначення; наприклад: ANL А,Rn; ORL А,Rn;
■ ANL А,@Rn; та ORL А,@Rn - виконати порозрядно логічні операції ТА та АБО в другому випадку між А та вмітимим комірок резидентної пам’яті, адреса якої знаходиться в регістрі Rn; результат зберегти в А;
■ ANL А,#7АН; та ORL А,#7АН - виконати порозрядно логічні операції ТА та АБО в другому випадку між А та безпосередньо числом,наприклад, 7АН;
результат залишити в А;
■ XRL <байт призначення>,<байт джерела> – виконати порозрядно функцію нерівнозначності між двома байтами; результат операції присвоїти байту призначення; наприклад, XRL А,Rn;
■ XRL А,@Rn; теж саме між А та байтом,адреса якого вміщується в регістрі;
■ XRL Р1,А; теж саме між портом РІ та А; (модифікація порту Р1);
■ INС <байт>; та DЕC <байт>; - збільшити та зменшити для другого
випадку значення на 1 операнду; наприклад, INС Rn; DЕC Rn; - збільшити та зменшити вмістиме вибраного одного із 8-ми регістрів резидентної пам’яті;
■ INС @Rn; та DЕC @Rn; - збільшити та зменшити вмістиме комірки резидентної пам’яті , адреса якої знаходиться у вибраному регістрі Rn;
■ СLR А; та СLR С; – скинути в нуль акумулятор А та біт перенесення С;
■ СLR Р1.4 – скинути в нуль наприклад, четвертий біт порта Р1;
■ SETB Р2.0 – установити в одиницю, наприклад, нульовий біт порта Р2;
■ СРL А; – провести функцію інверсії над вмістимим акумулятора А;
■ СРL Р1.5; – провести функцію інверсії над п’ятим бітом порта Р1;
■ СРL С; – провести функцію інверсії над бітом перенесення С;
■ DА А; - провести десяткову корекцію акумулятора;
В) управління програмою - входять команди розгалуження, які виконують умовні та безумовні виклики підпрограм та повернень із підпрограм. Наприклад:
■ LCALL <адреса 16 біт>; – довгий виклик підпрограми за указаною адресою; в якості адреси може бути мітка, наприклад, LCALL РRN; а РRN – мітка;
■ LJMP < адреса 16 біт >;– довгий безумовний перехід за указаною адресою; в якості адреси може бути мітка, наприклад, LJMP РRN; а РRN – мітка;
■ SJMP <мітка>;– короткий безумовний перехід за указаною адресою; в якості якої використовується мітка, наприклад, SJMP МЕТ; а МЕТ – мітка;
■ JВ <біт>,<мітка>;– перехід на адресу, що вказана у мітці, за умови логічної 1 в біті, наприклад, JВ Р1.1,LAВ 1; якщо в порту Р1.1 «1», то перехід на LAВ 1;
■ JNВ <біт>,<мітка>;– перехід на адресу, що вказана у мітці, за умови логічної 0 в біті, наприклад, JNВ Р1.1,LAВ 1; якщо в порту Р1.1 «0», то
перехід на LAВ 1;
■ JС <мітка>;– перехід на адресу, що вказана у мітці, за умови логічної 1 в біті перненесення, наприклад, JС LAВ 1;
■ JNС <мітка>;– перехід на адресу, що вказана у мітці, за умови логічної 0 в біті перненесення, наприклад, JNС LAВ 1;
■ СJNЕ <байт призначення>,<байт джерела>,<мітка>;– порівняння та перехід на <мітку>, якщо вмістиме перших двох байтів не рівні; при цьому , якщо вмістиме байта призначення > вмістимого байт джерела біт перенесення С установлюється в «0», якщо ж навпаки - то в «1»; якщо ж байти рівні, то переходу не має, а біт С = «0».
Операнди дають наступні типи адресації при цій команді, наприклад:
■ СJNЕ А, Р2, МТ3; (порівнюється вмістиме А та порта);
■ СJNЕ Rn, #85Н, МТ4; (порівнюється вмістиме довільного регістра резидентної пам’яті даних Rn та будь-якої константи);
■ СJNЕ @Rn, #А7Н, МТ5; (теж саме, але вмістиме комірки пам’яті, адреса
якої знаходиться у регістрі Rn);
■ DJNZ <байт>,<мітка>;– декремент і перехід на <мітку>, якщо після віднімання «1» із вказаної комірки результат не дорівнює «0», якщо ж навпаки - то переходу не має. Вживані приклади використовування цієї команди:
LAВ 4: СРL Р1.7 ; інверсія біту Р1.7
DJNZ R2, LAВ 4; якщо в регістр R2 занести число 08Н,то така
; послідовність команд перемикає біт Р1.7 8-м раз
; і на виході Р1.7 зявляються 4-ри імпульси;
Вживання мнемокоду DJNZ добавляє за кожну ітерацію по два машинних цикли. В наступному прикладі інструкції визивають необхідну тривалість низького рівня імпульсу читання WR (читання із пам’яті) на виході МП:
СLR WR ; установка низького рівня на виході читання МП
MOV R1, ,#45Н; занести в регістр R1 число 45Н (0100 0101 В)
DJNZ R1, $; декремент R1; знак $ є спеціальним символом адреси
; плинної інструкції і замінює мітку в рядках програми
; (використовують для $ термін «змикання на себе»)
SETB WR ; установка високого рівня на виході читання МП;
■ RET; – повернення із підпрограми;
■ RETІ; – повернення із підпрограми з установленням логіки переривань, що
дозволяє наступне переривання,яке по рівню, відповідає рівню, тільки що виконаного;
Г) вводу-виводу:
- Київ нухт 2011
- 1. Загальні відомості про мікропроцесор та мікропроцесорну систему
- 1.1. Мікропроцесор. Загальні положення та визначення.
- 1.2. Архітектура мікропроцесора
- 1.3. Загальна структура мікропроцесора та його функціонування
- 1.4. Поняття про мікропроцесорну систему (мпс)
- 1.5. Поняття мікропроцесорного контролера
- 2. Загальні відомості пронадання та опрацювання інформації в мікропроцесонній техніці
- 2.1. Поняття інформації та дві форми її надання
- 2.2. Фізична суть цифрової інформації та елементи її реалізації
- 3. Основи алгебри логіки
- 3.1. Загальні положення
- 3.2. Опис та задання логічних функцій.
- 3.3. Основні логічні функції алгебри логіки
- 4. Способи надання інформації в мікропроцесорі
- 4.1. Поняття систем числення в мікропроцесорній техніці
- 4.2. Дівйкова система числення та основи переведення чисел між системами числення
- 4.2.1. Перетворення двійкових чисел в десяткові.
- 4.2.2. Перетворення десяткових чисел в двійкові
- 4.3. Вісімкова та шістнадцяткова системи числення
- 5. Структурні елементи мікропроцесора
- 5.1. Поняття машинного слова, регістрів
- 5.2. Формати надання чисел в мікропроцесорах
- 5.3. Двійкова арифметика в мікропроцесорі.
- 5.4. Двійково-десяткова арифметика.
- 5.4.1 Додавання двійково-десяткових чисел без знаку.
- 5.4.2 Додавання двійково-десяткових чисел із знаком.
- 5.5. Регістр стану (psw) мп та його призначення
- 5.6. Поняття шин (bus) мікропроцесора
- 5.7. Арифметично – логічний пристрій мікропроцесора
- 5.8. Пристій вводу – виводу (пвв).
- In 07н; ввести в акумулятор дані із порту 7;
- Поняття шинних драйверів.
- 5.9. Поняття інтерфейсу
- 5.10. Передавання інформації у послідовному коді.
- 5.11. Память мікропроцесорів та опереції з нею
- 5.12. Адресний простір мікропроцесора
- 5.13. Стек та його використовування
- 6. Мови програмування мпс
- 6.1. Рівні мов прграмування мп.
- 6.1.1. Базова мова мікропроцесора.
- 6.1.2. Мова “ асемблер” (другого рівня).
- 6.1.3. Мови третього рівня.
- 6.2. Основні правила запису програм на мові асемблера
- 6.3 Програмне забезпечення мікропроцесорнихсистем та його види
- 6.4. Способи адресації в мікропроцесорній системі
- 6.5. Формати команд мікропроцесорів
- Варіанти однобайтних команд:
- 6.6. Робочий цикл виконання програми мп
- 7. Однокристальний мікропроцесорний контролер кр1816ве51…….
- 7.1. Номеклатура та порівняльні характеристики мп
- 7.2. Структурна схема мікроконтролера кр1816ве51 та призначення складових
- Призначення виводів мп кр1816ве51
- Призначення виводів мп кр1816ве51
- 7.3. Функціонування мп кр1816ве51
- 7.4. Система команд мп кр1816ве51
- In port- те, що знаходиться в порту вводу заноситься в акумулятор а
- 8. Приклади програмування на асемблері кр1816ве51
- 8.1 Форомалізований підхід до розробки прикладної програми
- 8.2. Підрахунок імпульсів
- 8.3. Функції часової витримки
- 8.4. Функції вимірювання часових інтервалів
- 8.5. Перетворення кодів між системами числення
- 8.6. Аналого-цифрове перетворення
- 8.7 Приклад програмування технічної задачі
- 8.7.1. Постановка задачі
- 8.7.2. Аналіз задачі.
- 8.7.3. Розробка схеми пристрою та інтерфейсу.
- 8.7.4. Інженерна інтерпретація задачі
- 8.7.5. Розробка блок –схеми алгоритму
- 8.7.6 Розробка прикладної програми
- Програма sezam
- Контрольні запитання з курсу
- Література
- 1..Технічне та програмне забезпечення плк “ломіконт” Функціональні можливості плк “Ломіконт”.
- Технічні характеристики Ломіконта
- 2. Фізична сруктура контролера та його склад
- На рис 1.1 приведена фізична структура л-110 з основними модулями.
- Програмування плк “ломіконт”
- ПрК задає логіку управління конкретним технологічним об”єктом.
- Порядок виконання програми контролером:
- 05 Если умова а
- 07 Если умова в
- 11 Если умова с
- 00 Если в дв015
- 01 Тогда о кс102
- 02 Иначе в кс116
- 14 Тогда алг 031 (потім виконати алгоритм 031)
- 3. Приклад програмування на технологічній мові «Мікрол»
- Програмування алгоритму
- Безпоседньо програма
- 11 Тогда о кс100 - 26 тогда тс 1.0.0
- Бібліотека алгоритмів «ломіконту»