Розробка термореле
РЕФЕРАТ
Пояснювальна записка мiстить: 32 сторiнки тексту, 9 рисункiв, 1 таблиця, 2 схеми, список використаних джерел з 6 найменувань.
Мета проекту тАУ спроектувати функцiональну електричну схему i програму ПЗП мiкропроцесорного пристрою для вимiрювання температури, який виробляi управляючий сигнал, по перевищенню заданоi користувачем температури. Температура вимiрюiться за допомогою термодатчика з лiнiйною характеристикою з точнiстю до градуса i вiдображаiться на динамiчному iндикаторi.
У данiй роботi була розроблена програма на базi мiкроконтролера i8051 для вимiрювання температури за допомогою датчика DS18B20. Вимiрювання температури проводяться безперервно.
ДАТЧИК ТЕМПЕРАТУРИ, МРЖКРОКОНТРОЛЕР, РК-ДИСПЛЕЙ, ЦИФРОВИЙ ТЕРМОМЕТР
ЗМРЖСТ
Реферат
Вступ
1 Аналiз технiчного завдання
1.1 Розробка структурноi схеми пристрою
1.2 ОбТСрунтування вибору комплектуючих
2 Розробка апаратноi частини
2.1 Опис електричних параметрiв та схем пiдключення основних мiкросхем
3 Розробка програмного забезпечення
3.1 Блок-схема алгоритму програми
3.2 Лiстинг програми
Висновки
Перелiк посилань
ВСТУП
Термодатчики повсюдно використовуються в рiзних областях електронiки. Це термометри, пожежнi датчики сигналiзацii, монiторинг температури електронноi апаратури - пiдсилювачi, джерела живлення, рiзнi перетворювачi, температурний захист електронних приладiв, контроль технологiчних процесiв i так далi. Використовуються як аналоговi, так i цифровi датчики. Перевага цифрових датчикiв в тому, що виключаiться додаткова погрiшнiсть вимiрювального каналу, тобто данi з датчика знiмаються вже в "готовому" видi, можливiсть об'iднання декiлькох датчикiв в мережу для багатозонного вимiру, що спрощуi комутацiю. Використання як iнтерфейс стандартноi шини iстотно спрощуi стикування з iншою апаратурою.
Термодатчики i первинними перетворювачами i служать для вимiру температури.
По методу вимiру термодатчики дiляться на два типи:
тАУ термопари, дiя яких заснована на вимiрi термоелектрорушiйноi сили, термопарою (спаiм), що розвиваiться, з двох рiзнорiдних провiдникiв;
тАУ термоопори, що використовують залежнiсть електричного опору речовини вiд його температури.
1 АНАЛРЖЗ ТЕХНРЖЧНОГО ЗАВДАННЯ
1.1 Розробка структурноi схеми пристрою
Центральною частиною приладу маi бути однокристальний мiкроконтролер, який управляi роботою усього пристрою, здiйснюi збiр i обробку iнформацii, що поступаi з датчикiв вимiрюваних величин, видаi оброблену iнформацiю на iндикацiю. Для контролю часу в мiкроконтролер вбудованi годинник реального часу.
У пристроi застосована динамiчна iндикацiя, яка являi собою iндикаторну панель. Для вибору iндикатора код, що вiдповiдаi його номеру надходить з мiкроконтролера на аноди iндикаторiв одночасно з кодом цифри, що вiдображаiться на цьому iндикаторi, який надходить з мiкроконтролера. Мiкроконтролер формуi сигнал вибору iндикатора (низький рiвень - iндикатор вибрано).
Блок вимiрiв складаiться зi схеми вимiру тАУ схеми вимiру температури. Схема будуiться на вiдповiдному датчику. Аналоговi сигнали з блоку вимiрiв поступають для оцифрування на АЦП. З АЦП цифровий сигнал поступаi на мiкроконтролер для наступноi обробки.
Кожен блок може бути замiнений на iншiй, функцiонально-сумiсний з ним. Природно, при цьому потрiбне узгодження вхiдних i вихiдних параметрiв блокiв.
Схема електрична структурна зображена на рисунку 1.1.
Функцiонування приладу повинне здiйснюватися таким чином:
Блок живлення перетворить напругу мережi в необхiдну для роботи приладу напругу.
РД датчик для вимiру температури. Вихiднi сигнали датчикiв - аналоговi. Для вирiшення поставленого завдання необхiдно оперувати цифровими даними. Тому в схему включаiмо аналого-цифровий перетворювач. Для вимiру вказаноi в завданнi фiзичноi величини iснуi достатнiй вибiр датчикiв рiзних фiрм. Проте досить складно пiдiбрати усi датчики так, щоб вони спiвпадали з вхiдним дiапазоном АЦП. Окрiм цього деякi датчики вимагають наявностi певних зовнiшнiх ланцюгiв, наприклад, схеми збудження, калiбрування i тому подiбне. Тому неминуча поява додаткових елементiв, схем i ланцюгiв, якi потрiбнi для коректноi роботи усього пристрою.
Датчик температури не вимагаi яких-небудь зовнiшнiх ланцюгiв узгодження, оскiльки добре узгоджуiться з АЦП, як по дiапазону, так i по чутливостi. Як датчик температури застосуiмо датчик DS18B20 фiрми DALLAS.
Мiкроконтролер обробляi отриману iнформацiю i видаi ii на блок iндикацii.
Рисунок 1.1 − Структурна схема мiкропроцесорного пристрою для вимiрювання температури
1.2 ОбТСрунтування вибору комплектуючих
Поява на нашому ринку вiдносно дешевих цифрових датчикiв температури i зовсiм дешевих мiкроконтролерiв зробила можливим створення цифрового термометра, який не вимагаi калiбрування i маi багато всяких можливостей. Серед цифрових датчикiв температури найцiкавiшими i мiкросхеми DS1820 i DS18В21 фiрми DALLAS. Хорошi вони тим, що використовують для обмiну однопровiдний iнтерфейс (1 - WireTM) фiрми DALLAS. Це означаi що датчики можуть бути пiдключенi до термометра усього за допомогою 3-х дротiв (датчик DS1820 можна пiдключити навiть за допомогою двох дротiв). Датчик DS1820 точнiший (але дорожчий), маi менший час перетворення. Зате DS1821 може бути запрограмований в режим термостата для повнiстю автономноi роботи.
При розробцi схеми велика увага придiлялася простотi та мiнiмальнiй кiлькостi деталей. Тому передбачено пiдключення лише одного датчика. Декiлька датчикiв пiдключити цiлком можливо, але в цьому випадку потрiбно буде встановити перемикач для вибору активного датчика вручну. Перемикач може комутувати виводи DQ датчикiв (вивод 2 DS18B20).
Бiльш детально датчик DS18В20 розглянуто у роздiлi РЖРЖ.
Схема мiкропроцесорного пристрою для вимiрювання температури будуiться на основi мiкроконтролера i80С51.
Використання МК сiмейства i8051 забезпечуi збiльшення об'iму пам'ятi команд i пам'ятi даних. Новi можливостi введення-виводу i периферiйних пристроiв розширюють дiапазон застосування i знижують загальнi витрати системи. Залежно вiд умов використання, швидкодiя системи збiльшуiться мiнiмум в два з половиною рази i максимум вдесятеро.
Сiмейство i8051 включаi п'ять модифiкацiй МК (що мають iдентичнi основнi характеристики 8051, 80С51, 8751, 8031, 80С31), основна вiдмiннiсть мiж якими полягаi в реалiзацii пам'ятi програм i потужностi споживання.
i8051 маi у своiму складi такi апаратурнi засоби:
-ВаВаВаВаВаВаВа процесор, до складу якого входять 1-байтний АЛП i схеми апаратурноi реалiзацii команд множення i дiлення;
-ВаВаВаВаВаВаВа стираючий ПЗП програм мiсткiстю 4 Кбайта;
-ВаВаВаВаВаВаВа ОЗУ даних мiсткiстю 128 байт;
-ВаВаВаВаВаВаВа два 16-бiтовi таймери/лiчильники;
-ВаВаВаВаВаВаВа програмованi схеми введення/висновку (32 лiнii). Напрям обмiну iнформацiiю через порти - всi порти двунаправленi, причому i можливiсть в кожному порту частину розрядiв використовувати для введення даних, а частину для виведення.
-ВаВаВаВаВаВаВа блок дворiвневого векторного переривання вiд п'яти джерел;
-ВаВаВаВаВаВаВа асинхронний канал дуплексного послiдовного введення/висновку iнформацii з швидкiстю до 375 Кбiт/с;
-ВаВаВаВаВаВаВа генератор;
-ВаВаВаВаВаВаВа схему синхронiзацii i управлiння.
Мiкроконтролер також маi:
тАУ 32 регiстри загального призначення (РЗП);
тАУ 128 визначуваних користувачем програмно-управляючих прапорiв;
тАУ набiр регiстрiв спецiальних функцiй.
тАУ РОН i визначуванi користувачем програмно-управляючi прапори, розташованi в адресному просторi внутрiшнього ОЗУ даних.
Через обмежену кiлькiсть виводiв корпусу мiкросхеми мiкроконтролера бiльшiсть виводiв використовуються для виконання двох функцiй - як лiнii портiв i для альтернативних функцiй.
Система команд МК мiстить 111 базових команд з форматом 1, 2, або 3 байти. Всi команди виконуються за один або два машиннi цикли (вiдповiдно 1 або 2 мкс при тактовiй частотi 12 Мгц), виключення тАУ команди множення i дiлення, якi виконуються за чотири машиннi цикли (4 мкс). МК сiмейства i8051 використовують пряму, безпосередню, непряму i неявну, адресацiю даних.
Як операнди команд МК сiмейства i8051 можуть використовувати окремi бiти, чотирьохбiтовi цифри, байти i двобайтовi слова.
Набiр команд сiмейства i8051 маi декiлька особливостей, пов'язаних з типовими функцiями виконуваними мiкроконтролерами - управлiнням, для якого типовою i операцiя з однорозрядними двiйковими сигналами, велике число операцiй введення/висновку i розгалужень програми.
Найбiльш iстотна особливiсть системи команд даних МК тАУ це можливiсть адресацii окремих бiт в резидентнiй пам'ятi даних. Крiм того, як наголошувалося, деякi регiстри блоку регiстрiв спецiальних функцiй також допускають адресацiю окремих бiт.
Мiкроконтролери сiмейства 8051 i мiкропроцесорними пристроями з архiтектурою CISC зi стандартним набором команд, характерних для даноi архiтектури. Система команд 8051-сумiсних пристроiв включаi 111 основних команд розмiром вiд одного до трьох байт, але бiльша частина цих команд тАУ одно- або двобайтовими.
Систему команд сiмейства i8051 можна пiдроздiлити за функцiональною ознакою на п'ять груп:
тАУ пересилки даних;
тАУ арифметичних операцiй;
тАУ логiчних операцiй;
тАУ операцiй над бiтами;
тАУ передачi управлiння.
Склад операндiв включаi в себе операнди чотирьох типiв: бiти, нiбли (4 розряду), байти i 16-бiтовi слова. Час виконання команд становить 1, 2 або 4 машинних цикли. При тактовiй частотi 12 МГц тривалiсть машинного циклу складаi 1 мкс, при цьому 64 команди виконуються за 1 мкс, 45 команд - за 2 мкс i 2 команди (множення i дiлення) - за 4 мкс.
Мiкроконтролер маi 128 програмно-керованих прапорiв користувача. РД також можливiсть адресацii окремих бiтiв блоку регiстрiв спецiальних функцiй i портiв. Для адресацii бiтiв використовуiться пряма 8-бiтна адреса. Непряма адресацiя бiтiв неможлива.
У i8051 передбачена можливiсть задання частоти внутрiшнього генератора за допомогою кварцу, LС-ланцюжка або зовнiшнього генератора. Максимальна частота проходження iмпульсiв синхронiзацii - 12 МГц.
Архiтектура сiмейства i8051 маi ряд нових режимiв адресацii, додатковi iнструкцii, розширений адресний простiр i ряд iнших апаратних особливостей. Розширена система команд забезпечуi побайтову i побiтового адресацiю, двiйкову i двiйково-десятковий арифметику, iндикацiю переповнення та визначення парностi/непарностi, можливiсть реалiзацii логiчного процесора.
Мiкроконтролери 8051 оперують двома типами пам'ятi : пам'яттю програм i пам'яттю даних. Пам'ять даних може бути реалiзована як комбiнацiя розмiщеного на кристалi (резидентного або on-chip) статичного ОЗП i зовнiшнiх мiкросхем пам'ятi. Для простих апаратно-програмних конфiгурацiй iз застосуванням 8051 буваi досить резидентною пам'ятi самого мiкроконтролера.
Програмний код розмiщуiться в пам'ятi програм, яка фiзично може бути реалiзована у виглядi одноразово програмованого пристрою (EPROM), перепрограмованого пристрою (EEPROM) або флеш-пам'ятi. Якщо для запису програм використовуiться EPROM або EEPROM, то програмний код зазвичай розташовуiться в зовнiшньому по вiдношенню до мiкроконтролера пристроi. У переважнiй бiльшостi сучасних мiкроконтролерiв 8051 пам'ять програм розташовуiться у флеш-пам'ятi, що знаходиться, так само як i резидентна пам'ять даних, на одному кристалi.
Пам'ять програм i пам'ять даних фiзично i логiчно роздiленi, мають рiзнi механiзми адресацii, працюють пiд управлiнням рiзних сигналiв i виконують рiзнi функцii.
Пам'ять програм може мати максимальний об'iм, рiвний 64 Кб, що обумовлено використанням 16-розрядноi шини адреси. У багатьох випадках мiсткiсть пам'ятi програм, розмiщених на кристалi 8051, обмежена 4, 8 або 16 Кб. У пам'ять програм окрiм команд можуть записуватися константи, управляючi слова iнiцiалiзацii, таблицi перекодування вхiдних i вихiдних змiнних i тому подiбне. Доступ до вмiсту пам'ятi програм здiйснюiться за допомогою 16-бiтовоi шини адреси. Сама адреса формуiться за допомогою або програмного лiчильника (PC), або регiстра-покажчика даних (DPTR). DPTR виконуi функцii базового регiстру при непрямих переходах по програмi або використовуiться в операцiях з таблицями.
Для доступу до даних, розмiщених у внутрiшньому ОЗП, використовуiться однобайтна адреса. Архiтектура внутрiшньоi пам'ятi даних 8051 дозволяi звертатися до окремих бiт даних в спецiально видiленiй областi внутрiшнього ОЗП, починаючи з адреси 0x20 i закiнчуючи 0x2F (див. рис. 1.2). Таким чином, у вказаному дiапазонi адрес можна звертатися до 128-бiтових змiнних за допомогою команд бiтових операцiй SETB i CLR. Бiтовi змiннi нумеруються, починаючи з 0x0 i закiнчуючи 0x7F. Це не означаi, що не можна звертатися до цих елементiв пам'ятi, як до байтiв при звичайних операцiях з памтАЩяттю.
У внутрiшньому ОЗП мiкроконтролера 8051 видiлено 4 банки регiстрiв загального призначення. При включеннi мiкроконтролера банком за умовчанням стаi банк 0 (див. рис1.2). При цьому регiстру R0 вiдповiдаi адреса 0x00, регiстру R1 - адреса 0x01, нарештi, регiстру R7 при використаннi банку 0 вiдповiдаi адреса 0x07. Якщо банком за умовчанням стаi, наприклад, банк 1, то регiстру R0 вiдповiдатиме адреса 0x08, регiстру R1 - адреса 0x09 i регiстру R7 - адреса 0x0F. До адресного простору внутрiшнього ОЗП починаючи з адреси 0x80 примикають i адреси регiстрiв спецiальних функцiй.
Рисунок 1.2 тАУ Розподiлення внутрiшньоi памтАЩятi 8051
Регiстри спецiальних функцiй (Special Function Registers, SFR) призначенi для керування ходом обчислювальних операцiй, а також вiдповiдають за iнiцiалiзацiю, налаштування i управлiння портами вводу / виводу, таймерами, послiдовним портом. Крiм того, регiстри спецiальних функцiй мiстять iнформацiю про прiоритети переривань, а також бiти управлiння роздiльною здатнiстю переривань. Регiстри спецiальних функцiй iз зазначенням iх призначення перерахованi в таблицi. 1.1.
Таблиця 1.1 тАУ Призначення регiстрiв спецiальних функцiй
Позначення | Описання | Адреса |
A | Акумулятор | 0E0H |
B | Регiстр-розширювач акумулятора | 0F0H |
PSW | Слово стану програми | 0D0H |
SP | Регiстр-покажчик стеку | 81H |
DPTR | Регiстр-покажчик даних (DPH) | 83H |
(DPL) | 82H | |
P0 | Порт 0 | 80H |
P1 | Порт 1 | 90H |
P2 | Порт 2 | 0A0H |
P3 | Порт 3 | 0B0H |
IP | Регiстр прiоритетiв переривань | 0B8H |
IE | Регiстр маски переривань | 0A8H |
TMOD | Регiстр режиму таймера/лiчильника | 89H |
TCON | Регiстр управлiння/статусу таймера | 88H |
TH0 | Таймер 0 (старший байт) | 8CH |
TL0 | Таймер 0 (молодший байт) | 8AH |
TH1 | Таймер 1 (старший байт) | 8DH |
TL1 | Таймер 1 (молодший байт) | 8BH |
SCON | Регiстр управлiння прийомопередавачем | 98H |
SBUF | Буфер прийомопередавача | 99H |
PCON | Регiстр управлiння потужнiстю | 87H |
Робота мiкроконтролера 8051 в системах реального часу була б неможлива без обробки подiй, що генеруються зовнiшнiми пристроями, i установки тимчасових залежностей мiж подiями в системi.
Класичний мiкроконтролер 8051 маi 5 джерел переривань: два зовнiшнiх переривання, iнiцiйованих сигналами на входах, - INT0 (вивод P3.2) i INT1 (вивод P3.3); два переривання таймерiв - 0 i 1; переривання послiдовного порту. Послiдовнiсть виконання двох i бiльше переривань , що надiйшли одночасно, визначаiться iхнiм прiоритету.
Багато вбудованих систем в якостi пристрою вiдображення iнформацii використовують рiдкокристалiчнi дисплеi (Liquid Crystal Display, LCD). Найбiльш часто використовують дисплеi формату 16 × 2 i 20 × 2, якi дозволяють вивести максимум по 16 i 20 символiв у будь-який з двох рядкiв. Бiльшiсть рiдкокристалiчних iндикаторiв, що випускаються в даний час, включаi крiм самоi матрицi стандартний iнтерфейс управлiння, заснований на застосуваннi контролера, сумiсного з HD44780, який i стандартом де-факто для даного класу пристроiв вiдображення iнформацii. Типове позначення LCD на схемах показано на рис. 1.3.
Рисунок 1.3 тАУ Схема розмiщення виводiв рiдкокристалiчного iндикатора
Найважливiшою та вiдмiнною рисою архiтектури сiмейства i8051 i те, що АЛП може поряд з виконанням операцiй над 8-розрядними типами даних манiпулювати однорозрядними даними. ВаВаВа ВаОкремi програмно-доступнi бiти можуть бути встановленi, скинутi або замiненi iх доповненням, можуть пересилатися, перевiрятися i використовуватися в логiчних обчисленнях. Тодi як пiдтримка простих типiв даних (при iснуючiй тенденцii до збiльшення довжини слова) може з першого погляду здатися кроком назад, ця якiсть робить МК сiмейства i8051 особливо зручними для застосувань, в яких використовуються контролери. Алгоритми роботи останнiх за своiю суттю припускають наявнiсть вхiдних та вихiдних булевих змiнних, якi складно реалiзувати за допомогою стандартних мiкропроцесорiв. Всi цi властивостi в цiлому називаються булевих процесором сiмейства МCS-51. Завдяки такому потужному АЛП набiр iнструкцiй МК сiмейства i8051 однаково добре пiдходить як для застосувань управлiння в реальному масштабi часу, так i для алгоритмiв з великим об'iмом даних.
Динамiчна iндикацiя реалiзована за допомогою 5 х 7 матричного РК-дисплею - 2-напрямку на 16 символiв тАУ LM016L фiрми Hitachi Semiconductor.
2 РОЗРОБКА АПАРАТНОРЗ ЧАСТИНИ
2.1 Опис електричних параметрiв та схем пiдключення основних мiкросхем
У курсовiй роботi вимiрювання температури реалiзовано за допомогою датчика DS18B20.
Технiчнi характеристика термодатчика:
тАУ точнiсть В± 0.5 В° C вiд -10 В° C до +85 В° C;
тАУ розширення, що налаштовуiться користувачем, вiд 9 до 12 бiт;
тАУ данi передаються за допомогою 1-провiдного послiдовного iнтерфейсу;
тАУ 64-бiтнийй унiкальний i незмiнний серiйний номер;
тАУ багатоточкове зчитування;
тАУ робоча напруга вiд 3.0В до 5.5В;
тАУ TO-92, 150mil 8-контактний SOIC, або 1.98мм x 1.37мм корпус з кульковими виводами (В± 2.0 В° C).
Dallas Semiconductor у своiх термодатчиках застосовуi iнтерфейси SPI, 3-провiдний iнтерфейс (дуже схожий за логiкою на SPI), I ² C i 1-проводний (MicroLan). Цифровi датчики температури Dallas Semiconductor часто мiстять на кристалi додатковi блоки, що дозволяють значно розширити сферу iх застосування i полегшуi побудову блокiв автоматики, оскiльки мiстять готовi стандартнi вузли. Серед таких вузлiв можна видiлити термостат, статична i енергонезалежна пам'ять, вбудованi регiстри критичноi температури, програмованi користувачем.
РЖнодi, з метою економii кiлькостi виводiв, застосовуiться тiльки гiстерезисних вихiд, а в датчиках, що використовують 1-провiдний iнтерфейс, iх немаi взагалi. Ознакою того, що температура вийшла за вказанi межi, i встановлення прапорiв у регiстрах самого термодатчика. Винятком i тiльки DS1821 - у нього цифрове виведення в нормальному режимi роботи використовуiться як гiстерезисних вихiд термостата. При виробництвi напiвпровiдникових датчикiв температури неймовiрно складно досягти лiнiйностi перетворення у всьому дiапазонi вимiрюваних температур, який у бiльшостi датчикiв складаi -55 . +125 º С. Як видно з рис. 2.1, на краях цього дiапазону спостерiгаiться значне погiршення лiнiйностi i наростання помилки перетворення. Для переважноi бiльшостi датчикiв рiзних виробникiв, вiдомостi, наведенi в документацii справедливi лише для дiапазону -30 . +110 º С. Тому доводиться застосовувати або ненапiвпровiдниковi температурнi датчики, або займатися побудовою коректувальних таблиць. Таким чином, у конструктора в залежностi вiд поставленого перед ним завдання, i вибiр, пов'язаний з побудовою коректувальною таблицi - або з ii допомогою компенсувати нелiнiйнiсть перетворення на краях дiапазону, або обмежитися вузьким дiапазоном вимiрювань, але побудувати систему з роздiльною здатнiстю, наданою цiiю мiкросхемою, тобто порядку декiлькох сотих - однiii десятоi частки градуса Цельсiя. При цьому коректувальна таблиця заноситься безпосередньо в саму мiкросхему.
Рисунок 2.1 - Залежнiсть похибки вимiрювань вiд температури
Призначення виводiв датчика показано на рис. 2.2.
Рисунок 2.2 тАУ Виводи датчика DS18B20
Мiкросхема DS18B20 це термометр з цифровим введенням / виведенням, який працюi з точнiстю В± 0.5 В° C. Данi зчитуються через 1-провiдну послiдовну шину в додатковому вiд 9 до 12 бiтному (програмуiться користувачем) кодi з цiною молодшого розряду вiд 0.5 В° C до 0.0625 В° C.
При використаннi в якостi термостата, DS18B20 вiдрiзняiться наявнiстю у внутрiшнiй енергонезалежнiй пам'ятi (EEPROM) програмованих користувачем уставок по перевищенню температури (TH) i зi зниження температури (TL). Внутрiшнiй регiстр прапора буде виставлений, коли уставка пересiчена. Це буде виконано, коли вимiряна температура бiльше нiж TH або менше нiж TL. Якщо термостатування не потрiбно, два байти енергонезалежноi пам'ятi (EEPROM) зарезервованi для уставок можуть бути використанi для енергонезалежного зберiгання iнформацii загального призначення.
Кожна мiкросхема DS18B20 маi унiкальний i незмiнний 64-бiтний серiйний номер, який використовуiться як вузлова адреса датчика. Це дозволяi безлiчi мiкросхем DS18B20 спiвiснувати на однiй 1-провiдний шинi. Мiкросхема DS18B20 може бути локально запитана вiд 3.0 В до 5.5 В або вона може бути налаштована таким чином, щоб бути запитаною за допомогою 1-провiдноi лiнii даних.
Принцип роботи термодатчика заснований на порiвняннi частот двох внутрiшнiх генераторiв. Один генератор видаi постiйну частоту незалежно вiд температури, а частота другого генератора змiнюiться в залежностi вiд температури корпусу термодатчика. Шляхом обчислень формуiться вихiдний код, що включаi також iнформацiю про знак температури. Необхiдна похибка вимiрювань задаiться при iнiцiалiзацii мiкроконтролерного термодатчика встановленням птАЩятого та шостого бiту регiстра конфiгурацii.
Пiдключення термодатчика до мiкроконтролера показано на рис. 2.3 шина даних повинна бути пiдключена до плюса живлення через резистор номiналом 4,7 кОМ., оскiльки вихiдний транзистор датчика маi вiдкритий сток. При живленнi датчика вiд шини даних вивiд 3 залишаiться вiльним.
Рисунок 2.3 тАУ Схема пiдключення термодатчика
У режимi живлення вiд шини даних перед прийомом iнформацii потрiбна максимальна пауза тривалiстю 750 мс.
Класичний мiкроконтролер i8051 (МС551) i вiтчизняний аналог КМ1816ВЕ51 виконанi на основi високорiвневоi n-МОП технологii i випускалися у корпусi БРЖС, що маi 40 зовнiшнiх виводiв. Цокольовка корпусу i8051 i найменування виводiв показанi на рис. 2.4 Для роботи i8051 потрiбно одне джерело електроживлення +5 В. Через чотири програмованих порти вводу/виводу i805151 взаiмодii iз середовищем в стандартi ТТL-схем з трьома станами виходу.
Корпус s8051 маi два виводи для пiдключення кварцового резонатора, чотири вивода для сигналiв, керуючих режимом роботи МК, i вiсiм лiнiй порту 3, якi можуть бути запрограмованi користувачем на виконання спецiалiзованих (альтернативних) функцii обмiну iнформацiiю з середовищем.
електричний схема мiкропроцесорний пристрiй
Рисунок 2.4 тАУ Призначення висновкiв мiкроконтролера 8051
VSS - потенцiал загального проводу ("землi");
VCC - основна напруга живлення +5 В;
ХТАL1, ХТАL2 - виводи для пiдключення кварцового резонатора;
RESET (RST) - вхiд загального скидання мiкроконтролера;
ВаРSЕN - дозвiл зовнiшньоi пам'ятi програм: видаiться тiльки при зверненнi до зовнiшнього ПЗУ;
АLЕ - строб адреси зовнiшньоi пам'ятi;
ЕА - вiдключення внутрiшньоi програмноi пам'ять, рiвень 0 на цьому входi змушуi мiкроконтролер виконувати програму тiльки iз зовнiшнього ПЗП; iгноруючи внутрiшнi (якщо останнi i);
Р0 - восьми бiтний двонаправлений порт вводу-виводу iнформацii: при роботi iз зовнiшнiми ОЗП i ПЗП по лiнiях порту в режимi тимчасового мультиплексування видаiться адреса зовнiшньоi пам'ятi, пiсля чого здiйснюiться передача або прийом даних;
Р1 - восьми бiтний квазi двонаправлений порт вводу / виводу: кожен розряд порту може бути запрограмований як на введення, так i на виведення iнформацii, незалежно вiд стану iнших розрядiв;
Р2 - восьми бiтний квазi двонаправлений порт, аналогiчний Р1; крiм того, виводи цього порту використовуються для видачi адресноi iнформацii при зверненнi до зовнiшньоi пам'ятi програм або даних (якщо використовуiться 16-бiтова адресацiя останньоi).
РЗ - восьми бiтний квазi двонаправлений порт, аналогiчний. Р1; крiм того, виводи цього порту можуть виконувати ряд альтернативних функцiй, якi використовуються при роботi таймерiв, порту послiдовного введення-виведення, контролера переривань i зовнiшньоi пам'ятi програм i даних.
Основу структурноi схеми i8051 (рис. 2.5) утворюi внутрiшня двонаправлена 8-бiтна шина, яка звтАЩязуi мiж собою всi основнi вузли та пристроi: резидентну пам'ять програм (RРМ), резидентну пам'ять даних (RDМ), арифметико-логiчний пристрiй (АLU), блок регiстрiв спецiальних функцiй, пристрiй управлiння (СU) та порти вводу / виводу (РО-РЗ).
Живлення схеми реалiзовано у виглядi батареi В1.
Рисунок 2.5 тАУ Структурна схема i8051
LCD на базi HD44780 пiдключаiться до мiкроконтролера безпосередньо до портiв. РД два способи пiдключення - на 8 бiт i на 4 бiта. У восьмибiтному режимi трiшки простiше закидати байти - не потрiбно зсовувати байт, зате в чотирьох бiтному рiзко потрiбно витрачати на цiлих чотири нiжки контролера менше.
Призначення виводiв LCD LM016L:
тАУ Виводи D7 .. D0 це шина даних / адреси.
тАУ E - стробуючий вхiд. Дригом напруги на цiй лiнii ми даiмо зрозумiти дисплею що потрiбно забирати / вiддавати данi з / на шину даних.
тАУ RW - визначаi в якому напрямку у нас рухаються данi. Якщо 1 - то на читання з дисплея, якщо 0 то на запис у дисплей.
тАУ RS - визначаi що у нас передаiться, команда (RS = 0) або данi (RS = 1). Данi будуть записанi в пам'ять за поточною адресою, а команда виконана контролером.
Бiблiотека для LCD у данiй курсовiй роботi складаiться з двох файлiв:
тАУ файл lcd_ds.asm мiстить усi основнi параметри портiв i, власне, код.
тАУ файл 2313def.inc мiстить макроси для роботи з дисплеiм. РЖ використовуiться для роботи з бiблiотекою.
3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Блок-схема алгоритму програми
Принцип роботи мiкропроцесорного пристрою для вимiрювання температури можна описати наступними етапами:
1. Початок роботи.
2. Ввiмкнення живлення. Схема пристрою живиться вiд батареi B1 +5В.
3. Встановлення початкових установок мiкроконтролера. У них встановлюiться покажчик стека на останню комiрку ОЗП, початковий стан каналiв зв'язку з датчиками температури, швидкiсть обмiну по iнтерфейсу, дозволяються переривання вiд таймера/лiчильника, переписуiться кiлькiсть i iндивiдуальнi адреси датчикiв температури з EEPROM в ОЗП, в регiстри записуються необхiднi константи. Коли початковi установки завершенi, починаiться частина програми, яка робить опитування датчика температури. Вона буде циклiчно повторяться, поки пiдводиться живлення до мiкроконтролера або доки не виникне запит на переривання. Опитування датчика температури починаiться з сигналу скидання на лiнii.
4. Команда початку вимiру температури дозволяi перетворення значень температури в цифровий вид для датчика.
5. Аналого-цифрове перетворення значень температури займаi час вiд 750 мс до 800 мс. Тому, щоб набути правильного значення температури, необхiдно почекати паузу 750 мс (для термодатчика DS18B20). Пауза витримуiться за допомогою таймера/лiчильника. Пiд час паузи можна здiйснювати iншi дii (наприклад, зробити обмiн даними з комп'ютером або вивести результати на РКРЖ).
6. Послiдовно зчитуються вимiрянi значення температури; запис вимiряних значень у вiдповiднi комiрки ОЗУ.
7. На цьому етапi робиться галуження програми : якщо вимiряне значення температури не виходить за межi -10оС<Т<+85оС, то результат виводиться на екран ЖКИ (етап 8). Якщо ж вимiряне значення температури виходить за межi дiапазону, то вiдбуваiться сигнал попередження (етап 9).
8. Якщо необхiдно продовжувати вимiрювати температуру (етап 10), то переходять до пункту 4, якщо нi, то тодi вiдбуваiться завершення програми тАУ етап 11.
Блок-схема даного алгоритму представлена на рис. 3.1
Рисунок 3.1 тАУ Блок-схема алгоритму роботи програми
3.2 Лiстинг програми
NAME LCD_TEMPER
DAT EQU P1
RW EQU P3.5
RS EQU P3.6
EN EQU P3.7
SER EQU P0.0
RCK EQU P1.2
OE EQU P1.6
PROGRAM SEGMENT CODE
MYDATA SEGMENT CODE
CSEG AT 0
USING 0
JMP start
RSEG PROGRAM
start:
MOV P1, #0B8h
CLR P1.6
CALL init_lcd
CALL clear_lcd
MOV DPTR, #txt
next:
CLR A
MOVC A, @A+DPTR
CJNE A, #0dh, cont
JMP $
cont:
CALL write_char
INC DPTR
JMP next
;тАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФ_
wait_lcd:
SETB P1.6
still_wait:
SETB EN
CLR RS
SETB RW
MOV DAT, #0FFh
MOV C, P1.7
CLR EN
JC still_wait
CLR RW
CLR 1.6
RET
;тАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФ_
init_lcd:
SETB EN
CLR RS
CLR RWВаВаВа
MOV A, #38h
CALL shft
CLR EN
CALL wait_lcd
SETB EN
CLR RS
CLR RW
MOV A, #0Eh
CALL shft
MOV DAT, #0Eh
CLR EN
CALL wait_lcd
SETB EN
CLR RS
CLR RW
MOV A, #06h
CALL shft
CLR EN
CALL wait_lcd
RET
;тАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФ_
clear_lcd:
SETB EN
CLR RS
CLR RW
MOV A, #01h
CALL shft
CLR EN
CALL wait_lcd
RET
;iнiцiалiзацiя DS
INIDS1:
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа HYL1
MOVLWВаВаВаВаВаВаВаВаВаВаВаВа 0Xcc
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа POSIL1
MOVLWВаВаВаВаВаВаВаВаВаВаВаВа 0x44
GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа PRIEM1
HYL1:
ВаВаВаВаВаВаВаВа CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа WUX1
ВаВаВаВаВаВаВаВа MOVLWВаВаВаВаВаВаВаВаВаВаВаВа .125
ВаВаВаВаВаВаВаВа ADDLWВаВаВаВаВаВаВаВаВаВаВаВаВа -1
ВаВаВаВаВаВаВаВа BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа STATUS,2
ВаВаВаВаВаВаВаВа GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа $-2
ВаВаВаВаВаВаВаВа CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа WXO1
ВаВаВаВаВаВаВаВа MOVLWВаВаВаВаВаВаВаВаВаВаВаВа .125
ВаВаВаВаВаВаВаВа ADDLWВаВаВаВаВаВаВаВаВаВаВаВаВа -1
ВаВаВаВаВаВаВаВа BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа STATUS,2
ВаВаВаВаВаВаВаВа GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа $-2
;змiна входу на прийом/передачу
WUX1:
BCFВаВаВаВаВаВаВаВаВаВа PORTA,DS1
BSFВаВаВаВаВаВаВаВаВаВаВа STATUS,5
BCFВаВаВаВаВаВаВаВаВаВа TRISA^80H,DS1
BCF STATUS,5
RETURN
WXO1:
BSFВаВаВаВаВаВаВаВаВаВаВа STATUS,5
BSFВаВаВаВаВаВаВаВаВаВаВа TRISA^80H,DS1
BCF STATUS,5
RETURN
;прийом 9 бiт з DS
PRIEM1:
ВаВаВаВаВаВаВаВа CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа HYL1
ВаВаВаВаВаВаВаВа MOVLWВаВаВа 0xCC
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа POSIL1
MOVLWВаВаВа 0xBE
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа POSIL1
CALL PRIE1
BSFВаВаВаВаВаВаВаВаВаВаВа FLAG,1
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа PRI1
BCFВаВаВаВаВаВаВаВаВаВа FLAG,J
BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа TEMP,DS1
BCFВаВаВаВаВаВаВаВаВаВа FLAG,0
BTFSCВаВаВаВаВаВа TEMP,DS1
BSFВаВаВаВаВаВаВаВаВаВаВа FLAG,0
BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа FLAG,0
GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа CXET1
COMFВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа LSB,0
ADDLWВаВаВаВа .1
MOVWFВаВаВа LSB
GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа CXET1
PRIE1:
MOVLWВаВаВа .8
MOVWFВаВаВа COUN
CLRFВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа LSB
PRI1:
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа WUX1
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа WXOl
MOVLWВаВаВа .2
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа X4
MOVFW ВаВа PORTA
MOVWFВаВаВа TEMP
BTFSCВаВаВаВаВаВа FLAG,1
RETURN
BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа TEMP,DS1
BCFВаВаВаВаВаВаВаВаВаВа STATUS,0
BTFSCВаВаВаВаВаВа TEMP,DS1
BSFВаВаВаВаВаВаВаВаВаВаВа STATUS,0
RRFВаВаВаВаВаВаВаВаВаВа LSB,1
MOVLWВаВаВа .15
CALLВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа X4
DECFSZВаВаВа COUN,l
GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа PRI1
RETURN
;затримка мкс
X4:
ADDLWВаВаВаВа -1
BTFSSВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа STATUS,2
GOTOВаВаВаВаВаВаВаВаВаВаВаВаВаВаВаВа $-2
RETURN
;посилка команди в DS
POSIL1:
ВаВаВаВаВаВаВаВа MOVWFВаВаВа TEMP
ВаВаВаВаВаВаВаВа MOVLWВаВаВа .8
MOVWFВаВаВа COUN
POSI1:
RRFВаВаВаВаВаВаВаВаВаВа TEMP,1
BTF
Вместе с этим смотрят:
Анализ режимов автоматического управления
Архитектуры реализации корпоративных информационных систем
Базы данных и их сравнительные характеристики
Выращивание плёнки GeSi и CaF2 на кремниевых подложках