Проектування системи контролю температури від 5-ти датчиків

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Вступ

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

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, А

Пересилка в пам’ять А=0 за адресою в 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 А, #11 110 000В

Обнуління інших позицій

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

Загальна кількість байт та циклів

ПоказатьСвернуть
Заполнить форму текущей работой