Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема 19. Структура управління МП Intel 8080

Приклад 13. Порівняння символьних рядків

Приклад 12. Перетворення із коду ASCII в десяткову систему

Щоб перетворити цифру з коду ASCII в десяткову систему, достатньо відняти від її коду значення 30H (нуль в коді ASCII). В програмі необхідно також перевірити, чи є символ, що перетворюється цифрою.

ORG 800H;

SUI ‘0’; завантажити символ в коді ASCII

CPI 10; відняти нуль в коді ASCII A<10, Cy=1

JC DEC; результат менше 10?

MVI A,0FFH; символ не є десятковою цифрою

DEC: STA ADDR2; запам’ятати результат

HLT

ADDR1: DB 36H

ADDR2: DB 0

END

 

В багатьох задачах необхідно розпізнавати рядки символів в коді. Ці рядки можуть бути командами, ідентифікаторами, іменами, повідомленнями або числами. Розпізнавання складається в перевірці співпадання деякого символьного рядка з заданим.

Нехай два рядка символів розміщені в пам’яті, починаючи з комірок ADDR1 та ADDR2 відповідно. В комірці ADD1 вказано довжину рядка. Програма надсилає в ADD2 нуль, якщо рядки співпадають та 0FFH в протилежному випадку.

ORG 800H CMP M

MVI C,0FFH JNZ D1

LXI H,ADD1 DCR B

MOV B,M JNZ D2

LXI D,ADDR2-1 D1: MOV A,C

D2: INX H STA ADD2

INX D HLT

LDAX D ADD1: DB 4

ADDR1: DB ‘CAT.’

ADDR2: DB ‘CAT,’

ADD2: DB 0

END

 
 


A10 A11

GND A14

D4 A13

D3 A12

D5 A15

D6 A9

D7 A8

D2 A7

D1 A6

D0 A5

-5V A4

RESET A3

HOLD +12B

INT A2

φ2 A1

INTE A0

DBIN WAIT

WR READY

SYNC φ1

+5V HLDA

 

Рис.19.1

 

 

На рис.19.1 показано розміщення виводів МП Intel 8080, де виводи

1. D0-D7 – створюють двохнаправлену шину даних розрядністю 8. В цю шину від периферійних пристроїв надходять в процесор дані. Від ОЗП або ПЗП надходять дані або команди (це відповідає режиму приймання). При цьому вивід 17 DBIN - приймання повинен знаходиться в стані логічної 1. Крім цього через ШД мікропроцесор видає байт інформації або в ОЗП або в периферійний пристрій. При цьому сигнал на виводі 18 WR - видача повинен відповідати рівню логічного “0”, тобто якщо 0, то МП видає інформацію через ШД.

2. Виводи А015 відповідають однонаправленій 16- розрядній шині адреси. Адреса є першою по відношенню до даних.

3. Входи 22 φ1 та 15 φ2 – сигнали двохфазного тактового генератора (ще їх називають тактуючими сигналами з імпульсами, що перекриваються).

4. При обміні даними бере участь сигнал готовності READY 23. Він випрацьовується пристроєм, що адресується або ОЗП, або ПЗП, або ПВВ. Тут може бути два випадки:

– пристрої, що адресуються можуть бути достатньо швидкодіючим. В цьому випадку сигнал готовності встановлюється постійно в стан логічної “1”. Він не чекає підтвердження про закінчення обміну даними. Це стосується ОЗП або ПЗП. Цей режим називають режимом обміну без циклу чекання;

– периферійний пристрій (ПВВ) має меншу швидкість, ніж швидкість МП, тому необхідно вводити цикл чекання. Він реалізується наступним чином: переводить сигнал готовності в стан логічного “0”. Логічний “0” для виводу 23 приводить до зупинки роботи МП. Одночасно МП на вивід 24 WAIT видає сигнал логічної “1”, що відповідає режиму чекання, який триває до тих пір поки ПВВ видасть сигнал готовності логічної “1” 23. Обмін даними завершується і МП переходить до виконання наступної команди.

5. Сигнал RESET 12 – встановлення випрацьовується поза процесором. При подачі логічної “1” МП встановлює своє регістри в початковий стан та РС=0. Після знімання сигналу RESET МП виставляє на ША логічний рівень “0” і починає виконувати програму з нульової комірки пам’яті.

6. Апаратне переривання МП оброблюється в випадку подачі логічної “1” на вивід 14 INT запит на переривання. Якщо переривання було дозволено ЕІ, то воно відбудеться і підтвердження в вигляді логічної “1” з’явиться на 16 контакті INTЕ підтвердження переривання. Сигнал INT повинен бути короткочасним, декілька мікросекунд. МП дозволяє здійснити багатократний доступ до пам’яті і до ПВВ в режимі захвату шин іншими конкуруючими МП або пультом керування. З цією метою використовується контакт 13 HOLD. Сигнал захвату шин надходить від МП і якщо МП звільнив зайняті шини, то підтвердження режиму захвату здійснюється по сигналу 21 HLDA.

Якщо на контакт 13 подати логічну “1”, то МП:

- завершить виконання поточної команди;

- відключить всі своє шини;

- через контакт 21 видасть логічну “1” підтвердження захвату шин і з цього моменту до ПЗП, ОЗП, ПВВ має доступ конкуруючий пристрій і він повинен виконувати функції МП по управлінні сигналами. (Режим захвату шин.)

7. Сигнал 19 призначено для видачі МП короткочасного імпульсу перед початком виконання кожної поточної команди.

 

 

<== предыдущая лекция | следующая лекция ==>
Програма Алгоритм | Структурне програмування
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.