- •Лабораторна робота № 1 Тема: структура учбової мікропроцесорної лабораторії, клавіатура керування, індикація
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Лабораторна робота № 2 Тема: пам’ять учбової мікропроцесорної лабораторії, дослідження виконання програм в покроковому I автоматичному режимах
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 3 Тема: дослідження програмно-доступних регістрів мікропроцесора кр580ик80
- •Коротка інформація
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 4 Тема: вивчення команд пересилання даних.
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 5 Тема: вивчення арифметичних команд
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 6 Тема: вивчення логічних команд
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 7 Тема: вивчення команд переходів
- •Коротка інформація
- •Індивідуальні завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 8 Тема: вивчення команд введення / виведення, керування і рестарту
- •Коротка інформація
- •Індивідуальне завдання
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 9 Тема: вивчення зв’язків мікролабораторії із зовнішнім середовищем
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 10 Тема: керування клавіатурою і індикаторами мікро лабораторії
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 11 Тема: програмування тимчасових затримок
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 12 Тема: програмне керування пристроями введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 13 Тема: динамічне керування об’єктами введення / виведення
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 14 Тема: імітаційне моделювання передньої панелі вимірювального приладу з вбудованим мп
- •Коротка інформація
- •Індивідуальне завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 15 Тема: тестування пам’яті мікропроцесорної системи
- •Коротка інформація
- •Індивідуальні завдання на лабораторну роботу
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота № 16 5 Тема: макет мікропроцесорної системи охоронної сигналізації на автомобілі
- •Коротка інформація Постановка задачі
- •Інженерна інтерпретація
- •Оцінка системи
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Додаток. Система команд 8–розрядного однокристального мікропроцесора к580ик80а.
- •Література
Індивідуальне завдання на лабораторну роботу
Скласти програму на основі логічних і раніше вивчених команд. Програма повинна використовувати всі типи логічних команд.
Закодувати програму. Занести її в таблицю, аналогічну наведеним в попередніх роботах.
Порядок виконання лабораторної роботи
Завантажити в пам’ять мікро лабораторії програми, які розглянуті в теоретичному розділі, і перевірити правильність їх роботи.
Завантажити індивідуальну програму і виконати її в покроковому режимі. Заповнити таблицю, вказуючи стан кожного з використаних регістрів на кожному кроці програми.
Проконтролювати і занести в таблицю вміст вічок пам’яті, використаних в програмі.
Модифікувати програму, замінивши 2-3 логічні команди на протилежні, і повторити пп. 2, 3.
Зробити висновки з роботи.
Контрольні питання
Якими командами можна здійснити очищення акумулятора і тригера переносу?
Чому заміна команди RLC на RRC не змінює результат виконання програми, показаній на рис. 6.5 ?
Скласти програму виділення знакового розряду для наступного його аналізу.
Які функції тригера переносу при виконанні команд зсуву ?
Лабораторна робота № 7 Тема: вивчення команд переходів
Мета: вивчити групу команд переходів. Набути навичок складання програм з їх використовуванням, вивчити послідовність дій при переході до виконання підпрограми.
Коротка інформація
Реалізація розгалужених і програм, що циклічно виконуються, неможлива без вживання команд з групи переходів. Мікропроцесор КР580ИК80 надає користувачу потужний засіб керування ходом обчислювального процесу. Структура розгалуження процесу, перехід до підпрограм і повернення з них не відрізняються від структур в мовах високого рівня, однак тут принципово неможлива перевірка умов у вигляді складних арифметичних або логічних виразів, як це робиться, наприклад, на мові Бейсик. Керування переходами здійснюється на основі аналізу тригерів прапорців, які можуть бути зведені або скинуті попередніми арифметичними або логічними командами. Перелік команд і їх коди наведені на рис. 7.1. Виконання команд не впливає на стан прапорців.
1. Переходи |
2. Звертання |
3. Повернення |
|||
Мнемоніка |
Код |
Мнемоніка |
Код |
Мнемоніка |
Код |
JMP ** |
С3 |
CALL ** |
CD |
RET |
C9 |
JNZ ** |
С2 |
CNZ ** |
С4 |
RNZ |
C0 |
JZ ** |
СА |
CZ ** |
СС |
RZ |
C8 |
JNC ** |
D2 |
CNC ** |
D4 |
RNC |
D0 |
JC ** |
DA |
СС ** |
DC |
RC |
D8 |
JPO ** |
Е2 |
СРО ** |
Е4 |
RPO |
E0 |
JPE ** |
ЕА |
СРЕ ** |
EC |
RPE |
E8 |
JP ** |
F2 |
СР ** |
F4 |
RP |
F0 |
JM ** |
FA |
CM ** |
FC |
RM |
F8 |
PCHL |
Е9 |
|
|
|
|
Рис. 7.1. Команди переходів.
Розрізнюють два типи команд переходів – безумовні і умовні. Безумовні команди здійснюють передачу керування, змінюючи значення програмного лічильника PC, а умовні перевіряють стан одного з чотирьох прапорців (С – переносу, Z – нуля, S – знаку, Р – парності), для визначення, чи виконується вказана в команді умова. Аналогічно здійснюється звертання до підпрограми. Треба пам’ятати, що при їх виконанні перед завантаженням PC новою адресою старші 8 біт адреси наступної за переходом команди (тобто адреса повернення) пересилаються у вічко, адреса якого на одиницю менша вмісту вказівника стеку SP. Молодші 8 біт адреси пересилаються у вічко пам’яті, адреса якого на два менша величини SP. Вміст SP зменшується на два. Виконання команд повернення здійснюється в зворотній послідовності. Із сказаного випливає, що переходу до підпрограми повинне передувати завантаження вмісту вказівника стеку SP, наприклад, командою LXI SP, ##. Завантаження повинно бути виконане при ініціалізації мікропроцесорної системи.
Умови переходу для полегшення процедури опису команд: NZ – не нуль (Z=0); Z – нуль (Z=l); NC – нема переносу (С=0); С – є перенос (С=1): Р0 – непарний результат (Р=0); РЕ – парний результат (Р=1); Р – плюс; М – мінус.
Команда безумовного переходу JMP ** передає керування команді, адреса якої вказана в другому і третьому байті. Другий байт в усіх командах переходів вказує молодший байт адреси, третій – старший. Для виконання команди виконуються три цикли читання, всього витрачається 10 тактів.
Команди виду J(умовa) ** виконується за три цикли, або 10 тактів за таким алгоритмом: якщо вказана умова виконується, то керування передається команді, адреса якої вказана в другому і третьому байті, якщо вказана умова не виконується, то послідовність виконання команд не змінюється, тобто вміст PC зберігає своє значення. Отже, утворюється група з восьми команд переходів за вмістом прапорців.
Команда PCHL забезпечує заміну вмісту PC на вміст регістрів HL. Вміст регістру Н пересилається в старші 8 біт PC, а вміст регістру L – в його молодші 8 біт. Отже, ця команда схожа на JMP, але міститься в одному байті, і для її виконання треба один цикл з п’яти тактів. Ця команда не аналізує прапорці.
Звичайний безумовний перехід до підпрограми здійснює команда CALL **. На її виконання, як і на інші команди переходу до підпрограми за умовою, потрібно п’ять машинних циклів. Три цикли витрачається на читання команди і два – на запис в стек адреси повернення. Всі цикли однакові за структурою, всього потрібно 18 тактів. Опис команд умовних переходів до підпрограми відповідає раніше розглянутим переходам за умовою.
Команда безумовного повернення RET забезпечує відновлення вмісту PC за адресою вершини стеку, після чого вміст вказівника стеку SP збільшується на два. Отже, команда виконується за три цикли, які складаються з 10 тактів. Умовне повернення з підпрограми дозволяє програмісту організувати програмну одиницю з кількома точками виходу з неї. На аналіз відповідного прапорця витрачається два додаткових такти. Оскільки послідовність дій при виконанні групи команд виду Щумова) аналогічна безумовному поверненню, то більш докладний їх опис не потрібен.
Розглянемо практичні приклади програми з використанням команд переходів. Простий приклад можна скласти з двох безумовних переходів, що передають керування один одному (рис. 7.2).
8000 СЗ 50 80 JMP 8050
…………………………………
…………………………………
8050 С3 00 80 JMP8000
Рис. 7.2. Програма з використанням переходів.
Виконання програми в покроковому режимі демонструє можливість передачі керування як в сторону збільшення адреси, так і в сторону зменшення.
Розглянемо приклад використання звертання до підпрограм, вкладених одна в другу (рис. 7.3). При виконанні цієї програми необхідно спостерігати за вмістом вказівника стеку і лічильника команд.
Адреса |
Код команди |
Мнемоніка команди |
SP |
PC |
8000 8003 8006 ...... |
...... |
LXI SP, 8200 CALL 8050 NOP ...... ...... |
8200 81FE 8200 |
8003 8050 8007 |
8050 8053 |
|
CALL 8100 RET |
81FC 8200 |
8100 8006 |
...... |
...... |
...... ...... |
|
|
8100 8103 |
|
CALL, 8150 RET |
81FA 81FE |
8150 8053 |
...... |
...... |
...... ...... |
|
|
8150 8151 |
|
NOP RET |
81FA 81FC |
8151 8103 |
Рис. 7.3. Послідовність виконання вкладених підпрограм.
В покроковому режимі роботи цікаво спостерігати за послідовністю зміни вмісту PC (8000, 8050, 8100, 8150, 8151, 8103, 8053, 8006, 8007), при сумісному розгляді якої видна черговість виконання команд алгоритму.
Для ілюстрації виконання команд умовних звертань до підпрограм і повернення з них введемо в програму вивчені раніше команди, (рис. 7.4). Спостерігати за ходом зміни вмісту вказаних регістрів рекомендується самостійно.
Послідовність дій при виконанні програми:
1) аналізується вміст регістру акумулятора А на його рівність 0;
2) якщо ця умова задовольняється, то здійснюється перехід до підпрограми. В підпрограмі вміст акумулятора інкрементується і аналізується;
3) якщо задовольняється умова команди повернення, то вона виконується, інакше — виконується наступна команда підпрограми;
4) після повернення в точку звертання до підпрограми акумулятор двічі декрементується і знову виконується звертання до тієї ж підпрограми. її виконання і повернення в основну програму здійснюється так, як було описано раніше.
Адреса |
Код команди |
Мнемоніка команди |
|||
8000 |
31 00 82 |
LXI SP, 8200 |
|||
8003 |
AF |
|
|
XRA А |
|
8004 |
СС 50 80 |
CZ 8050 |
|||
8007 |
3D |
|
|
DCR А |
|
8008 |
3D |
|
|
DCR А |
|
8009 |
С4 50 80 |
CNZ 8050 |
|||
8050 |
ЗС |
|
|
INR А |
|
8051 |
С8 |
|
|
RZ |
|
8052 |
00 |
|
|
NOP |
|
8053 |
C0 |
|
|
RNZ |
|
Рис. 7.4. Програма з використанням умовних переходів до підпрограми і повернення.
Вивчення розглянутих прикладів дає елементарні навички в області програмування на низькому (з точки зору алгоритмічної мови) рівні.