Мікропроцесорна система вимірювання тиску в трубопроводі

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 04.03.2018
Размер файла 355,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Національний університет водного господарства і природокористування

Факультет прикладної математики та комп'ютерно-інтегрованих систем

Кафедра електроніки і автоматики

Курсова робота

з предмету:

«Мікропроцесорна техніка»

на тему:

Мікропроцесорна система вимірювання тиску в трубопроводі

Зміст

Вступ

1. Формалізація поставленої задачі

1.1 Постановка задачі

1.2 Алгоритм роботи вимірювача тиску

2. Апаратнізасоби мікропроцесорної системи:

2.1 Структурна схема мікропроцесорної системи управління

2.2 Технічні характеристики стенда «EV8031»

2.3 Мікроконтролер АТ89С51

2.4 Послідовний інтерфейс (порт RS2S)

2.5 Статична індикація

5.6 Виведення цифрової інформації

2.7 Знакосинтезуючий індикатор

2.8 Система переривань ОЕОМ AT89C51

3. Опис використаних команд при розробці програми

4. Програмне забезпечення системи

4.1 Блок схема алгоритму

4.2 Алгоритм підпрограми обробки переривань

4.3 Програма реалізації часових затримок

4.4 Програма та опис її основних команд

Висновки

Вступ

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

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

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

Таким чином, вхідна інформація для Асемблера представляється у вигляді текстового файлу, а вихідна інформація генерується у вигляді так званого файлу ОБ'ЄКТНИХ кодів (об'єктного файлу). Крім того, Асемблер виконує перевірку коректного опису команд. Іноді його називають компілятором (транслятором) з мови Асемблер.

У результаті роботи Асемблера є можливість крім об'єктного файлу одержати також файл ЛІСТИНГУ, що містить текстову інформацію про розміщення кодів команд і даних по конкретних адресах пам'яті мікроконтролера або мікропроцесорної системи.

Програма мовою Асемблера складається з логічних сегментів - блоків з елементів одного типу (команди, дані). Для МК51 ці логічні сегменти безпосередньо відповідають фізичним областям пам'яті (РПП, ЗПП, РПД, ЗПД, бітова область).

Для вказівки адрес команд і даних або значень даних зручно використати символічні імена (далі - просто імена), які відповідають фізичному або математичному змісту завдання. Використання імен робить програму більш зрозумілою для програміста і його колег, полегшує процес модифікації програми і її налагодження. Ім'я може починатися з літери і містити не більше 32 символів.

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

СТРУКТУРА ПРОГРАМИ:

- ДЕКЛАРАТИВНИЙ блок - опис символічних імен даних та адрес, які використовуються у програмі, а також директиви виділення пам'яті для змінних і вказівки значень констант (за допомогою директив Асемблера);

- блок ІНІЦІАЛІЗАЦІЇ - настроювання портів і блоків периферійних функцій на необхідні режими роботи, ініціалізація стека (за допомогою команд);

- блок РЕАЛІЗАЦІЇ алгоритмів і функцій керування (за допомогою команд).

Курсова робота виконується у програмному середовищі EV8031 IDE на учбово-відлагоджувальному стенді “EV8031/AVR”.“EV8031/AVR” - це програмно-апаратний комплекс, орієнтований на застосування у навчальних цілях, а також як засіб розробки програмного забезпечення для контролерів на базі однокристальної ЕОМ серії MSC-51 а також на базі контролерів архітектури AVR. Стенд містить мікропроцесорний контролер, пам'ять програм, пам'ять даних і різноманітні периферійні пристрої. Він дозволяє відлагоджувати програми, написані мовами Сі та асемблер.

Програмне середовище EV8031 IDE включає в себе наступні основні компоненти:

- текстовий редактор для створення та редагування асемблерного коду програми;

- асемблерний транслятор ASM51.EXE для транслювання асемблерної програми в шістнадцяткові коди;

- завантажувач EVAL32.EXE, який завантажує трансльовану програму в пам'ять програм стенда.

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

1. Формалізація поставленої задачі

1.1 Постановка задачі

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

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

1.2 Алгоритм роботи вимірювача тиску

При запуску програми тиск починає спадати автоматично.Тиск спадає з відповідною затримкою - 5%/хв. Спадання відбувається від значення 143кПа, яке задається відповідним регістром в коді програми. Якщо тиск зменшився до 123кПа, то програма вмикає сигналізацію у вигляді знакосинтезуючого індикатора. Також при заданому рівні програма зациклюється і сигналізація низького рівня тиску працює до тих пір поки тиск не почне збільшуватись вручну кнопкою SW15.

При збільшені рівня тиску кнопкою SW15 до 150кПа вмикається сигналізація високого рівня тиску. У якості сигналізації спрацьовує знакосинтезуючий індикатор, який світиться до тих пір поки буде збільшуватись тиск кнопкою SW15. Якщо ми припинили збільшувати тиск і він зменшився на 1кПа, то сигналізація високого рівня тиску вимкнеться.

Зміна тиску в трубопроводі повинна постійно відображатися на статичному індикаторі.

2. Апаратні засоби мікропроцесорної системи

2.1 Структурна схема мікропроцесорної системи управління

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

Узагальнена структура мікропроцесорної системи наведена на рис. 2.1. Коротко охарактеризуємо основні елементи, що входять до її складу.

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

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

ПЗП - це пристрій, в якому зберігається програма та сукупність констант. Вміст ПЗП не стирається при відключенні живлення. ПЗП використовується як пам'ять програми.

ОЗП - це пам'ять програми і даних, що належать обробці і результатам обчислень.

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

Рис. 2.1 Узагальнена структурна схема мікропроцесорної системи

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

Шина даних (ШД) - це двонаправлена шина: по ній дані можуть направлятися в МП або з нього. При цьому необхідно підкреслити, що одночасна передача даних в обох напрямках неможлива. Ці процедури рознесені в часі у результаті застосування часового мультиплексування.

По шині адреси (ША) інформація передається тільки в одному напрямі - від МП до модуля пам`яті або ПВВ.

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

Перевагою шинної структури є можливість вмикання до МПС нових модулів, наприклад кількох блоків ОЗП і ПЗП, для одержання потрібного обсягу пам`яті.

2.2 Технічні характеристики стенда «EV8031»

Учбово-відлагоджувальний стенд (УВС) “EV8031/AVR” - це програмно-апаратний комплекс, орієнтований на застосування у навчальних цілях, а також як засіб розробки програмного забезпечення для контролерів на базі однокристальної ЕОМ серії MSC-51 а також на базі контролерів архітектури AVR. Стенд містить мікропроцесорний контролер, пам'ять програм, пам'ять даних і різноманітні периферійні пристрої. Він дозволяє відлагоджувати програми, написані мовами Сі та асемблер.

· Мікроконтролер, що використовуються: AT89C51;

· Пам'ять програм - 16 Кбайт;

· Пам'ять даних - 16 Кбайт;

· Послідовна EEPROM пам'ять, 256 байт (AT24C02) у стандартній поставці;

· Два послідовних канали передачі даних RS232;

· Системний інтерфейс (див. додаток №4);

· Інтерфейс розширення (16 ліній вихід, 8 ліній вхід/вихід, порт P1 ОЕОМ), дивіться додаток №4;

· Пристрій дискретного введення інформації: 2 кнопки;

· Клавіатура 4х3;

· Статична світлодіодна індикація: 8 світлодіодів;

· Статична 4-розрядна семисегментна світлодіодна індикація;

· Цифроаналоговий і аналого-цифровий перетворювач (плата розширення);

· Генератор з фіксованою частотою генерації - близько 10 кГц, генератор зі змінною частотою генерації від 1 кГц до 50 кГц (плата розширення);

· Динамічна 4-розрядна семисегментна світлодіодна індикація (плата розширення);

· Знакосинтезуючий світлодіодний індикатор 5x7 1 шт. (плата розширення).

Розташування елементів стенда, призначення роз'ємів і перемичок наведене на рисунку 1.

Рис. 1 Розташування елементів стенда

Х1 - Системний інтерфейс з повним адресним простором;

Х10 - Інтерфейс розширення для підключення зовнішніх пристроїв з використанням паралельного інтерфейсу;

Х11 - Інтерфейс послідовного порта СОМ1 для зв'язку стенда з ПК;

Х12 - Інтерфейс послідовного порта СОМ2 для зв'язку стенда з іншими пристроями, що мають стандартний порт RS232C;

Х3 - Інтерфейс програмування AVR;

X14, X15 - Перемички підключення пристроїв шини I2C до процесора.

2.3 Мікроконтролер АТ89С51

На учбово-відлагоджувальному стенді (УВС) “EV8031/AVR” встановлений мікроконтролер AT89C51, побудований за процесорною архітектурою MCS-51, тобто він вміє виконувати асемблерні команди описані цим стандартом.

Стандарт був розроблений фірмою INTEL і в подальшому став основою для створення сучасних процесорів INTEL, але проблема створення маленьких пристроїв (мікроконтролерних систем) залишилася актуальною і до цього дня. В результаті першого мініатюрні процесори (i8031 - 1980-і роки) експлуатується до цих пір (наприклад в телефонах АВН).

Цифри 31 або 51 в назві процесора (контролера) вказують на приналежність до системи команд MCS-51

Цифра 83,87 або 89 вказує, що програма може бути як у зовнішній ПЗП, так і в ПЗП кристала

89 - багато разів (до 10000 раз) Перепрограмміруємая ПЗУ на кристалі, електрично стирається.

AT-назва фірми виробника ATMEL http://www.atmel.com/ або http://www.atmel.ru/ (російськомовний сайт ATMEL).

Крім того це може бути DS - Даллас, N-Intel, С-Philips ...

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

2.4 Послідовний інтерфейс (порт RS2S)

Послідовний порт це пристрої введення-виводу (I / O device). Як пристрій I / O це тільки шлях для передачі даних з комп'ютера і в нього. Існує також безліч інших пристроїв вводу-виводу, таких як послідовні порти, паралельні порти, контролери дисків, мережеві карти, пристрої універсальної послідовної шини USB, і т.п. Більшість комп'ютерів мають один або два послідовний порту. Кожний має 9-ти контактний роз'єм (іноді 25-ти контактний) (рис.1) на задній стінці системного блоку комп'ютера. Програми можуть відсилати дані (байти) через контакт відправки даних (output), та отримувати байти через інший контакт прийому даних (input). Всі інші контакти служать для управління і землі.

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

2.5 Статична індикація

Статична індикація реалізована на чотирьох статичних семисегментних індикаторах HG1 (розряди HG1.0, HG1.1, HG1.2, HG1.3). Звернення до них відбувається як до комірок пам'яті з адресами А000h (пара старших розрядів), А001h (або В000h; пара молодших розрядів).

Рис.2. Структурна схема статичної індикації.

DA - дешифратор адреси, необхідний для вибірки відповідного регістра;

R1-R4 - регістри, у яких тимчасово зберігається значення коду числа для відображення (відповідний регістр вибирається DA);

DC1-DC4 - семисегментні дешифратори, що перетворять двійковий код у семисегментний код;

HL1-HL4 - семисегментні індикатори;

ШД - шина даних, по якій здійснюється передача даних на індикацію.

Також, на стенді є ряд світлодіодів HL1-HL8, доступ до яких здійснюється як до комірки зовнішнього ОЗП за адресою A006h. Світлодіоди засвічуються записом логічних одиниць у відповідні розряди.

2.6 Виведення цифрової інформації.

Виведення цифрової інформації здійснюється за допомогою чотирьохрозрядного семисегментного індикатора HL2, що під'єднаний по схемі динамічної індикації. Керування динамічною індикацією здійснюється програмно. Сигнали коду цифри надходять із порта В, а сигнали вибірки відповідного індикатора - від ліній PC0, PC1 порта С.

HG1 - знакосинтезуючий індикатор 5х7;

HL2 - 4-х розрядна динамічна індикація;

HL1 - світлодіодний індикатор спрацьовування компаратора;

J1 - перемичка підключення до роз'єму J2 виходу генератора з постійною частотою генерації;

J2 - роз'єм підключення зовнішніх контрольно-вимірювальних приладів;

J3 - перемичка підключення до роз'єму J2 виходу генератора зі змінною частотою генерації;

J4 - перемичка підключення до роз'єму J2 виходу ЦАП;

J5 - підключення (як джерела зовнішнього переривання INT1) кнопки S11;

J6 - підключення (як джерела зовнішнього переривання INT1) зовнішнього джерела, яке може бути підключене через роз'єм JP1;

J7 - інтерфейс підключення плати розширення до стенда;

J8 - підключення до входу АЦП зовнішнього джерела сигналу, що підключене до роз'єму JP2;

J9 - підключення як джерело сигналу для АЦП змінного резистора R27;

R19 - змінний резистор, джерело вхідного сигналу для АЦП;

R4 - змінний резистор, змінює частоту генерації генератора імпульсів.

2.7 Знакосинтезуючий індикатор

цифрова інформація інтерфейс індикатор

Знакосинтезуюча індикація реалізована на платі розширення за допомогою матриці 5 на 7 світлодіодів HG1. Керування світлодіодною матрицею здійснюється по лініях РА0-РА4 і РС0-РС6.

2.8 Система переривань ОЕОМ AT89C51

Регістр дозволу переривань IE призначений для дозволу або заборони переривань від відповідних джерел. Позначення розрядів регістра IE показано в таблиці 4.1, а призначення зазначене нижче.

Таблиця 1. Регістр дозволу переривань IE

7

6

5

4

3

2

1

0

EA

X

X

ES

ET1

EX1

ET0

EX0

ЕА - керування всіма джерелами переривань одночасно. Якщо ЕА = 0, то переривання заборонені. Якщо ЕА = 1, то переривання можуть бути дозволені індивідуальними дозволами EX0, ET0, EX1, ET1, ES.

Х - резервний розряд.

ES - керування перериванням від послідовного порту. ES = 1 - дозволено. ES = 0 - заборонено.

ET1 - керування перериванням від таймера/лічильника 1. ЕТ = 1 - дозволено. ЕТ = 0 - заборонено.

EX1 - керування перериванням від зовнішнього джерела /INT1. EX1 = 1 - дозволено. EX1 = 0 - заборонено.

ЕТ0 - керування перериванням від таймера/лічильника 0. ЕТ0 = 1 - дозволено. ЕТ0 = 0 - заборонено.

EX0 - керування перериванням від зовнішнього джерела /INT0. EX0 = 1 - дозволено. EX0 = 0 - заборонено.

При читанні резервних розрядів відповідні лінії магістралі не визначені.

Регістр пріоритетів переривань IP призначений для установки рівня пріоритету переривання для кожного з 5-ти джерел переривання.

Позначення бітів регістра IP показано в таблиці 4.2, а призначення зазначене нижче.

Таблиця 2. Регістр пріоритетів переривань IP

7

6

5

4

3

2

1

0

Х

Х

Х

PSP

PT1

PX1

PT0

PX0

PX0 - установка рівня пріоритету переривання від зовнішнього джерела /INT0.

PT0 - установка рівня пріоритету переривання від Т/С0.

PX1 - установка рівня пріоритету переривання від зовнішнього джерела /INT1.

PT1 - установка рівня пріоритету переривання від Т/С1.

PS - установка рівня пріоритету переривання від послідовного порту.

X - резервний розряд.

Наявність у розряді IP "1" встановлює для відповідного джерела високий рівень пріоритету, а наявність у розряді IP "0" - низький рівень пріоритету. При читанні резервних розрядів, що відповідають лінії магістралі дані не визначені.

Система переривань використовується для того , щоб кнопками SW15-SW16, з використанням функцій переривань INT0-INT1 відповідно, змінювати значення частоти та скважності. Кнопкою SW15 змінюється скважність прямокутних імпульсів , а кнопкою SW16 - їх частота.

3. Опис використаних команд при розробці програми

НАЗВА КОМАНДИ

МНЕМОНІКА

КОП

БАЙТ

ЦИКЛІВ

ОПЕРАЦІЯ

Команди передачі даних

Пересилання в акумулятор з регістра (n=0...7)

MOV A,Rn

11101пт

1

1

(A) (Rn)

Пересилання в регістр із акумулятора

MOV Rn,A

11111пт

1

1

(Rn) (A)

Пересилання в розширений зовнішній ОЗП із акумулятора

MOVX @DPTR,A

11110000

1

2

((DPTR)) (A)

Команди арифметичних операцій

Додавання акумулятора з регістром (n=0...7)

ADD A,Rn

00101пт

1

1

(А) (А) + (Rn)

Інкремент акумулятора

INC A

00000100

1

1

(А) (А) + 1

Інкремент регістра

INC Rn

00001пт

1

1

(Rn) (Rn) + 1

Декремент акумулятора

DEC A

00010100

1

1

(A) (A) - 1

Декремент регістра

DEC Rn

00011пт

1

1

(Rn) (Rn) - 1

Команди логічних операцій

Логічне І акумулятора та регістра (n=0...7)

ANL A,Rn

01011пт

1

1

(А) (А) AND (Rn)

Команди передачі управління

Перехід, якщо акумулятор дорівнює 0

JZ rel

01100000

2

2

(PC) (PC)+2, потім якщо (А)=0, то (PC) (PC)+rel

Перехід, якщо акумулятор не дорівнює 0

JNZ rel

01110000

2

2

(PC) (PC)+2, потім якщо (А)<>0, то (PC) (PC)+rel

Декремент регістра і перехід, якщо не нуль

DJNZ Rn,rel

11011пт

2

2

(PC) (PC)+2, (Rn) (Rn)-1, потім якщо (Rn)<>0, то (PC) (PC)+rel

Порівняння акумулятора з константою і перехід, якщо не дорівнює

CJNE A,#data8,rel

10110100

3

2

(PC) (РС)+3, якщо (A)<> #data8, то (PC) (PC)+rel, при цьому якщо (A)<#data8, то (С) 1, інакше (С) 0

Порівняння регістра з константою і перехід, якщо не дорівнює

CJNE Rn,#data8,re1

10111пт

3

2

(PC) (РС)+3, якщо (Rn)<>#data8, то (PC) (PC)+rel,

при цьому якщо (Rn)<#data8, то (С) 1, інакше (С) 0

Повернення з підпрограми

RET

00100010

1

2

(PC 8-15) ((SP)); (SP) (SP)-1; потім (PC 0-7) ((SP)); (SP) (SP)-1

Повернення з підпрограми обробки переривання

RETI

00110010

1

2

(PC 8-15) ((SP)); (SP) (SP)-1; потім (PC 0-7) ((SP)); (SP) (SP)-1

Холоста команда

NOP

00000000

1

1

(PC) (PC)+1

4.Програмне забезпечення системи

4.1 Блок схема алгоритму

4.2 Алгоритм підпрограми обробки переривань

ORG 03h ;вектор переривання INT0

jmp int0

ORG 13h ;вектор переривання INT1

jmp int1

int0: ;підпрограма обробки переривання від INT0

calldelay ;виклик затримки delay

cjne R1,#050h,burp ; Порівняння регістра з константою і перехід, якщо не ;дорівнює

mov A,#00011111b

mov DPTR,#8000h ;установити в DPTR адресу знакосинтезуючого ;індикатора

movx @DPTR,A

mov A,#00h

mov DPTR,#8002h ;установити в DPTR адресу знакосинтезуючого ;індикатора

movx @DPTR,A

mov R2,#0FFh ; Завантаження в регістр константи

reti ; Повернення з підпрограми обробки переривання

int1: ;підпрограма обробки переривання від INT1

calldelay ;виклик затримки delay

calldelay ;виклик затримки delay

mov DPTR,#0A001h ;установити в DPTR адресу молодшої пари розрядів

;статичного індикатора

mov A,R1 ;запис в акумулятор значення регістра

movx @DPTR,A ;вивід на статичний індикатор значення регістра

calldelay ;виклик затримки delay

nop ;холоста команда

reti ;повернення з підпрограми обробки переривання

Підпрограма обробки переривань призначена для роботи з кнопками керування програмою SW15 таSW16. В даній підпрограмі описаний алгоритм який реалізує збільшеня тиску в трубопроводі при натисканні кнопки SW15.

4.3 Програмна реалізація часових затримок

delay:

mov R4,#01Fh ; запис у регістр R4 1F

C2: mov R5,#0FFh ; запис у регістр R5 FF

C4: djnz R5, C4 ; декремент регістра R5 і перехід на С4 якщо не нуль

djnz R4, C2 ; декремент регістра R4 і перехід на С2 якщо не нуль

ret ; вихід з підпрограми

udelay:

mov R4,#0FFh ; запис у регістр R4 FF

C22: mov R5,#0FFh ; запис у регістр R5 FF

C24: djnz R5, C24 ; декремент регістра R5 і перехід на С24 якщо не нуль

djnz R4, C22 ; декремент регістра R5 і перехід на С22 якщо не нуль

ret ; вихід з підпрограми

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

4.4 Програма та опис її основних команд

IE data 0A8h ;адреса регістра дозволу переривань

IP data 0B8h ;адреса регістра дозволу переривань

TCON data 088h ;адреса регістра контролю переривань

ORG 0 ;стартовий вектор

jmp start

ORG 03h ;вектор переривання INT0

jmp int0

ORG 13h ;вектор переривання INT1

jmp int1

start:

mov IE,#010000101b ;дозвіл зовнішніх переривань

mov IP,#000000101b ;встановлення найвищого пріоритету для

;зовнішніх переривань

mov TCON,#000000000b ;налаштування зовнішніх переривань по

;низькому рівні

mov A,#1

mov DPTR,#0A004h ;гасіння старшого розряду статичного індикатора

movx @DPTR,A

mov DPTR,#0A000h ;установити в DPTR адресу старшої пари

;розрядівстатичного індикатора

mov A,#01h ;запис в акумулятор 01

movx @DPTR,A ;засвітити число 1

mov R1,#043h ;запис в R1 початкового значення

mov R3,#00h

prog:

mov R0,#0Ah ;завантаження в регістр константи

ccc1:

calludelay

djnz R0,ccc1 ;декремент регістра і перехід, якщо не нуль

dec R1 ;декремент регістра

mov A,#0Fh ;завантаження в регістр константи

anl A,R1 ;логічне І акумулятора та регістра (n=0...7)

cjne A,#0Fh,fwd1 ;порівняння акумулятора з константою і перехід,

;якщо недорівнює

mov A,R1 ;запис в акумулятор значення регістра

subb A,#06h ;віднімання від акумулятора константи

mov R1,A ;пересилання в регістр із акумулятора

fwd1:

calldelay ;виклик затримки

mov DPTR,#0A001h ;установити в DPTR адресу молодшої пари

;розрядівстатичного індикатора

mov A,R1 ;запис в акумулятор значення регістра

movx @DPTR,A ;вивід на статичний індикатор значення регістра

mov DPTR,#0A006h ;установити в DPTR адресу діодної лінійки

mov A,#000h ;запис в акумулятор числа 000

movx @DPTR,A ;засвічення діодів

mov A,R1 ;запис в акумулятор значення регістра

cjne A,#023h,delbl ;порівняння акумулятора з константою і перехід,

;якщо не дорівнює

bl:

mov A,#00011111b ;завантаження в акумулятор константи

mov DPTR,#8000h ;установити в DPTR адресу знакосинтезуючого

;індикатора

movx @DPTR,A

mov A,#00h

mov DPTR,#8002h ;установити в DPTR адресу знакосинтезуючого

;індикатора

movx @DPTR,A

call DUN

cjne A,#023h,prog ;порівняння акумулятора з константою і перехід,

;якщо не дорівнює

jmpbl ;непрямий відносний перехід

delbl:

mov A,#00011111b ;завантаження в акумулятор константи

mov DPTR,#8000h ;установити в DPTR адресу знакосинтезуючого

;індикатора

movx @DPTR,A

mov A,#01111111b ;завантаження в акумулятор константи

mov DPTR,#8002h ;установити в DPTR адресу знакосинтезуючого

;індикатора

movx @DPTR,A

jmpprog ;непрямий відносний перехід

delay:

mov R4,#01Fh ;запис в R4 255

C2: mov R5,#0FFh ;запис в R5 255 мітка С2

C4: djnz R5, C4 ;декрем R5 і перехід на С4

djnz R4, C2 ;декрем R4 і перехід на С2

ret ;вихід із підпрограми

udelay:

mov R4,#0FFh ;запис в R4 255

C22: mov R5,#0FFh ;запис в R5 255 мітка С22

C24: djnz R5, C24 ;декрем R5 і перехід на С24

djnz R4, C22 ;декрем R4 і перехід на С22

ret ;вихід із підпрограми

int0: ;підпрограма обробки переривання від INT0

calldelay ;виклик затримки delay

cjne R1,#050h,burp ;порівняння регістра з константою і перехід, ;якщо не дорівнює

mov A,#00011111b

mov DPTR,#8000h ;установити в DPTR адресу знакосинтезуючого ;індикатора

movx @DPTR,A

mov A,#00h

mov DPTR,#8002h ;установити в DPTR адресу знакосинтезуючого ;індикатора

movx @DPTR,A

mov R2,#0FFh ;завантаження в регістр константи

reti ;повернення з підпрограми обробки

;переривання

int1: ;підпрограма обробки переривання від INT1

calldelay ;виклик затримки delay

calldelay ;виклик затримки delay

mov DPTR,#0A001h ;установити в DPTR адресу молодшої пари

;розрядів статичного індикатора

mov A,R1 ;запис в акумулятор значення регістра

movx @DPTR,A ;вивід на статичний індикатор значення регістра

calldelay ;виклик затримки delay

nop ;холоста команда

reti ;повернення з підпрограми обробки переривання

DUN: ;завантаження в регістр константи

mov R7,#0FFh

bh:

mov A,R7 ;запис в акумулятор значення регістра

jzburp ;перехід, якщо акумулятор дорівнює 0

mov R6,#0FFh ;завантаження в регістр константи

cc1:

djnz R6,cc1 ;декремент регістра і перехід, якщо не нуль

mov R6,#0FFh ;завантаження в регістр константи

cc2:

djnz R6,cc2 ;декремент регістра і перехід, якщо не нуль

dec R7 ;декремент регістар

jmpbh ;непрямий відносний перехід

burp:

calldelay ;виклик затримки delay

inc R1 ;інкремент регістра

mov A,#0Fh ;завантаження в акумулятор константи

anl A,R1 ;логічне І акумулятора та регістра (n=0...7

cjne A,#0Ah,fwd ;лорівняння акумулятора з константою і перехід,

;якщо не дорівнює

mov A,R1 ;запис в акумулятор значення регістра

add A,#06h ;додавання акумулятора з константою

mov R1,A ;пересилання в регістр із акумулятора

fwd:

calldelay ;виклик затримки delay

mov DPTR,#0A001h ;установити в DPTR адресу молодшої пари

;розрядівстатичного індикатора

mov A,R1 ;запис в акумулятор значення регістра

movx @DPTR,A ;вивід на статичний індикатор значення регістра

calldelay ;виклик затримки delay

RETI ;повернення з підпрограми обробки переривання

END

Висновки

Під час виконання курсової роботи з дисципліни "Мікропроцесорна техніка" я набув навичок у розробці мікропроцесорних пристроїв для систем автоматичного регулювання та їх програмного забезпечення мовою асемблера. Мною була написана програма для учбово-відлагоджувального стенду “EV8031/AVR” у програмному середовищі EV8031 IDE. Дана програма реалізую принцип роботи вимірювача тиску у трубопроводі.При розробці програми мені довелося працювати з двома індикаторами, а зокрема, з статичним індикатором та знакосинтезуючим.

В основній програмі використані підпрограми, основними з яких є програми обробки переривань та програми затримки. В ході виконання курсової роботи використали багато команд для роботи з акумулятором та регістрами.

Приложение: програмная реализация для микропроцесора типа MCS-51

IE data 0A8h

IP data 0B8h

TCON data 088h

ORG 0

jmp start

ORG 03h

jmp int0

ORG 13h

jmp int1

start:

mov IE,#010000101b

mov IP,#000000101b

mov TCON,#000000000b

mov A,#1

mov DPTR,#0A004h

movx @DPTR,A

mov DPTR,#0A000h

mov A,#01h

movx @DPTR,A

mov R1,#043h

mov R3,#00h

prog:

mov R0,#0Ah

ccc1:

call udelay

djnz R0,ccc1

dec R1

mov A,#0Fh

anl A,R1

cjne A,#0Fh,fwd1

mov A,R1

subb A,#06h

mov R1,A

fwd1:

call delay

mov DPTR,#0A001h

mov A,R1

movx @DPTR,A

mov DPTR,#0A006h

mov A,#000h

movx @DPTR,A

mov A,R1

cjne A,#023h,delbl

bl:

mov A,#00011111b

mov DPTR,#8000h

movx @DPTR,A

mov A,#00h

mov DPTR,#8002h

movx @DPTR,A

call DUN

cjne A,#023h,prog

jmp bl

delbl:

mov A,#00011111b

mov DPTR,#8000h

movx @DPTR,A

mov A,#01111111b

mov DPTR,#8002h

movx @DPTR,A

jmp prog

delay:

mov R4,#01Fh

C2: mov R5,#0FFh

C4: djnz R5, C4

djnz R4, C2

ret

udlay:

mov R4,#0FFh

C22: mov R5,#0FFh

C24: djnz R5, C24

djnz R4, C22

ret

int0:

call delay

cjne R1,#050h,burp

mov A,#00011111b

mov DPTR,#8000h

movx @DPTR,A

mov A,#00h

mov DPTR,#8002h

movx @DPTR,A

mov R2,#0FFh

reti

int1:

call delay

call delay

mov DPTR,#0A001h

mov A,R1

movx @DPTR,A

call delay

nop

reti

DUN:

mov R7,#0FFh

bh:

mov A,R7

jz burp

mov R6,#0FFh

cc1: djnz R6,cc1

mov R6,#0FFh

cc2: djnz R6,cc2

dec R7

jmp bh

burp:

call delay

inc R1

mov A,#0Fh

anl A,R1

cjne A,#0Ah,fwd

mov A,R1

add A,#06h

mov R1,A

fwd:

call delay

mov DPTR,#0A001h

mov A,R1

movx @DPTR,A

call delay

RETI

END

Размещено на Allbest.ru


Подобные документы

  • Місце мікропроцесора в структурі мікропроцесорних приладів, його функції. Інтегральні мікросхеми із великою ступінню інтеграції. Розробка структурної схеми мікропроцесорної системи обробки інформації на основі мікроконтролера ATmega128 та інших мікросхем.

    курсовая работа [2,1 M], добавлен 18.09.2010

  • Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.

    курсовая работа [1,2 M], добавлен 08.06.2010

  • Модель обробки файлів растрових зображень. Середній квадрат яскравості. Фільтри для виділення перепадів і границь. Опис та обґрунтування вибору складу технічних та програмних засобів. Опис інтерфейсу програми. Зображення діалогового вікна програми.

    курсовая работа [664,3 K], добавлен 30.06.2009

  • Методи, засоби та алгоритми розв'язування задачі. Розробка інтерфейсу програми для забезпечення діалогу: ком'ютер - користувач при роботі з базою даних довідкової системи навчальних закладів. Програма та її опис, призначення. Логічна структура програми.

    курсовая работа [234,8 K], добавлен 14.03.2010

  • Історія виникнення та характеристика мікропроцесора Power. Архітектура мікропроцесора MPC8640D. Порівняння процесорів MPC8640D і Core i5 650. Будова мікропроцесорної системи. Формалізація задачі, розробка програми на Assembler. Створення ехе–файлу.

    курсовая работа [2,0 M], добавлен 13.06.2010

  • Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.

    курсовая работа [2,3 M], добавлен 15.02.2012

  • Критерії (вимоги) до створення автоматичного робочого місця оператора реєстратури. Обґрунтування вибору середовища програмування та засобів збереження даних. Алгоритм програми. Опис інтерфейсу проекту системи. Програмні модулі та керівництво користувача.

    дипломная работа [1017,0 K], добавлен 31.10.2014

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

    курсовая работа [710,9 K], добавлен 12.03.2010

  • Організація часових характеристик мікросхеми AT24C32 з висновком щодо придатності LPT-порту. Порядок розробки алгоритмів та текстів підпрограм виконання команд читання та запису даних. Опис та блок-схеми програми та підпрограм, що обслуговує пристрій.

    курсовая работа [233,5 K], добавлен 16.06.2009

  • Розробка програми для реалізації системи, що забезпечує автоматичне управління та моделювання зміни музичних програм на радіостанції з використанням засобів Microsoft Visual. Програмна реалізація інтерфейсу та процесу моделювання роботи системи.

    курсовая работа [1,7 M], добавлен 08.01.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.