Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Частина 2 посл 1 укр.doc
Скачиваний:
1
Добавлен:
07.05.2019
Размер:
1.8 Mб
Скачать

11.3 Порядок виконання роботи

11.3.1 Написати і виконати програму обміну регістровими парами, використовуючи команди запису в стек і відновлення для регістрів: ВС — > DE, DE — > HL, HL — > ВС.

Вихідні значення взяти довільно. Результати перевірити.

11.3.2 Написати і виконати програму побайтного додавання двох масивів без урахування переносу і запису результатів у перший масив, використовуючи для адресації обох масивів пари HL.

Адреси масивів і значення покажчика стека: перший масив – 0 – FFH, другий масив – 100H – 1FFH, ПС – B20H

11.3.3 Написати і виконати підпрограму, що містить виклик підпрограми, що виконує додавання чотирьох двубайтових величин. Вхідні величини передаються в підпрограму через стек, повернення результату в регістрову пару HL. Вихідні значення двубайтових величин узяти довільно.

11.3.4 Написати і виконати програму відповідно до алгоритму:

- заповнити масив (900H — 9FFH) константою ЕЕН;

- підрахувати контрольну суму масиву (без урахування переносу);

- заповнити масив (0A00H — 0AFFH) константою 11H;

- підрахувати контрольну суму.

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

11.3.5 Написати і виконати програму,яка викликає внутрішнє переривання через переповнення пам'яті (або апаратні).

11.3.6 Написати і виконати програму реалізуючу зовнішнє переривання, джерелом якого служить кнопка <ПЕРЕРИВАННЯ>.

11.4 Зміст звіту

Звіт повинен містити:

  • назву та мету роботи;

  • написані програми відповідно до завдань 11.3;

  • результати та висновки.

11.5 Контрольні запитання

1) визначення і характеристика області стека;

2) особливості запису і відновлення вмісту стека;

3) практична реалізація стека в МП КР580;

4) звертання і повернення з підпрограм;

5) організація переривань.

Лабораторна робота № 12 уведення,виведення і обмін інформацією

12.1 Мета роботи

Вивчення особливостей взаємодії мікропроцесора з зовнішніми пристроями.

12.2 Загальні відомості

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

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

Так як адресна шина порту шістнадцятирозрядна, значення адрес лежать у межах 0000Н...FFFFH, тобто МП може адресувати 65536 портів. Очевидно, що МП функціонально обмежений, що випливає з концепції його побудови. Вони функціонують як елементи СІ системи. З'єднання між окремими елементами системи складають інтерфейс. Інтерфейсом називають сукупність уніфікованих технічних і програмних засобів, необхідних для підключення певного функціонального пристрою до системи чи однієї системи до іншої. Звичайно інтерфейс є спільною межею між окремими пристроями, що обумовлюють розділ інформації. Серед багатьох властивостей інтерфейсу слід відзначити рішення завдань синхронізації, вибору напрямку передачі даних, узгодження рівнів і форм сигналів та ін. Уведення даних є по суті входженням до МП, а виведення - це вихід із МП. Як правило, МП є ядром всіх операцій, включаючи уведення/виведення за винятком операції прямого доступу до пам'яті, у якому він не бере участі, надаючи керування шинами даних і адрес переферійним пристроям.

Звичайно передача даних до МП і із нього здійснюється у формах:

- зчитування пам'яті;

- запис у пам'ять;

- зчитування з зовнішнього пристрою;

- запис у зовнішній пристрій;

- керування перериванням або скиданням.

Очевидно, що ША, ШД і ШК відіграють важливу роль у взаємних зв'язках елементів системи нарівні з програмними засобами. Крім того, у ряді випадків до складу інтерфейсу входять додаткові узгоджуючі і спеціалізовані пристрої: адаптери, контролери, регістри і т.п.

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

Контролер - керуючий, контролюючий чи оброблюючий інформацію пристрій, що реалізує строго визначену логіку реагування на сигнали і значення параметрів об'єкта керування. Представляє собою непрограмований автомат або автомат з незмінною програмою, спеціалізований на виконанні певного завдання. Широко застосовується для організації систем сполучення МП із ЗП, периферійними пристроями, пристроями переривань та прямого доступу до пам'яті і т.п. Використовуючи зазначені принципи і пристрої можна організувати взаємодію МП з іншими елементами даної МПС, а також між різними МПС, використовуючи необхідні датчики і перетворювачі сигналів, автоматизувати керування зовнішніми об'єктами. У системі команд КР580 передбачені дві команди взаємодії МП із зовнішніми пристроями: уведення і виведення восьмирозрядних даних.

За командою уведення зчитуються дані з зовнішнього порту, адреса якого задана у другому байті команди, до акумулятора МП. Формат команди:

IN PORT N,

де PORT N - адреса порту уведення.

По команді виведення здійснюється виведення даних з акумулятора МП у зовнішній порт, адреса якого указується в другому байті команди. Формат команди:

OUT PORT M

де PORT M - адреса порту виведення.

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

Як приклад розглянемо програму-драйвер прийому даних із клавіатури НМК і виведення на шестисигментний дисплей.

Вихідні дані і прийняті позначення:

- PORT A порт номер індикатора містить:

1) 20Н - 0 індикатор ( правий );

2) 10Н - 1 індикатор;

3) 08Н - 2 індикатор;

4) 04Н - 3 індикатор;

5) 02Н - 4 індикатор;

6) 01Н - 5 індикатор;

- адреса порту F8H.;

- PORT B - порт виведення даних (кодів відображуваного символу);

- адреса порту F9H;

- PORT C - порт стану клавіатури;

- адреса порту FAH.

Відображення символу на дисплеї здійснюється в такий спосіб: у порт А вводиться номер індикатора, а в порт В - код символу. Щоб відображені символи постійно були присутні на індикаторах дисплея, їх необхідно постійно регенерувати. Для цього використовується буфер регенерації, у якому зберігаються коди відображуваних символів і періодично виводяться в порт А і порт В. Щоб погасити індикатор, у порт А треба вивести номер даного індикатора, а в порт В - 0. При натисканні кнопки клавіатури в порт С встановлюються біти, що сигналізують про те, що є дані для уведення.

Запишемо в пам'ять коди програми уведення і відображення даних.

Таблиця 12.1

800

LXI H, 08AEH

21 AE 08

Обнулити буфер регенерації

803

MVI C, 06H

0E 06

805

MVI M, 00H

36 00

807

INX H

23

808

DCR C

0D

809

JNZ 805H

C2 05 08

80С

LXI H, 08AEH

21 AE 08

Регенерація дисплея

80F

MVI B, 20H

06 20

Завантажити порт В-номер мол. індикатора

811

MOV A, B

78

812

OUT PORT A

D3 F8

Виведення номера індикатора

814

MOV A, M

7E

А = М, код виведеного символу

815

OUT PORT B

D3 F9

Виведення символу на дисплей

817

IN PORT C

DB F9

Фіксація моменту натискання клавіші

819

ANI 74H

E6 74

81B

CPI 74H

FE 74

81D

MVI A, 00H

3E 00

Скидання виведеного символу

81F

OUT PORT B

D3 F9

821

JNZ 82EH

C2 2E 08

Перехід при натиснутій клавіші

824

INX H

23

HL=HL+1 адреса наступного символу

825

MOV A, B

78

Віднімання номера наступного індикатора

826

RRC

0F

827

MJV B, A

47

828

JNC 0811H

D2 11 08

Цикл регенерації і перевірки уведення

82B

JMP 080CH

C3 0C 08

Перехід до першого індикатора

82E

CALL 865H

CD 65 08

Виклик п/п затримки сигналу

831

IN PORT C

DB FA

Читання введених даних

833

MOV C, A

4F

834

IN PORT C

DB FA

Фіксація моменту відпускання клавіші

836

ANI 74H

E6 74

838

CPI 74H

FE 74

83A

JNZ 834H

C2 34 08

83D

CALL 865H

CD 65 08

Виклик п/п затримки сигналу

840

CALL 86FH

CD 6F 08

Виклик п/п перетворення коду

843

LXI H, 89EH

21 9E 08

Перетворення коду ASCII у код виведення

846

CPI A

FE 41

HL - адреса таблиці кодів

848

JC 84DH

DA 4D 08

А - код символу ASCII

84B

SUI 7

D6 D7

Індекс у таблиці кодів

84D

ANI OFH

E6 0F

84F

MOV E, A

5F

850

MVI D,O

16 00

852

DAD D

19

853

MOV E, M

5E

Код виведення символу

854

LXI H,8AEH

21 AE 08

Запис у буфер виведення

857

MVI D, 6

16 06 08

859

MOV A, M

7E

85A

MOV M, E

73

85В

MOV E, A

5F

85С

INX H

23

85D

DCR D

15

85E

JNZ 859H

C2 59 08

861

JMP 80CH

C3 0C 08

Продовжувати

864

NOP

00

П/п затримки сигналу, усунення дрижання контактів

865

LXI D,1000H

11 00 10

868

DCX D

1B

DE=DE-1

869

MOV A, E

7B

86A

ORA D

B2

86B

JNZ 868H

C2 68 08

86E

RET

C9

П/п перетворення коду клавіші в код ASCII, результат повернення в А

86F

MOV A, C

79

870

ANI 10H

E6 10

872

JNZ 877H

C2 77 08

875

MVI C, 0

0E 00

877

MOV A, С

79

878

ANI 64H

E6 64

87A

RAR

1F

87B

RAR

1F

87C

RAR

1F

87D

MOV C, A

4F

87E

MOV A, B

78

87F

ANI 3

E6 03

881

JNZ 897H

C2 97 08

884

MOV A, B

78

885

RAR

1F

886

RAR

1F

887

RAR

1F

888

CPI 4H

FE 04

88A

JNZ 88EH

C2 8E 08

88D

DCR A

3D

88E

ADD C

81

88F

ORI 00H

F6

891

CPI 3AH

FE 3A

893

RC

D8

894

ADI 07H

C6 07

896

RET

C9

897

DCR A

3D

898

MOV B, A

47

899

MOV A, C

79

89A

RRC

0F

89B

ADD B

80

89C

RET

C9

89D

NOP

00

Таблиця кодів виведених символів

89E

8A2

8A6

8AA

8AE

DB 3FH, 6H, 5BH, 4FH

DB 66H, 6DH, 7DH, 7H

DB 7FH, 6FH, 77H, 7CH

DB 39H, 5EH, 79H, 71H

буфер регенерації

Контрольна сума кодів уведеної програми (800H - 89DH) повинна дорівнювати 44Н.

Запустити програму командою <СТ> 800 <ВП>.

При натисканні на будь-яку кнопку клавіатури даних на правому індикаторі дисплея повинний відображатися уведений символ. Раніше уведений символ переміщається уліво на наступний індикатор. Вихід із програми здійснюється кнопкою <ПЕРЕРИВАННЯ>.

Клавіатура даних являє собою матрицю ключів розміром 4*4, що має вертикальні лінії (стовпчики) і горизонтальні лінії (рядки). Стовпчики скануються, тобто на них послідовно подаються сигнали з заданою частотою. Сканування може бути реалізоване МП, зсувовим регістром, двійковим лічильником і дешифратором. Вертикальні лінії і горизонтальні лінії зв'язані із схемою кодування. Матриця клавіатури при скануванні МП з'єднується з портами уведення/виведення . Для виконання сканування вертикальних ліній, виконання процедури багаторазового підтвердження факту замикання контактів ключа і виключення дрижання контактів, а також для формування вихідних сигналів потрібні спеціальні підпрограми.

Для відображення інформації на дисплеї використовуються букво-цифрові символи на основі сегментних структур, найчастіше із семи елементів. Шестнадцяткові цифри на такому індикаторі мають вид, показаний в табл.12.2.

Таблиця 12.2

Ключ

Код ключа

D0 D1 D2 D3

Коди ASCII

D0 D1 D2 D3

Код символу

D4 D5 D6 D7

0

0000

0011

0000

1

0001

0001

2

0010

0010

3

0011

0011

4

0100

0100

5

0101

0101

6

0110

0110

7

0111

0111

8

1000

1000

9

1001

1001

A

1010

0100

0001

B

1011

0010

C

1100

0011

D

1101

0100

E

1110

0101

F

1111

0110