Федеральне агентство з освіти
Державна освітня установа
вищої професійної освіти
Далекосхідний державний технічний університет
(ДВПИ ім. В. В. Куйбишева)
Кафедра конструювання та виробництва радіоапаратури
Реферат
на тему:
«Мікропроцесорний комплект серії К580»
2010
Зміст
1. Організація центрального процесора
2. Підключення пам'яті
3. Підключення інтерфейсних програмованих ВІС
4. Програмна модель мікропроцесорної системи
5. Методи адресації та приклади команд
6. Програмування на мові асемблера
7. Програмування БІС паралельного інтерфейсу
8. Програмування таймера і контролера переривань
1. Організація центрального процесора
Мікропроцесор серії К580 має 8-розрядну шину даних і 16-розрядну шину адреси. Шина адреси забезпечує адресацію пам'яті об'ємом до 64 Кбайт і 256 портів вводу / виводу. Навантажувальна здатність виходів МП невелика (один ТТЛ - вхід), тому при побудові системної магістралі їх потрібно буферирован. МП має засоби обслуговування запитів переривання, засоби управління в режимах очікування і прямого доступу до пам'яті (режим захоплення).
Для побудови центрального процесора на основі ВІС К580ВМ80А (рисунок 1) додатково потрібні мікросхеми формування сигналів синхронізації (тактовий генератор К580ГФ24) і сполучення з системною магістраллю (системний контролер К580ВК28 і два шинних формувача К580ВА86).
Тактовий генератор виробляє не перекриваються позитивні імпульси F 1 і F 2 амплітудою 12 В (для роботи МП потрібно три джерела живлення: +12 В, +5 В, -5 В). При частоті тактових імпульсів 2 МГц вибирається кварцовий резонатор на 18 МГц. Час, необхідний для добування одного байта з пам'яті або пристроїв вводу / виводу, або для виконання найпростіших команд, називається машинним циклом. У загальному випадку час виконання команди складає 1-5 машинних циклів (М), кожен з яких включає 3-5 машинних тактів (Т). У другому такті Т2 кожного машинного циклу на шину даних МП видається байт стану (див. рисунок 2), який за сигналом SYNC фіксується в системному контролері SC і використовується для формування сигналів звернення до пам'яті (MEMR, MEMW) і пристроїв введення / виводу (IOR , IOW). Системний контролер виконує також роль буфера шини даних і формує сигнал підтвердження переривань INTA.
Машинний цикл 1 | Машинний цикл 2 | |||||||||||||||||||||||||||
Такт 1 | T акт 2 | T акт 3 | T акт 4 | T акт 1 | T акт 2 | T акт 3 | ||||||||||||||||||||||
F1 | ||||||||||||||||||||||||||||
F2 | ||||||||||||||||||||||||||||
SYNC |
Рисунок 2 - Діаграми синхронізації процесора на базі К580ВМ80А.
Буфер шини адреси реалізований за допомогою 8-розрядних шинних формувачів К580ВА86. При логічної одиниці на вході ОЕ (режим захоплення системної магістралі контролером ПДП) шина адреси МП переходить в стан разомкнутого виходу.
Робота за програмою є основним режимом роботи МП. Після системного скидання (при включенні джерела харчування він відбувається автоматично за рахунок RC-ланцюга, підключеної до входу RESIN тактового генератора) у програмному лічильнику встановлюється адреса нульова комірки пам'яті. Процесор зчитує байт інформації з цього осередку і розшифровує його як код операцію першої команди. Якщо команда двох-або трехбайтовая, то в подальших циклах вибираються відсутні один або два байти з наступних елементів пам'яті. Процесор виконує першу команду, а програмний лічильник формує адреса наступної команди, збільшуючи свій вміст після кожного читання з пам'яті. Команди, розташовані в послідовних комірках пам'яті, виконуються до тих пір, поки не зустрінеться команда переходу, стрибком змінює вміст програмного лічильника.
У процесі виконання програми МП може перейти в режим очікування (WAIT = 1), якщо немає сигналу готовності зовнішніх пристроїв RDIN. При появі цього сигналу робота відновлюється
Якщо дозволені переривання, то за сигналом запиту INT від зовнішнього джерела робота за програмою переривається для виконання спеціальної підпрограми обслуговування переривання. Останньою командою цієї підпрограми зазвичай пропонується повернення до виконання основної програми.
За сигналом HLD (запит ПДП) центральний процесор відключається від шин адреси і даних: буфера цих шин переходять в високоімпедансное стан.
2. Підключення пам'яті
Розглянемо варіант підключення до системної магістралі пристроїв пам'яті з використанням мікросхем перепрограмованих ПЗУ з ультрафіолетовим стиранням типу К573РФ5 і ОЗУ статичного типу К537РУ9 (рис.3). Кожна з мікросхем утворює сторінку пам'яті об'ємом 2 Кбайта, вибір потрібного слова з якої виробляється за допомогою адресних сигналів А0-А10. Вибір потрібної сторінки здійснює дешифратор К555ІД7 станом старших розрядів адресної шини A 11 - A 15. У даному прикладі осередку ПЗУ і ОЗУ займають у адресному просторі МП відповідно області 0000 H -07 FFH і 0800 H -0 FFFH.
Підключення виходів мікросхем пам'яті до шини даних проводиться з подачі логічного нуля на входи дозволу виходу ОЕ (сигнал MEMR). Напрямок передачі інформації в ОЗУ змінюється в залежності від сигналу на лінії MEMW шини управління. При необхідності можна включити ще шість сторінок ОЗУ або ПЗУ. Для цього буде потрібно ще шість мікросхем вибраного типу.
3. Підключення інтерфейсних програмованих ВІС
Розглянемо підключення до системної магістралі БІС паралельного інтерфейсу K 580 BB 55, програмованого таймера К580ВІ53 і контролера переривань К580ВН59 (рис.4).
Паралельний інтерфейс (PPI) дозволяє перемикати шину даних МП на роботу з одним з трьох портів введення / виводу: PA, PB, PC. Після системного скидання всі три порти налаштовані на режим введення інформації. При необхідності можна змінити режим роботи кожного з портів. Для цього через шину даних МП в регістр керуючого слова PPI (РУС1) програмно заноситься інформація, що управляє. Адресація до конкретного порту проводиться за допомогою адресних сигналів АТ та А1. При цьому сполученням A 1, А0 виду 00,01,10, 11 відповідають порти РА, РВ, PC і РУС1. Дешифрация старших розрядів адреси портів введення / виводу здійснюється дешифратором К555ІД7. Неважко встановити (див. рис.4), що портів паралельного інтерфейсу присвоєні адреси 80Н, 81Н, 82Н і 83Н. У розглянутому прикладі порт РА використовується для введення інформації в МП з восьми датчиків (імітуються лінійкою тумблерів S 0 - S 7), порт РВ - для виведення інформації на лінійку світлодіодів HL 0 - HL 7.
Програмований таймер (РТ) містить три 16-розрядних лічильника, що працюють па віднімання. Лічильники можуть бути запрограмовані для роботи в одному з шести режимів при двійковому або двійково-десятковому рахунку. Кожен з лічильників має тактовий вхід CLK, вхід дозволу рахунку GATE і вихід OUT (на малюнку виходи лічильників не показані). Командами введення і виведення можна здійснити початкове завантаження лічильників і прочитування їх станів в МП.
Адресація трьох лічильників та керуючого регістру таймера проводиться за допомогою двох адресних входів АТ та А1 і входу CS. Можна встановити (див. рис.4), що портам таймера відповідають адреси 84Н (Ст0), 85Н (СТ1), 86Н (СТ2) і 87Н (РУС2).
Контролер переривань (PCI) реалізує до восьми рівнів запитів на переривання (векторна система) з можливістю програмного маскування і зміни пріоритету. Приймаючи запити на переривання від зовнішніх пристроїв IR 0 - IR 7 (це можуть бути, зокрема, сигнали, що формуються таймером або паралельним інтерфейсом), контролер формує сигнал INT для мікропроцесора від того каналу, який в даний момент має найвищий пріоритет. Від МП контролер отримує сигнал підтвердження переривання INTA. Керуючі регістри контролера переривань мають адреси 88Н і 89 H.
При зверненні до портів введення / виведення, для адресації яких достатньо одного байта адресного коду, процесор дублює в старшому байті шини адреси вміст молодшого байта.
4. Програмна модель мікропроцесорної системи
З точки зору програміста мікропроцесор К580ВМ80А має такі доступні ресурси (мал. 5):
1) 8-бітовий акумулятор А і шість 8-розрядних регістрів загального призначення (РОН) В, С, D, E, H, L;
2) 8-бітовий регістр ознак F, в якому зберігаються п'ять ознак результату виконання арифметичних і логічних операцій в МП (біт знаку S, біт нуля Z, біт парності Р, біт перенесення С. біт додаткового перенесення АС);
3) 16-розрядний програмний лічильник (лічильник команд) "program counter "PC, в якому зберігається адреса наступної команди;
4) 16-розрядний покажчик стека "stek point "SP, який зберігає адресу комірки пам'яті, куди був записаний останній введений в стек байт.
Ряд команд МП маніпулює регістровими парами B, D, H, PSW (слово стану програми). Пара регістрів зазвичай містить або адреса комірки пам'яті, або два байти безпосередніх даних.
У початковій області пам'яті (зазвичай в ПЗУ) розташовується програма користувача. Потім (обов'язково в ОЗУ) йде пам'ять даних і стек. Стек - спеціально організована область ОЗУ, призначена для тимчасового зберігання даних або адрес. Число, записане в стек останнім, витягується з нього першим. Покажчик стека SP зберігає адресу останньої клітинки стека, в якій записана інформація. При виклику підпрограми в стеку автоматично зберігається адреса повернення в основну програму. Як правило, на початку кожної підпрограми зберігають в стеку вміст всіх задіяних при її виконанні регістрів, а в кінці підпрограми відновлюють їх із стека.
5. Методи адресації та приклади команд
Система команд мікропроцесора містить 78 базових команд (загальна кількість команд з урахуванням можливих модифікацій - 244): пересилання даних, обробки даних і управління ходом виконання програми.
Програма може безпосередньо складатися у вигляді послідовності машинних двійкових кодів команд, для більш компактної форми яких використовується їх шестнадцатірічное подання. Зручніше користуватися мнемонічними позначеннями команд, тобто писати її на мові асемблера. Спеціальна програма Асемблер може перевести за допомогою ЕОМ робочу програму МП в машинні коди. Але й при ручному трансляції (вона може знадобитися при виконанні лабораторних робіт на налагоджувальних пристроях) попередній запис програми на мнемонічною мові більш наочна.
Система команд мікропроцесора i 8080 використовує різні методи адресації даних:
пряма адресація (адреса порту вказується в другому байті команди введення даних у регістр акумулятор IN)
IN PA; (A) ¬ (PA) DBH КОП - код операції IN
80 H 2-байт - адреса порту PA
реєстрова пряма адресація (в команді задається код пари РОН, де знаходиться операнд даних)
INX H; (HL) ¬ (HL) +1 23 H КОП - код операції INX
реєстрова непряма адресація (адреса комірки пам'яті, де знаходиться операнд, визначається вмістом пари РОН)
ADD M; (A) ¬ (A) + ((HL)) 86 H КОП - код операції ADD
безпосередня адресація (операнд міститься у команді: молодший байт - у другому, старший байт - в третьому байтах команди)
LXI H, 850 H; (HL) ¬ 850 H 21 H КОП - код операції LXI
50 H 2-й байт
80 H 3-й байт
стекова адресація (адреса комірки пам'яті, яка містить операнд, знаходиться в покажчику стека SP)
PUSH PSW; ((SP) -1) ¬ (A), ((SP-2) ¬ (F), (SP) ¬ (SP) -2
F 5 H КОП - код операції запису в стек службового слова.
6. Програмування на мові асемблера
Мова асемблера допускає представлення всіх елементів програми в символічній (буквено-цифровій) формі, що відбиває їх змістовний сенс. В якості алфавіту допустимих символів прийнятий код ASCII (американський стандартний код для обміну інформацією). Кожен рядок асемблера відповідає одній команді або псевдокоманди (директиві) і може містити поля мітки, мнемоніки команди, операнда та коментарю. При наявності у програмі синтаксичних помилок асемблер в процесі трансляції видає повідомлення про помилки.
Мітка асоціюється з 16-бітовим адресою тієї комірки пам'яті, де буде розміщений перший байт зазначеної команди. Використання міток звільняє програміста від необхідності оперувати абсолютними адресами пам'яті при запису команд передачі управління. Мітка повинна починатися з літери та закінчуватися двокрапкою, може містити до шести символів. Не допускається використовувати в якості міток ключові слова (мнемоніки команд і директив). Символічне позначення повинно бути унікальним (може з'явитися в полі мітки тільки один раз).
Мнемокод команди може включати до чотирьох символів і разом з позначеннями операндів утворює групу ключових слів асемблера.
Поле операнда містить числові і символьні безпосередні дані, позначення регістрів і реєстрових пар МП, адреси пам'яті. Можливе використання виразів, що містять найпростіші арифметичні і логічні операції, обробку яких асемблер при трансляції виробляє у форматі 16-розрядних двійкових чисел. Операнд у вигляді рядка символів, укладеної в апострофи, транслюється в послідовність кодів ASCII цих символів.
Поле коментаря починається з точки з комою і повністю ігнорується асемблером. У полі коментаря фіксується зазвичай функція, яку виконує група команд в конкретній прикладній програмі.
Окрім команд програма може містити директиви асемблера:
ORG - Початковий адресу масиву, END - припинення трансляції, EQU - еквівалентність (привласнення), DB - визначити байт і тд.
Команди мікропроцесора серії К580 (i 8080)
Команда
N б
N т
Опис команди
Прапори
Група команд пересилки даних
MOV r1, r2
1
5
Пересилання даних з r 2 в r 1
MOV М, r
1
7
Пересилання даних з r в пам'ять
MOV r, М
1
7
Пересилання даних з пам'яті в r
XCHG
1
4
Обмін даними між парами регістрів HL і DL
MVI r, d8
2
7
Занесення байта даних у регістр
MVI M, d 8
2
10
Занесення байта даних в пам'ять
LXI rp, d16
3
10
Занесення двох байтів даних в пару регістрів (B, D, H, SP)
LDAX rp
1
7