Мікропроцесорна система вимірювання тиску в трубопроводі
Характеристика апаратних засобів мікропроцесорної системи. Виведення цифрової інформації, опис використаних команд при розробці програми. Програма реалізації часових затримок. Особливості послідовного інтерфейсу, сутність знакосинтезуючого індикатора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 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