44164

Розробка структурної і функціональної схеми кондиціонера з мікропроцесорним управлінням

Дипломная

Коммуникация, связь, радиоэлектроника и цифровые приборы

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

Украинкский

2013-11-10

1.32 MB

38 чел.

3. Зміст

  1.  Титульний лист……………………………………………………………………ст.1
  2.  Завдання до курсового  проекту………………………………………………….ст.2
  3.  Зміст………………………………………………………………………………...ст.3
  4.  Анотація українською та іноземною мовою…………………………………… ст.4
  5.  Вступ………………………………………………………………………………. ст.6
  6.  Технічне завдання…………………………………………………………………ст.7
  7.  Огляд предметної області застосування мікропроцесорної системи………….ст.9
  8.  Огляд та аналіз існуючих технічних рішень…………………………………… ст.10
  9.  Обгрунтування власного технічного рішення…………………………………. ст.16
  10.  Розробка або вибір структурної та функціональної схеми  мікропроцесорної системи……………………………………………………………………………  ст.17
  11.  Розробка алгоритму функціонування  мікропроцесорної системи…………...  ст.22
  12.  Розробка принципової електричної схеми мікропроцесорної системи………  ст.25
  13.  Розробка  керуючої резидентної програми для мікроконтролера…………       ст.40
  14.  Конструкторська розробка мікропроцесорної системи
  15.  Інструкція з експлуатації та обслуговування мікропроцесорної системи…….  ст.54
  16.  Висновки…………………………………………………………………………..  ст.55
  17.  Список використаної літератури………………………………………………… ст.56
  18.  Додатки……………………………………………………………………………  ст.57
  19.  Графічна частина………………………………………………………………      ст.66

4. Анотація

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


Annotation

In this course project is developed microprocessor control unit for air conditioning. Vdanomu COURSE done building the structural scheme, the choice of components, optimized to implement the tasks of cheapness and a range of characteristics, formed functional scheme, which fully shows the system, also built an algorithm and program written in assembly language.


5. Вступ

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

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

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

Архітектура МПС – розподіл функцій, що реалізуються системою на окремих її рівнях, та точне визначення меж між цими рівнями. Вона поєднує апаратні, мікропрограмні і програмні засоби обчислювальної техніки, визначає принцип організації МПС та функції її компонентів, зокрема процесора, пам’яті та ін. Архітектура МПС не відображає конструктивні особливості логічних структур і модулів та технологію їх виробництва.

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

Завдання даної курсової роботи – розробка системи управління кондиціонером, що здійснює введення бажаної температури в приміщенні, виведення поточної температури приміщення, порівняння цих двох температур і вибір режиму роботи на обігрів або на охолодження відповідно.

6. Технічне завдання на проектування кондиціонера.

6.1. Призначення та напрямок застосування.

Пристрій, який проектує’ця – кондиціонер -  призначений для  введення бажаної температури в приміщенні, виведення поточної температури приміщення, порівняння цих двох температур і вибір режиму роботи на обігрів або на охолодження відповідно.

6.2. Склад і технічні вимоги пристрою.

6.2.1. Склад пристрою.

Пристрій що проектується повинен вміщувати:

Мікропроцесорну систему збору і обробки даних і їх аналізу;

Пульт керування;

Спостереження здійснюється за допомогою

датчика температури DSI8B20;

виконавчы механызми у вигляді:

Нагрівального  елемента

двигуна вентилятора;

двигуна компресора ;

6.2.2. Технічні вимоги пристрою.

Пристрій повинен працювати 24години без відбійно.

6.3. Умови монтажу і експлотації пристрою.

Пристрій повинен бути змонтований на друкованій платі.

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

На корпусі пристрою розташовується:

Світловий індикатор,

Кнопка включення, вимкнення.

Умови роботи будуть нормальними,   тоді коли апарат працює в середовищі кімнатної температури, нормальним тиском і вологістю.

        Працює від побутової електричної мережі 220 В.

7. Огляд предметної області застосування мікропроцесорної

системи.

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

Значить що кондиціонер можна встановлювати в офісах, приватних будинках, на складах , будь де да треба контролювати режим температури в приміченнях.

8. Огляд аналіз існуючих технічних рішень.

8.1.  Розглянимо різновиди кондиціонерів.

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

а) за основним призначенням (об'єкту застосування):
 - комфортні
- Технологічні


б) за принципом розташування кондиціонера по відношенню до обслуговуваного приміщення:
 - Центральні
- місцеві

в) за наявності власного (входить до складу кондиціонера) джерела тепла і холоду:
 - Автономні
 - неавтономні


г) за кількістю обслуговуваних приміщень (локальних зон):
 - однозональние
 - багатозональні

д) за принципом дії:
 - Припливні
 - рециркуляційні
 - комбіновані
е) за способом регулювання вихідних параметрів кондиціонованого повітря:
- з якісним (однотрубним)
- з кількісним (двотрубних) регулюванням

ж) за ступенем забезпечення метеорологічних умов в обслуговуваному приміщенні - першого, другого і третього класів


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


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

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


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

  Центральні
Забезпечуються в зовні холодом (що доставляються холодною водою або холодоагентом), теплом (що доставляються гарячою водою, парою або вентиляторів, насосів і пр.
     Центральні системи кондиціювання повітря розташовані поза обслуговуваних приміщень і кондиціонують одне велике приміщення, декілька зон такого приміщення або багато окремих приміщень. Іноді кілька центральних кондиціонерів електрикою) і електричною енергією для приводу електродвигунів обслуговують одне приміщення великих розмірів (виробничий цех, театральний зал, закритий стадіон або каток).
Центральні ВКВ обладналися центральними неавтономним кондиціонерами, які виготовляються з базових (типовим) схемах компоновки устаткування і їх модифікацій.
Центральні системи кондиціювання повітря володіють наступними перевагами:

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

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

   Автономні
Автономні системи кондиціонування повітря забезпечуються ззовні тільки електричною енергією, наприклад, кондиціонери спліт-систем, шафові ко
ндиціонери і т.п. Такі кондиціонери мають вбудовані компресійні холодильні машини, що працюють, як правило, на фреоні-22. Автономні системи охолоджують і осушують повітря, для чого вентилятор продуває рециркуляционний повітря через поверхневі повітроохолоджувачі, якими є випарники холодильних машин, а в перехідний або зимовий час вони можуть виробляти підігрів повітря за допомогою електричних підігрівачів або шляхом реверсування роботи холодильної машини по циклу так званого "теплового насоса ".
Найбільш простим варіантом, що представляє децентралізоване забезпечення в приміщеннях температурних умов, можна вважати застосування кондиціонерів спліт-систем.
   Неавтономні
Неавтономні системи кондиціонування повітря поділяються на:
- Повітряні, при використанні яких в обслуговуване приміщення подається тільки повітря. (Міні-центральні кондиціонери, центральні кондиціонери)
- Водоповiтряними, при використанні яких в обслуговувані приміщення підводяться повітря і вода, що несуть тепло або холод, або і те і інше разом (системи чілерів-фанкойлів, центральні кондиціонери з місцевими доводчиками і т.п.)
Однозональние центральні ВКВ
Однозональние центральні системи кондиціонування повітря застосовуються для обслуговування великих приміщень з відносно рівномірним розподілом тепла та вологовиділення, наприклад, великих залів кінотеатрів, аудиторій і т.п. Такі ВКВ, як правило, комплектуються пристроями для утилізації тепла (теплоутилізаторами) або змішувальними камерами для використання в обслуговуваних приміщеннях рециркуляції повітря.

   Багатозональні центральні
Багатозональні центральні системи кондиціонування повітря застосовують для обслуговування великих приміщень, в яких обладнання розміщено нері
вномірно, а також для обслуговування ряду порівняно невеликих приміщень. Такі системи економічніші, ніж окремі системи для кожної зони або кожного приміщення. Проте з їх допомогою не може бути досягнута такий же ступінь точності підтримки одного або двох заданих параметрів (вологості і температури), як автономними ВКВ (кондиціонерами спліт-систем і т.п.)
Прямоточні ВКВ
Прямоточні системи кондиціонування повітря повністю працюють на зовнішньому повітрі, який обробляється в кондиціонері, а потім подається в приміщення.
Рециркуляційні ВКВ
Рециркуляційні системи кондиціонування повітря, працюють без припливу або з частковою подачею (до 40%) свіжого зовнішнього повітря або на рециркуляційно повітрі (від 60 до 100%), який забирається з приміщення і після його обробки в кондиціонері знов подається в це ж приміщення. Класифікація кондиціонування повітря за принципом дії на прямоточні і рециркуляційні обумовлюється, головним чином, вимогами до комфортності, умовами технологічного процесу виробництва або техніко-економічними міркуваннями.
ВКВ з якісним регулюванням
Центральні системи кондиціювання повітря з якісним регулюванням метеорологічних параметрів є широкий ряд найбільш поширених, так званих одноканальних систем, в яких весь оброблений повітря при заданих кондиціях виходить з кондиціонера по одному каналу і поступає далі в одне або декілька приміщень. При цьому регулюючий сигнал від терморегулятора, встановленого в обслуговуваному приміщенні, поступає безпосередньо на центральний кондиціонер.
     З кількісним регулюванням
Системи кондиціонування повітря з кількісним регулюванням подають в одне або декілька приміщень холодний або підігріте повітря по двох паралел
ьних каналах. Температура в кожному приміщенні регулюється кімнатним терморегулятором, яке впливає на місцеві змішувачі (повітряні клапани), які змінюють співвідношення витрат холодного і підігрітого повітря в подається суміші.
Двоканальні системи використовуються дуже рідко через складність регулювання, хоча і володіють деякими перевагами, зокрема, відсутністю в

обслуговуваних приміщеннях теплообмінників, трубопроводів тепло-холодоносія, можливістю спільної роботи з системою опалювання, що особливо важливо для існуючих будівель, системи опалення яких при влаштуванні двоканальних систем можуть бути збережені. Недоліком таких систем є підвищені витрати на теплову ізоляцію паралельних воздуховодов, що підводяться до кожного обслуговуваного приміщення.
Двоканальні системи так само, як і одноканальні, можуть бути прямоточними і рециркуляційних.
Ступінь забезпечення метеорологічних умов
Кондиціювання повітря, згідно СниП 2.04.05-91, за ступенем забезпечення метеорологічних умов, підрозділяється на три класи:
  - Перший клас - забезпечує потрібні для технологічного процесу установки відповідно до нормативних документів.
  - Другий клас - забезпечує оптимальні санітарно-гігієнічні норми або нео
бхідні технологічні норми.
 - Третій клас - забезпечує допустимі норми, якщо вони не можуть бути забезпечені вентиляцією в теплий період року без застосування штучного ох
олодження повітря.
Створюване вентиляторами тиск
За тиску, який створюється вентиляторами центральних кондиціонерів, си
стеми кондиціонування повітря поділяються на системи
  - Низького тиску (до 100 кг / кв.м.),
  - Середнього тиску (від 100 до 300 кг / кв.м.)
 - Високого тиску (вище 300 кг / кв.м.).

8.2 Аналіз  недоліків існуєчих технічних рішень кондиционерів.

Основним  недоліком кондиціонера є його ціна в сьому іншому він дуже зручний, простий і надійний.

9. Обгунтування  власного технічного рішення.

 Для обгунтування  власного технічного рішення робимо висновки з інформації наведеної в пункті 8.

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

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

  1.   Наявність інших можливостях в кондиціонері є, але ціна кондиціонера піднімається. Наприклад такі додаткові функції як управліня роботи кондиціонера за допомогою безпровідного пульта управління,  клімат контроль.


10. Структурна схема кондиціонера.


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


 

Структурна схема

Пульт управління .

Пульт управління кондиціонером містить два РКІ індикатора поточної температури приміщення і задається користувачем (підтримуваної в приміщенні) температури і дві кнопки зміни задається користувачем температури у бік збільшення і зменшення  С).(крок зміни температури - 1  При включенні кондиціонера задається користувачем температура буде за замовчуванням  С, як найбільш комфортна температура при невеликому фізичномудорівнює 24  навантаженні (ходьба в приміщенні, легка праця) в літній час.
Для відображення температур виберемо РКІ модуль типу МТ-10Е7-7 російської фірми МЕЛТ.
Основні характеристики модуля МТ-10Е7-7:
тип індикатора - цифровий семисегментний;
кількість рядків - 1;
кількість розрядів - 10;
напруга живлення - мінімальна +3 В, максимальне +5 В;
струм споживання - 30мкА;
спосіб регулювання контрастності - ручний (зовнішній резистор);
кількість висновків - 12;
габаритні розміри - 66х31, 5х9, 5 мм.
Модуль МТ-10Е7-7 - це недорогий, досить поширений однорядковий індикатор, що містить десять семисегментних розрядів для виводу цифрової і
нформації. Висновки модуля виконані у вигляді контактних майданчиків на друкованій платі з отворами для пайки проводів.

Датчика температури.


Фірма Dallas Semiconductor випускає цілий набір мікросхем-вимірювачів температури. Найперший інтегральний термодатчик з 1-Wire інтерфейсом н
азивався DS1820. Ця оригінальна мікросхема відразу після своєї появи набула популярності у розробників електронної апаратури.
DSI8B20 - більш досконала мікросхема. Висока дискретність досягається зб
ільшенням кількості розрядів результуючого коду. Причому в мікросхемі є можливість зміни кількості. Розрядів вихідного регістра. За замовчуванням вихідний регістр має 9 розрядів. Змінюючи вміст регістра конфігурації, мікроконтролер може збільшити кількість розрядів до 12. Точність вимірювання температури в діапазоні -10 ... +85 * С становить - ± 0,5 ° С. На виході мікросхеми DS18B20 ми отримуємо прямий код. значення якого дорівнює величині вимірюваної температури. У 9-розрядному режимі значення вимірюваної температури видається-С дискретністю в 0,5 'С. У дванадцятирозрядний режимі кількість відліків підвищується у вісім разів. Максимальний час перетворення для мікросхеми DS18B20 також залежить від обраної кількості розрядів. Для 12-розрядного режиму роботи воно дорівнює 750 мс.

Мікроконтролер.

В даний час серед всіх 8-розрядних мікроконтролерів - сімейство MCS-51 є безсумнівним чемпіоном за кількістю різновидів і кількості компаній, що випускають його модифікації. Воно отримало свою назву від першого предст
авника цього сімейства - мікроконтролера 8051, випущеного в 1980 році на базі технології HMOS. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку.
Важливу роль в досягненні такої високої популярності сімейства 8051 зіграла відкрита політика фірми Intel, родоначальниці архітектури, спрямована на широке поширення ліцензій на ядро ​​8051 серед великої кількості провідних напівпровідникових компаній світу.
У результаті на сьогоднішній день існує більше 200 модифікацій мікрокон
тролерів сімейства 8051, що випускаються майже 20-ма компаніями. Ці модифікації включають в себе кристали з найширшим спектром периферії: від простих 20-вивідних пристроїв з одним таймером і 1К програмної пам'яті до найскладніших 100-вивідних кристалів з 10-розрядними АЦП, масивами таймерів-лічильників, апаратними 16-розрядними помножувача і 64К програмної пам'яті на кристалі. Щороку з'являються все нові варіанти представників цього сімейства. Основними напрямами розвитку є: збільшення швидкодії (підвищення тактової частоти і переробка архітектури), зниження напруги харчування та споживання, збільшення обсягу ОЗП і FLASH пам'яті на кристалі з можливістю внутрішньосхемного програмування, введення до складу периферії мікроконтролера складних пристроїв типу системи управління приводами, CAN і USB інтерфейсів і т.п.
Всі мікроконтролери з сімейства MCS-51 мають загальну систему команд [4]. Наявність додаткового устаткування впливає тільки на кількість регістрів спеціального призначення.
Основними виробниками клонів 51-го сімейства в світі є фірми Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems і ряд інших.
У рамках СРСР виробництво мікроконтролера 8051 здійснювалося в Києві, Воронежі (1816ВЕ31/51, 1830ВЕ31/51), Мінську (1834ВЕ31).
Для даної проблеми було обрано мікроконтроллер AT89C51 фірми Atmel [5]. Незважаючи на те, що фірма Atmel вже давно робить упор на нове покоління мікроконтролерів (серії AVR), мікроконтроллер AT89C51 теж досить широко застосовується. І не випадково, так як ця мікросхема має ще досить великий потенціал. Параметри мікросхеми дозволяють створювати широкий спектр сучасних електронних пристроїв, що знаходять своє застосування в самих різних областях мікропроцесорної техніки. Головною перевагою вибору саме цієї мікросхеми є її широка доступність і прийнятна ціна.

Вентилятор.

У кондиціонерах застосовуються вентилятори з крильчаткою тангенціального типу [1], потік повітря в яких надходить у крильчатку з одного боку, а виходить з іншого, змінивши напрямок свого руху.
Поперечний переріз такого вентилятора показано на малюнку 19. Зрив потоку з крайок лопаток крильчатки призводить до утворення ядра завихрення, що служить джерелом шуму і гідравлічних втрат пристрою. Для забезпечення максимального акустичного комфорту при роботі кондиціонера і максимальної далекобійності повітряного струменя фірми-виробники приділяють велику увагу відпрацювання конфігурації направляючого апарату У ряді моделей кондиціонерів Daikin і Toshiba крильчатка вентилятора має змінний крок лопастей, що виключає можливість виникнення резонансних частот і пов'язаного з ними шуму.
Конструктори кондиціонерів намагаються збільшити діаметр крильчатки вентилятора, щоб при тій же витраті повітря знизити його швидкість. Щоб уникнути виникнення пульсацій повітряного потоку на резонансних частотах, лопатки вентилятора розташовують під різними кутами до осі обертання. Характеристики обраного вентилятора наведені в таблиці 4.
Характеристики вентилятора
Тип Відцентровий
Діаметр / довжина крильчатки, мм 70/598
Модель двигуна YDK10-2A
Кількість полюсів 2
Максимальна швидкість обертання, об / хв 1950
Номінальна вихідна потужність, Вт 10
Опір обмоток, Ом (при 20  С).
Колір ізоляції висновків:
«Білий - сірий»  410  10%
«Білий - рожевий» 301  10%

Пристрій безпеки Тнутрішній термозапобіжник
Температура срабатианія,  С 145  8
Керуючий конденсатор Ємність, мкФ 1,0
Потужність, ВА 450

Компресор.

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

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

Принципова електрична схема кондиціонера

Опис принципової схеми

 Пульт керування

Пульт керування кондиціонером містить два РКІ індикатора поточної темп
ератури приміщення і задається користувачем (підтримуваної в приміщенні) температури і дві кнопки зміни задається користувачем температури у бік збільшення і зменшення  С).(крок зміни температури - 1  При включенні кондиціонера задається користувачем температура буде за замовчуванням  С, як найбільш комфортна температура при невеликому фізичномудорівнює 24  навантаженні (ходьба в приміщенні, легка праця) в літній час.
Для відображення температур виберемо РКІ модуль типу МТ-10Е7-7 росі
йської фірми МЕЛТ.
Основні характеристики модуля МТ-10Е7-7:
тип індикатора - цифровий семисегментний;
кількість рядків - 1;
кількість розрядів - 10;
напруга живлення - мінімальна +3 В, максимальне +5 В;
струм споживання - 30мкА;
спосіб регулювання контрастності - ручний (зовнішній резистор);
кількість висновків - 12;
габаритні розміри - 66х31, 5х9, 5 мм.
Модуль МТ-10Е7-7 - це недорогий, досить поширений однорядковий індик
атор, що містить десять семисегментних розрядів для виводу цифрової інформації. Висновки модуля виконані у вигляді контактних майданчиків на друкованій платі з отворами для пайки проводів. Призначення висновків модуля показано в таблиці 1. Підпрограми виведення сімвомов і рядків на індикатори показані в додатку 1.

Назначение виводов модуля МТ – 10Т7-7

Номер вивода

Імя цеп

Назначенія

1

A0

Вход вибора «адрес/данные»

2

WR2

Інверсний вход синхронизации записі

3

WR1

Прямой вход синхронизации записі

4

DB3

Разряд 3

Шина данних/адреса

5

DB2

Разряд 2

6

DB1

Разряд 1

7

DB0

Разряд 0

8

GND

Общий провод

9

V0

Вход управления контрастностю

0

+E

Питание модуля

11

+L

Не іспользуєтся

12

-L

Не іспользуєтся

Робота з шиною 1-Wire

Шина 1-Wire [2] побудована за технологією Master / Slave. Тобто, на шині має бути хоча б одне провідне пристрій (Master). Усі інші пристрої повинні бути відомими (Slave). Провідне пристрій ініціює всі процеси передачі інформації в межах шини. Master може прочитати дані з будь-якого Slave пристрою або записати їх туди. Передача інформації від одного Slave до іншого безпосередньо неможлива. При розробці протоколу 1-Wire велику увагу було приділено надійності роботи мережі. Спочатку була поставлена ​​умова - робота повинна відбуватися в умовах поганих контактів.
Розглянемо принципову електричну схему, що реалізує 1-Wire інтерфейс. Схема з'єднання ведучого і веденого пристроїв за допомогою однопроводной шини наведена на рисунку 7. На цьому малюнку також показано особливості схемної реалізації вихідних каскадів ведучого і веденого пристроїв. У схемі 1-Wire інтерфейсу використовуються вихідні каскади з відкритим колект
ором (стоком) та загальним навантаженням RH для всіх елементів мережі. У специфікації для 1-Wire інтерфейсу спеціально обмовляється, що резистор RH повинен знаходитися в безпосередній близькості від ведучого пристрою.
Біполярний транзистор у вихідному каскаді ведучого пристрою показаний умовно. З не меншим (а швидше за великим) успіхом можна застосовувати мікросхеми, у яких вихідні каскади побудовані по КМОП технології. Відомі пристрої зазвичай побудовані на КМОП транзисторах. У режимі очікування всі вихідні транзистори закриті. На шині присутній напруга логічної одиниці. Інформація по шині передається за допомогою негативних імпульсів. Будь-який пристрій, підключений до шини, як провідне, так і відоме, може ств
орювати негативні імпульси і тим самим передавати інформацію. Однак ведене пристрій починає процес передачі тільки під управлінням ведучого.
У складі відомого пристрою є джерело струму, показаний на малюнку 7 дв
ома пересічними колами. Це джерело створює внутрішню витік на вході 1-Wire інтерфейсу. Сенс цього витоку - створити нульовий рівень сигналу на внутрішніх елементах відомого пристрою при його відключенні від шини 1-Wire. Коли з'єднання буде відновлене, внутрішня логіка веденої мікросхеми виявляє перепад напруги з нуля на одиницю. Відразу після отримання такого сигналу ведена мікросхема повинна видати на шину 1-Wire сигнал присутності.

 Електрична схема 1-Wire інтерфейсу

Кожне з підключених пристроїв (провідне і ведене) повинно містити спеціальне керуючий пристрій, що реалізує протокол шини 1-Wire. Саме протокол визначає всі правила передачі інформації.
Протокол 1-Wire має кілька різних рівнів. Найнижчий рівень описує, яким чином передаються окремі біти. При цьому передбачено двосторонній обмін інформацією. Всі операції на шині виробляються виключно під управлінням Master пристрою. Воно може виконувати операції двох видів: записувати інформацію в Slave пристрій і зчитувати інформацію з нього. Інформація передається побайтно, у послідовному вигляді, біт за бітом, починаючи з моло
дшого біта. В обох випадках Master пристр виробляє на шині тактові імпульси. Для цього воно періодично «підсаджує» шину за допомогою свого 1-Wire інтерфейсу. Корисна інформація передається шляхом зміни тривалості цих імпульсів.
При запису інформації тривалістю імпульсів управляє Master пристрій. У режимі читання Master пристрій починає формування імпульсу, але Slave пр
истрій може продовжувати тривалість будь-якого імпульсу, «підсаджуючи» у свою чергу сигнал на лінії в потрібний момент. На рисунку 8 зображено дві тимчасові діаграми. Верхня діаграма ілюструє режим запису двох різних бітів інформації, а нижня - режим читання. Ділянки діаграми, де лінія «відпущена» і рівень сигналу на лінії визначається резистором RH, зображені на діаграмі за допомогою тонких ліній. Ділянки, де один з елементів мережі «підсаджує» лінію, зображені за допомогою товстих ліній.
Розглянемо, як відбувається запис біта. У вихідному стані всі Slave пристрої, підключені до шини, знаходяться в режимі очікування. Лінія «відпущена». Тобто вихідні транзистори всіх елементів шини закриті, і напруга на шині визначається резистором навантаження RH. Для того, щоб записати дані в одне з Slave пристроїв, Master починає формувати негативні синхроімпульси (верхня діаграма в додатку  ). На кожен передаваний біт формується один імпульс. Імпульси передаються шляхом «підсаджування» лінії до нуля. Для п
ередачі кожного біта виділяється проміжок часу стандартної тривалості. Цей проміжок отримав назву «слот» (Slot). Як видно з малюнка 8, величина слота для передачі одного біта інформації (Tx) повинна лежати в межах від 60 до 120 мкс

                      Тимчасова діаграма процесу запису і читання одного біта

Якщо значення передаваного біта дорівнює 0, то Master виробляє «довгий» імпульс. Його довжина дорівнює тривалості слота. Для передачі «одиничного» біта Master виробляє "короткий" імпульс, який, по суті, є чистим синхроімпульсів (1 мкс). Частина, що залишилася сигналу повинна бути заповнена одиничним сигналом. Між двома слотами повинен бути невеликий проміжок, під час якого сигнал на шині теж дорівнює одиниці. Slave пристрій у цьому режимі лише приймає сигнал. Для цього воно постійно перебуває в режимі очікування. Виявивши початок синхроімпульса, Slave пристрій починає процес прийому інформації. Передній фронт цього імпульсу служить Slave пристрою початком відліку. Витримавши паузу, рівну тривалості синхроімпульса, Slave пристрій зчитує рівень сигналу на лінії. Якщо в цей момент часу рівень сигналу на лінії дорівнює нулю, значить і передається біт дорівнює нулю. Якщо ж сигнал буде дорівнює одиниці, то біт дорівнює одиниці. Протокол шини 1-Wire жорстко визначає тривалість слота. Інтервал між слотами в свою чергу має обмеження тільки на мінімальне значення - 1мкс. Максимальне значення цього інтервалу необмежено. З допомогою цього інтервалу може легко регулюватися швидкість передачі даних від свого максимального значення (16,3 Кбіт / с) практично до нуля.
Відмінність процесу читання біта (нижня діаграма на малюнку 8) від запису полягає в тому, що Master виробляє тільки синхроімпульси (короткої тривалості). Виявивши синхроимпульс, Slave пристрій повинен подовжити або не подовжувати цей синхроимпульс в межах слота. Якщо черговий зчитування біт дорівнює нулю, то синхроимпульс подовжується Slave пристроєм, якщо ж він дорівнює одиниці, то подовження не відбувається. На рисунку 8 ділянки тимчасової діаграми, де лінію «підсаджує» Master пристрій, зображені товстою суцільною лінією. Ділянки, які «підсаджує» Slave пристрій зображені переривчастої суцільною лінією. Master пристрій зчитує цю інформацію, контролюючи рівень сигналу всередині слота відразу після синхроімпульса.
Для надійної роботи однопроводной інтерфейсу необхідно, щоб у процесі передачі інформації всіма елементами мережі строго дотримувалися тимчасові параметри. При цьому більш жорсткі вимоги пред'являються до Master пристрою, так як в його ролі виступає мікроконтроллер, здатний з високою точністю відпрацьовувати будь-які тимчасові інтервали. При записі ведене пристрій (у нашому випадку датчик температур), виявивши на шині передній фронт синхроімпульса, повинен сформувати затримку мінімум в 15 мкс і потім провести перевірку сигналу на шині. Допустимий розкид часу затримки лежить в межах від 15 до 60 мкс. Цей діапазон зображений на рисунку 8 у вигляді області, позначеної як «Зона перевірки рівня Slave». У режимі читання біта Master виробляє тільки синхроімпульси, тривалість яких дорівнює 1 мкс. Якщо читається біт дорівнює нулю, Slave пристрій подовжує тривалість синхроімпульса. Мінімальна тривалість продовженого імпульсу становить 15 мкс. Для цього тимчасового інтервалу теж допускається досить значний розкид: тривалість подовженого імпульсу може вирости ще на 45 мкс. Якщо читається біт дорівнює одиниці, подовження синхроімпульса не відбувається. Таким чином, для того, щоб правильно оцінити значення читаного біта, Master пристрій повинен прочитати рівень сигналу на шині відразу після закінчення синхроімпульса, але не пізніше, ніж через 15 мкс. Зона перевірки для Master пристрою в режимі читання значно вже аналогічної зони для Slave пристрою в режимі запису.
Ряд окремих біт при читанні або запису формується в байти. Байти передаються молодшим бітом вперед. Перші вісім бітів - це перший байт. Наступні вісім - другий байт, і так далі. Початок всієї цієї ланцюжка визначається сигналом скидання. Імпульс скидання - це наддовгий негативний імпульс на шині 1-Wire, що виробляється провідним пристроєм. Тимчасова діаграма, що ілюструє процес формування імпульсу скидання, наведена на в додатку  імпульсом скидання тісно пов'язаний ще один службовий сигнал - сигнал присутності на шині. Сигнал присутності виробляє кожне Slave пристрій відразу після закінчення дії імпульсу скидання. Master пристрій повинен проконтролювати наявність цього імпульсу. Якщо імпульсу немає, значить на лінії немає жодного Slave пристрою.

Тимчасова діаграма процесу початкового скидання

Крім ініціації імпульсів присутності імпульс скидання переводить в початковий стан всю систему. Будь-які незакінчені процеси на лінії моментально завершуються, і відлік бітів починається з початку. Тривалість імпульсу скидання повинна бути не менш 480 мкс. Процес передачі інформації по лінії може починатися не раніше, ніж через 480 мкс після закінчення дії імпульсу скидання (малюнок 9). У цьому часовому інтервалі і очікується поява сигналу присутності. Для цього після закінчення імпульсу скидання Master «відпускає» лінію і чекає сигналу від Slave пристрою. Slave пристрій, виявивши імпульс скидання, витримує паузу в 15 .. 60 мкс, а потім «підсаджує» лінію. Тривалість імпульсу присутності становить 60 .. 240 мкс. Провідне пристрій перевіряє наявність нульового рівня на лінії в середині цього інтервалу. Якщо сигнал виявлений, то це означає, що на лінії є нормально працює Slave пристрій і Master може продовжувати роботу в мережі. Якщо сигнал не виявиться, мікроконтроллер перейде до обробки цієї ситуації.
Будь-яка операція в мережі Master пристрій - Slave пристрій починається з команди. Команда являє собою байт інформації. Кожна команда має свій власний код. Виконання команди починається з імпульсу скидання. Потім Slave пристрій виробляє, а Master пристрій перевіряє сигнал присутності на лінії. Якщо сигнал на місці, Master видає на лінію код команди в режимі запису. Отримавши цей код, Slave пристрій перемикається в режим видачі інформації.
При описі протоколу 1-Wire прийнято виділяти два рівні, пов'язаних з логікою роботи протоколу - мережевий і транспортний рівні. Відразу після сигналу скидання шина переходить на мережний рівень. Відпрацювавши команду мережевого рівня, шина переходить на транспортний. Система команд мережевого рівня протоколу 1-Wire включає 5 команд: Читання ПЗУ, Читання ПЗУ (для мікросхеми DS1990A команда має інший код), Збіг ПЗУ, Пропуск ПЗУ, Пошук ПЗУ. Усі ці команди, окрім команди Пропуск ПЗУ, не використовуються у разі, якщо в мережі є лише один пристрій. Оскільки для виконання вимог технічного завдання одного датчика температури цілком достатньо, обмежимося описом команди Пропуск ПЗУ (Skip ROM). Ця команда (код - 0ССН) дозволяє перейти на транспортний рівень всіх пристроїв в мережі, залишаючи їх активними. У нашому випадку пристрій всього одне.
Після команди мережевого рівня всі елементи мережі переходять на транспортний рівень. Список команд цього рівня різниться для кожного пристрою. Команди електронного датчика температури DS18B20 будуть розглянуті в даній роботі пізніше. Слід зазначити, що для виконання чергової команди після виконання команди транспортного рівня необхідно зробити імпульс початкового скидання.
Тепер приступимо безпосередньо до захоплюючого опису інтегрального датчика температури фірми Dallas Semiconductor DS18B20.

2.3 Вибір датчика температури

Фірма Dallas Semiconductor випускає цілий набір мікросхем-вимірювачів температури. Найперший інтегральний термодатчик з 1-Wire інтерфейсом називався DS1820. Ця оригінальна мікросхема відразу після своєї появи набула популярності у розробників електронної апаратури.
DSI8B20 - більш досконала мікросхема. Висока дискретність досягається збільшенням кількості розрядів результуючого коду. Причому в мікросхемі є можливість зміни кількості. Розрядів вихідного регістра. За замовчуванням вихідний регістр має 9 розрядів. Змінюючи вміст регістра конфігурації, мікроконтролер може збільшити кількість розрядів до 12. Точність вимірювання температури в діапазоні -10 ... +85 * С становить - ± 0,5 ° С. На виході мікросхеми DS18B20 ми отримуємо прямий код. значення якого дорівнює величині вимірюваної температури. У 9-розрядному режимі значення вимірюваної температури видається-С дискретністю в 0,5 'С. У дванадцятирозрядний режимі кількість відліків підвищується у вісім разів. Максимальний час перетворення для мікросхеми DS18B20 також залежить від обраної кількості розрядів. Для 12-розрядного режиму роботи воно дорівнює 750 мс.

2.4 Внутрішня архітектура мікросхеми DS18B20

Мікросхема DS18B20 випускається в двох модифікаціях [2], Вони відрізняються виключно конструкцією корпусу, На малюнку 10 наведено зовнішній вигляд обох модифікацій мікросхеми. Основний варіант мікросхеми виконаний в мініатюрному пластмасовому корпусі типу ТЕ-92. Другий варіант полягає у планарний восьмівиводной, мініатюрний корпус типу SOIC. Для того, щоб розрізняти ці два варіанти виконання, другий варіант отримав позначення DSI8B20Z. Мікросхема має всього три задіяних висновку: DO-вход/виход даних 1-Wire інтерфейсу; VDD - висновок зовнішнього живлення: GND - загальний дріт. Розташування висновків показано .
Внутрішня структура мікросхеми DS18B20 наведена в додатку  Сигнал з шини DQ і напругу з зовнішнього виведення харчування (VDD) перш за все надходять на схему паразитного харчування. Однак у схемі паразитного харчуванні є ще один додатковий елемент, про який не говорилося раніше. Це датчик наявності живлення. Датчик являє собою граничний елемент, на який поступає напруга живлення від зовнішнього джерела. Датчик виробляє логічно сигнал, що поступає У схему управління. У результаті мікросхема отримує можливість автоматично визначати режим свого харчування. Мікроконтролер, що працює як Master пристрої на тій же шині, має можливість запросити у всіх підключених до неї датчиків інформацію про режим харчування і відповідним чином скорегувати алгоритм своєї роботи.

Зовнішній вигляд мікросхем DS18B20 у двох різних виконаннях

Сигнал DQ, забезпечивши напругою схему паразитного харчування надходить на 1-Wire порт, який служить апаратною частиною одне проводового інтерфейсу. Дані, отримані за допомогою цього інтерфейсу, надходять в блокнотний пам'ять. Блокнотний пам'ять призначена для тимчасового зберігання інформації від датчика температури і трьох спеціальних регістрів: регістра верхньої межі (Тн), регістру нижньої межі (TL) і регістра конфігурації. Всі три спеціальних регістру представляють собою три осередки флеш-пам'яті (EEPROM).
З блокнотний пам'яттю також пов'язаний генератор контрольної суми. Цей генератор автоматично обчислює контрольну суму всіх регістрів блокнотний пам'яті. При зчитуванні інформації з блокнотний пам'яті контрольна сума також читається і служить для перевірки правильності прочитаної інформації. Застосування блокнотний пам'яті дозволяє підвищити надійність передачі інформації. Інформація ніколи не записується безпосередньо в осередки флеш-пам'яті (регістри Тн і TL і регістр конфігурації). Попередньо вона поміщається в блокнотний пам'ять. Потім мікроконтроллер читає її звідти і перевіряє контрольну суму. Якщо результат перевірки позитивний, мікроконтролер подає по шині спеціальну команду «Копіювання блокнотний пам'яті в EEPROM».
За допомогою 1-Wire інтерфейсу можна також прочитати вміст 64-бітного ПЗУ, в якому зберігається ID код мікросхеми. Останні вісім бітів ID коду представляють собою контрольну суму перших її 56 бітів.
Структура пам'яті мікросхеми DS18B20 наведена на рисунку 12. Пам'ять складається з восьми регістрів блокнотний пам'яті і трьох регістрів EEPROM. Операції запису і читання блокнотний пам'яті виконуються для всіх її регістрів одночасно. При; запису всі вісім регістрів блокнотний пам'яті записуються одним блоком з восьми байт. Точно також одним блоком відбувається зчитування інформації. На малюнку 12 для кожного регістру позначена його позиція всередині передаваного блоку (байт 0, байт 1 і так далі).
Два наймолодших регістра (байт 0 і байт 1) містять результат перетворення температури в код. Наступні три регістра служать для проміжного зберігання інформації для регістрів флеш-пам'яті. У регістр Тн записується верхня межа температури. У регістр TL - нижній. Ці регістри використовують для перевірки факту виходу величини виміряної температури за межі встановленого діапазону. Мікроконтролер здатний швидко відшукати в мережі Micro LAN всі термодатчики, у яких не дотримується ця умова. Якщо не потрібний механізм обмеження температури, то регістри Тн і TL можна використовувати як додаткові осередки енергонезалежної пам'яті і зберігати в них будь-які дані. Наприклад, туди можна записати код місця положення конкретного датчика. Регістр конфігурації служить для перемикання кількості розрядів вимірювача температури

Всі три описані вище регістра (байт 2, байт 3, байт 4) мають механізм автоматичного відновлення. При включенні харчування в них автоматично копіюється інформація з відповідних регістрів EEPROM. У регістр температури після включення живлення збожеволіє код 0550Н (старший байт 05Н, молодший байт 50Н), що відповідає температурі 85 ° С.
Решта три регістра блокнотний пам'яті (байт 5, байт 6 і байт 7) в мікросхемі DSI8S20 не використовуються. Вони зарезервовані для майбутніх її модифікацій. При читанні всі три невикористовуваних регістру повертають код OFFH (одиниці у всіх розрядах). Останній, восьмий регістр блокнотний пам'яті - це регістр генератора контрольної суми.

Після закінчення процесу перетворення ці регістри містять пряме значення величини виміряної температури в двійковому вигляді. Регістр температури - це два регістри блокнотний пам'яті. На малюнку 13 показаний вага кожного розряду регістра. Біти з 11-го по 15-й (позначені буквою S) містять одне і те ж значення. Воно дорівнює знаку записаного числи (0 - плюс, 1 - мінус). Позитивні значення температури записуються у прямому коді, а негативні - у додатковому (для того, щоб перевести двійкове число в додатковий код, потрібно інвертувати його, а потім додати одиницю).
Тепер розглянемо формат регістрів Тн і TL. На малюнку 14 він представлений в графічному вигляді. Як видно з малюнка, ці регістри мають всього по вісім розрядів. Причому старший розряд - це знак числа. Тому верхній і нижній межі температури можуть встановлюватися лише з кроком в 1 градус. Для запису позитивних і негативних чисел у регістрах Тн і TL також використовуються прямий і додатковий коди

Формат регістра конфігурації наведено на малюнку 15. Для зміни конфігурації використовуються тільки два розряди цього Регістру - біт 5 і біт 6. Значення інших бітів показані на малюнку. У таблиці 2 представлені усі чотири режими, які можна встановити за допомогою регістра конфігурації. Номер режиму визначається розрядами RO і R1. При відключенні зайвих розрядів зменшується точність вимірювання температури, але однойменно зменшується і час, необхідний для перетворення температури в код. У таблиці 2 для кожного з режимів роботи приведене максимальне значення часу перетворення.

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

0

R1

R0

1

1

1

1

1

- Формат регистра конфигурации

На малюнку 16 показано схему включення мікросхем DSI8B20 в режимі зовнішнього живлення. Зовнішнє живлення подається через вивід VDD. Якщо термодатчик знаходиться на значній відстані від мікроконтролера, то застосований такої схеми включення не дуже бажано, так як для живлення датчика доведеться прокладати ще один (третій) провід.
Другий варіант включення мікросхем DSI8B20 зображений на малюнку 17. У такій схемі реалізовані два режими харчування. Для перемикання режимів використовується керований електронний ключ KI. Ключ управляється від мікроконтролера, для чого використовується окрема лінія введення / виводу. Така схема дозволяє перемикати режими харчування програмним шляхом. Основний режим роботи для схеми, зображеної на малюнку 17 - це режим паразитного харчування. У цьому режимі ключ KI закритий і напрузі на шині визначається резистором навантаження R1, що дозволяє передавати інформацію по шині, використовуючи 1-Wire протокол.
У потрібний момент ключ KI відкривається і на шину надходить повноцінне живлення від джерела VPU. Харчування надходить тільки на час виконання однієї з енергоємних команд. Поки ключ К1 відкритий, інформаційний обмін по шині неможливий. Мікроконтролер витримує шину в такому стані необхідний час, а потім закриває ключ К1. Шина повертається до звичайного режиму роботи і знову знаходить можливість передачі даних. Для того, щоб мікросхема DSI8B20 правильно працювала в режимі паразитного харчування, потрібно з'єднати між собою висновки VDD і GND і підключити обидва цих виведення до загального проведення, як показано на малюнку.

На малюнку 18показана схема включаючи допоміжної ланцюга і ланцюга харчування. Роль однопроводной шини виконує лінія Р1.1 мікроконтролера. Резистор R2 - це навантажувальний резистор шини. Рекомендоване значення номіналу цього резистора 4,7 кОм. Електронний ключ для перемикання режиму харчування зібраний на елементах VT1, R3, R4 і R5. Мікроконтролер управляє ключем за допомогою лінії Р1.0. Резистор R5 служить для обмеження струму бази транзистора VT1. Резистор R4 введений для надійного закривання транзистора. Резистор R3 - страхувальний. Він служить для обмеження струму при короткому замиканні в ланцюзі датчика.

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

В даний час серед всіх 8-розрядних мікроконтролерів - сімейство MCS-51 є безсумнівним чемпіоном за кількістю різновидів і кількості компаній, що випускають його модифікації. Воно отримало свою назву від першого представника цього сімейства - мікроконтролера 8051, випущеного в 1980 році на базі технології HMOS. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку.
Важливу роль в досягненні такої високої популярності сімейства 8051 зіграла відкрита політика фірми Intel, родоначальниці архітектури, спрямована на широке поширення ліцензій на ядро ​​8051 серед великої кількості провідних напівпровідникових компаній світу.
У результаті на сьогоднішній день існує більше 200 модифікацій мікроконтролерів сімейства 8051, що випускаються майже 20-ма компаніями. Ці модифікації включають в себе кристали з найширшим спектром периферії: від простих 20-вивідних пристроїв з одним таймером і 1К програмної пам'яті до найскладніших 100-вивідних кристалів з 10-розрядними АЦП, масивами таймерів-лічильників, апаратними 16-розрядними помножувача і 64К програмної пам'яті на кристалі. Щороку з'являються все нові варіанти представників цього сімейства. Основними напрямами розвитку є: збільшення швидкодії (підвищення тактової частоти і переробка архітектури), зниження напруги харчування та споживання, збільшення обсягу ОЗП і FLASH пам'яті на кристалі з можливістю внутрішньосхемного програмування, введення до складу периферії мікроконтролера складних пристроїв типу системи управління приводами, CAN і USB інтерфейсів і т.п.
Всі мікроконтролери з сімейства MCS-51 мають загальну систему команд [4]. Наявність додаткового устаткування впливає тільки на кількість регістрів спеціального призначення.
Основними виробниками клонів 51-го сімейства в світі є фірми Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems і ряд інших.
У рамках СРСР виробництво мікроконтролера 8051 здійснювалося в Києві, Воронежі (1816ВЕ31/51, 1830ВЕ31/51), Мінську (1834ВЕ31).
Для даної проблеми було обрано фірми Atmel [5]. Незважаючи на те, що фірма Atmel вже давно робить упор на нове покоління мікроконтролерів (серії AVR), мікроконтроллер AT89C51 теж досить широко застосовується. І не випадково, так як ця мікросхема має ще досить великий потенціал. Параметри мікросхеми дозволяють створювати широкий спектр сучасних електронних пристроїв, що знаходять своє застосування в самих різних областях мікропроцесорної техніки. Головною перевагою вибору саме цієї мікросхеми є її широка доступність і прийнятна ціна.

13.  Розробка керуючої резидентної програми для

мікроконтролера

Програмна реалізація алгоритму роботи кондиціонера на мові асемблер для мікроконтролера AT89C51 представлена ​​нижче.

В основній програмі спочатку визначаються константи: коди банків пам'яті, лічильник затримки, буфер для прийому даних з термодатчика, буфер для зберігання заданої температури приміщення Туст, лічильник робочих циклів кондиціонера для визначення його режиму роботи. Далі присвоюється початкове значення Туст і викликається підпрограма опитування клавіатури з наступним визначенням натиснутих клавіш. При наступних опитуваннях клавіатури, якщо клавіша натиснута, то відбувається перехід до мітці in1. Потім слід зміна Туст (збільшення або зменшення на 1) і виклик ряду процедур для виводу Туст на РКІ № 1. Після виведення Туст запускається перетворення температури приміщення в термодатчика (ТПМ) і читання її (із збереженням у буфері bufLAN). Далі ТПМ виводиться на РК № 2, після чого відбувається обробка ТПМ (а саме запис ТПМ в один байт) і порівняння ТПМ <= Туст. Обнуляється лічильник циклів кондиціонера і відбувається перехід до потрібного режиму роботи кондиціонера. В кінці основної програми відбувається перехід на один з режимів роботи кондиціонера або на мітку in1 (де відбувається аналіз натиснутих клавіш) за результатами виконання підпрограм reoh (режим охолодження) і reob (режим обігріву).

Підпрограма inkl ввдда з клавіатури опитує дві клавіши S1 і S2 і виводить в акумулятор результат (0 біт акумулятора - відповідає за кнопку S2, 1 біт акумулятора - за кнопку S1).

Далі в додатку 1 представлено ряд підпрограм для ініціалізації і виведення символів і рядків на обидва ЖКИ дисплея. Таблиця символів ts необхідна для зручності роботи з кодами символів РКІ дисплеїв (у ній всі коди представлені по порядку). Підпрограма виводу повідомлення про помилку буде використовуватися при роботі з 1-Wire шиною.

Підпрограма виводу Туст на РКІ № 1 записує з bufLAN2 значення Туст в акумулятор і відокремлює одиниці температури від десятків, після чого виводить значення Туст на РКІ № 1 зі знаком «градус Цельсія».

Підпрограма zader викликається підпрограмами reoh і reob. Вона з інтервалом у 100мс опитує клавіатуру і виводить ТПМ на РКІ № 2. При натисканні клавіш підпрограма записує в акумулятор значення 1 і завершує свою роботу. Станом акумулятора в підпрограмі reoh або відбувається вихід з підпрограми з метою аналізу клавіатури в основній програмі (при значенні 1 акумулятора), або триває її виконання (при значенні 0 акумулятора). На виконання підпрограми витрачається приблизно 3хв.

Підпрограма sttmp призначена для передачі по шині команди "Запуск процесу перетворення». Для цього, в якості команди мережевого рівня, використовується команда «Пропустити ПЗУ». Датчик переходить в режим перетворення. Підпрограма використовує банк номер 2. Спочатку відбувається збереження в стеку регістру psw і перемикання банків.

Потім виклик процедури початкового скидання. Знову контролюється код помилки. Потім формується команда мережевого рівня «Пропустити ПЗУ». Команда транспортного рівня («Запуск процесу перетворення») формується за допомогою коду 044Н. Отримавши цю команду, термодатчик переходить в режим перетворення температури, а програма переходить в режим очікування. Управління передається по мітці stm4.

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

Підпрограма містять команди обробки помилок. У разі виникнення помилки управління передається до мітці stm6. Тут викликається підпрограма prErr, яка виводить повідомлення про помилку на екран. Потім управління передається по мітці stmf на початок підпрограми, і процес передачі команди запуску на перетворення повторюється.

Підпрограма читання температури називається rdtmp. Підпрограма виробляє зчитування температури з датчика. Вона повертає значення виміряної температури у вигляді двох байт, записаних у дві старші осередку буфера bufLAN. Молодший байт регістра температури записується за адресою bufLAN, а старший - за адресою bufLAN +1.

Починається підпрограма rdtmp з команди збереження регістру psw. Далі включається банк номер два.

Після цього підпрограма може починати виконання свого головного завдання: читання регістрів блокнотний пам'яті термодатчика. Починається цей процес з виклику процедури початкового скидання, перевіряється ознака помилки. Далі видається команда «Пропустити ПЗУ».

При цьому датчик перейде на транспортний рівень. Далі, програма перейде до формування команди «Читання блокнотний пам'яті». Спочатку в лінію видається код операції (0ВЕН). Потім починається процес читання регістрів термодатчика. Читаються тільки два перші регістру. Саме вони і містять значення температури. Протокол 1-Wire допускає такий режим роботи. Перший байт значення температури поміщається в комірку пам'яті з адресою bufLAN. Другий байт і поміщається в комірку з адресою bufLAN +1. На цьому підпрограма rdtmp завершує свою роботу. Перед виходом з підпрограми відновлюється вміст регістру psw.

Підпрограма resLAN призначена для формування імпульсу початкового скидання. Ця ж підпрограма проводить перевірку наявності сигналу присутності на лінії. Підпрограма здатна виявляти два види помилок: обрив лінії і коротке замикання. У разі виникнення помилки підпрограма повертає код помилки через акумулятор.

Починається підпрограма resLAN з формування імпульсу початкового скидання. Процес формування починається з того, що програма «підсаджує» лінію. Потім формується затримка тривалістю 700 мкс. Після чого лінія «відпускається». Для формування затримки використовується метод порожнього циклу. Спочатку параметру циклу присвоюється початкове значення. У даному випадку це значення дорівнює 100. Саме стільки разів у циклі викликається підпрограма Dely. Після формування імпульсу початкового скидання програма приступає до перевірки сигналу присутності на лінії. Для цього вона формує затримку в 65 мкс, а потім перевіряє значення сигналу на лінії. Якщо немає обриву на лінії і сигнал присутності сформований нормально, то саме в цей момент часу рівень сигналу на лінії повинен бути рівний нулю. Якщо рівень сигналу на лінії р1.1 дорівнює нулю, то це означає, що помилки не виявлено. Управління передається по мітці rst3. Якщо рівень сигналу на лінії дорівнює одиниці, то в акумулятор міститься код помилки «обрив на лінії», а потім підпрограма достроково завершується.

Якщо все ж таки відбувся перехід до мітці rst3 (помилка не виявлена), підпрограма формує затримку в 500 мкс і знову перевіряє рівень сигналу на лінії. Затримка в 500 мкс необхідна для правильного завершення процесу початкового скидання. Після закінчення цього проміжку часу сигнал присутності повинен вже закінчитися і рівень сигналу на лінії повинен бути дорівнює одиниці. Якщо це не так, то це означає, що лінія просто закорочена. У такому разі в акумулятор записується код помилки 2 («коротке замикання») і програма достроково завершується. Якщо короткого замикання не виявлено, то управління передається по мітці rst3 і підпрограма завершується нормальним чином. У цьому випадку, перед завершенням підпрограми в акумулятор поміщається нульовий код. Нуль-це код відсутності помилки.

Підпрограма mrslot (читання слота) служить для читання одного біта інформації з відомого пристрою. Підпрограма повертає прочитаний біт через CY (ознака перенесення). Спочатку підпрограма формує синхроимпульс. Для цього вона «підсаджує» лінію, формує затримку в 1 мкс, а потім лінію відпускає. Після закінчення синхроімпульса формується затримка в 13 мкс і зчитується рівень сигналу на лінії. Прочитаний біт поміщається в CY. Це і є результат читання слота. Однак на цьому виконання підпрограми не завершується.

Перш ніж вийти з підпрограми, необхідно закінчити формування тривалості слота. Загальна тривалість слота повинна лежати в межах 60 ... 120 мкс. Для потрапляння часу виконання нашої підпрограми в цей діапазон формується затримка в 60 мкс. І лише після цього підпрограма завершується.

Програма mwlow записує в слот нульове значення. Дія підпрограми зводиться до формування в межах слота негативного імпульсу тривалістю 80 мкс.

значення. Дія підпрограми починається з формування синхроімпульса тривалістю 5 мкс. Для формування такої тривалості проводиться одноразове звернення до підпрограми Delay. Після завершення синхроімпульса формується затримка 75 мкс. Ця затримка доводить тривалість слота до стандартної величини.

Підпрограма Dely служить для формування тимчасових інтервалів. Як видно з тексту підпрограми, вона являє собою один оператор nор і завершується командою виходу з підпрограми. Така підпрограма забезпечує затримку, приблизно рівну 5 мкс. Підпрограму Delay зручно використовувати при формуванні щодо великих затримок за часом, включаючи виклик цієї підпрограми в тіло порожнього циклу. Команда пір не виконує абсолютно ніяких дій. У той же час, її виконання займає один машинний цикл мікроконтролера. При тактовій частоті, що дорівнює 12 МГц, тривалість машинного циклу буде одна мікросекунд (12/12 = 1 мкс). У мікросхемі АТ89С2051 частота тактового генератора ділиться на 12. Для формування невеликих часових інтервалів достатньо кількох операторів пір, поставлених поспіль один за одним. Для більш тривалих інтервалів застосовується порожній цикл. Цикл просто виконує кілька порожніх операторів певне число разів. У представлених тут підпрограмах широко використовуються обидва способи формування тимчасових інтервалів. В якості лічильника циклу використовується спеціальна комірка пам'яті, позначена в програмі, як LoopCnt.

Підпрограма wr8LAN виводить вміст байта, отриманого через акумулятор, біт за бітом в режимі запису. Саме тому описувана підпрограма представляє собою, по суті, цикл для передачі бітів. Регістр r1 використовується як параметр циклу. Початкове значення r1 дорівнює восьми (за кількістю бітів у байті). Виконання циклу починається з команди вилучення чергового біта. Для цього вміст акумулятора зсувається вправо за допомогою команди rrс. Дія цієї команди приводить до того, що черговий біт виявляється у клітинці ознаки перенесення CY.

Потім програма оцінює значення цього біта. Якщо він дорівнює одиниці, викликається підпрограма запису одиниці в слот mwhi. В іншому випадку викликається підпрограма mwlow для запису в слот нуля. Після виконання однієї з цих програм управління передається по мітці wb3. У цьому рядку перебуває команда організації циклу. Вона передає керування на початок циклу, якщо це не останній біт, і завершує цикл, якщо біт останній.

Підпрограма wr1LAN призначена для передачі по шині одного біта в режимі запису. Ця підпрограма дуже схожа на wr8LAN. Відмінність лише у відсутності циклу. Біт інформації, призначений для передачі по шині 1-Wire, передається в підпрограму через осередок CY. У залежності від значення цього біта виконується або підпрограма mwhi, або mwlow.

Підпрограма rd8LAN призначена для читання одного байта по шині 1-Wire. Програма повертає прочитаний байт в акумулятор. Основна частина підпрограми - це цикл введення бітів. Як параметр циклу використовується регістр r1. Перша команда, яка виконується в тілі циклу - виклик підпрограми читання слота. Вона поміщає прочитаний біт в клітинку CY. Потім біт поміщається в акумулятор методом зсуву. Зрушення проводиться за допомогою команди rrс. Після кожного такого зсуву в акумулятор «вдвигается» черговий прочитаний біт. Після восьми циклів зсуву акумулятор буде містити повноцінний прочитаний байт. Оператор djnz служить для організації всього цього циклу.

Підпрограма rdlLAN призначена для читання одного біта з лінії 1-Wire. Вона викликає підпрограму читання слота mrslot.

У ОЗУ мікроконтролера температура записана в двійковому вигляді. Перед нами стоїть завдання: перевести це значення з двійкової системи в десяткову. І лише потім вивести його на екран.

Для двійково-десяткового перетворення зручно використовувати команду цілочисельного ділення div. Для того, щоб здійснити двійково-десяткове перетворення, потрібно виконати цілочисельне ділення вихідного числа на 10. Після такої операції акумулятор буде містити приватне, а регістр b - залишок від ділення. Приватне буде відповідати кількості десятків, а залишок - кількості одиниць у десятковому представленні числа.

Потім можна просто вивести на екран два цих числа. Спочатку вміст акумулятора, а потім вміст регістра b. У результаті, на екрані ми одержимо зображення цілої частини значення температури в десятковому вигляді. Такий простий метод перетворення буде правильно працювати тільки в тому випадку, якщо ціла частина числа не перевищує значення 99. При більшому значенні температури в старшому розряді отриманого десяткового числа будуть з'являтися літери: частка від ділення буде більше 10. Однак для вимірювання температури приміщення діапазону (0 ... 60) ° С цілком достатньо. Для реалізації описаного алгоритму розроблена підпрограма prtmp. Підпрограма prtmp читає два байти температури з буфера bufLAN і виводить значення цілої частини температури на екран у десятковому вигляді.

Підпрограма reoh забезпечує режим охолодження роботи кондиціонера. Вона дискретно (з інтервалом в 3хв.) Вкличает і вимикає компресор і вентилятор і аналізує різницю Туст і ТПМ. Якщо ТПМ менше Туст на 2 градуси протягом двох циклів роботи кондиціонера в режимі охолоджування, то кондиціонер переходить в режим обігріву (підпрограма reoh за допомогою акумулятора переходить до мітці in4 основної програми). Якщо ні, то кондиціонер залишається в режимі охолодження (переходить до мітці in5). Підпрограма reoh так само викликає підпрограму zader (якщо клавіша натиснута, то перехід за допомогою акумулятора до мітці in1).

Підпрограма reob забезпечує режим обігріву роботи кондиціонера. Вона не преставлена в програмі, але працює аналогічно підпрограмі reoh (включає і вимикає НЕ компресор, а нагрівальний елемент).


0000

Bank0

EQU 00000000b

коды банков памяти

0001

Bank1

EQU 00001000b

0002

Bank2

EQU 00010000b

0003

Bank3

EQU 00110000b

DSEG

ORG

30h

0030

LoopCrt

DS 1

счетчик задержки

0031

BufLAN

DS 8

буфер для приема данных из MicroLAN

0039

bufLAN2

DS 8

буфер для Туст

0041

BufLAN3

DS 1

счетчик рабочих циклов кондиционера

ORG

60h

начало стека

0060

stack

DS 20h

глубина стека

main

0080

MOV

BufLAN,#18h

начальное значение Туст=24 градуса

0083

LCALL

INK1

0086

JZ

IN3

если клавиши не нажаты переход

IN1

0089

CJNE

A,#11b,008Fh

если обе клавиши нажаты переход

008C

INC

BufLAN

Туст увеличить на 1

008E

SJMP

IN3

IN2

0090

DEC

BufLAN2

IN3

0092

LCALL

ECLR1

вывод Туст

0095

MOV

A,#2

0097

LCALL

ECUR1

009A

LCALL

PRTMU

Туст на ЖКИ №1

009D

LCALL

ECLR2

00A0

MOV

A,#2

00A2

LCALL

ECUR2

00A5

LCALL

STTMP

запуск преобразования Тпм

00A8

LCALL

RDTMP

чтение Тпм

00AB

LCALL

PRTMP

вывод Тпм на ЖКИ №2

00AE

MOV

A,bufLAN+1

записьТпм в аккумулятор

00B0

SWAP

A

00B1

ANL

A,#0F0h

00B3

MOV

R5,A

00B4

MOV

A,bufLAN

00B6

SWAP

A

00B7

ANL

A,#0Fh

00B9

ADD

A,R5

в аккумуляторе байт Тпм

00BA

MOV

A,#LE(A,bufLAN)

сравнение Тпм<=Туст

00BC

MOV

BufLAN3,#0

Обнул. счетчик циклов работы

00BF

CJNE

A,#0FFFFh,IN5

обработкаусловия Тпм<=Туст

IN4

00C2

LCALL

REOB

00C5

SJMP

IN6

IN5

00C7

LCALL

REOH

IN6

00CA

MOV

B,A

00CB

MOV

A,EQ(B,#1)

00CD

CJNE

A,#0FFFFh,IN7

00D0

SJMP

IN1

IN7

00D2

MOV

A,EQ(B,#4)

00D4

CJNE

A,#0FFFh,00C7h

00D7

SJMP

00C2h

INK1

Подпрограмма ввода с клавиатуры

(0 бит  – S2, 1 бит – S1)

00D9

SETB

P0.0

установка 1 на линиях клавиатуры

00DB

MOV

A,P0

считывание порта p0

00DC

ANL

A,#00000011b

обнуление лишних разрядов

00DF

XRL

A,#00000011b

инвертирование

00E1

RET

ERES1

подпрограмма сброса ЖКИ №1

00E2

MOV

P2,#0Fh

отпр.адрес регистра блокировки

00E4

SETB

P2.4

00E6

CLR

P2.4

00E8

MOV

P2,#01000001b

Запис. код снятия блокировки

00EA

SETB

P2.4

00EC

CLR

P2.4

00EE

MOV

P2,#0

Устан. адрес на первый разряд

00F0

SETB

P2.4

00F2

CLR

P2.4

00F4

RET

ERES2

подпрограмма сброса ЖКИ №2

00F5

MOV

P3,#0Fh

00F7

SETB

P3.4

00F9

CLR

P3.4

00FB

MOV

P3,#01000001b

00FD

SETB

P3.4

00FF

CLR

P3.4

0102

MOV

P3,#0

0104

SETB

P3.4

0106

CLR

P3.4

0108

RET

ECLR1

подпрограмма очистки ЖКИ №1

0109

LCALL

ERES1

сброс экрана

010C

MOV

P2,#01000000b

установка управляющего кода

010E

MOV

R0,#20

инициализация счетчика разрядов

0110

SETB

P2.4

импульс записи

0112

CLR

P2.4

0114

DJNZ

R0,0110h

оператор цикла

0116

RET

ECLR2

подпрограмма очистки ЖКИ №2

0117

LCALL

ERES2

011A

MOV

P3,#01000000b

011C

MOV

R0,#20

011E

SETB

P3.4

0120

CLR

P3.4

0122

DJNZ

R0,011Eh

0124

RET

ECUR1

подпрограмма установки курсора для ЖКИ №1 по аккумулятору

0125

ANL

A,#0Fh

отделяем биты адреса

0127

MOV

P2,A

Устан. адрес на первый разряд

0128

SETB

P2.4

012A

CLR

P2.4

012C

RET

ECUR2

подпрограмма установки курсора для ЖКИ №2 по аккумулятору

012D

ANL

A,#0Fh

012F

MOV

P3,A

0130

SETB

P3.4

0132

CLR

P3.4

0134

RET

ORG

0600h

TS

таблица символов

0600

DB

0EEh

0

0601

DB

060h

1

0602

DB

02Fh

2

0603

DB

06Dh

3

0604

DB

0E1h

4

0605

DB

0CDh

5

0606

DB

0CFh

6

0607

DB

068h

7

0608

DB

0EFh

8

0609

DB

0EDh

9

060A

DB

0EBh

A

060B

DB

0C7h

b

060C

DB

08Eh

C

060D

DB

067h

d

060E

DB

08Fh

E

060F

DB

08Bh

F

0610

DB

000h

0611

DB

0A9h

0612

DB

001h

-

0613

DB

003h

r

0614

DB

047h

o

PRCH1

подпрограмма вывода символа на ЖКИ №1 через аккумулятор

0615

PUSH

DPL

сохранение регистров в стеке

0616

PUSH

DPH

0617

PUSH

B

0618

MOV

DPTR,#TS

начало таблицы символов

061B

MOV

C,ACC.7

сохраняем значение точки

061C

CLR

ACC.7

сбрасываем значение бита

061E

MOVC

A,@A+DPTR

получаем выводимый код

061F

MOV

ACC.4,C

восстанавливаем значение точки

0620

MOV

B,A

сохраняем его в b

0621

ANL

A,#0Fh

отделяем младший полубайт

0623

MOV

P2,A

выводим его на индикатор

0624

SETB

P2.6

вкл. Режим вывода данных

0626

SETB

P2.4

импульс записи

0628

CLR

P2.4

062A

MOV

A,B

восстанавливаем выводимый код

062B

SWAP

A

062C

ANL

A,#0Fh

отделяем старший полубайт

062E

MOV

P2,A

выводим его на индикатор

062F

SETB

P2.6

вкл. Режим вывода данных

0631

SETB

P2.4

импульс записи

0633

CLR

P2.4

0635

POP

B

0636

POP

DPH

восстановление регистров

0637

POP

DPL

0638

RET

PRCH2

подпрограмма вывода символа на ЖКИ №2 через аккумулятор

0639

PUSH

DPL

сохранение регистров в стеке

063A

PUSH

DPH

063B

PUSH

B

063C

MOV

DPTR,#TS

начало таблицы символов

063F

MOV

C,ACC.7

сохраняем значение точки

0640

CLR

ACC.7

сбрасываем значение бита

0642

MOVC

A,@A+DPTR

получаем выводимый код

0643

MOV

ACC.4,C

восстанавливаем значение точки

0644

MOV

B,A

сохраняем его в b

0645

ANL

A,0Fh

отделяем младший полубайт

0647

MOV

P3,A

выводим его на индикатор

0648

SETB

P3.6

вкл. Режим вывода данных

064A

SETB

P3.4

импульс записи

064C

CLR

P3.4

064E

MOV

A,B

восстанавливаем выводимый код

064F

SWAP

A

0650

ANL

A,#0Fh

отделяем старший полубайт

0651

MOV

P3,A

выводим его на индикатор

0652

SETB

P3.6

вкл. Режим вывода данных

0654

SETB

P3.4

импульс записи

0656

CLR

P3.4

0658

POP

B

0659

POP

DPH

восстановление регистров

065A

POP

DPL

065B

RET

PRSTR2

подпрограмма вывода сообщения на ЖКИ №2

065C

PUSH

PSW

сохранение регистра psw

065D

MOV

PSW,#BANK3

включаем банк 3

0660

MOV

A,#0

0662

MOVC

A,@A+DPTR

получение очередного символа

0663

CJNE

A,#0,0668

если это не последний выводим

0666

POP

PSW

завершение подпрограммы

0667

RET

0668

CALL

PRCH2

вывод символа на экран

066B

INC

DPTR

увеличиваем значение указателя

066C

JMP

0660

PRERR

подпрограмма вывода сообщения об ошибке

066F

PUSH

ACC

0670

CALL

ECLR2

очистка экрана

0673

MOV

A,#2

курсор в позицию 2

0675

CALL

ECUR2

0678

MOV

DPTR,#SERR

вывести надпись «Error»

067A

CALL

PRST2

067D

POP

ACC

067E

CALL

PRCH2

вывод номера ошибки

0681

RET

сообщение «Error»

ORG

0690h

0690

SERR

DB

14,19,19,20,19,0

сообщение «Error», 0 в конце – признак окончания слова

PRTMU

вывод Туст на ЖКИ №1

0696

MOV

A,#16

0698

MOV

A,BUFLAN2

069B

MOV

B,#10

069D

DIV

AB

069E

CALL

PRCH1

06A1

MOV

A,B

06A2

CALL

PRCH1

06A5

MOV

A,#0Ch

06A7

CALL

PRCH1

06AA

RET

ZADER

подпрограмма с длительностью выполнения примерно 3 мин. опроса клавиатуры и вывода Тпм

06AB

MOV

R2,#7

06AD

MOV

R1,#255

06AF

MOV

R0,#56

06B1

MOV

LOOPCNT,#255

06B4

CALL

DELAY

06B7

DJNZ

LOOPCNT,06B4h

06BA

DJNZ

R0,06B1h

06BC

CALL

INK1

опрос клавиатуры

06BF

JNZ

06DBh

переход при нажатии

06C2

CALL

ECLR2

вывод Тпм

06C5

MOV

A,#2

06C6

CALL

ECUR2

06C9

CALL

STTMP

06CC

CALL

RDTMP

06CF

CALL

PRTMP

06D2

DJNZ

R1,06AFh

06D5

DJNZ

R2,06ADh

06D8

MOV

A,#0

06DA

RET

06DB

MOV

A,#1

06DD

RET

STTMP

подпрограмма запуска процесса измерения температуры

06DE

PUSH

PSW

06DF

MOV

PSW,#BANK2

выбор банка 2 памяти

06E1

CALL

RESLAN

сброс

06E4

CJNE

A,#0,06F9h

если ошибка переход

06E7

MOV

A,#0CCh

пропуск ПЗУ

06E9

CALL

WR8LAN

06EC

MOV

A,#44h

запуск преобразования

06EE

CALL

WR8LAN

06F1

CALL

RD1LAN

запрос об окончании преобр.

06F4

JNE

06F1h

если не готово / повторить

06F7

POP

PSW

выход из подпрограммы

06F8

RET

06F9

CALL

PRERR

если ошибка, печать

06FC

JMP

06E1h

перейти в начало

RDTMP

подпрограмма чтения темп.

выходные параметры – температура в bufLAN - младший байт, в bufLAN+1 - старший байт

06FF

PUSH

PSW

0700

MOV

PSW,#BANK2

выбор банка 2 памяти

0702

CALL

RESLAN

вызов процедуры сброса

0705

CJNE

A,#0,071Eh

если ошибка

0708

MOV

A,#0CCh

пропуск ПЗУ

070A

CALL

WR8LAN

070D

MOV

A,0BEh

выдать команду

070F

CALL

WR8LAN

0712

CALL

RD8LAN

чтение младшего байта

0715

MOV

BUFLAN,A

запись в буфер

0717

CALL

RD8LAN

чтение старшего байта

071A

MOV

BUFLAN+1,A

запись в буфер

071C

POP

PSW

завершение программы

071D

RET

071E

CALL

PRERR

если ошибка, вывести на экран

0721

JMP

06FFh

перейти в начало

resLAN

подпрограмма формирования сигнала начального сброса

0724

CLR

P1.1

закорачиваем линию

0726

MOV

LOOPCNT,#100

задержка 700 мкс

0729

CALL

DELAY

072C

DJNZ

LOOPCNT,0729h

072F

SETB

P1.1

отпускаем линию

0731

MOV

LOOPCNT,#9

задержка 65 мкс

0734

CALL

DELAY

0737

DJNZ

LOOPCNT,0734h

073A

JNB

P1.1,0740h

проверка сигнала присутствия

073D

MOV

A,#1

код ошибки «нет датчика»

073F

RET

0740

MOV

LOOPCNT,#71

задержка 500 мкс

0743

CALL

DELAY

0746

DJNZ

LOOPCNT,0743h

0749

JB

P1.1,0750h

если на линии 1 переход

074C

MOV

A,#2

код ошибки «КЗ в линии»

074F

RET

0750

MOV

A,#0

код нормального завершения

0752

RET

MRslot

подпрограмма чтения слота (через признак переноса)

0753

CLR

P1.1

закоротить линию

0755

NOP

0756

SETB

P1.1

отпустить линию

0758

CALL

DELAY

задержка 13 мкс

075B

CALL

DELAY

075F

NOP

0760

NOP

0761

NOP

0762

MOV

C,P1.1

прочитать и сохранить бит

0763

MOV

LOOPCNT,#8

задержка 60 мкс

0766

CALL

DELAY

0769

DJNZ

LOOPCNT,0766h

076C

RET

MWlow

;подпрограмма записи 0 в слот

076D

CLR

P1.1

закоротить линию

076F

MOV

LOOPCNT,#11

задержка 80 мкс

0772

CALL

DELAY

0775

DJNZ

LOOPCNT,MWL1

0778

SETB

P1.1

отпустить линию

077A

RET

MWhi

подпрограмма записи 1 в слот

077B

CLR

P1.1

закоротить линию

077D

CALL

DELAY

задержка 5 мкс

0780

SETB

P1.1

отпустить линию

0782

MOV

LOOPCNT,#11

задержка 75 мкс

0785

CALL

DELAY

0788

DJNZ

LOOPCNT,0785h

078B

RET

DELAY

процедура задержки 5 мкс (при тактовой частоте 12МГц)

078C

NOP

078D

RET

wr8LAN

программа записи байта через аккумулятор

078E

MOV

R1,#8

инициализация счетчика разрядов

0790

RRC

A

младший бит в C

0791

JC

079Ah

если текущий бит = 0

0794

CALL

MWLOW

запись 0 в слот

0797

JMP

079Dh

079A

CALL

MWHI

запись 1 в слот

079D

DJNZ

R1,0790h

продолжать, если не последний

07A0

RET

wr1LAN

подпрограмма записи бита, который передается через С

07A1

JC

07AAh

если бит = 0

07A4

CALL

MWLOW

запись 0 в слот

07A7

JMP

WB5

07AA

CALL

MWHI

запись 1 в слот

07AD

RET

rd8LAN

подпрограмма чтения байта

07AE

MOV

R1,#8

счетчик количества битов

07B0

CALL

MRSLOT

чтение очередного бита

07B3

RRC

A

сдвиг битов младшим разрядом вперед

07B4

DJNZ

R1,07B0h

продолжать, если не последний

07B7

RET

rd1LAN

подпрограмма чтения бита

07B8

CALL

MRSLOT

07BB

RET

PRTMP

вывод Тпм на ЖКИ №2

07BC

MOV

A,#16

вывод пробела

07BE

CALL

PRCH2

07C1

MOV

A,BUFLAN+1

считываем старший байт

07C3

SWAP

A

обмен тетрад

07C4

ANL

A,#0F0h

получили старший полубайт

07C6

MOV

R5,A

временно записываем в R5

07C7

MOV

A,BUFLAN

считываем младший байт

07C9

SWAP

A

обмен тетрад

07CA

ANL

A,#0Fh

получили младший полубайт

07CC

ADD

A,R5

складываем полубайты

07CD

MOV

B,#10

деление на 10

07CF

DIV

AB

07D0

CALL

PRCH2

вывод десятков

07D3

MOV

A,B

берем остаток от деления

07D4

CALL

PRCH2

вывод единиц

07D7

MOV

A,#17

вывод символа «градус»

07D9

CALL

PRCH2

07DC

MOV

A,#0Ch

вывод буквы «С»(Цельсия)

07DE

CALL

PRCH2

07E1

RET

REOH

подпрограмма режима охлаждения

07E2

CLR

P0.2

выкл. Нагревательный элемент

07E4

SETB

P0.4

вкл. компрессор

07E6

SETB

P0.3

вкл. вентелятор

07E8

CALL

ZADER

07EB

JZ

0FEFh

переход при нажатой клавише

07EE

RET

0FEF

CLR

P0.4

выкл. компрессор

0FF1

CLR

P0.3

выкл. вентелятор

0FF3

CALL

ZADER

0FF6

JZ

0FF9h

переход при нажатой клавише

0FF8

RET

0FF9

MOV

A,BUFLAN+1

0FFC

SWAP

A

0FFD

ANL

A,#0F0h

0FFF

MOV

R5,A

1000

MOV

A,BUFLAN

1002

SWAP

A

1003

ANL

A,#0Fh

1005

ADD

A,R5

в аккумуляторе байт Тпм

1006

MOV

B,BUFLAN2

1008

MOV

B,#B-2

100A

MOV

A,#LE(A,B)

сравнение Тпм<=Туст-2

100D

CJNE

A,0FFFFh,RE1

переход, если не истина

1010

INC

BUFLAN3

счетчик циклов режима увеличить на 1

1012

MOV

A,#GT(bufLan3,2)

1014

CJNE

A,#0FFFFh,RE2

сравнение «счетчик циклов>=2»

1017

MOV

BUFLAN3,#0

обнуление счетчика

1019

MOV

A,#4

в режим обогрева

101B

RET

RE1

MOV

BUFLAN3,#0

обнуление счетчика

RE2

MOV

A,#5

режим охлаждения

RET

 


15. Інструкції з експлуатації та обслуговування мікропроцесорної системи.

15.1 Методи налагодження пристрою.

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

15.2 Методи пошуку та усунення несправностей.

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

 

 


16. Висновки

У проекті були розроблені структурна і функціональна схеми кондиціонера з мікропроцесорним управлінням, в яких були враховані всі необхідні елементи. Також був розроблений алгоритм і велика частина програми.
Розроблена система управління дозволяє підтримувати задану температуру в приміщенні, задовольняє основним вимогам: забезпечує економічність, низьку вартість, простоту у використанні і мінімальні витрати на експлуатацію.
У процесі виконання роботи був обраний термодатчик з 1-Wire інтерфейсом, який оптимально підходить для вирішення завдань курсового проекту. Була розібрана робота 1-Wire інтерфейсу на різних рівнях програмної реалізації. Вибрані типові виконавчі пристрої кондиціонера, такі, як компресор, вентилятор, нагрівальний елемент за такими критеріями, як низька вартість, простоту у використанні і мінімальні витрати на експлуатацію. Був обраний мікроконтроллер сімейства МК51 за тими ж критеріями.

17. Список використаної літератури

1. В. В. Коляда. Кондиціонери - М.: СОЛОН-Прес, 2002 - с. 233.


2. А. В. Бєлов. Конструювання пристроїв на мікроконтролерах - СПб.: Наука і техніка, 2005 - с. 255.


3. www.inrost.ru - науково-технічна бібліотека сайту фірми ІНРОСТ.


4. А. В. Логінов. Програмування мікро-ЕОМ сімейства МК51: Учеб. Посі
бник - СПб.: Балт. держ. тех. ун-т, 1996 - 72с.


5. www.atmel.ru - офіційний сайт корпорації Atmel.


18. Додатки

Додаток 1

Система команд мікропроцесора

Таблица 3.2. Группа команд передачи данных

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

Пересылка в аккумулятор из регистра (n = 0 - 7)

MOV A, Rn

11101rrr

1

1

1

(A) = (Rn)

Пересылка в аккумулятор прямоадресуемого байта

MOV A, ad

11100101

3

2

1

(A) = (ad)

Пересылка в аккумулятор байта из РДП (i = 0, 1)

MOV A, @Ri

1110011i

1

1

1

(A) = ((Ri))

Загрузка в аккумулятор константы

MOV A, #d

01110100

2

2

1

(A)  = #d

Пересылка в регистр из аккумулятора

MOV Rn, A

11111rrr

1

1

1

(Rn) = (A)

Пересылка в регистр прямоадресуемого байта

MOV Rn, ad

10101rrr

3

2

2

(Rn) = (ad)

Загрузка в регистр константы

MOV Rn, #d

01111rrr

2

2

1

(Rn) =  #d

Пересылка по прямому адресу аккумулятора

MOV ad, A

11110101

3

2

1

(ad) = (A)

Пересылка по прямому адресу регистра

MOV ad, Rn

10001rrr

3

2

2

(ad) = (Rn)

Пересылка прямоадресуемого байта по прямому адресу

MOV add, ads

10000101

9

3

2

(add)  = (ads)

Пересылка байта из РДП по прямому адресу

MOV ad, @Ri

1000011i

3

2

2

(ad)  = ((Ri))

Пересылка по прямому адресу константы

MOV ad, #d

01110101

7

3

2

(ad) = #d

Пересылка в РДП из аккумулятора

MOV @Ri, A

1111011i

1

1

1

((Ri))  = (A)

Пересылка в РДП прямоадресуемого байта

MOV @Ri, ad

0110011i

3

2

2

((Ri))  = (ad)

Пересылка в РДП константы

MOV @Ri, #d

0111011i

2

2

1

((Ri)) = #d

Загрузка указателя данных

MOV DPTR, #d16

10010000

13

3

2

(DPTR) =  #d16

Пересылка в аккумулятор байта из ПП

MOVC A, @A + DPTR

10010011

1

1

2

(A) = ((A) + (DPTR))

Пересылка в аккумулятор байта из ПП

MOVC A, @A + PC

10000011

1

1

2

(PC) = (PC) + 1 

(A) = ((A) + (PC))

Пересылка в аккумулятор байта из ВПД

MOVX A, @Ri

1110001i

1

1

2

(A) = ((Ri))

Пересылка в аккумулятор байта из расширенной ВПД

MOVX A, @DPTR

11100000

1

1

2

(A) = ((DPTR))

Пересылка в ВПД из аккумулятора

MOVX @Ri, A

1111001i

1

1

2

((Ri)) = (A)

Пересылка в расширенную ВПД из аккумулятора

MOVX @DPTR, A

11110000

1

1

2

((DPTR)) = (A)

Загрузка в стек

PUSH ad

11000000

3

2

2

(SP) = (SP) + 1 

((SP)) = (ad)

Извлечение из стека

POP ad

11010000

3

2

2

(ad) = (SP) 

(SP) = (SP) - 1

Обмен аккумулятора с регистром

XCH A, Rn

11001rrr

1

1

1

(A) <-> (Rn)

Обмен аккумулятора с прямоадресуемым байтом

XCH A, ad

11000101

3

2

1

(A) <-> (ad)

Обмен аккумулятора с байтом из РДП

XCH A, @Ri

1100011i

1

1

1

(A) <-> ((Ri))

Обмен младшей тетрады аккумулятора с младшей тетрадой байта РДП

XCHD A, @Ri

1101011i

1

1

1

(A0-3) <-> ((Ri) 0-3)

 

3.3. Группа команд арифметических операций

Данную группу образуют 24 команды (табл. 3.3.), выполняющие операции сложения, десятичной коррекции, инкремента/декремента байтов. Дополнительно по сравнению с МК48 введены команды вычитания, умножения и деления байтов.

Таблица 3.3. Группа команд арифметических операций

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

Сложение аккумулятора с регистром (n = 0 - 7)

ADD A, Rn

00101rrr

1

1

1

(A) = (A) + (Rn)

Сложение аккумулятора с прямоадресуемым байтом

ADD A, ad

00100101

3

2

1

(A) = (A) + (ad)

Сложение аккумулятора с байтом из РПД (i = 0, 1)

ADD A, @Ri

0010011i

1

1

1

(A) = (A) + ((Ri))

Сложение аккумулятора с константой

ADD A, #d

00100100

2

2

1

(A) = (A) + #d

Сложение аккумулятора с регистром и переносом

ADDC A, Rn

00111rrr

1

1

1

(A) = (A) + (Rn) + (C)

Сложение аккумулятора с прямоадресуемым байтом и переносом

ADDC A, ad

00110101

3

2

1

(A) = (A) + (ad) + (C)

Сложение аккумулятора с байтом из РПД и переносом

ADDC A, @Ri

0011011i

1

1

1

(A) = (A) + ((Ri)) + (C)

Сложение аккумулятора с константой и переносом

ADDC A, #d

00110100

2

2

1

(A) = (A) + #d + (C)

Десятичная коррекция аккумулятора

DA A

11010100

1

1

1

Если

(A0-3) > 9 \/ ((AC) = 1),

то (A0-3) = (A0-3) + 6, затем если

(A4-7) > 9 \/ ((C) = 1),

то (A4-7) = (A4-7) + 6

Вычитание из аккумулятора регистра и заема

SUBB A, Rn

10011rrr

1

1

1

(A) = (A) - (C) - (Rn)

Вычитание из аккумулятора прямоадресуемого байта и заема

SUBB A, ad

10010101

3

2

1

(A) = (A) - (C) - ((ad))

Вычитание из аккумулятора байта РПД и заема

SUBB A, @Ri

1001011i

1

1

1

(A) = (A) - (C) - ((Ri))

Вычитание из аккумулятора константы и заема

SUBB A, #d

10010100

2

2

1

(A) = (A) - (C) - #d

Инкремент аккумулятора

INC A

00000100

1

1

1

(A) = (A) + 1

Инкремент регистра

INC Rn

00001rrr

1

1