МК
.pdfРис. 10. Схеми з’єднання вхідного (а) та вихідного (б) пристроїв мікроЕОМ.
71
|
|
|
|
Таблиця 12 |
|
|
|
|
Програма 6 |
||
|
|
|
|
|
|
Адреса |
Машинний |
Мітка |
Мнемокод |
Коментар |
|
код |
|
||||
|
|
|
|
|
|
0800 |
DВ 20 |
CNT |
IN 20 |
записати число з вхідного пристрою |
|
|
|
|
|
за адресою 20 в акумулятор |
|
|
|
|
|
|
|
0802 |
D3 30 |
|
OUT 30 |
записати число з акумулятора у |
|
|
|
|
|
вихідний пристрій за адресою 30 |
|
|
|
|
|
|
|
0804 |
С3 0008 |
|
JMPCNT |
перейти на CNT |
|
|
|
|
|
|
|
Організація умовних переходів у мікро-ЕОМ здійснюється за допомогою регістра ознак МП.
Регістр ознак має п'ять розрядів, кожний з яких встановлюється за певним правилом відповідно до виконання МП останньої команди.
Цими розрядами є:
1.Розряд переповнення C-CARRY. У нього записується 1, якщо під час виконання арифметичної команди або команди зсуву було переповнення акумулятора, в іншому разі в розряд записується 0;
2.Розряд знака S-SIGN. У нього записується 1, якщо під час виконання арифметичної або логічної команди в старшому, сьомому, розряді акумулятора записана 1, в іншому разі в розряд записується 0;
3.Розряд нульового результату Z-ZERO. У нього записується 1, якщо під час виконання арифметичної або логічної команди у всіх розрядах числа в акумуляторі є 0, в іншому разі в розряд записується 0;
4.Додатковий розряд переповнення АС – AUX, CARRY. У нього записується 1, якщо під час виконання команд в акумуляторі виникає одиниця,
перенесення з третього розряду числа;
5. Розряд парності Р-PARITY. У нього записується 1, якщо під час виконання команди кількість одиниць у розрядах акумулятора буде парною.
72
У багатьох випадках під час виконання програм необхідно перевіряти або змінювати (маскувати) стан одного або декількох розрядів числа в акумуляторі.
Це можна здійснити за допомогою наступних операцій:
1)логічного множення числа в акумуляторі і маски, яке очищає розряд числа, якщо у відповідному розряді маски записаний 0, і не змінює його, якщо в розряді маски записано 1;
2)логічного складання числа в акумуляторі і маски, яке встановлює розряд числа в 1, якщо в такому самому розряді маски записана 1, і не змінює його, якщо в цьому розряді записаний 0;
3)логічного "виключаюче АЛЕ" числа, в акумуляторі і маски, яке інвертує зміст розряду числа, якщо у відповідному розряді маски записана 1, і
не змінює його, якщо в цьому розряді записаний 0. Приклади використання цих команд наведені в табл. 13.
|
|
|
|
|
Таблиця 13 |
|
|
|
Приклади використання команд |
|
|
||
|
|
|
|
|
|
|
|
Машинний |
Число в |
|
|
Результат в |
|
Мнемокод |
акумуля- |
Маска |
Коментар |
акумуля- |
|
|
код |
|
|||||
|
торі |
|
|
торі |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
00111010 |
10101100 |
|
00101000 |
|
|
|
11111111 |
00100010 |
логічного |
00100010 |
|
|
|
00000000 |
00100010 |
00000000 |
|
|
|
|
множення числа |
|
|||
ANI(Dl) |
E6(D1) |
10101010 |
00100010 |
00100010 |
|
|
в акумуляторі з |
|
|||||
|
|
11110000 |
11111111 |
11110000 |
|
|
|
|
байтом D1 |
|
|||
|
|
00001111 |
11111111 |
00001111 |
|
|
|
|
|
|
|||
|
|
00100010 |
00000000 |
|
00000000 |
|
ORI (D1) |
F6 (D1) |
00111010 |
10101100 |
логічного |
10111110 |
|
|
|
00001111 |
00001111 |
складання числа |
00001111 |
|
|
|
11110000 |
00001111 |
в акумуляторі з |
11111111 |
|
|
|
|
|
байтом D1 |
|
|
XRI (D1) |
FE (D1) |
00111010 |
10101100 |
логічного |
10010110 |
|
|
|
00001111 |
00001111 |
“виключаю |
00000000 |
|
|
|
11110000 |
00001111 |
чого АЛЕ” числа |
11111111 |
|
|
|
|
|
в акумуляторі з |
|
|
|
|
|
|
байтом D1 |
|
|
73
Проведення логічних операцій можливе також із вмістом акумулятора і внутрішніми регістрами МП. У цьому разі команди однобайтні. Під час виконання всіх логічних команд задіюються розряди Z, S, Р, АС регістра ознак
(у розряд С записується 0). Це дозволяє перевіряти стан будь-якого розряду числа і виконувати умовні переходи в програмах. Програма маскування окремих розрядів числа (програма 7), записаного у вхідному пристрої, наведена далі. Програма містить результат маскування у вихідний пристрій (табл. 14).
Таблиця 14
Програма 7
Адреса |
Код |
Мітка |
Мнемокод |
Коментар |
|
|
|
|
|
|
|
0800 |
DB20 |
CNT |
IN 20 |
отримати число з |
|
вхідного пристрою |
|||||
|
|
|
|
||
|
|
|
|
|
|
0802 |
Е6 20 |
|
AM 20 |
виконати логічну |
|
|
операцію |
||||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
записати результат |
|
0804 |
D3 30 |
|
OUT 3О |
у вихідний |
|
|
|
|
|
пристрій |
|
0807 |
СЗ 0008 |
|
JMP CNT |
продовжувати |
|
|
|
|
|
|
Умовні переходи організовуються в програмах за допомогою команд умовних переходів. Під час виконання цих команд МП перевіряє стан відповідного розряду регістра стану. Якщо під час перевірки стану розряду регістра стану умова не підтверджується, то виконується наступна за порядком команда програми. Усі команди умовних переходів – трибайтні: перший байт містить код команди, другий і третій байти – адреси передачі управління.
Таким чином, команди умовних переходів дозволяють будувати розгалужені алгоритми і залежно від поточного значення результату виконання програми перейти на різні ділянки програми.
Далі наведена приведена програма (програма 8) для визначення 1 в
п'ятому розряді числа, записаного у вхідному пристрої (табл. 15). Програма використовує маскування числа і умовний перехід.
74
У наведених раніше програмах мав місце лише один цикл, в якому працювала мікро-ЕОМ. Програма очікування появи 1 у другому і п'ятому розрядах числа, записаного у вхідному пристрої (програма 9), містить два цикли (табл. 16).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 15 |
||
|
|
|
|
|
|
|
|
|
Програма 8 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Адреса |
|
Код |
|
Мітка |
Мнемокод |
|
|
Коментар |
|
|
|
||||
0800 |
|
DB20 |
|
WAITI |
IN 20 |
|
отримати |
число |
з |
вхідного |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
пристрою |
|
|
|
|
|
0802 |
|
Е6 20 |
|
|
|
ANI 0000100 |
перевірити стан п’ятого розряду |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
числа |
|
|
|
|
|
0804 |
СА 0008 |
|
|
JZ WAITI |
|
йти на W A I T , якщо в |
п’ятому |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
розряді був 0 (Z = 0) |
|
|
|
||
0807 |
|
CF |
|
|
|
MVI A FF |
закінчити виконання програми |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблиця 16 |
||
|
|
|
|
|
|
|
|
|
Програма 9 |
|
|
|
|
|
||
|
Адреса |
|
Код |
|
Мітка |
|
Мнемокод |
|
Коментар |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0800 |
|
|
DB20 |
|
WAITI |
|
|
IN 20 |
Отримати |
число |
з |
||||
|
|
|
|
|
|
вхідного пристрою |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
0802 |
|
|
E6 20 |
|
|
ANI 00000100 |
чи вимкнений другий |
||||||||
|
|
|
|
|
перемикач |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0804 |
|
CA 0008 |
|
|
|
JZ WAIT I |
якщо |
ні, |
то |
йти |
|||||
|
|
|
|
|
продовжити WAITI I |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
0807 |
|
|
3E FF |
|
|
|
MVI A FF |
якщо |
так, |
запалити |
|||||
|
|
|
|
|
|
світлодіоди |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0809 |
|
|
D3 30 |
|
|
|
|
OUT 30 |
вихідного регістра |
|
|
||||
|
080B |
|
|
DB 20 |
|
WAIT 2 |
|
|
IN 20 |
отримати |
число |
з |
||||
|
|
|
|
|
|
вхідного пристрою |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
080D |
|
|
E6 20 |
|
|
ANI 00000100 |
чи вимкнений п'ятий |
||||||||
|
|
|
|
|
перемикач |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
080F |
|
CA 0008 |
|
|
|
JZ WAIT 2 |
якщо |
ні, |
то |
йти |
|||||
|
|
|
|
|
продовжити WAIT 2 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
0812 |
|
|
3Е 00 |
|
|
|
MVI A 00 |
якщо |
так, |
погасити |
|||||
|
|
|
|
|
|
світлодіоди |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
0814 |
|
|
D3 30 |
|
|
|
|
OUT 30 |
вихідного регістра |
|
|
||||
|
|
|
|
|
|
|
|
|
||||||||
|
0816 |
|
С3 0008 |
|
|
|
JMP WAIT І |
Повторити програму |
75
Робота на навчальній ЕОМ
У навчальній мікро-ЕОМ вхідні і вихідні пристрої виконані за схемами,
показаними на рис. 10. Адреса вхідного пристрою – 20, а вихідного – 30.
Таким чином, усі програми, наведені в лабораторній роботі, завдання і порядок їх виконання можуть бути без будь-яких змін виконані на навчальній мікро-ЕОМ.
Порядок виконання роботи.
1.Ознайомитись зі схемою багаторежимного буферного регістра і схемою пристрою введення-виведення інформації, що програмується в паралельному коді КР580ИК55.
2.Вивчити способи організації обміну інформацією між мікро-ЕОМ і зовнішніми пристроями. Розглянути схеми під’єднання пристроїв введення-
виведення даних за різних способів обміну.
3.Ознайомитись з командами введення-виведення МП КР580ИК80, а
також тимчасовими діаграмами їх виконання.
4.Зобразити схеми під’єднання до мікро-ЕОМ пристроїв введення-
виведення, що використовуються для проведення лабораторної роботи.
5.Вивчити групу логічних команд і команд умовної передачі управління.
6.Ознайомитись з розрядами регістра ознак МП і правилами запису в них
1.
7.Ознайомитись з програмами 6, 7, 8, 9.
8.Самостійно розробити програми:
а) увімкнення світлодіодів вихідного пристрою, якщо число,
записане у вхідному пристрої, більше 3;
б) включення світлодіодів вихідного пристрою, якщо число, записане
увхідному пристрої, більше 3, але менше 8.
9.Видозмінити програму 8 так, щоб мікро-ЕОМ реагувала на 0 в п'ятому розряді у разі записаних 1 у всіх інших розрядах.
76
Завдання до лабораторної роботи
Завдання 1. Дослідити програму 6.
Порядок виконання завдання
1.Ввести в мікро-ЕОМ програму 6. Здійснити пуск програми.
2.Пересвідчитися, що під час виконання програми мікро-ЕОМ постійно переписує дані з вхідного пристрою у вихідний. Для цього за допомогою перемикачів вхідного пристрою змінити числа, записані в ньому. Інформація про числа в пристроях введення-виведення може відображатися світлодіодами.
Завдання 2. Дослідити програму 7.
Порядок виконання завдання
1.Ввести в мікро-ЕОМ програму 7. Здійснити пуск програми і дослідити результат її виконання за числом, записаним у вихідний пристрій.
2.Замінюючи в програмі 7 двобайтну команду ANI (D) на однобайтні
ANA A, XRA A, ORA А, дослідити результат їх виконання за числом,
записаним у вихідному пристрої.
Завдання 3. Дослідити програму 8.
Порядок виконання завдання
1.Ввести в мікро-ЕОМ програму 8. Здійснити пуск програми і пересвідчитися, що під час її виконання мікро-ЕОМ реагує лише на ті числа у вхідному пристрої, які містять 1 в п'ятому розряді. Після завершення виконання програми (виконання в програмі команди RSTI) в розряді 2 регістра стану записана 1.
2.Дослідити видозмінену програму 8, що дозволяє мікро-ЕОМ реагувати на 0 в п'ятому розряді у разі записаних 1 у всіх інших розрядах.
Завдання 4. Дослідити програму 9.
Порядок виконання програми
1. Ввести в мікро-ЕОМ програму 9. Здійснити пуск програми і
77
пересвідчитися, що за наявності 1 лише у другому розряді числа вхідного регістра світлодіоди вихідного регістра увімкнені і мікро-ЕОМ працює в циклі
WAIT 2 очікування появи одиниці в п'ятому розряді числа.
2.Записати 0 у другий розряд вхідного пристрою у разі увімкнених світлодіодів вхідного пристрою. Записати 1 в п'ятий розряд вхідного пристрою і пересвідчитися, що світлодіоди вихідного пристрою вимикаються і мікро-ЕОМ виконує цикл WAIT 1 програми.
3.Встановити 1 одночасно у другому і п'ятому розрядах числа у вхідному пристрої і перевірити, що мікро-ЕОМ послідовно виконує обидва цикли (WAIT 1 і WAIT 2) програми.
Завдання 5.
Дослідити програми, розроблені в п.8 завдання для самопідготовки.
Примітка. Програми, розроблені під час виконання п.8 завдання для самопідготовки, досліджуйте самостійно.
Зміст звіту
1.Схеми під’єднання зовнішніх пристроїв до мікро-ЕОМ.
2.Тимчасові діаграми процесу виконання мікро-ЕОМ команд введення-
виведення даних із зовнішніх пристроїв.
3.Самостійно розроблені і досліджені в процесі виконання лабораторної роботи програми, вказані в п.8 завдання для самопідготовки.
4.Повний перелік команд передачі управління по умов для МП КР580ИК80.
5.Повний перелік команд логічних операцій для МП КР580ИК80.
Завдання для самоконтролю
1. За допомогою яких команд мікро-ЕОМ може здійснювати введення-
виведення інформації ?
2. За скільки машинних тактів здійснюється введення-виведення даних за
78
командами IN (АО), OUT (АО) ?
3.Наведіть схеми з’єднання дешифраторів адреси і зовнішніх пристроїв для організації обміну інформацією із зовнішніми пристроями за допомогою різних команд.
4.Вкажіть переваги і недоліки різних методів адресації до зовнішніх пристроїв.
5.Під час виконання яких команд, наведених в програмі 7, задіюються розряди регістра стану МП?
6.На яких умовах записується 1 в кожний із розрядів регістра стану МП?
7.Перелічіть види логічних операцій МП, що виконуються.
8.Перелічіть режими роботи пристрою, що програмує введення-
виведення інформації в паралельному коді КР580ИК55.
9.Вкажіть відмінності в керуючих сигналах схем К589ИР12 і
КР58ОИК55 за використання їх у режимі введення-виведення інформації в мікро-ЕОМ.
10.Наведіть різні варіанти під’єднання зовнішніх пристроїв до мікро-
ЕОМ за допомогою схем К589ИР12 і КР580ИК55.
11. Розгляньте можливі способи організації обміну інформацією між двома мікро-ЕОМ в паралельному коді за допомогою схеми КР580ИК55.
Бібліографічний список
1.Горбунов В.Л., Панфилов Д.И., Преснухин Д.Л. Микропроцессоры Основы построения микро-ЭВМ.– М.: Высшая школа, 1984.
2.Балашов Е. П., Пузанков Д. В. Микропроцессоры и микропроцессорные системы. – М.: Радио и связь, 1981.
3.Прангишвили И.В. Микропроцессоры и микро-ЭВМ.– М.: Энергия,
1979.
4. Алексеенко А. Г., Галицын А. А., Иванников А. Д. Проектирование
радиоэлектронной аппаратуры на микропроцессорах.–М.: Радио и связь, 1984.
79
ЛАБОРАТОРНА РОБОТА №7
ПІДПРОГРАМА І СТЕК
Мета роботи: дослідження особливостей запису і звернення до підпрограм; вивчення методів використання стека під час створення програм.
Обладнання, прилади та інструменти: мікро-ЕОМ серії К580, МП ВІС КР580ІКЗО.
Загальні відомості
Пам'ять мікро-ЕОМ, побудованої на основі МПК серії К580, може мати не більш 65536 однобайтних вічок. З огляду на обмежені можливості пам'яті під час розробки програм потрібно намагатися зробити їх якнайкоротшими. З цією метою частина програми, що неодноразово повторюється, чи програма, що часто використовується, можуть бути оформлені у вигляді підпрограм – послідовностей команд, виконання яких може викликатись з будь-якого місця програми довільну кількість разів. Процес передачі керування до підпрограми називається її викликом. Дані й адреси, необхідні для роботи підпрограми, називаються вхідними параметрами. Результати роботи підпрограми, передані після завершення її роботи в основну програму, називаються вихідними параметрами.
Для виклику підпрограм і повернення з них використовуються команди CALL < А2> <А1> і RET.
Команда CALL < А2> < А1> завантажує в програмний лічильник МП вміст байтів < А2> < А1> , записаних у наступних двох адресах пам'яті після адреси, де записаний код команди, CALL (CD). Вміст байта < А2 > записується в молодший байт PCL програмного лічильника, а третій байт < А1> команди – у старший байт РСН програмного лічильника, при цьому МП ВІС автоматично зберігає в стеці адресу основної програми, до якої вона звертатиметься після виконання підпрограми.
Стек – спеціально організована область ОЗП, задіяна в мікро-ЕОМ для
80