Ім'я файлу: курсова%20Віки.docx
Розширення: docx
Розмір: 1733кб.
Дата: 17.05.2021
скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ТЕХІЧНИЙ КОЛЕДЖ

НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ " ЛЬВІВСЬКА ПОЛІТЕХНІКА"

Відділення "Інформаційних технологій"

КУРСОВА РОБОТА

з дисципліни "Комп'ютерна схемотехніка"

на тему:

«Розробка мікроконтролерного пристрою керування роботою паяльника »

Виконала студентка групи -31КІ

Сисун Вікторія

_______________ № залікової книжки


Оцінка

Балів

Дата











Керівник роботи Терехов В.В.


Львів 2021





ВСТУП


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

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

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

Також розроблена блок схема алгоритму і програмний код.

Частина 1

1. Принципи регулювання потужності електронагрівальних пристроїв


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

Є такі види регулювання потужності:

  • частотне регулювання;

  • амплітудне регулювання;

  • фазове регулювання;

  • ШІМ регулювання;

  • комбіноване регулювання.

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

Нагрівальні елементи, виготовлені з цих сплавів, витримують температуру близько 1000°. Проте кожний з них при такій температурі починає окислюватись і швидко виходить з ладу. Доведено, що електронагрівальні прилади працюють найдовше, коли максимальна робоча температура для ніхромових нагрівальних елементів не перевищує 850 - 900°, для фехралевих - 750°,адля нікелінових - лише 200°.

Якщо ніхром і фехраль можна використовувати для приладів, нагрівальні елементи яких відкриті й розжарюються до високих температур, то нікелін для цієї мети не придатний, бо на повітрі він дуже швидко окислюється. З нікеліну виготовляють лише нагрівальні елементи кип'ятильників, які занурюють у воду. Відносно велика теплоєм­ність води забезпечує інтенсивне відведення тепла від нагрівника кип'ятильника, внаслідок чого він не нагрівається більш як до 200°, а тому й не окислюється.

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

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

  • відкритих ніхромових нагрівальних елементів у середньому дорівнює 15 ;

  • закритих (у металевих трубках або керамічних пластинках) 10 ;

  • кип'ятильників, які занурюють у воду, 30 .

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

Між собою побутові електронагрівальні прилади розподіляються за пожежною небезпекою приблизно в такій послідовності:

  • електропраски - 41% пожеж;

  • каміни й електроплитки - 41% пожеж;

  • чайники і кип'ятильники - 7 % пожеж.

Будь-який електронагрівальний прилад складається з корпусу із контактним пристроєм, ізоляційної основи (звичайно - керамічна), нагрівального елемента.

Нині практично всі прилади виготовляються на напругу 220 В (до 1974 р. випускалися і на 127 В). Найбільшу потужність мають електроплити (до 5 кВт).

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

Пожежна небезпека характеризується:

  • наявністю нагрітих поверхонь (праска - до 500 ºС, каміни з відкритою спіраллю - до 800 ºС);

  • підвищеною можливістю виникнення КЗ у місці введення струмоведучого шнура в корпус через часті перегини в цьому місці;

  • наявністю великих перехідних опорів у вилкових контактах через високу температуру;

  • струмовим перевантаженням електричної мережі при паралельному вмиканні декількох потужних побутових електронагрівальних приладів;

  • некваліфікованим технічним обслуговуванням, ремонтом, експлуатацією.

  • Найбільшу пожежну небезпеку утворюють праски без терморегулятора. Температура на підошві праски може досягати 500°С. З опалювальних приладів і електроплиток найбільшу небезпеку утворюють пристрої з відкритою спіраллю.

2. Регулювання потужністю за допомогою симістора


Напівпровідниковий прилад, що має 5 p-n переходів і здатний пропускати струм в прямому і зворотному напрямках, називається сімістором. З-за нездатності роботи на високих частотах змінного струму, високої чутливості до електромагнітних перешкод і значного тепловиділення при комутації великих навантажень, в даний час широкого застосування в потужних промислових установках вони не мають. Там їх з успіхом замінюють схеми на тиристорах і IGBT-транзисторах. Але компактні розміри приладу і його довговічність в поєднанні з невисокою вартістю і простотою схеми управління дозволили знайти їм застосування в сферах, де зазначені вище недоліки не мають істотного значення. Сьогодні схеми на симісторах можна знайти у багатьох побутових приладах від фена до пилососа, ручному електроінструменті і електронагрівальних пристроях – там, де потрібно плавне регулювання потужності.

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



Рис 1

3. Особливості широтно-імпульсного керування


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

Аналогова ШІМ:

ШІМ-сигнал генерується аналоговим компаратором, на один вхід якого подається опорний сигнал значно більшої частоти, ніж модулюючий у вигляді «трикутника» або «пили», а на іншій модулюючий безперервний аналоговий сигнал. Частота вихідних імпульсів ШІМ відповідає частоті «зубів» пилки. В ту частину періоду, коли сигнал на позитивному вході вище сигналу на негативному вході, на виході виходить одиниця, в іншу, коли сигнал на позитивному вході нижче сигналу на негативному вході нуль.

Цифрова ШІМ:

У двійковій цифровій техніці, виходи в якій можуть приймати тільки одне з двох значень, наближення бажаного середнього рівня вихідного сигналу за допомогою ШІМ є абсолютно природним. Схема настільки ж проста: пилкоподібний сигнал генерується N-бітовим лічильником.

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

Переваги ШІМ - перемикання відбувається з великою швидкістю, відповідно до типу навантаження, з таким розрахунком, щоб період модульованого сигналу був істотно меншим, ніж інерційність системи, до якої подається сигнал. Частота перемикання може становити декілька разів на хвилину для повільних процесів (наприклад електропечі); 100 Гц для електролампи; від декількох до десятків кГц для електродвигуна або від десятків до сотень кГц для аудіо підсилювача і комп’ютерного блоку живлення.

Для оцінки форми ШІМ сигналу застосовується параметр коефіцієнту заповнення, під яким розуміється відношення тривалості ввімкненого стану до прийнятого періоду імпульсів; малий коефіцієнт заповнення відповідає режиму енергозберігання, позаяк джерело енергії відключено більшість часу. Коефіцієнт заповнення виражають в відсотках, 100% відповідає ввімкненому стану на весь період.

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

ЧАСТИНА 2

1. Розробка структурної схеми регулятора потужності на мікроконтролері




Рис2. Структурна схема пристрою цифрового управління паяльником

Мережева напруга через трансформатор поступає на випрямляючий міст V1, який зі змінної напруги 16В, 50Гц формує постійну імпульсну напругу 16В, 100Гц. В імпульсній формі напруги є перехід через ноль, для фіксування якого служить детектор нуля R1і операційний підсилювач Ку1. Імпульсна напруга через D1 поступає на згладжуючий конденсатор С, а згладжена нестабільна напруга - на стабілізатор.

Після стабілізатора отримуєм живлення +5В, яке використовує на регуляторі потужності R2 операційний підсилювач Ку2. Обертаючи двигун змінного резистора R2, задаєм різний рівень напруги на вході Ку2. В подальшому при створенні програми необхідно враховувати нелінійну характеристику змінного резистора R2, щоб потужність регулювалася через рівні сегменти повороту двигуна регулятора потужності.

На вхід Ку1 і Ку2 також подається опорна напруга. Змінюючи її при конфігуруванні АЦП в мікроконтролері, можна міняти максимальний рівень вхідного аналогового сигналу. Мікроконтролер має аналоговий мультиплексор, який дозволяє вибрати аналоговий канал. Спочатку програми вибирається канал потужності, а потім в режимі реального часу - канал детектора нуля.

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

2. Вибір елементної бази

2.1. Вибір мікроконтролера


ATmega8(рис 3) - 8-розрядний високопродуктивний AVR мікроконтролер з малим споживанням. Прогресивна RISC архітектура.130 високопродуктивних команд, більшість команд виконується за один тактовий цикл.32 8-розрядних робочих регістра загального призначення Повністю статична робота. Наближається до 16 MIPS (при тактовій частоті 16 МГц) продуктивність. Вбудований 2-циклової перемножувач. Незалежна пам'ять програм і даних.8 Кбайт внутрісистемного програмованої Flash пам'яті (In-System Self-Programmable Flash).Забезпечує 1000 циклів стирання / запису. Додатковий сектор завантажувальних кодів з незалежними бітами блокування. Забезпечено режим одночасного читання / запису (Read-While-Write).512 байт EEPROM. Забезпечує 100000 циклів стирання / запису.1 Кілобайт вбудованої SRAM. Програмована блокування, що забезпечує захист програмних засобів користувача.

Вбудована периферія:

  • Два 8-розрядних таймера / лічильника з окремим попередніми дільником, один з режимом порівняння;

  • Один 16-розрядний таймер / лічильник з окремим попередніми дільником і режимами захоплення і порівняння;

  • Лічильник реального часу з окремим генератором;

  • Три канали PWM;

  • 8-канальний аналого-цифровий перетворювач (в корпусах TQFP і MLF);

  • 6 каналів з 10-розрядної точністю;

  • 2 канали з 8-розрядної точністю;

  • 6-канальний аналого-цифровий перетворювач (в корпусі PDIP);

  • 4 канали з 10-розрядної точністю;

  • 2 канали з 8-розрядної точністю;

  • Байт-орієнтований 2-дротовий послідовний інтерфейс;

  • Програмований послідовний USART;

  • Послідовний інтерфейс SPI (провідний / ведений);

  • Програмований сторожовий таймер з окремим вбудованим генератором;

  • Вбудований аналоговий компаратор.

Спеціальні мікроконтролерні функції:

  • Скидання по подачі живлення і програмований детектор короткочасного зниження напруги харчування;

  • Вбудований калібрований RC-генератор;

  • Внутрішні і зовнішні джерела переривань;

  • П'ять режимів зниженого споживання: Idle, Power-save, Power-down, Standby і зниження шумів ADC;

  • 23 програмовані лінії введення / виводу;

  • 28-вивідний корпус PDIP, 32-вивідний корпус TQFP і 32-вивідний корпус MLF.

Робочі напруги: 4,5 - 5,5 В (ATmega8).

Робоча частота: 0 - 16 МГц (ATmega8).



Рис 3

2.2. Вибір електронних компонентів


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

  • симістор ВТ136;

  • випрямляючий діодний міст КВU8K;

  • дисплей рідкокристалічний ИЖЦ5-4/8;

  • діод КД202;

  • стабілітрон КС147А;

  • оптосимістор moc3063;

  • трансформатор з одною первинною обмоткою 220В і двома вторинними по 8 В сумарній потужності 30 Вт;

  • дросель 47 нГн на потужність не менше 10 мА;

  • кварцовий резонатор 4МГц;

  • світлодіоди LED1 - LED5 на струм 5 мА;

  • тумблер двохсекційний на 220 В, Ін = 0,5 А;

  • мікроконтролер Atmega8-16PU;

  • паяльник 12 В, 25 Вт.

2.3. Розробка електричної принципової схеми




Рис 4.Електрично принципова схема приладу керевання паяльником.

Інформація про передану в нагрузку потужність відображається на ЖК - індикаторі DISP1. Прибор включається кнопкою S1. Живлення схеми управління організовано від понижуючого трансформатора TR2, який також використовується для силового живлення паяльника. Для роботи схеми детектора нуля і симістора Т1 необхідно виключити згладжування пульсації 100 Гц. Дану функцію виконує діод D1.

За гасіння і згладжування пульсації напруги живлення стабілізатора відповідають зв'язка R1, C3. Мікросхема ІС2 - це стабілізатор напруги для роботи мікроконтролера і схеми регулятора потужності P1. Для того щоб захистити вхід АЦП на вході мікроконтролера установлений стабілітрон D2. Для виводу мікроконтролера зі стану циклу або збою є кнопка "RESET" і ланцюжок скидання R3, C11. Для виключення впливу роботи ядра мікроконтролера на живлення АЦП застосований фільтр С6, С9, L1.

Інформація про потужність, що подається на паяльник виводиться з мікроконтролера на ЖКИ. Оскільки контрастність ЖКИ залежить від освітленості приміщення, застосована підсвічування світлодіодами LED1 - LED4.

Детектор нуля R10, Р2 виділяє нульовий струм з імпульсної напруги 16 В, 100Гц, і дані поступають на АЦП мікроконтролера. АЦП зчитує напругу з регулятора потужності Р1. Конденсатор С10 запобігає сплесками на Р1 при ручному керуванню. Керування Т1 від мікроконтролера передається через опторозвязку ОК1. Одночасно світлодіод LED5 сигналізує про включення симістора Т1. Включення симістора Т1 відбувається по алгоритму.



Рис 5.Осцилограми.

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

Оскільки змінна напруга випрямляється діодним випрямлячем, то ми получаєм 100 Гц імпульсної додатної навпіл хвилі. При виключенні заданої кількості цілих додатних навпіл хвиль з кожних 12 імпульсів мережі получим регулятор потужності.

Шляхом вибору заданої потужності мікроконтролер відраховує по алгоритму 12 імпульсної мережі, виключаючи деякі навпіл хвилі в вказаному порядку(див рис 4). Для збільшення дискретності регулювання потужності необхідно збільшити базис(наприклад, вибрати мінімальний крок 1 з 25 або 1 з 100). Але збільшення кроку регулятора потребує великих ресурсів мікроконтролера. Цей метод має перевагу перед фазово імпульсним керуванням, оскільки не створює імпульсних перешкод в мережі. Але один з недоліків - це поява звукових коливань в нагрузці.

2.4. Розробка алгоритму роботи схеми




Рис 6.Блок-схема алгоритму цифрового управління паяльником

Програма починається з установки вводу-виводу. Дальше йде опитування АЦП. Виходячи з результатів значень, отриманих з АЦП, встановлюється дискретна потужність. Для кожного варіанту дискретної потужності послідовно виконується заданий алгоритм виключення симістора. При цьому використовується раніше прямий метод регулювання "Базис 12". На дисплей виводяться числа, відповідні вибраній потужності. Для виводу кожного кроку алгоритму "Базис 12" мікроконтролер запитує АЦП. Як тільки записується значення менше 10 одиниць, включається симістор. Якщо в алгоритмі "Базис 12" заданий нуль, то симістор відключається і програма вертається на початок.

З початку програми АЦП перевіряє рівень напруги на регуляторі потужності Р1. Опорну напругу для АЦП з виводу живлення мікроконтролера. В процесі аналого-цифрового преображення двійкове число Z вираховується по рівнянню.

Z = 1024*Uвх / Uref.

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



Таблиця 1.Кодування індикації.

Як тільки значення вибрано, відбувається перехід до адресу, в якому записано два байти інформації "Базис 12" і два байти коду дисплея. Для реалізації метода регулювання "Базис 12" було використано функцію команд мікроконтролера "зсув вправо через перенос". При цьому значення переносу аналізується логічними командами. Якщо перенос дорівнює 1 то симістор включається, якщо нулю - виключається.

Для відображення інформації на дисплеї також використовується функція переносу. В формування другої цифри індикації приймають участь порти B i D. Для того щоб правильно передати інформацію в порт В, сім розрядів числа закриваються логічною функцією "І", а для порту D розряди чисел виходять в результаті комбінації логічних функцій з першою цифрою порту D. Це необхідно для економії пам'яті кодів значущих цифр.

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

Програма повторюється циклічно. При цьому за один цикл повністю виконується функція "Базис 12". В кожному новому циклі перевіряється рівень регулятора потужності Р1.

ВИСНОВОК


У курсовій роботі проведено способів створення регулятора температури паяльника, із застосування мікроконтролера. Здійснено вибір елементної бази. Виходячи з умов завдання, обрана реалізація пристрою на мікроконтролері ATmega8. Розроблено структурну, функціональну та електричну принципову схеми пристрою та здійснений докладний опис їх роботи. Також розроблено блок схему алгоритму і програмний код.

Список використаних літературних джерел


  1. Кравченко А.В. – 10 практических устройств на AVR-микроконтроллерах (Книга 2).

  2. Принцип роботи симісторних регуляторів потужності. (https://vbud.in.ua/printsip-roboti-simistornih-regulyatoriv-potuzhnosti/).

  3. Широтно-імпульсна модуляція. (https://uk.wikipedia.org/wiki/ )

  4. ATmega8, ATmega8L. 8-разрядные микроконтроллеры с 8 Кбайтами внутрисистемно программируемой Flash памяти. (http://www.gaw.ru/html.cgi/txt/ic/Atmel/micros/avr/atmega8.htm).

ДОДАТКИ


  • Мікроконтролер: ATmega8 ;

  • Тактова частота: 4.0мГц ;

  • Живлення: Стабілізоване 5 В .

***** Регістрові зміни

.def adr = r0

.def dis1 = r14 ;молодший адрес дисплея

.def dis2 = r10 ;старший адрес дисплея

.def cot1 = r11 ;Молодший адрес коду 12

.def cot2 = r12 ;старший адрес коду 12

.def copy = r13 ;копія адреса коду

.def cxt = r16 ; Лічильник потужності

.def cms = r17 ; Робочий регістр

.def poy1 = r18 ;Дані дисплея1

.def poy2 = r19 ;Дані дисплея2

.def Dig1 = r20

.def Dig2 = r21

.def dadc1 = r22

.def dadc2 = r23

.def adc1 = r24

.def adc2 = r25

.def tmp = r26 ; Робочий регістр

.def tmp2 = r27 ; Робочий регістр

.def tmp3 = r28 ; Робочий регістр

.cseg

;Початок області пам’яті, вектор переривань

.org 0

rjmp RESET

nop ;rjmp INT0

nop ;rjmp INT1

nop ;rjmp TIMER2 COMP

nop ;rjmp TIMER2 OVF

nop ;rjmp TIMER1 CAPT

nop ;rjmp TIMER1 COMPA

nop ;rjmp TIMER1 COMPB

nop ;rjmp time

nop ;rjmp TIMER0 OVF

nop ;rjmp SPI, STC

nop ;rjmp USART, RXC

nop ;rjmp USART, UDRE

nop ;rjmp USART, TXC

nop ;rjmp ADC

nop ;rjmp EE_RDY

nop ;rjmp ANA_COMP

nop ;rjmp TWI

nop ;rjmp SPM_RDY

;Початок всієї програми без вектора переривання

.org 22

;налаштування повторів В, C, D

RESET: nop

clr tmp

out DDRB, tmp

out PORTB, tmp ;обнулити порт В

clr tmp

out DDRD, tmp

out PORTD, tmp ; обнулити порт D

clr tmp

ldi tmp, $FF

out DDRB, tmp ;PortB-виходи

out DDRD, tmp ;PortD- виходи

clr tmp

ldi tmp, $20

out DDRC, tmp ;PC5- вихід

;Установка на дисплеї 00

clr tm

ldi tmp, $3F

out PORTB, tmp ;disp2-0

clr tmp

ldi tmp, $3F

out PORTD, tmp ;disp1-0

ldi tmp, low(RAMEND)

out SPL, tmp

ldi tmp, high(RAMEND)

out SPH, tmp

;Початок програми

;скидання всіх значень

nStart: nop

clr cxt

clr cms

clr poy1

clr poy2

clr tmp2

clr tmp3

clr adc1

clr adc2

clr dadc1

clr dadc2

clr dig1

clr dig2

clr adr

nop

ldi adc1, $40 ;Джерело живлення, ADC0,

ldi adc2, $C5 ;одиничне, запуск, 1/32

;запит рівня регулятора потужність

rcall adcn

; визначення потужності, порівняння

Nop

rcall mosh

nop

;Підпрограма управління симістором

cosem: nop

clr cms

ldi cms, $0D ;12 кроків opr: nop

;запит рівня синусоїди детектора нуля

ldi adc1, $41 ;джерело живлення, ADC1,

ldi adc2, $C5 ;одиничний, запуск, 1/32

nop

rcall adcn

nop

cln

clz

cpi tmp3, $00

breq kill ;перехід по дорівнює

rjmp doss

kill: nop

cln

clz

cpi tmp3, $0F

brge doss

clr tmp

out PORTC, tmp ;обнулити порт С ;перетворення адреса коду 12

;dis1 молодшого адреса потужності 12

;dis2 старшого адреса потужності 12

clc

rol dis

rol dis2

brcs fok

nop

clr tmp

out PORTC, tmp ;обнулити порт С

nop

rjmp doss

fok: nop

sbi PORTC, 5 ;включення симістора

nop

doss: nop

clz

dec cms

brbs 2, ker

rcall zader

rjmp opr

ker: nop

clr tmp

out PORTC, tmp ; обнулити порт С

nop

rjmp nStart

;Настройка АЦП

adcn: nop

nop

clr tmp

awe: nop

cpi tmp, $04

brsh ass

out ADMUX, adc1 ;комутація входів АЦП

clr tmp2

clr tmp3

out ADCSR, adc2 ;запуск АЦП на перетворення

;Зберігання даних АЦП

in tmp2, ADCL

in tmp3, ADCH

mov r2, tmp2

mov r3, tmp3

mov r4, r2

mov r5, r3

mov r6, r4

mov r7, r5

inc tmp

rjmp awe

;середні арифметичні дії

ass: nop

clr r8

clc

add tmp2, r2

adc r9, r8

add tmp2, r4

adc r9, r8

add tmp2, r6

adc r9, r8

clc

lsr r9

ror tmp2

lsr r9

ror tmp2

clr r9

clc

add tmp3, r3

adc r9, r8

add tmp3, r5

adc r9, r8

add tmp3, r7

adc r9, r8

clc

lsr r9

ror tmp3

lsr r9

ror tmp3

nop

ret

;Програма затримки

zader: nop

wdr

ldi YL, low(305)

ldi YL, high(305)

ddd: sbiw YL, 1

brne ddd

ret

;Програма визначення потужності, порівняння

mosh:nop

osi: nop

mov dadc1, tmp2 ;запис молодшого байта АЦП потужності

mov dadc2, tmp3 ;запис старшого байта АЦП потужності

ldi cxt, $1B ;кількість дискретних потужностей

;Читання даних по потужності

cik: nop

cln

ldi ZH, high(2*prog0)

ldi ZL, Low(2*prog0)

Add ZL, cxt ;адрес вказаної потужності

LPM

mov dig1, adr ;молодший байт

dec cxt

subi ZL, 1 ;адрес вказаної потужності

LPM

mov dig2, adr ;старший байт

dec cxt

brmi osi ;дос

тигнут ноль потужності

;Перевірка на більше

clc ;скидання прапора переносу

cln ;скидання прапору знаку

;віднімання значення АЦП от набраного значення

sub dig1, dadc1

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

Clz

cpi dig2, 0

breq loki

clr tmp

rol tmp

sub dig2, dadc2 ;Віднімання старшого байту з займом

sub dig2, tmp

loki: nop

brpl cik ;рівень АЦП1 вище вказаної потужності

mov copy, cxt ;копіюємо адрес коду

nop

mov dis2, cxt ;запис молодшого адреса потужності

inc cxt

mov dis1, cxt ;запис старшого адреса потужності

nop

;читання коду потужності

ldi ZH, high(2*prog1)

ldi ZL, Low(2*prog1)

Add ZL, dis1 ;адрес вказаного коду потужності

LPM

mov dis1, adr ;молодший байт

ldi ZL, Low(2*prog1)

Add ZL, dis1 ;адрес вказаного коду потужності

LPM

mov dis2, adr ;старший байт ;вивід на дисплей даних

mov cms, cxt ;адрес дисплею

subi cms, $0E ;перетворення адреса -14

ldi ZH, high(2*prog2)

ldi ZL, Low(2*prog2)

Add ZL, cms ;адрес вказаного коду потужності

LPM

mov poy1, adr ;молодший байт

out PORTD, poy1 ;disp1

ldi ZH, high(2*prog3)

ldi ZL, Low(2*prog3)

Add ZL, cms ;адрес вказаного коду потужності

LPM

mov poy2, adr ;молодший байт

out PORTB, poy2; disp2

ret .org $300

;Код регулятора

prog0:

.DB $00, $58, $00, $7B, $00, $A4, $00, $CD .DB $01, $00, $01, $52, $01, $A4, $02, $00 .DB $02, $52, $02, $A4, $03, $00, $03, $52 .DB $03, $A4, $04, $00

;Код потужності

prog1:

.DB $08, $00, $08, $02, $08, $20, $08, $42 .DB $08, $88, $09, $24, $0A, $52, $0A, $AA .DB $0B, $5A, $0D, $B6, $0E, $EE, $0F, $7B .DB $0F, $BF, $0F, $FF

;Код дисплею

1 prog2:

.DB $00, $06, $06, $5B, $5B, $4F, $66, $6D .DB $6D, $7D, $07, $7F, $6F, $6F

;Код дисплею 2

prog3:

.DB $7F, $5B, $7D, $3F, $6D, $4F, $06, $3F .DB $7F, $7D, $6D, $4F, $06, $6F

.EXIT
скачати

© Усі права захищені
написати до нас