Проектування системи контролю температури від 5-ти датчиків
Розробка структурної схеми системи управління, головні вимоги до основних елементів. Обґрунтування та вибір елементної бази. Блок-схема алгоритму і програми реалізації закону управління (лістинг програми). Зміст програми керування мікроконтроллером.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 28.08.2012 |
Размер файла | 170,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Вступ
Сучасні системи контролю температури організовуються на процесорах, де можна розробити будь-який закон управління і реалізувати його можна тільки на АЛП. Дуже просто можна організувати вивід на індикатори поточну температуру та інші дані про стан контролюємого об'єкта. Для ручного управління можна організувати клавіатуру, з якої будуть вводитись необхідні параметри (наприклад, яку необхідно підтримувати температуру, який час чи через який час). Точність вимірювання буде залежати від датчика та АЦП. Всю основну роботу покладають на процесор, який буде виконувати задану програму.
1. РОЗРОБКА СТРУКТУРНОЇ СХЕМИ СИСТЕМИ КЕРУВАННЯ
Згідно з завданням, на вхід системи надходить аналогові сигнали від 5-ти датчиків. На виході системи є також п'ять керуючих аналогових впливів, що надходять на виконавчі механізми (ВМ). Отже маємо багатоканальну систему керування. Система має забезпечити комутацію аналогових сигналів, що надходять з датчиків, перетворення аналогово сигналу в цифровий код (враховуючи узгодження сигналів за рівнем), обробку цифрової сигналів в обчислювальному пристрої (мікропроцесорі), перетворення цифрових сигналів керування в аналогові для видачі на виконавчі механізми. Крім того, необхідно забезпечити індикацію результатів виміряних сигналів датчиків. Для організації необхідного числа каналів керування необхідно забезпечити комутацію цифрових сигналів, що надходять з обчислювального пристрою, із перетворювачами цифрового сигналу в аналогові, а також буферизацію цифрових сигналів керування. Для індикації (відображення у десятковій системі числення на семисегментових індикаторах) аналогічно необхідно виконувати комутацію сигналів із буферизацію.
Отже, до складу багатоканальної мікропроцесорної системи управління об'єктами входять наступні елементи:
Підсилювальні пристрої;
Аналоговий комутатор;
Аналогово-цифровий перетворювач (АЦП);
Блок керування (обчислювальний пристрій);
Цифрові комутатори;
Цифро-аналогові перетворювачі (ЦАП);
Запам'ятовуючий пристрій;
Індикаторні пристрої.
Розглянемо призначення кожного елемента.
Підсилювальні пристрої на вході системи дозволяють не тільки підсилювати слабкі сигнали від датчиків, але узгодити їх по рівнях необхідному для подальшої обробки системою. Аналогічно використовуються й підсилювальні пристрої на виході системи, що підсилюють та узгоджують керуючі сигнали на виході мікропроцесорної системи з виконавчими механізмами.
Аналогові комутатори використовуються для розділення у часі сигналів, які надходять від датчиків на АЦП.
АЦП перетворює аналогові сигнали від датчиків у цифрові сигнали для подальшої обробки цифровим блоком керування.
Після перетворення АЦП вхідних сигналів у цифрову форму блок керування обробляє вхідні данні за заданим законом керування, виводить оброблені результати вимірювання на індикатори та видає розраховані, керуючи сигнали на виконавчі механізми об'єктів.
Цифрові комутатори розділяють у часі сигнали, що надходять із блоку керування у відповідні запам'ятовуючі пристрої (буферні регістри), а саме: сигнали, що несуть інформацію про виміряні значення контрольних параметрів об'єкта та цифрові сигнали керування.
Запам'ятовуючі пристрої, необхідні для збереження інформаційних сигналів під час комутації блоку керування з іншими приймачами сигналів (індикаторами та виконавчими механізмами), а також під час виконання блоком керування інших задач (зчитування вихідних даних та обчислення керуючих впливів).
Індикаторні прилади - це семисигментні індикатори, на яких відображається виміряні значення контрольованого параметру об'єкта. Інформація, яку необхідно вивести на індикацію міститься у відповідних регістрах.
Уміст буферних регістрів, у яких знаходяться цифрові коди, відповідно виробленим керуючим впливам, перетворюються ЦАПом в аналогові сигнали, що підсилюються вихідними підсилювачами та передаються на виконавчі механізми об'єктів.
Система індикації сигналу повинна містити дешифратор, тобто перетворювач з бінарного коду, що надходить збоку регістрів, в семисигментний код, що дозволяє вивести число на семисигментний індикатор.
2. Розробка вимог до основних елементів структурної схеми (підсилювачів, комутатора, МП, АЦП, ЦАП, ОЗП, ПЗП)
Вибір датчиків здійснюється згідно заданої номінальної величини контрольованого параметру з урахуванням можливих відхилень.
Вхідні підсилювачі повинні забезпечити таке підсилення сигналів від датчиків, щоб вхідний аналоговий сигнал знаходився в динамічному діапазоні АЦП. Вибір даних елементів узгодження залежить від потрібного коефіцієнту підсилення, який в свою чергу, залежить від датчиків та АЦП, що вибираються.
Для комутації вхідних сигналів від шести датчиків використовується аналоговий комутатор, який повинен мати не менше шести входів. Крім того, він повинен забезпечити безпосереднє задавання адреси входу, що комутується.
Узгоджений за рівнем аналоговий сигнал після комутатора надходить до АЦП, де він перетворюється в цифровий і стає придатним для наступної обробки цифровим блоком управління. Основними вимогами при виборі АЦП є: розрядність (має бути такою щоб, похибка регулювання не була вищою зазначеної в технічному завданні), швидкодія.
Визначимо вимоги до розрядності АЦП. З урахуванням заданої у технічному завданні похибки регулювання Q = 0,75% АЦП повинен мати наступну кількість розрядів:
оскільки розрядність - ціле число то отриманий результат округлюємо, отже наш АЦП матиме не менше 6-ти. Вимоги до швидкодії АЦП будуть визначатися максимальною частотою зміни регульованої величини Fmax.
Узгодженість по вхідному рівню АЦП забезпечується підбором параметрів вхідних підсилювачів.
Пристрій керування (обчислювальний пристрій) має задовольняти необхідним вимогам по швидкодії, Оскільки маємо n5 датчиків, то пристрій керування повинна забезпечити час обробки сигналу з кожного датчика
В якості пристрою керування (мікро-ЕОМ) можна взяти однокристальний мікроконтролер ADuC812 виробника Analog Devices. Застосування процесорів серій 580, 1810 недоцільно, бо вони не містять внутрішньої пам'яті; крім того операція множення виконується довго; також у серії 580 відсутня операція ділення; істотним недоліком процесорів серій 580 і І810 є низька швидкість обробки даних; крім того, дані мікропроцесори для роботи потребують підключення периферійних мікросхем, що зумовлює значне ускладнення схеми, зниження надійності, збільшення габаритних розмірів, збільшення ціни тощо. Мікроконтроллер серії 1816 також нам не підходить, бо не має АЦП, який додатково слід було ставити для узгодження зв'язку датчиків і процесора. мікроконтролер ADuC812 має внутрішній 8-канальний АЦП і вбудований комутатор каналів.
Організація, система команд і засоби введення-виведення інформації ADuC812 краще всього пристосовані для рішення задач управління і регулювання в порівняно нескладних об'єктах, приладах і технологічних процесах. Перевагою мікроконтроллера є те, що, він виконаний в одному корпусі. Це забезпечує високу надійність, зменшує споживану потужність і габарити системи. Її відмінними особливостями є:
Основні характеристики МК ADuC812 є :
Ядро сумісне з МК51
8 Кбайт FLASH пам'яті програм;
640 байт FLASH пам'яті даних;
256 байт внутрішньої пам'яті даних;
16 Мбайт адресації на зовнішню пам'ять даних;
64 Кбайт 8 Кбайт зовнішньої пам'яті програм;
схеми введення/ виведення (32 лінії);
вектор переривань від 9 джерел;
канал послідовного введення/ виведення інформації;
генератор, схема синхронізації і управління.
Швидкість процесора 12-16 Мгц
Однополярне живлення 3-5 В
12-ти бітний 8-ми канальний АЦП з комутатором - 5 мС оцифровка
2-х канальний ЦАП
таймери, внутрішній сенсор температури, монітор блока живлення, холостий режим роботи та інші характеристики, що роблять цей контролер універсальним.
МК функціонує на частоті 12 МГц в нормальному режимі. Машинний цикл приблизно складає 1 мкс.
Корпус МК має 52 виводи. Два виводи XTAL1 і XTAL2 для підключення кварцового резонатора, виводи для сигналів, що управляють режимом роботи МК. Всі чотири порти призначені для введення і лише Р0,Р2,Р3 на виведення інформації побайтно. Кожну лінію порту можна використати незалежно для введення або виведення інформації.
Система команд МК ADuC812 містить команди сумісні з командами контролера МК51 (команди передачі даних, арифметичних операцій, логічних операцій, передачі управління і операцій з бітами). Більшість команд (94) мають формат один або два байта і виконуються за один або два машинних цикли. В МК ADuC812 є додаткові регістри SFR для управління внутрішньою периферією. 8-бітний АЛП може виконувати арифметичні операції додавання, віднімання, множення і ділення, логічні операції І, АБО, виключаючи АБО, а також операції циклічного зсуву, скидання, інвертування тощо.
Оброблені результати вимірювання з блоку керування виводяться на індикацію. Кількість індикаторів має бути рівна кількості контрольованих об'єктів. Розрядність індикаторів визначається максимальним значенням контрольованої величини, яка визначається наступним чином:
де - номінальне значення контрольованої величини (згідно завдання, = 500);
Хдоп - допустиме відхилення від номінального значення (величину Хдоп приймаємо, як 10% від тобто Хдоп = * 10% =500*0,1 50
=500 + 50 = 550. Маємо трьохзначне число, тому необхідно забезпечити по три розряди в кожному індикаторі.
Таким чином, проектована багатоканальна система управління повинна мати 5 індикаторів по три розряди в кожному та 5 по три регістри, в яких зберігаються коди, що виводяться на індикацію.
Для керування виводом на індикацію (вибору відповідного індикатору) потрібний цифровий комутатор, що являє собою дешифратор вибору розряду індикатора.
Також, крім виведення на індикацію, проектована система має забезпечувати управління виконавчими механізмами кожного з 5-ти об'єктів.
Регістри збереження цифрового коду керуючого впливу повинні бути достатньої розрядності, щоб забезпечувати збереження результату розрахунку закону управління; їх кількість має дорівнювати кількості каналів керування (тобто кількості датчиків);
Для перетворення цифрових сигналів в аналогові використовуються ЦАП. Їх кількість рівна кількості контрольованих об'єктів - 5. Кожний цифро-аналоговий перетворювач повинен мати розрядність на вході, рівну розрядності на виході регістра одного каналу і працювати на загальній тактовій частоті.
Для вибору необхідного каналу виводу інформації необхідний дешифратор, що під'єднує необхідний буферний регістр для запису нового значення керуючого впливу.
Для узгодження за рівнем вихідного значення керуючого сигналу використовуються вихідні операційні підсилювачі, які повинні мати такий коефіцієнт підсилення, щоб, згідно до технічного завдання, забезпечити значення напруги вихідного сигналу у межах від 0 до Umах = 8,3 В.
3. ОБГРУНТУВАННЯ ТА ВИБІР ЕЛЕМЕНТНОЇ БАЗИ
Згідно розробленої структурної схеми, необхідно вибрати наступні елементи для розробки принципової схеми: датчики, підсилювачі, комутатор аналогових сигналів, АЦП, Мікропроцесор, ЦАП, регістри, індикатори, перетворювач коду, дешифратор вибору індикатора, дешифратор вибору ЦАП.
В якості елементної бази для системи керування, що розробляються, будемо використовувати мікросхеми серії ТТЛ. Це пояснюється тим, що, по-перше, мікросхеми даної схеми мають найбільш функціональний базис серед тих, що випускаються промисловістю, по-друге, вони сумісні за логічними рівнями з найбільш поширеними мікро-ЕОМ, що непотребує додаткових схем узгодження рівнів сигналів.
Як було описано вище в якості пристрою керування ми використовуємо однокристальний мікроконтролер ADuC812, який має виходи, сумісні з ТТЛ мікросхемами і має достатньо пам'яті для збереження керуючої програми.
Для виконання вибору елементів для розробки принципової схеми необхідно визначити вимоги, що ставляться до основних елементів відповідно до технічного завдання.
4. Розробка функціональної схеми системи управління
Згідно з технічним завданням і розробленої структурної схеми (додаток 2) розробимо функціональну електричну схему. Функціональна схема приведена в додатку 3 і працює наступним чином: через аналогові входи ADC МК знімає температуру через підсилювачі у вигляді напруги. До порту 0 МК підключені індикатори через дешифратор DD1, який обирає потрібний в даний момент часу індикатор, та DD5, який перетворює код числа в зручний для відображення код. Регістр DD4 є шинним формувачем, який дозволяє підключити більше 1-го індикатора на одну шину, а регістри DD12 - DD27 зберігають код цифри кожного індикатора. До порту 3 підключені виконавчі механізми. Спочатку інформація поступає на шинний формувач, та регістри, які зберігають код для кожного механізму. ЦАП перетворює цифровий код в аналоговий сигнал.
P2.3 - дозволяє запис в шинний формувач індикаторів.
P2.4 - дозволяє запис в шинний формувач ЦАП.
5. РОЗРОБКА ПРИНЦИПОВОЇ СХЕМИ СИСТЕМИ КЕРУВАННЯ
Структура МК ADuC812, на якому організовано управління зображена на рис. 1.
Рис. 1
МК має стандартну схему підключення та автоматичного скидання по ввімкненню живлення. Для стабілізації частоти, його виводи 32 та 33 підключаються до кварцового резонатору. Підключення кварцового резонатора зображене на рис. 2 (ємності С1 і С2 рівні між собою і мають значення ЗОпФ).
Рис. 2
Датчики повинні бути розраховані на температуру до 550О, отже оберемо термопару T1508 з перетворювачем, який розрахований на температуру 0 - 700О. Вихідна напруга датчика 0-50 мВ. Для підключення датчиків потрібні узгоджувані вхідного аналогового сигналу. Вх. напруга ЦАП= 2.5В. Використаємо операційні підсилювачі (ОП). Для забезпечення заданої точності достатньо використати лише 6 розрядів АЦП, але так як обробляти данні краще побайтово, то візьмемо 8 розрядів. Виконаємо узгодження по рівню вхідної напруги, яка складає , так як не використовується 4 старші розряди. АЦП. Отже вхідні ОП повинні забезпечити коефіцієнт підсилення:
де Uд - вихідна напруга від датчика.
В якості вхідних підсилювачів DА1...DА5 вибираємо операційні підсилювачі К140УД6 з коефіцієнтом підсилення Ку=68 Дб та живленням .
Для забезпечення необхідного коефіцієнта підсилення Кп=3,125 використаємо неінвертуючу схему підключення операційного підсилювача (рис. 3).
Рис. 3
Напруга UВХ знімається з дільника напруги і її можна визначити з виразу:
;
Для забезпечення заданого коефіцієнту підсилення розрахуємо значення опорів резисторів та . Приймемо, що =1 кОм, тоді . Таким чином, забезпечується коефіцієнт підсилення Кп= 3,125. Визначимо розподілення портів мікроконтролера в таблиці 1:
Таблиця 1
Номер розряду порту |
сигнал |
Опис |
|
P0.0 |
A0 |
Адресні входи дешифратора вибору номера розряду індикатора |
|
P0.1 |
A1 |
||
P0.2 |
A2 |
||
P0.3 |
A3 |
||
P0.4 |
D0 |
Цифра індикатора у двійковому коді |
|
P0.5 |
D1 |
||
P0.6 |
D2 |
||
P0.7 |
D3 |
||
P1.0/ADC0 |
D1 |
Шина АЦП |
|
P1.1/ADC1 |
D2 |
||
P1.2/ADC2 |
D3 |
||
P1.3/ADC3 |
D4 |
||
P1.4/ADC4 |
D5 |
||
P2.0 |
A0 |
Адресні входи дешифратора вибору регістрів блоку ЦАП |
|
P2.1 |
A1 |
||
P2.2 |
A2 |
||
P2.3 |
V |
Запис до буферного регістру блоку ЦАП |
|
P2.4 |
V |
Запис до буферного регістру індикатора |
|
P3.0 |
Шина ЦАП |
||
P3.1 |
|||
P3.2 |
|||
P3.3 |
|||
P3.4 |
|||
P3.5 |
|||
P3.6 |
|||
P3.7 |
Для виводу інформації про стан 5-ти об'єктів на три індикатори для кожного необхідно 15 індикаторів H1 - H15. Можна обрати ЖКИ, але необхідна громіздка схема керування ними, тому використаємо однорозрядні напівпровідникові індикатори АЛСЗЗЗБ1 (рис 4) з загальним анодом, хоч вони і споживають велику потужність. На анод необхідно подати високий рівень напруги, а катодом буде керувати дешифратор.
управління мікроконтроллер програма алгоритм
Рис. 4
Керування індикаторами проводитиметься з порту P0 згідно табл. 1.
Дешифратор коду DD5 перетворює бінарний код цифри в код, зручний для підключення до 7-ми сегментного індикатора. Цифра буде зберігатись в регістрах К155ИР22, що стоять перед індикаторами і обираються дешифратором DD1 через вхід С синхронізації. Для перетворення в 7-ми
сегментний код оберемо мікросхему DD2 - КМ555ИД18, яка має інверсні виходи для катодного керування індикаторами H1-H15. Так, як виходи ТТЛ мікросхем з невисокою навантаженою здатністю, то використаємо шинні формувачі КР580ВА86, який має підвищену навантажувальну здібність для підключення індикаторів до порту.
Вхід ОЕ в шинних формувачах індикаторів та ЦАП означають дозвіл на запис, яким ми будемо керувати з порту (Р2.4) і (Р2.3) відповідно, подаючи “0”.
З порту Р3 подається сигнал управління в бінарному коді, який проходить через шинний формувач, регістр потрібного ЦАПа, і надходить туди для перетворення в аналоговий сигнал. В якості ЦАП DA6 - DA10 використаємо мікросхеми К594ПА1. Дана мікросхема є 12-розрядним паралельним ЦАП із підсумовуванням струмів. До схеми ЦАП входять елементи, що розширюють її можливості, ввімкнення яких до кола зворотного зв'язку зовнішнього операційних підсилювачів може забезпечити роботу ЦАП з однополярним виходом по напрузі О... 8.3 В, що має задовольнити вимозі технічного завдання по діапазону зміни вихідного сигналу для виконавчого механізму. Як опорну напругу для ЦАП використаємо +8,3 В. Так, як порт 8-ми розрядний, і для більшої точності візьмемо 8 розрядів для передачі сигналу управління, а інші 4 розряди нашого ЦАПа заземлимо для отримання там нуля.
Вихідні керуючі сигнали знімаються з виходів операційних підсилювачів DA6 - DA10 , в якості яких використані ті ж мікросхеми, що й на вході схеми К140УД6. Застосування вихідних ОП забезпечує функціонування ЦАП в заданому режимі.
Розрахуємо значення опорів R11-R115 для індикаторів. Як було сказано вище, для горіння світлодіодів індикатора необхідно подати з відповідних регістрів сигнал логічного “0”, в той час як на аноді постійно подано ”1”. Тоді падіння напруги буде дорівнювати 2.4 В, тоді загальний опір ланцюга дорівнює ;
Опір індикатора :
Таким чином, маємо опори R11-R115
800 - 500 = 300 Ом. Із ряду Е24 оберемо 330 Ом.
Електрична принципова схема наведена в додатку 3.
Перелік елементів наведено в додатку 4.
6. РОЗРОБКА БЛОК СХЕМИ АЛГОРИТМУ І ПРОГРАМИ РЕАЛІЗАЦІЇ ЗАКОНУ УПРАВЛІННЯ
Багатоканальна мікропроцесорна система керування, що розробляється, повинна приймати данні від шести датчиків, виводити на індикацію стан кожного з них, а також за заданим законом керування впливати на виконавчі
механізми керованих об'єктів. В програмі необхідно організовувати цикл, в якому виконуються наступні задачі:
1. Зчитування даних з датчиків та розрахунок управляючого сигналу для відповідного виконавчого механізму із виведенням управляючого сигналу у відповідні канали керування;
2 - виведення зчитаних даних з датчику на індикацію;
Алгоритм програми керування наведений на рис. 5.
Рис. 5
Для виконання обчислень необхідно забезпечити зберігання попередніх значень в пам'яті.
Для організації збереження виміряних значень, в пам'яті даних створюється таблиця за базовою адресою ЗОh, доступ до змінних якої виконується непрямою адресацією на основі поточного значення лічильника датчиків.3*5=15 байт пам'яті.
Перед обробкою чергового датчика виконується часовий зсув змінних для відповідного каналу.
Розподіл регістрів банку 0 наведено в табл. 2.
Таблиця 2 - Розподіл регістрів банку 0
Регістри |
Призначення |
|
R0 |
Змінна |
|
R1 |
Змінна |
|
R2 |
Змінна |
|
R3 |
К1 |
|
R4 |
К2 |
|
R5 |
Старший байт результату y |
|
R6 |
Молодший байт результату y |
|
R7 |
Проміжний регістр |
Текст керуючої програми наведено в додатку 1.
7. РОЗРАХУНОК ПАРАМЕТРІВ СИСТЕМИ КЕРУВАННЯ
Час виконання програми
Програма має частину ініціалізації та частину, що виконується в циклі.
Час виконання циклової частини:
>0.157 мС, отже , програма задовольняє вимогам часу циклу обробки, тобто необхідній швидкодії.
Об'єм та розподіл пам'яті
Мікроконтролер ADuC812 має 8 Кбайт FLASH пам'яті програми та 640 байт FLASH пам'яті даних, 256 байт внутрішньої пам'яті даних. Програма розміщується з нульової адреси. Необхідний об'єм пам'яті програм 187 байт.
В пам'яті даних із базової адреси 30h розміщується таблиця збереження тимчасових даних об'ємом 15 байт. Крім того, необхідно пам'ять нульового банку регістрів (8 байт) та пам'ять під стек для організації виклику процедури (2 байти).
Отже, всього в пам'яті даних необхідно 25 байт.
ВИСНОВКИ
В даному курсовому проекті виконано проектування та програмування мікропроцесорної багатоканальної системи управління об'єктами з відображенням результатів вимірювання на індикацію. Розроблена структурна та принципова схеми, виконаний розрахунок елементів принципової схеми, розроблений алгоритм та програма реалізації закону керування.
За основу мікропроцесорної системи взятий мікроконтролер ADuC812, який реалізує заданий закон керування для п'яти каналів.
Розроблена багатоканальна мікропроцесорна система керування відповідає вимогам технічного завдання.
Додаток
Керуюча програма
Кількість байт |
Кількість циклів |
Мітка |
Мнемоніка |
Коментар |
|
Початкове встановлення портів, лічильників датчиків та індикаторів |
|||||
2 |
1 |
ІNIT: |
MOV А, #00h |
A=0 |
|
1 |
1 |
MOV Р2, А |
Заборона запису в буфер індикаторів та ЦАП |
||
1 |
1 |
MOV n_dat, А |
Лічильник датчиків |
||
1 |
1 |
MOV n_ind, А |
Лічильник індикаторів |
||
2 |
1 |
INITRAM: |
MOV R0, #30h |
база таблиці даних в ОЗП |
|
2 |
1 |
MOV А, #0 |
Ініціалізувати А нулями |
||
2 |
1 |
MOV @R0, А |
Пересилка в пам'ять А=00000000 за адресою в R0 |
||
1 |
1 |
INC R0 |
Наступний байт |
||
3 |
1 |
CJNE R0, #3Fh, INITRAM |
Перехід, якщо адреса байту в R1 менше адреси слідуючого за таблицею байту (розмір таблиці - 3*5 байт = 15 = Fh; 30h + Fh = 3Fh) |
||
Основний цикл роботи |
|||||
1 |
1 |
START: |
MOV А, n_dat |
А номер поточного датчика |
|
1 |
1 |
ORL ADCCON2, A |
Номер канала АЦП |
||
2 |
1 |
MOV B, #3 |
B=3 |
||
1 |
1 |
MUL AB |
n_dat*3 |
||
2 |
1 |
ADD A, 30H |
30+n_dat*3 |
||
1 |
1 |
MOV R0, A |
R0=адреса x(t) |
||
1 |
1 |
INC A |
А++ |
||
1 |
1 |
MOV R1, A |
R1= адреса x(t-1) |
||
1 |
1 |
INC A |
A++ |
||
1 |
1 |
MOV R2, A |
R1= адреса x(t-2) |
||
3 |
1 |
MOV @R2, @R1 |
Зсув змінних в впамяті |
||
3 |
1 |
MOV @R1, @R0 |
|||
1 |
1 |
SETB ADCCON2.4 |
Запуск АЦП |
||
3 |
1 |
WT: |
JNB ADCCON2.4,WT #10D |
Цикл |
|
1 |
1 |
MOV @R0, ADCDATAL |
Зчитування з АЦП |
||
1 |
1 |
MOV B, @R0 |
B= адреса x(t) |
||
2 |
1 |
MOV A, #35 |
А=35 |
||
1 |
1 |
CLR C |
Очистка флага |
||
1 |
1 |
SUBB A, B |
А=А-В |
||
2 |
1 |
JC M2 |
|||
2 |
1 |
MOV R3, #61d |
X<Xдоп |
||
2 |
1 |
MOV R4, #27d |
|||
2 |
1 |
JMP M3 |
|||
2 |
1 |
M2: |
MOV R3, #28d |
X>Xдоп |
|
2 |
1 |
MOV R4, #39d |
|||
Індикація Хі |
|||||
1 |
1 |
M3: |
MOV A, @R0 |
A= адреса x(t) |
|
2 |
1 |
ADD A, CDh |
Норміровка Х |
||
1 |
1 |
SETB C |
Установка флага в 1 |
||
1 |
1 |
RRC A |
Зсув вправо |
||
21 |
1 |
MOV B, #5 |
В=5 |
||
1 |
1 |
DIV АВ |
А [Хi / 5] (ціла); B {Хi / 5} (залишок) |
||
2 |
1 |
MOV _X1, В |
Зберігання одиниць в _X1 |
||
2 |
1 |
MOV В, #10D |
B 1010 |
||
1 |
1 |
DIV АВ |
А [Хі/100] (ціла); B {Xi/100} (залишок) |
||
2 |
1 |
MOV _X2, B |
Зберігання кількості десятків в _X2 |
||
2 |
1 |
MOV _X3, A |
Зберігання кількості сотень в _X3 |
||
3 |
1 |
ACALL OUTTEMP |
Відображення цифр |
||
норміровка |
|||||
1 |
1 |
MOV A, @R0 |
А= адреса x(t) |
||
1 |
1 |
CLR C |
Очистка флага |
||
2 |
1 |
SUBB A, #CDh |
Норміровка Х |
||
Обчислення функції |
|||||
Обчислення |
|||||
1 |
1 |
MOV А, @R1 |
А=x(t-1) |
||
2 |
1 |
MOV B, #9h |
B=9 |
||
1 |
1 |
DIV AB |
A=A/9 |
||
1 |
1 |
MOV B, @R2 |
B=x(t-2) |
||
1 |
1 |
MUL AB |
A=A*B |
||
1 |
1 |
MOV R5, B |
Зберігаємо рез. в R5 |
||
2 |
1 |
MOV R7, 00h |
Онуляємо R7 |
||
1 |
1 |
M1 |
INC R7 |
R7++ |
|
1 |
1 |
INC R7 |
R7++ |
||
1 |
1 |
MOV A, R5 |
A підкореневе число з R5 |
||
1 |
1 |
CLR C |
Очистка флага |
||
1 |
1 |
SUBB A, R7 |
A=A-R7 |
||
1 |
1 |
MOV R5, A |
R5 підкореневе число з A |
||
1 |
1 |
JNC M1 |
Повторювати поки рез. - додатній |
||
1 |
1 |
MOV A, R7 |
A R7 |
||
1 |
1 |
RR A |
Зсув вправо А |
||
1 |
1 |
MOV R7, A |
Подвійний корінь числа заносимо в R7 |
||
1 |
1 |
MOV A, R3 |
В А заносимо К1 |
||
2 |
1 |
MOV B, #03h |
В В заносимо 3 |
||
1 |
1 |
MUL AB |
3*К1 |
||
1 |
1 |
MOV B, R7 |
Результат з R7 заносимо в А |
||
1 |
1 |
MUL AB |
Обчислення другої частини функції |
||
1 |
1 |
MOV R5, B |
Збереження старшого і молодшого байтів в память |
||
1 |
1 |
MOV R6, A |
|||
Обчислення |
|||||
1 |
1 |
MOV А, @R0 |
А x(t) |
||
2 |
1 |
MOV B, #13d |
B 13 |
||
1 |
1 |
DIV AB |
A=x(t)/13 |
||
1 |
1 |
MOV B, A |
B=A |
||
1 |
1 |
MUL AB |
B=(X(t)/13)^2 |
||
1 |
1 |
MOV @R0, A |
Обмін регістрів |
||
1 |
1 |
MOV A, B |
|||
1 |
1 |
MOV B, @R0 |
|||
1 |
1 |
CLR C |
Вочистка флага |
||
1 |
1 |
SUBB A, B |
A=A-B |
||
2 |
1 |
MOV A, #220 |
A=220 |
||
1 |
1 |
MOV B, R3 |
B=K1 |
||
1 |
1 |
DIV AB |
А=220/K1 |
||
1 |
1 |
MOV B, A |
B=220/K1 |
||
1 |
1 |
MOV A, @R0 |
А=x-(x/13)^2 |
||
2 |
1 |
MUL AB |
В:А=K1*sin(x(t)) |
||
2 |
1 |
MOV B, #0 |
B=0 |
||
1 |
1 |
ADD R6, A |
Сума молодших байтів |
||
2 |
1 |
ADDC R5, B |
Сума старших байтів |
||
Масштабування |
|||||
1 |
1 |
MOV A, R6 |
Організовуємо цикл для зсуву вправо Rez/2 |
||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R6, A |
|||
1 |
1 |
MOV A, R5 |
|||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R5, A |
|||
2 |
1 |
MOV A, R6 |
Організовуємо цикл для зсуву вправо Rez/4 |
||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R6, A |
|||
1 |
1 |
MOV A, R5 |
|||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R5, A |
|||
1 |
1 |
MOV A, R6 |
Організовуємо цикл для зсуву вправо Rez/8 |
||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R6, A |
|||
1 |
1 |
MOV A, R5 |
|||
1 |
1 |
RRC A |
|||
1 |
1 |
MOV R5, A |
|||
1 |
1 |
MOV P3, R6 |
Вивід результату в порт 3 (ЦАП) |
||
2 |
1 |
MOV P2, n_dat |
Номер ЦАП |
||
1 |
1 |
SETB P2.3 |
Дозвіл запису в ЦАП |
||
2 |
1 |
CLR P2.3 |
заборона запису в ЦАП |
||
Перевірка, чи всі датчики опитані |
|||||
2 |
1 |
INC n_dat |
Збільшуємо лічильник датчиків |
||
3 |
1 |
CJNE n_dat, #6D, END |
Якщо датчик менший, ніж шість, то перехід |
||
2 |
1 |
MOV n_dat, #00h |
Обнуляємо лічильник датчиків |
||
2 |
1 |
END: |
AJMP START |
Перехід на початок (або продовження опитувань) |
|
Процедура індикації |
|||||
2 |
1 |
OUTTEMP: |
MOV A, _X3 |
А сотні |
|
2 |
1 |
ACALL OUTDIG |
Вивід розряду |
||
2 |
1 |
MOV A, _X2 |
А десятки |
||
2 |
1 |
ACALL OUTDIG |
Вивід розряду |
||
2 |
1 |
MOV A, _X1 |
А одиниці |
||
2 |
1 |
ACALL OUTDIG |
Вивід розряду |
||
2 |
1 |
OUTDIG: |
АNL А, #11110000В |
Обнуління інших позицій |
|
1 |
1 |
SWAP A |
Вивід розряду |
||
2 |
1 |
MOV P0, n_ind |
Вибір номера індикатора |
||
1 |
1 |
MOV P0, A |
Видача цифри в порт |
||
1 |
1 |
SETB P2.4 |
Дозвіл запису в буфер індикаторів |
||
1 |
1 |
СLR P2.4 |
Заборона запису в буфер індикаторів |
||
2 |
1 |
ІКС n_ind |
Визначення наступного індикатору |
||
1 |
1 |
RЕТ |
Повернення з ПП |
||
187 |
131 |
Загальна кількість байт та циклів |
Размещено на Allbest.ru
Подобные документы
Розробка інтерфейсу програми "Автоматизована інформаційна система автошколи". Вибір архітектури, характеристика користувача. Генерація, проектування схеми бази даних, детальне програмування. Розробка структури таблиць. Лістинг програми, результат роботи.
курсовая работа [2,7 M], добавлен 11.09.2015Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.
курсовая работа [43,1 K], добавлен 30.06.2015Загальна характеристика та внутрішня структура програми, що розробляється, взаємодія окремих елементів. Вимоги до прикладної системи, її функціональної частини. Порядок контролю й приймання. Опис основних елементів управління та їхнього призначення.
курсовая работа [5,6 M], добавлен 23.08.2014Розробка принципової електричної схеми системи управління конвеєрною лінією, яка складається з трьох послідовних конвеєрів. Реалізація алгоритму роботи на мові сходинкових діаграм LD. Розробка керуючої програми для мікроконтролерів Zelio Logic та ОВЕН.
курсовая работа [230,2 K], добавлен 15.06.2015Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.
курсовая работа [710,7 K], добавлен 04.12.2014Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Розробка кросплатформового інструменту електронного тестування учнів молодших та середніх класів по іноземній мові. Вибір середовища розробки та системи контролю версій. Опис мови програмування Java та лістинг програми. Апаратні та програмні вимоги.
дипломная работа [608,3 K], добавлен 26.10.2010Вибір первинних вимірювальних перетворювачів та виконавчих механізмів, мікропроцесорних засобів автоматизації. Розробка блок-схеми системи автоматичного керування, програми функціонування вибраних засобів, принципових електричних схем зовнішніх з’єднань.
курсовая работа [176,5 K], добавлен 08.03.2015Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.
курсовая работа [460,9 K], добавлен 04.03.2014Розробка структурної схеми. Опис основних елементів мікропроцесора. Вибір підходящої структури процесорного елемента та його опис. Реалізація пристрою управління. Розробка мікропрограми та загальний алгоритм виконання процесором команди SBR Rm, B.
контрольная работа [83,6 K], добавлен 04.06.2009