МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ТЕХІЧНИЙ КОЛЕДЖ НАЦІОНАЛЬНОГО УНІВЕРСИТЕТУ " ЛЬВІВСЬКА ПОЛІТЕХНІКА" Відділення "Інформаційних технологій" КУРСОВА РОБОТА з дисципліни "Комп'ютерна схемотехніка" на тему: «Розробка мікроконтролерного пристрою керування роботою паяльника » Виконала студентка групи -31КІ Сисун Вікторія _______________ № залікової книжки
Керівник роботи Терехов В.В. Львів 2021 ВСТУПМікроконтролер (MCU) - мікросхема, призначена для керування електронними пристроями. Типовий мікроконтролер поєднує в собі функції процесора і периферійних пристроїв, може містити ОЗУ і ПЗУ. По суті, це однокристальний комп'ютер, здатний виконувати прості завдання. Паяльник для спеціаліста електронної техніки - інструмент номер один. Вихід зі строю цього інструменту зупиняє процес ремонту або монтажу схем. Зарубіжні виробники пропонують різноманітні паяльні станції в широкому асортименті цін. В курсовій роботі розроблено структурну, функціональну та електричну принципову схеми пристрою та здійснений докладний опис їх роботи. Також розроблена блок схема алгоритму і програмний код. Частина 11. Принципи регулювання потужності електронагрівальних пристроївЕлектронагрівальні прилади - перетворюють електричну енергію у теплову з допомогою дротів високого опору, інфрачервоного випромінювання, індукційного або високочастотного нагріву. Їх споживні властивості визначаються функціональністю (час нагріву, найвища температура робочої поверхні тощо) та економічністю (зручність користування, надійність тощо). Є такі види регулювання потужності: частотне регулювання; амплітудне регулювання; фазове регулювання; ШІМ регулювання; комбіноване регулювання. Основною частиною електронагрівальних приладів є нагрівальні елементи, які найчастіше виготовляють у вигляді дротяної спіралі або смужки з спеціальних провідникових матеріалів з великим питомим опором. Ці матеріали здебільшого є сплавами різних металів. Основна вимога, яку вони повинні задовольняти - це бути стійкими проти окислення при нагріванні до значної температури. Цій вимозі найкраще відповідають сплави ніхром, фехраль, нікелін та ін. Нагрівальні елементи, виготовлені з цих сплавів, витримують температуру близько 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% відповідає ввімкненому стану на весь період. Головною відзнакою ШІМ є мала втрата енергії на електронному перемикачеві. Він здебільшого перебуває або у вимкненому стані, коли його опір максимальний, або в режимі насичення - з мінімальним опором, тобто або струм, або падіння напруги на ньому близькі до нуля. ШІМ також органічно вкладається в цифрові технології, велика кількість ШІМ-контролерів виробляється у вигляді мікросхем. ЧАСТИНА 21. Розробка структурної схеми регулятора потужності на мікроконтролеріРис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. Розроблено структурну, функціональну та електричну принципову схеми пристрою та здійснений докладний опис їх роботи. Також розроблено блок схему алгоритму і програмний код. Список використаних літературних джерелКравченко А.В. – 10 практических устройств на AVR-микроконтроллерах (Книга 2). Принцип роботи симісторних регуляторів потужності. (https://vbud.in.ua/printsip-roboti-simistornih-regulyatoriv-potuzhnosti/). Широтно-імпульсна модуляція. (https://uk.wikipedia.org/wiki/ ) 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 |