Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МК

.pdf
Скачиваний:
31
Добавлен:
16.02.2016
Размер:
3.47 Mб
Скачать

Рис. 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