Курсовая работа: Розробка термореле

РЕФЕРАТ

Пояснювальна записка містить: 32 сторінки тексту, 9 рисунків, 1 таблиця, 2 схеми, список використаних джерел з 6 найменувань.

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

У даній роботі була розроблена програма на базі мікроконтролера і8051 для вимірювання температури за допомогою датчика DS18B20. Вимірювання температури проводяться безперервно.

ДАТЧИК ТЕМПЕРАТУРИ, МІКРОКОНТРОЛЕР, РК-ДИСПЛЕЙ, ЦИФРОВИЙ ТЕРМОМЕТР


ЗМІСТ

Реферат

Вступ

1 Аналіз технічного завдання

1.1  Розробка структурної схеми пристрою

1.2  Обґрунтування вибору комплектуючих

2 Розробка апаратної частини

2.1 Опис електричних параметрів та схем підключення основних мікросхем

3 Розробка програмного забезпечення

3.1 Блок-схема алгоритму програми

3.2 Лістинг програми

Висновки

Перелік посилань


ВСТУП

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

Термодатчики є первинними перетворювачами і служать для виміру температури.

По методу виміру термодатчики діляться на два типи:

–  термопари, дія яких заснована на вимірі термоелектрорушійної сили, термопарою (спаєм), що розвивається, з двох різнорідних провідників;

–  термоопори, що використовують залежність електричного опору речовини від його температури.


1 АНАЛІЗ ТЕХНІЧНОГО ЗАВДАННЯ

1.1 Розробка структурної схеми пристрою

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

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

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

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

Схема електрична структурна зображена на рисунку 1.1.

Функціонування приладу повинне здійснюватися таким чином:

Блок живлення перетворить напругу мережі в необхідну для роботи приладу напругу.

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

Датчик температури не вимагає яких-небудь зовнішніх ланцюгів узгодження, оскільки добре узгоджується з АЦП, як по діапазону, так і по чутливості. Як датчик температури застосуємо датчик DS18B20 фірми DALLAS.

Мікроконтролер обробляє отриману інформацію і видає її на блок індикації.

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

1.2 Обґрунтування вибору комплектуючих

Поява на нашому ринку відносно дешевих цифрових датчиків температури і зовсім дешевих мікроконтролерів зробила можливим створення цифрового термометра, який не вимагає калібрування і має багато всяких можливостей. Серед цифрових датчиків температури найцікавішими є мікросхеми DS1820 і DS18В21 фірми DALLAS. Хороші вони тим, що використовують для обміну однопровідний інтерфейс (1 - WireTM) фірми DALLAS. Це означає що датчики можуть бути підключені до термометра усього за допомогою 3-х дротів (датчик DS1820 можна підключити навіть за допомогою двох дротів). Датчик DS1820 точніший (але дорожчий), має менший час перетворення. Зате DS1821 може бути запрограмований в режим термостата для повністю автономної роботи.

При розробці схеми велика увага приділялася простоті та мінімальній кількості деталей. Тому передбачено підключення лише одного датчика. Декілька датчиків підключити цілком можливо, але в цьому випадку потрібно буде встановити перемикач для вибору активного датчика вручну. Перемикач може комутувати виводи DQ датчиків (вивод 2 DS18B20).

Більш детально датчик DS18В20 розглянуто у розділі ІІ.

Схема мікропроцесорного пристрою для вимірювання температури будується на основі мікроконтролера і80С51.

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

Сімейство і8051 включає п'ять модифікацій МК (що мають ідентичні основні характеристики 8051, 80С51, 8751, 8031, 80С31), основна відмінність між якими полягає в реалізації пам'яті програм і потужності споживання.

і8051 має у своєму складі такі апаратурні засоби:

-        процесор, до складу якого входять 1-байтний АЛП і схеми апаратурної реалізації команд множення і ділення;

-        стираючий ПЗП програм місткістю 4 Кбайта;

-        ОЗУ даних місткістю 128 байт;

-        два 16-бітові таймери/лічильники;

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

-        блок дворівневого векторного переривання від п'яти джерел;

-        асинхронний канал дуплексного послідовного введення/висновку інформації з швидкістю до 375 Кбіт/с;

-        генератор;

-        схему синхронізації і управління.

Мікроконтролер також має:

–  32 регістри загального призначення (РЗП);

–  128 визначуваних користувачем програмно-управляючих прапорів;

–  набір регістрів спеціальних функцій.

–  РОН і визначувані користувачем програмно-управляючі прапори, розташовані в адресному просторі внутрішнього ОЗУ даних.

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

Система команд МК містить 111 базових команд з форматом 1, 2, або 3 байти. Всі команди виконуються за один або два машинні цикли (відповідно 1 або 2 мкс при тактовій частоті 12 Мгц), виключення – команди множення і ділення, які виконуються за чотири машинні цикли (4 мкс). МК сімейства і8051 використовують пряму, безпосередню, непряму і неявну, адресацію даних.

Як операнди команд МК сімейства і8051 можуть використовувати окремі біти, чотирьохбітові цифри, байти і двобайтові слова.

Набір команд сімейства і8051 має декілька особливостей, пов'язаних з типовими функціями виконуваними мікроконтролерами - управлінням, для якого типовою є операція з однорозрядними двійковими сигналами, велике число операцій введення/висновку і розгалужень програми.

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

Мікроконтролери сімейства 8051 є мікропроцесорними пристроями з архітектурою CISC зі стандартним набором команд, характерних для даної архітектури. Система команд 8051-сумісних пристроїв включає 111 основних команд розміром від одного до трьох байт, але більша частина цих команд – одно- або двобайтовими.

Систему команд сімейства і8051 можна підрозділити за функціональною ознакою на п'ять груп:

–  пересилки даних;

–  арифметичних операцій;

–  логічних операцій;

–  операцій над бітами;

–  передачі управління.

Склад операндів включає в себе операнди чотирьох типів: біти, нібли (4 розряду), байти і 16-бітові слова. Час виконання команд становить 1, 2 або 4 машинних цикли. При тактовій частоті 12 МГц тривалість машинного циклу складає 1 мкс, при цьому 64 команди виконуються за 1 мкс, 45 команд - за 2 мкс і 2 команди (множення і ділення) - за 4 мкс.

Мікроконтролер має 128 програмно-керованих прапорів користувача. Є також можливість адресації окремих бітів блоку регістрів спеціальних функцій і портів. Для адресації бітів використовується пряма 8-бітна адреса. Непряма адресація бітів неможлива.

У і8051 передбачена можливість задання частоти внутрішнього генератора за допомогою кварцу, LС-ланцюжка або зовнішнього генератора. Максимальна частота проходження імпульсів синхронізації - 12 МГц.

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

Мікроконтролери 8051 оперують двома типами пам'яті : пам'яттю програм і пам'яттю даних. Пам'ять даних може бути реалізована як комбінація розміщеного на кристалі (резидентного або on-chip) статичного ОЗП і зовнішніх мікросхем пам'яті. Для простих апаратно-програмних конфігурацій із застосуванням 8051 буває досить резидентною пам'яті самого мікроконтролера.

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

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

Пам'ять програм може мати максимальний об'єм, рівний 64 Кб, що обумовлено використанням 16-розрядної шини адреси. У багатьох випадках місткість пам'яті програм, розміщених на кристалі 8051, обмежена 4, 8 або 16 Кб. У пам'ять програм окрім команд можуть записуватися константи, управляючі слова ініціалізації, таблиці перекодування вхідних і вихідних змінних і тому подібне. Доступ до вмісту пам'яті програм здійснюється за допомогою 16-бітової шини адреси. Сама адреса формується за допомогою або програмного лічильника (PC), або регістра-покажчика даних (DPTR). DPTR виконує функції базового регістру при непрямих переходах по програмі або використовується в операціях з таблицями.

Для доступу до даних, розміщених у внутрішньому ОЗП, використовується однобайтна адреса. Архітектура внутрішньої пам'яті даних 8051 дозволяє звертатися до окремих біт даних в спеціально виділеній області внутрішнього ОЗП, починаючи з адреси 0x20 і закінчуючи 0x2F (див. рис. 1.2). Таким чином, у вказаному діапазоні адрес можна звертатися до 128-бітових змінних за допомогою команд бітових операцій SETB і CLR. Бітові змінні нумеруються, починаючи з 0x0 і закінчуючи 0x7F. Це не означає, що не можна звертатися до цих елементів пам'яті, як до байтів при звичайних операціях з пам’яттю.

У внутрішньому ОЗП мікроконтролера 8051 виділено 4 банки регістрів загального призначення. При включенні мікроконтролера банком за умовчанням стає банк 0 (див. рис1.2). При цьому регістру R0 відповідає адреса 0x00, регістру R1 - адреса 0x01, нарешті, регістру R7 при використанні банку 0 відповідає адреса 0x07. Якщо банком за умовчанням стає, наприклад, банк 1, то регістру R0 відповідатиме адреса 0x08, регістру R1 - адреса 0x09 і регістру R7 - адреса 0x0F. До адресного простору внутрішнього ОЗП починаючи з адреси 0x80 примикають і адреси регістрів спеціальних функцій.


Рисунок 1.2 – Розподілення внутрішньої пам’яті 8051

Регістри спеціальних функцій (Special Function Registers, SFR) призначені для керування ходом обчислювальних операцій, а також відповідають за ініціалізацію, налаштування і управління портами вводу / виводу, таймерами, послідовним портом. Крім того, регістри спеціальних функцій містять інформацію про пріоритети переривань, а також біти управління роздільною здатністю переривань. Регістри спеціальних функцій із зазначенням їх призначення перераховані в таблиці. 1.1.

Таблиця 1.1 – Призначення регістрів спеціальних функцій

Позначення Описання Адреса
A Акумулятор 0E0H
B Регістр-розширювач акумулятора 0F0H
PSW Слово стану програми 0D0H
SP Регістр-покажчик стеку 81H
DPTR Регістр-покажчик даних (DPH) 83H
(DPL) 82H
P0 Порт 0 80H
P1 Порт 1 90H
P2 Порт 2 0A0H
P3 Порт 3 0B0H
IP Регістр пріоритетів переривань 0B8H
IE Регістр маски переривань 0A8H
TMOD Регістр режиму таймера/лічильника 89H
TCON Регістр управління/статусу таймера 88H
TH0 Таймер 0 (старший байт) 8CH
TL0 Таймер 0 (молодший байт) 8AH
TH1 Таймер 1 (старший байт) 8DH
TL1 Таймер 1 (молодший байт) 8BH
SCON Регістр управління прийомопередавачем 98H
SBUF Буфер прийомопередавача 99H
PCON Регістр управління потужністю 87H

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

Класичний мікроконтролер 8051 має 5 джерел переривань: два зовнішніх переривання, ініційованих сигналами на входах, - INT0 (вивод P3.2) і INT1 (вивод P3.3); два переривання таймерів - 0 і 1; переривання послідовного порту. Послідовність виконання двох і більше переривань , що надійшли одночасно, визначається їхнім пріоритету.

Багато вбудованих систем в якості пристрою відображення інформації використовують рідкокристалічні дисплеї (Liquid Crystal Display, LCD). Найбільш часто використовують дисплеї формату 16 × 2 і 20 × 2, які дозволяють вивести максимум по 16 і 20 символів у будь-який з двох рядків. Більшість рідкокристалічних індикаторів, що випускаються в даний час, включає крім самої матриці стандартний інтерфейс управління, заснований на застосуванні контролера, сумісного з HD44780, який є стандартом де-факто для даного класу пристроїв відображення інформації. Типове позначення LCD на схемах показано на рис. 1.3.


Рисунок 1.3 – Схема розміщення виводів рідкокристалічного індикатора

Найважливішою та відмінною рисою архітектури сімейства і8051 є те, що АЛП може поряд з виконанням операцій над 8-розрядними типами даних маніпулювати однорозрядними даними.      Окремі програмно-доступні біти можуть бути встановлені, скинуті або замінені їх доповненням, можуть пересилатися, перевірятися і використовуватися в логічних обчисленнях. Тоді як підтримка простих типів даних (при існуючій тенденції до збільшення довжини слова) може з першого погляду здатися кроком назад, ця якість робить МК сімейства і8051 особливо зручними для застосувань, в яких використовуються контролери. Алгоритми роботи останніх за своєю суттю припускають наявність вхідних та вихідних булевих змінних, які складно реалізувати за допомогою стандартних мікропроцесорів. Всі ці властивості в цілому називаються булевих процесором сімейства МCS-51. Завдяки такому потужному АЛП набір інструкцій МК сімейства і8051 однаково добре підходить як для застосувань управління в реальному масштабі часу, так і для алгоритмів з великим об'ємом даних.

Динамічна індикація реалізована за допомогою 5 х 7 матричного РК-дисплею - 2-напрямку на 16 символів – LM016L фірми Hitachi Semiconductor.


2 РОЗРОБКА АПАРАТНОЇ ЧАСТИНИ

2.1 Опис електричних параметрів та схем підключення основних мікросхем

У курсовій роботі вимірювання температури реалізовано за допомогою датчика DS18B20.

Технічні характеристика термодатчика:

–  точність ± 0.5 ° C від -10 ° C до +85 ° C;

–  розширення, що налаштовується користувачем, від 9 до 12 біт;

–  дані передаються за допомогою 1-провідного послідовного інтерфейсу;

–  64-бітнийй унікальний і незмінний серійний номер;

–  багатоточкове зчитування;

–  робоча напруга від 3.0В до 5.5В;

–  TO-92, 150mil 8-контактний SOIC, або 1.98мм x 1.37мм корпус з кульковими виводами (± 2.0 ° C).

Dallas Semiconductor у своїх термодатчиках застосовує інтерфейси SPI, 3-провідний інтерфейс (дуже схожий за логікою на SPI), I ² C і 1-проводний (MicroLan). Цифрові датчики температури Dallas Semiconductor часто містять на кристалі додаткові блоки, що дозволяють значно розширити сферу їх застосування і полегшує побудову блоків автоматики, оскільки містять готові стандартні вузли. Серед таких вузлів можна виділити термостат, статична і енергонезалежна пам'ять, вбудовані регістри критичної температури, програмовані користувачем.

Іноді, з метою економії кількості виводів, застосовується тільки гістерезисних вихід, а в датчиках, що використовують 1-провідний інтерфейс, їх немає взагалі. Ознакою того, що температура вийшла за вказані межі, є встановлення прапорів у регістрах самого термодатчика. Винятком є тільки DS1821 - у нього цифрове виведення в нормальному режимі роботи використовується як гістерезисних вихід термостата. При виробництві напівпровідникових датчиків температури неймовірно складно досягти лінійності перетворення у всьому діапазоні вимірюваних температур, який у більшості датчиків складає -55 .. +125 º С. Як видно з рис. 2.1, на краях цього діапазону спостерігається значне погіршення лінійності і наростання помилки перетворення. Для переважної більшості датчиків різних виробників, відомості, наведені в документації справедливі лише для діапазону -30 .. +110 º С. Тому доводиться застосовувати або ненапівпровідникові температурні датчики, або займатися побудовою коректувальних таблиць. Таким чином, у конструктора в залежності від поставленого перед ним завдання, є вибір, пов'язаний з побудовою коректувальною таблиці - або з її допомогою компенсувати нелінійність перетворення на краях діапазону, або обмежитися вузьким діапазоном вимірювань, але побудувати систему з роздільною здатністю, наданою цією мікросхемою, тобто порядку декількох сотих - однієї десятої частки градуса Цельсія. При цьому коректувальна таблиця заноситься безпосередньо в саму мікросхему.

Рисунок 2.1 - Залежність похибки вимірювань від температури

Призначення виводів датчика показано на рис. 2.2.


Рисунок 2.2 – Виводи датчика DS18B20

Мікросхема DS18B20 це термометр з цифровим введенням / виведенням, який працює з точністю ± 0.5 ° C. Дані зчитуються через 1-провідну послідовну шину в додатковому від 9 до 12 бітному (програмується користувачем) коді з ціною молодшого розряду від 0.5 ° C до 0.0625 ° C.

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

Кожна мікросхема DS18B20 має унікальний і незмінний 64-бітний серійний номер, який використовується як вузлова адреса датчика. Це дозволяє безлічі мікросхем DS18B20 співіснувати на одній 1-провідний шині. Мікросхема DS18B20 може бути локально запитана від 3.0 В до 5.5 В або вона може бути налаштована таким чином, щоб бути запитаною за допомогою 1-провідної лінії даних.

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

Підключення термодатчика до мікроконтролера показано на рис. 2.3 шина даних повинна бути підключена до плюса живлення через резистор номіналом 4,7 кОМ., оскільки вихідний транзистор датчика має відкритий сток. При живленні датчика від шини даних вивід 3 залишається вільним.

Рисунок 2.3 – Схема підключення термодатчика

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

Класичний мікроконтролер і8051 (МС551) і вітчизняний аналог КМ1816ВЕ51 виконані на основі високорівневої n-МОП технології і випускалися у корпусі БІС, що має 40 зовнішніх виводів. Цокольовка корпусу і8051 і найменування виводів показані на рис. 2.4 Для роботи і8051 потрібно одне джерело електроживлення +5 В. Через чотири програмованих порти вводу/виводу і805151 взаємодіє із середовищем в стандарті ТТL-схем з трьома станами виходу.

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

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

Рисунок 2.4 – Призначення висновків мікроконтролера 8051

VSS - потенціал загального проводу ("землі");

VCC - основна напруга живлення +5 В;

ХТАL1, ХТАL2 - виводи для підключення кварцового резонатора;

RESET (RST) - вхід загального скидання мікроконтролера;

 РSЕN - дозвіл зовнішньої пам'яті програм: видається тільки при зверненні до зовнішнього ПЗУ;

АLЕ - строб адреси зовнішньої пам'яті;

ЕА - відключення внутрішньої програмної пам'ять, рівень 0 на цьому вході змушує мікроконтролер виконувати програму тільки із зовнішнього ПЗП; ігноруючи внутрішнє (якщо останнє є);

Р0 - восьми бітний двонаправлений порт вводу-виводу інформації: при роботі із зовнішніми ОЗП і ПЗП по лініях порту в режимі тимчасового мультиплексування видається адреса зовнішньої пам'яті, після чого здійснюється передача або прийом даних;

Р1 - восьми бітний квазі двонаправлений порт вводу / виводу: кожен розряд порту може бути запрограмований як на введення, так і на виведення інформації, незалежно від стану інших розрядів;

Р2 - восьми бітний квазі двонаправлений порт, аналогічний Р1; крім того, виводи цього порту використовуються для видачі адресної інформації при зверненні до зовнішньої пам'яті програм або даних (якщо використовується 16-бітова адресація останньої).

РЗ - восьми бітний квазі двонаправлений порт, аналогічний. Р1; крім того, виводи цього порту можуть виконувати ряд альтернативних функцій, які використовуються при роботі таймерів, порту послідовного введення-виведення, контролера переривань і зовнішньої пам'яті програм і даних.

Основу структурної схеми і8051 (рис. 2.5) утворює внутрішня двонаправлена 8-бітна шина, яка зв’язує між собою всі основні вузли та пристрої: резидентну пам'ять програм (RРМ), резидентну пам'ять даних (RDМ), арифметико-логічний пристрій (АLU), блок регістрів спеціальних функцій, пристрій управління (СU) та порти вводу / виводу (РО-РЗ).

Живлення схеми реалізовано у вигляді батареї В1.


Рисунок 2.5 – Структурна схема і8051

LCD на базі HD44780 підключається до мікроконтролера безпосередньо до портів. Є два способи підключення - на 8 біт і на 4 біта. У восьмибітному режимі трішки простіше закидати байти - не потрібно зсовувати байт, зате в чотирьох бітному різко потрібно витрачати на цілих чотири ніжки контролера менше.

Призначення виводів LCD LM016L:

–  Виводи D7 ... D0 це шина даних / адреси.

–  E - стробуючий вхід. Дригом напруги на цій лінії ми даємо зрозуміти дисплею що потрібно забирати / віддавати дані з / на шину даних.

–  RW - визначає в якому напрямку у нас рухаються дані. Якщо 1 - то на читання з дисплея, якщо 0 то на запис у дисплей.

–  RS - визначає що у нас передається, команда (RS = 0) або дані (RS = 1). Дані будуть записані в пам'ять за поточною адресою, а команда виконана контролером.

Бібліотека для LCD у даній курсовій роботі складається з двох файлів:

–  файл lcd_ds.asm містить усі основні параметри портів і, власне, код.

–  файл 2313def.inc містить макроси для роботи з дисплеєм. І використовується для роботи з бібліотекою.


3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

3.1 Блок-схема алгоритму програми

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

1.  Початок роботи.

2.  Ввімкнення живлення. Схема пристрою живиться від батареї B1 +5В.

3.  Встановлення початкових установок мікроконтролера. У них встановлюється покажчик стека на останню комірку ОЗП, початковий стан каналів зв'язку з датчиками температури, швидкість обміну по інтерфейсу, дозволяються переривання від таймера/лічильника, переписується кількість і індивідуальні адреси датчиків температури з EEPROM в ОЗП, в регістри записуються необхідні константи. Коли початкові установки завершені, починається частина програми, яка робить опитування датчика температури. Вона буде циклічно повторяться, поки підводиться живлення до мікроконтролера або доки не виникне запит на переривання. Опитування датчика температури починається з сигналу скидання на лінії.

4.  Команда початку виміру температури дозволяє перетворення значень температури в цифровий вид для датчика.

5.  Аналого-цифрове перетворення значень температури займає час від 750 мс до 800 мс. Тому, щоб набути правильного значення температури, необхідно почекати паузу 750 мс (для термодатчика DS18B20). Пауза витримується за допомогою таймера/лічильника. Під час паузи можна здійснювати інші дії (наприклад, зробити обмін даними з комп'ютером або вивести результати на РКІ).

6.  Послідовно зчитуються виміряні значення температури; запис виміряних значень у відповідні комірки ОЗУ.

7.  На цьому етапі робиться галуження програми : якщо виміряне значення температури не виходить за межі -10оС<Т<+85оС, то результат виводиться на екран ЖКИ (етап 8). Якщо ж виміряне значення температури виходить за межі діапазону, то відбувається сигнал попередження (етап 9).

8.  Якщо необхідно продовжувати вимірювати температуру (етап 10), то переходять до пункту 4, якщо ні, то тоді відбувається завершення програми – етап 11.

Блок-схема даного алгоритму представлена на рис. 3.1



Рисунок 3.1 – Блок-схема алгоритму роботи програми

3.2 Лістинг програми

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

;ініціалізація 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

;зміна входу на прийом/передачу

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 біт з 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

BTFSS       STATUS,0

GOTO                 W01

GOTO                 Wl1

POS1:

DECFSZ    COUN,l

GOTO                 POSI1

RETURN

W01:

CALL                  WUX1

MOVLW    .15

CALL                  X4

CALL                  WXOl

GOTO                 POS1

W11:

CALL                  WUX1

CALL                  WXOl

MOVLW    .15

CALL                  X4

GOTO                 POS1

write_char:

SETB EN

SETB RS

CLR RW

CALL shft

CLR EN

CALL wait_lcd

RET

;————————————

shft:

CLR RCK

MOV R4, #8

again:

RLC A

MOV SER, C

SETB SCK

CLR SCK

DJNZ R4, again

SETB RCK

RET

;———————————————————

RSEG MYDATA

txt: DB “LCD interface works“, 0dh

END


ВИСНОВКИ

У даному курсовому проекті був розроблений мікропроцесорний пристрій для вимірювання температури на основі однокристального мікроконтролера INTEL 8051, що дозволяє знімати температуру датчиком температури DS18В20, обробляти отриману інформацію і виводити результат вимірювань в цифровому вигляді на екран РК індикатора.

Головні переваги розробленої схеми:

- простота схемотехнічного рішення, невелика кількість використаних у схемі комплектуючих елементів і відсутність дефіцитних деталей;

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

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


ПЕРЕЛІК ПОСИЛАНЬ

1.  Горюнов А.Г. Архитектура микроконтроллера Intel 8051: Учеб. Пособие / А.Г. Горюнов, С.Н. Ливенцов. – Томск: Изд-во ТПУ, 2005. – 86 с.

2.  Заец Н.И. Радиолюбительские конструкции на РIC микроконтроллерах. Книга 3. / Заец Н.И. – М.: СОЛОН-Пресс, 2006. – 240 с.

3.  Каспер Эрни Программирование на языке Ассемблере для микроконтроллеров i8051. / Каспер Эрни – М.: Горячая линия – Телеком, 2004. – 191 с.

4.  Магда Ю.С. Микроконтроллеры серии i8051: практический подход. / Магда Ю.С. – М.: ДМК Пресс, 2008. – 228 с.

5.  Фрунзе А.В. Микроконтроллеры? Это же просто. / Фрунзе А.В. – М.: ООО “ ИД СКИМЕН ”, 2002. – 336 с.

6.   [Електронний ресурс] – Режим доступу: http://www.radioland.net.ua/sxemaid-193.php.

7.  [Електронний ресурс] – Режим доступу: http://radioded.ru/content/view/19/49.