Апаратне і програмне забезпечення простих мікропроцесорних систем

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ

Державна освітня установа вищої НАУКИ

ДОНСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

АПАРАТНЕ ТА ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ ПРОСТИХ МІКРОПРОЦЕСОРНИХ СИСТЕМ

Методичні вказівки

до курсової роботи по розділу

«Електроніка та мікропроцесорна техніка»

Ростов-на-Дону 2006

1. Мета роботи

Набуття практичних навичок структурних блок-схем і лістингів програм мовою «Асемблер» для простих мікропроцесорних систем (МП-систем) управління різними процесами.

2. Типові структури блок-схем алгоритмів обробки даних

Для успішного виконання завдань курсової роботи студентам необхідно ознайомитися з набором команд процесора КР580 / 1 /, а також до вимог, що пред'являються до складання програм мовою «Асемблер» / 2 /, / 3 /, / 4 /, призначених для мікропроцесорних систем автоматичного управління різними вимірювальними і технологічними процесами.

Набір команд мікропроцесора є основою для розробки структурної схеми машинних команд. За цією схемою слід лише написання та кодування програми. Тому структурна схема повинна бути настільки детальною, щоб кожен блок міг бути представлений не більше, ніж трьома командами.

Будь-яка структурна схема може бути побудована шляхом комбінації декількох базових блоків: функціональних (послідовних), циклу (повторення), розгалуження (альтернативного рішення).

На рис. 1 представлені типові блоки структурних схем алгоритмів, які широко використовуються в програмах обробки даних.

Послідовна структура - найпоширеніша (рис. 1, а), вона означає, що дії повинні бути виконані один за одним. Показана на рис. 1, б структура ЯКЩО-ТО-ІНАКШЕ застосовується в тих випадках, коли необхідно реалізувати програмний перехід до однієї з двох обчислювальних процедур в залежності від виконання деякого перевіряється умови. Структура ЯКЩО-ТО (рис. 1, в) є спрощення попередньої і використовується у випадках, коли необхідно реалізувати одну обчислювальну процедуру в залежності від перевіряється умови. Структура РОБИ-ПОКИ використовується для перевірки умови закінчення циклу (рис. 1, г). Структура ПОВТОРЮЮ-ДО-ТОГО-ЯК (рис. 1, д) аналогічна попередньої, але порядок проходження операторів тут інший: процедура виконується до перевірки умови. Структура ПРОЦЕС-ПОКИ (рис. 1, е) представляє собою об'єднання двох попередніх структур. І, нарешті, на рис. 1, ж представлена ​​структура РОБИ-В-ЗАЛЕЖНО-ОТ, за допомогою якої здійснюється вибір дії при багатозначних рішеннях і яка використовується для заміни ланцюжків структур ЯКЩО-ТО-ІНАКШЕ.

Всі перераховані блоки в різних комбінаціях зустрічаються в алгоритмах виконання програм обробки даних.

3. Програмна реалізація типових функцій управління

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

- Опитування стану двійкового датчика;

- Очікування події;

- Сканування групи позиційних датчиків;

- Формування тимчасових затримок;

- Відшукання мінімального або максимального значення вводиться масиву параметрів;

- Операції сортування і т.п.

Нижче наводяться деякі способи програмного забезпечення типових функцій управління процесами стосовно МП КР580ВМ80.

На рис. 2. показана схема підключення контакту двійкового датчика до вхідного порту МП-системи. Якщо контакт S розімкнений, то на вході D 5 порту введення присутній сигнал логічної одиниці; якщо контакт S замкнутий, то на D 5 - логічний нуль. Необхідно в деякій частині правляє програми МП-системи окропити значення сигналу на вхід D 5 порту 04 і в залежності від його значення (0 або 1) передати управління фрагменту програми з міткою, наприклад, LABEL A (якщо D 5 = ​​0) або за адресою, зазначеною міткою LABEL В (якщо D 5 = ​​1).

Рис. 2. Схема опитування двійкового коду

На рис. 3, а наведена блок-схема, а на рис. 3, б програма «INPKEY» (введення ключа), що реалізує процедуру опитування двійкового датчика. Символічне ім'я програми «INPKEY» використовується в якості мітки початковій команди цієї програми. При програмуванні з використанням підпрограм можна звертатися до цієї підпрограмі опитування двійкового датчика по команді: CALL, адреса INPKEY.

Рис. 3. Блок-схема і лістинг програми опитування двійкового датчика

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

Якщо потрібно по ходу виконання програми, що управляє призупинити виконання її команд до тих пір, поки в результаті процесів, що відбуваються в об'єкті управління, не замкнеться контакт S датчика переміщення, то можна використовувати підпрограму з символічним ім'ям «NUNT» (засідка), блок-схема якої наведена на рис. 4, б.

Рис. 4. Схема підключення контакту двійкового датчика до порту введення МП-системи (а) і блок-схема алгоритму очікування події

Основна програма МП-системи багато разів по команді CALL, адреса NUNT, може викликати цю підпрограму. З блок-схеми алгоритму видно, що програма повинна постійно опитувати значення сигналу на вході D 2 порти 07 до тих пір, поки воно не стане рівним нулю (контакт датчика розімкнений), і в цьому випадку продовжити виконання основної програми МП-системи. Якщо перехід до циклу очікування події з основної програми здійснюється за командою CALL, адреса NUNT, то повернення до неї з процедури NUNT виконується за командою RET, що стоїть в кінці підпрограми.

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

На рис. 5. показана схема підключення МП-системи до деякого виконавчого механізму об'єкта управління через порт виводу інформації.

Рис. 5. Схема формування керуючого сигналу

Припустимо, що даний виконавчий механізм працює за принципом «включити-виключити», тобто може управлятися двійковим вихідним сигналом МП-системи («1» - включити, «0» - вимкнути).

Підпрограма формування такого управляючого впливу проста і складається всього з двох команд. Для включення виконавчого механізму використовується підпрограма «ON»:

ON: MVI A, 02; завантажити в акумулятор код 000.0010

OUT, 03; видати керуючий байт в порт 03.

Для виключення виконавчого механізму можна використовувати підпрограму «OFF»:

OFF: XRA A; обнулити акумулятор

OUT, 03; видати байт 0000 0000 в порт 03.

(Вивести вміст акумулятора байт 0000 0000 в порт 03).

У тому випадку, якщо до решти семи висновків вихідного порту 03 приєднуються інші виконавчі механізми, формується не двійкове керуючий вплив, а байт керуючого слова, де кожному розряду ставиться у відповідність 0 або 1 в залежності від того, які механізми повинні бути виключені або включені.

Програмна реалізація тимчасової затримки використовує метод програмних циклів, при якому в будь-якій регістр блоку регістрів загального призначення (РОН) мікропроцесора завантажується число, яке при кожному проході циклу зменшується на одиницю. Так продовжується до тих пір, вміст регістра-лічильника не стане рівним нулю, що інтерпретується програмою як момент виходу з циклу. Час затримки при цьому визначається числом, завантаженим в регістр-лічильник, і часом виконання команд, що утворюють цикл. Схема алгоритму такої програми показана на рис. 6.

Рис. 6. Блок-схема тимчасової затримки

Програма має символічну назву «TIME» і, у разі виклику її основною програмою по команді CALL, адреса TIME, повинна завершуватися командою повернення RET.

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

Текст програми, що відображає структуру алгоритму, показаного на рис. 6, наступний:

TIME: MVI B, X; завантаження регістра У числом Х

COUNT: DCR B; зменшення на 1 вмісту

регістра У JNZ, адреса COUNT; повторити цикл, якщо В ≠ 0

RET; повернення в основну програму, якщо В = 0.

Для одержання необхідної тимчасової затримки необхідно визначити значення числа Х, що завантажується в регістр В. Визначення числа Х виконується на основі часу виконання команд, що утворюють дану підпрограму. При цьому необхідно враховувати, що команди MVI B, X і RET виконуються одноразово, а число повторень команд DCR B і JNZ, адреса COUNT дорівнює числу Х, завантажуваного в регістр В. Крім того, звернення до підпрограми тимчасової затримки здійснюється по команді CALL, адреса TIME, час виконання якої також необхідно враховувати при підрахунку тимчасової затримки. В описі команд МП КР580ИК80 вказується, за скільки тактів основної частоти синхронізації виповнюється кожна команда МП. На основі цих даних можна записати:

CALL, TIME - 17 тактів - 8,5 мкс;

MVI B, X - 7 тактів - 3,5 мкс;

DCR B - 5 тактів - 2,5 мкс;

JNZ, адреса COUNT - 10 тактів - 5,0 мкс;

RET - 10 тактів - 5,0 мкс.

Таким чином, одноразово виконувані команди (CALL, MVI, RET) у цій підпрограмі вимагають 17 мкс (8,5 +3,5 +5,0). Отже, для отримання необхідної затримки в 250 мкс необхідно команди DCR B і JNZ, COUNT стільки разів, щоб час їх виконання склало 233 мкс, тобто (250-17). Однак час виконання цієї пари команд складає (2,5 +5,0). Тому, якщо взяти Х = 31, можливо отримання тимчасової затримки 232,5 мкс.

Якщо точність подпрограммной реалізації тимчасової затримки тривалістю 250 мкс з похибкою - 0,5 мкс задовольняє умовам завдання, то на цьому розробка програми закінчується.

Виходячи з наведеного розрахунку, запишемо текст підпрограми TIME:

TIME: MVI B, 31; завантаження в регістр У числа 31

COUNT: DCR B; декремент регістра У

JNZ, адреса COUNT; цикл, якщо В ≠ 0

RET; повернення в основну програму.

У тому випадку, якщо точність представлення тимчасового інтервалу 250 мкс з похибкою - 0,5 мкс не задовольняє розробника, можна поступити двояко:

- Реалізувати підпрограму точної затримки на 50 мкс і п'ятикратно повторити її виклик;

- Шляхом внесення до підпрограму порожніх операцій NOP і відповідної зміни набору команд (з метою усунення тимчасового неузгодженості 0,5 мкс) забезпечити точну тимчасову витримку.

У багатьох випадках застосування МП-систем потрібно сформувати тривалі тимчасові затримки (секунди, хвилини, години і т.д.). Зробити це при частоті, рівній 2МГц з використанням раніше описаного методу неможливо, так як максимальної ємності реєстрової пари FFFF не вистачить для того, щоб представити число Х, достатню для формування затримки в 1 секунду. Сформувати таку велику для МП затримку можна з використанням методу вкладених циклів (як показано на рис. 7).

З метою отримання затримки, рівної 1 хв, основна керуюча програма може 60 разів здійснювати виклик підпрограми ONESEC. Для цього числа 60 завантажується, наприклад, до реєстру В, який виконує функції декрементного лічильника секунд, і після кожного прогону підпрограми ONESEC його вміст зменшується на 1. Текст програми «ONESEC» наводиться нижче.

ONESEC: MVI B, FF; лічильник зовнішніх циклів

L 1: MVI C, FB; лічильник внутрішніх процедур

L 2: NOP; точна підгонка часу

внутрішнього циклу

NOP;

NOP; час

NOP;

DCR C; декремент лічильника внутрішніх процедур

JNZ, адреса L 2; повернення у внутрішній цикл, якщо С ≠ 0

DCR В; декремент лічильника зовнішніх циклів

JNZ, адреса L 1; повернення в зовнішній цикл, якщо В ≠ 0

RET

Рис. 7. Алгоритм затримки на 1 секунду

Блок-схема типової процедури збору та формування в ОЗУ МП-системи масиву даних від одного джерела показана на рис. 8. Джерелом даних, що вводяться є порт введення з символічним адресою NN, 8100 - початковий адресу масиву даних, регістр С використовується як лічильник даних і реєстрова пара HL використовується командами з побічно-реєстрової адресацією в якості покажчика даних; ETX - знак-термінатор «кінець масиву» .

Рис. 8. Типова процедура збору даних

Програма має вигляд:

LXI H, 8100; запис початкового адреси

8100 → (H + L)

MVI C, C, 00; лічильник = 0

SAVE: IN, NN; введення даних з порту в А

MOV M, A, перенос даних А → клітинку ОЗУ,

адреса якої в (H + L)

INX H; (H + L) = (H + L +1)

INR C; лічильник = лічильник +1

SUI, ETX; перевірка термінатора

JNZ, адреса SAVE; продовження збору, якщо не 0

DONE

Якщо кількість слів даних відомо і зберігається в осередку з адресою 81 N 0, то програма збору даних буде мати вигляд:

LXI H, 8100;

LDA, 81 N 0; пересилання вмісту 81 N 0 → (A)

MOV C, A; лічильник = довжина масиву: А → (С)

SAVE: IN, NN;

MOV M, A;

INX H;

DCR C; лічильник = лічильник-1

JNZ, адреса SAVE; продовження збору, якщо не 0

DONE

Розглянемо кілька прикладів обробки масиву даних.

LDA COUNT; завантаження вмісту М 8200

(COUNT) → (A)

MOV B, A; завантаження лічильника: (В) ← (А)

LXI H, 8100; запам'ятовування в (H + L) адреси початку

масиву даних

SUB A; скидання акумулятора: (А) ← 0

ADDN: ADD M; додаток елемента М + (А) → (A)

INX H; перехід до наступного адресою

(H + L) ← (H + L +1)

DCR B; декремент лічильника: (В) ← (В-1)

JNZ, адреса ADDN; організація циклу, якщо не 0

DONE

LDA COUNT; завантаження вмісту

М (COUNT) → (A)

MOV B, A; організація рахунки в регістрі В:

(В) ← (А)

LXI H;

NEWMX: MOV A, M; завантаження нового максимуму

NEXTE: DCR B; декремент лічильника: (В) ← (В-1)

JNZ, адреса DONE; перевірка закінчення циклу: якщо 0,

то стрибок на адресу мітки DONE

INX H; (H + L) ← (H + L +1)

CMP M; порівняння з максимумом

J С, адреса NEWMX;

J МР, адреса NEXTE;

DONE

Література

1. Г.І. Пухальський. Програмування мікропроцесорних систем. Навчальний посібник для Вузів - М. Політехніка, 2002.

2. В.С. Ямпольський. Основи автоматики та електронно-обчислювальної техніки. - М.: Просвещение, 1991.

3. Л.М. Ананченко, І.Є. Рогов. Складання алгоритмів та програм на мові «Асемблер» для управління технологічними процесами: Метод. вказівки - Ростов-на-Дону: ДДТУ, 1993 р.

4. Л.М. Ананченко. Набір команд мікропроцесора КР580ИК80: Метод. вказівки - Ростов-на-Дону, РІСХМ, 1991.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Методичка
54.2кб. | скачати


Схожі роботи:
Апаратне і програмне забезпечення простих мікропроцесорних систем 2
Апаратне і програмне забезпечення
Функціональна спрямованість програмне та апаратне забезпечення АРМ Нормоконтролер
Основні поняття та програмне забезпечення систем реального часу
Програмне забезпечення вбудованих систем управління на базі однокристальних мікропроцесорів
Основи мікропроцесорних систем
Методи діагностування мікропроцесорних систем керування
Програмне забезпечення ПК Cистемне програмне забезпечення
Організація та застосування мікропроцесорних систем обробки даних і управління
© Усі права захищені
написати до нас