Реферат по предмету "Цифровые устройства"


Цифровий термометр

Міністерство освіти і науки України Вінницький національний технічний університет Факультет функціональної електроніки та лазерної техніки Кафедра лазерної та оптоелектронної техніки ЦИФРОВИЙ ТЕРМОМЕТР КУРСОВИЙ ПРОЕКТ з дисципліни: “Цифрові пристрої та мікропроцесори” ПОЯСНЮВАЛЬНА ЗАПИСКА ВДТУ 7.091101.А20078.0 Виконав: ст. гр.


ЛОТ-00 Клімкіна Д.І. Прийняв: Тарновський М.Г. 2003 АНОТАЦІЯ Дана робота присвячена розробці такого пристрою як цифровий термометр. В роботі проаналізовано сучасну елементну базу для цифрових пристроїв, розглянуто основний принцип дії термометра та розроблено його принципову схему. Окреме місце в роботі посіла і розробка програмного забезпечення.


Результати роботи подано в додатках у вигляді креслень та тексту програми на Assembler. АННОТАЦИЯ Данная работа посвящена разработке такого устройства как цифровой термометр. В работе проанализирована современная элементная база для цифровых устройств, рассмотрен основной принцип действия термометра и разработана его принципиальная схема. Отдельное место в работе отведено разработке программного обеспечения.


Результаты работы представлены в приложениях в виде чертежей и текста программы на Assembler. ABSTRACT This work is denoted such device development as a numerical thermometer. The modern element base for numerical devices is analyzed. Besides main principle of actions of thermometer and its principle scheme are designed in this work. Software development takes special place in this work.


Results of designing are presented in exhibits in the manner of drawings and text of program on Assembler. ЗМІСТ Вступ 1.Аналіз теми та інженерна інтерпретація…. 2. Розробка апаратних засобів: 1. Розробка структурної схеми пристрою …. 2.2. Вибір елементної бази … 3. Розробка принципової схеми пристрою … 3. Розробка програмного забезпечення: 1. Алгоритм роботи пристрою …… 3.2.


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


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


і навколишнім середовищем. Застосування у вимірювальних приладах мікропроцесорів, що мають можливість програмної обробки інформації, вводить у прилад деякий „інтелект” і дозволяє не тільки поліпшити параметри приладу, але й надати йому абсолютно нових якостей. Мікропроцесорне управління в вимірювальних приладах дозволяє здійснити: Розширення вимірювальних можливостей. Застосування мікропроцесорів /МП/ дозволяє


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


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


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


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


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


засобів хоча і надає великі можливості, але без сумніву ускладнює процедуру вибору базового мікропроцесора для засобу вимірювання, що проектується. Усі ці аспекти і будуть докладно розглянуті в даному курсовому проекті. 1. АНАЛІЗ ТЕМИ ТА ІНЖЕНЕРНА ІНТЕРПРИТАЦІЯ Температура є фізичною величиною, яка характеризується внутрішньою енергією кіл


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


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


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


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


температур приблизно -400 - +1200С; точність вимірювань 0,5°С; Згідно поставленої задачі вже на первинному етапі розробки цифрового пристрою за основу було обрано однопровідну мережу MicroLAN компанії Dallas Semiconductor. Датчики цієї фірми широко представлені на сучасному ринку. Вони є малими за розміром, а також досить дешевими (приблизно 2$).


Саме ці датчики дозволять сконструювати доволі простий у реалізації та надійний термометр із необхідною точністю та діапазоном вимірюваних температур. Вибір конкретної моделі буде представлено при аналізі сучасної елементної бази (пункт 2.2). Оскільки особливих вимог до області використання термометра в технічному завданні пред’явлено не було, то в роботі буде представлена розробка побутового, «домашнього» цифрового термометра.


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


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


При живленні від мережі пристрій ввімкнений постійно. В свою чергу така простота дозволила виконати побутовий термометр максимально зручним: пристрій включає в себе два термодатчики – зовнішній та внутрішній по відношенню до кімнати що не ускладнило схеми через їх паралельне включення, однак дало змогу одночасно вимірювати як кімнатну температуру, так і температуру зовнішнього середовища. 2. РОЗРОБКА АПАРАТНИХ


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


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


Лічильник ініціалізується значенням, що відповідає -55°C (мінімальній вимірюваній температурі). Якщо лічильник досягає нуля перед тим, як закінчується часовий інтервал (це означає, що температура більше -55°C), то регістр температури, що також є ініціалізований значенням -55°C, інкрементується. Одночасно лічильник встановлюється новим значенням, що задається схемою формування нахилу характеристики.


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


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


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


Використовуючи набір кнопок SEL, UP, DN, EXT (конкретні функції яких будуть розглянуті пізніше, див п.2.3), користувач формує інформативні сигнали, на які реагує МП. вторинне джерело живлення забезпечує цифровий датчик, блок керування та ПЗП, клавіатуру, а також блок індикації необхідним рівнем напруги. 2.2. Вибір елементної бази 2.2.1. Цифровий датчик температури


Як було зазначено вище, вже на первинному етапі розробки цифрового пристрою за основу було обрано цифрові датчики компанії Dallas Semiconductor. Цей вибір є практично обґрунтованим через такі основні переваги температурних датчиків цієї фірми: Пряме перетворення температури в цифровий код без застосування додаткових АЦП; Можливість роботи з мережею MіcroLAN, що дозволяє приєднувати по двох проводах практично необмежену кількість датчиків; Відсутність додаткових зовнішніх компонентів;


Заводське калібрування і корекція нелінійності; Широкий діапазон вимірювання температури (-55°C +125°C); Помилка виміру температури не більш 0,5°C (крім DS1821 - 1,0°C) Час перетворення температури в цифрове значення не більш 1 секунди. Проаналізуємо параметри основних моделей датчиків компанії Dallas Semiconductor (табл. 1): Таблиця 1 Скорочення:


FT - функція термостата; ML - цифровий термометр дозволяє побудову протяжних систем дистанційного вимірювання температури шляхом об’єднання по мережі MicroLAN; Типи інтерфейсу: 3W - 3-х провідний послідовний; 2W (I2C) - 2-х провідний послідовний; 1W - 1- провідний послідовний; MicroLan - 1-провідна мережа. Враховуючи задані початкові вимоги щодо побудови термометра, в якості


внутрішнього термодатчика оберемо модель DS1820, в якості зовнішнього - DS1821. Розглянемо особливості роботи даних термодатчиків. DS1820 є сумісним з мережею 9-розрядним цифровим термометром. Діапазон вимірюваних температур складає -55 +125°С з кроком 0,5°С. DS1820 складається з ПЗП з унікальним ідентифікаційним номером, контролера


MіcroLAN, температурного датчика і двох регістрів для збереження верхнього і нижнього порогів температури (рис.2). Рис. 2 Структурна схема цифрового датчика DS1820     Термометр не містить внутрішнього джерела, а використовує "паразитне" живлення від однопровідної шини. Застосування зовнішнього джерела живлення прискорює перетворення температури, оскільки від ведучої шини не потрібне очікування протягом максимально можливого часу перетворення.


У цьому випадку всі прилади DS1820, розташовані на шині, можуть виконувати перетворення температури одночасно і під час обміну даними шини MіcroLAN.    Після завершення перетворення отримане значення порівнюється з величинами, що зберігаються в регістрах TH і TL. Якщо вимірювана температура виходить за встановлені межі, встановлюється сигнальний "прапор" (утім, його установка виробляється після кожного виміру).


При встановленому "прапорі" датчик відповідає на команду "Пошук сигналу". Це дозволяє швидко ідентифікувати точку з відхиленнями температури понад припустимі межі і відразу вважати показання відповідного термометра. Якщо команда "Пошук сигналу" не застосовується, регістри TH і TL можуть бути використані як регістри загального призначення. 


Цифровий термометр підвищеної точності DS18S20 має параметри, аналогічні DS1820, і програмно сумісний з ним. Основна відмінність DS18S20 полягає в тому, що в діапазоні вимірюваних температур від -10 до +85°С точність виміру складає ±0,5°С. Крім цього, старший байт регістра температури містить біт знака (S), що вказує на позитивну або негативну температуру. Цифровий термометр із програмувальним дозволом


DS18B20 призначений для виміру температури з заданою користувачем точністю. Для цього в його склад уведений регістр конфігурації, що встановлює один з дозволів: 0,5; 0,25; 0,125 або 0,0625°С. DS1821 є програмуємим цифровим термостатом, що призначений для роботи в системах терморегулювання на виробництві, у побутових пристроях, термометрах і т.п. Термостат формує сигнал високого рівня ("1"), якщо температура в зоні виміру перевищить


встановлену користувачем. Сигнал залишається в стані "1" доти , поки температура не знизиться до рівня нижнього порога, також встановлюваного користувачем. Задані значення верхніх і нижнього температурних порогів зберігаються в енергонезалежній пам'яті. Рис. 3. Структурна схема програмуємого термостата DS1821 2.2.2. Мікроконтроллер В процесі розробки апаратних засобів у якості блока керування було обрано


мікроконтролер сімейства АТ89 фірми Atmel. В загальному випадку контролер АТ89 являє собою восьмирозрядну однокристальну мікроЕОМ із системою команд MCS-51 фірми Іntel. Мікроконтролери виготовляються по КМОП (CMOS) технології і мають повністю статичну структуру. До складу сімейства входять мікроконтролери 15-ти типів.


Розглянемо основні типи контролерів, запам'ятовуючі і периферійні пристрої і деякі вузли, що входять до складу мікроконтролерів кожного типу, а також їх основні характеристики та подамо результати аналізу таблично (табл.2, табл.3): Таблиця 2 Тип МК IROM IRAM IDROM EM I/O SP T/С IS IV SPI WDT AC DPTR АТ89С1051 1K 64 - - 15 - 1 3 3 - - + 1


АТ89С1051U 1K 64 - - 15 + 2 6 5 - - + 1 АТ89С2051 2K 128 - - 15 + 2 6 5 - - + 1 АТ89С4051 4K 128 - - 15 + 2 6 5 - - + 1 АТ89С51 АТ89LV51 4K 128 - + 32 + 2 6 5 - - - 1 АТ89С52 АТ89LV52 8K 256 - + 32 + 3 8 6 - - - 1 АТ89С55 АТ89LV55 20K 256 - + 32 + 3 8 6 - - - 1 АТ89S53 АТ89LS53 12K 256 - + 32 + 3 9 6 + + - 2


АТ89S8252 АТ89LS8252 8K 256 2K + 32 + 3 9 6 + + - 2 АТ89S4D12 4K 256 128K - 5 - - - - + - - 2 ІROM - Іnternal ROM - внутрішній постійний запам'ятовуючий пристрій, призначений для зберігання команд програми та констант, IRАM - Internal RАM - внутрішній оперативний запам'ятовуючий пристрій, призначений для зберігання даних. IDROM - Internal Data ROM - внутрішній репрограмуємий запам'ятовуючий пристрій для зберігання даних


EM - External Memory - зовнішня пам'ять/ відсутність можливості підключення зовнішньої пам'яті відзначене знаком <->/ Контролери, що не мають IDROM та EM , містять такі периферійні пристрої: відносяться восьмирозрядні паралельні порти введення-виведення Р0, Р1, Р2, Р3, послідовний порт SP, таймери-лічильники Т/С0, Т/С1, Т/С2 і контролер переривань. I/O - сумарна кількість входів-виходів паралельних портів;


Т/С - кількість таймерів-лічильників; IS- Interrupt Source- кількість джерел запитів переривання IV- Interrupt Vector- кількість векторів переривання SPI- блок послідовного периферійного інтерфейсу WDT - сторожовий таймер АС - аналоговий компаратор Таблиця 3 Тип МК Vcc (В) Fosc (МГц) Icc (мА) N АТ89С1051 2,7-6,0 0-24 15 20


AT89C1051U 2,7-6,0 0-24 15 20 АТ89С2051 2,7-6,0 0-24 15 20 АТ89С4051 2,7-6,0 0-24 15 20 АТ89С51 4,0-6,0 0-24 20 40 АТ89LV51 2,7-6,0 0-12 20 40 АТ89С52 4,0-6,0 0-24 25 40 АТ89LV52 2,7-6,0 0-12 25 40 AT89C55 4,0-6,0 0-33 25 40 АТ89LV55 2,7-6,0 0-12 25 40 АТ89S53 4,0-6,0 0-33 25 40


АТ89LS53 2,7-6,0 0-12 25 40 АТ89S8252 4,0-6,0 0-33 25 40 АТ89LS8252 2,7-6,0 0-12 25 40 АТ89S4D12 3,3 (+-10%) 12-15 20 10 Vcc, В - діапазони значень напруги живлення; Fosc, МГц - діапазони значень тактової частоти; Icc, мА - значення струму споживання в робочому режимі при максимальному значенні напруги живлення і Fosc=12 Мгц.


N - число виводів, що використовуються для підключення мікроконтролера до схеми пристрою. Враховуючи постановку задачі, оберемо мікроконтролер АТ89С2051. Мікроконтролер AT89C2051 містить: 4 Кбайти Flash, 128 байтів RAM, 15 ліній вводу/виводу загального призначення, два 16-бітових таймери/лічильники, 5 дворівневих систем переривань, повний дуплексний послідовний порт, аналоговий прецизійний компаратор,


сторожовий таймер з внутрішнім генератором; розробляється зі статичною логікою операцій. Програмно управляються два режими енергозбереження. В пасивному режимі (idle) центральний процесор зупиняється, але RAM, таймери/лічильники, порт SPI, сторожовий таймер і система переривань залишаються активними. Зобразимо структурну схему контролера:


Рис.4 Структурна схема мікроконтролера AT89C2051 Розглянемо розводку виводів мікросхеми та призначення кожного з портів (рис.5): VCC - напруга живлення; GND - земля; Port 1 - 8-розрядний двунаправлений порт введення/виведення. Для портів P1.2 - P1.7 необхідні вбудовані навантажувальні резистори; для P1.0, P1.1 – також і зовнішні. Вихідні буфери забезпечують втікаючий струм 20 мА.


При використанні виводів порта P1.2 - P1.7 в якості входів та при підключених вбудованих навантажувальних резисторах буде забезпечений струм витоку. Port 1також отримує дані щодо кодів протягом програмування і перевірки Flash. Port 3 – (для P3.0 … P3.5, P3.7) 7-розрядний двунаправлений порт I/O із вбудованими навантажувальними резисторами. Вихідні буфери забезпечують втікаючий струм 20 мА. Рис.5 Розводка виводів При використанні виводів порта в якості входів


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


інвертуючого підсилювача генератора і вхід схеми вбудованого генератора тактової частоти. XTAL2 - вихід інвертуючого підсилювача генератора 2.2.3. Індикатор В даній схемі було доцільно використати два світлодіодних 2-х знакові індикатори HG1 LTD6610E та HG2 LTD6610E. 2.3. Розробка схеми електричної принципової Основою схеми є мікроконтролер DD2 типу AT89C2051 фірми


ATMEL. Індикація динамічна, реалізована програмно. Катодами індикатори HG1 і HG2 підключені до порту P1, аноди включаються транзисторами VT1-VT3. Транзистори керуються лініями сканування S0 S2. Імпульсний струм сегментів обмежений резисторами на рівні приблизно 15 мА, що вписується в навантажувальну здатність порту (20 мА) і є достатнім для одержання необхідної яскравості.


Цикли сканування формуються за допомогою внутрішнього таймера мікроконтролера. За кожним циклом індикації слідує „порожній” цикл, коли всі індикатори виключені. Для регулювання яскравості світіння індикаторів досить регулювати відношення тривалості циклу індикації та тривалості „порожнього” циклу (PWM). Яскравість регулюють кнопками „UP”


і „DOWN” у режимі індикації температури. Нове значення яскравості зберігається в енергонезалежній пам’яті. Для суб’єктивно постійної швидкості зміни яскравості в процесі регулювання застосований закон регулювання, близький до гіперболічного. Для економії портів мікроконтролера на лініях сканування розташована І2C мікросхема flash-пам’яті DD1. Цикли сканування ігноруються мікросхемою, тому що являють собою умови, що чергуються, „старт”


і „стоп”. Коли мікроконтролер обмінюється з мікросхемою, цикли сканування припиняються. Місцева клавіатура використовує як лінії сканування лінії даних дисплея, а як лінію повернення – RL-порт мікроконтролера. Сканування клавіатури відбувається в циклах сканування дисплея. Зовнішній і внутрішній датчики температури підключені до портів мікроконтролера через захисні ланцюги. У колі живлення датчиків включені невеликі резистори для захисту від короткого замикання на лініях


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


VT4 і VT5. Такий каскад забезпечує однаковий струм, що втікає і витікає. Цей струм обмежений резистором R17 з енергетичних розумінь і з метою захисту транзисторів. Обидва транзистори включені за схемою з загальним емітером, що в порівнянні зі схемою емітерного повторювача забезпечує більший розмах вихідної напруги. Розйом для програмування мікросхеми DS1821 використовує ту саму лінію даних, що


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


Цілком заряджені батареї мають напругу 6 В. Для нормальної роботи датчиків потрібен мінімум 4,3 В. Тому стабілізатор повинний забезпечувати якнайменше мінімальне падіння (краще не більш 200 мВ при 100 мА). Стабілізатор повинен тригерно включатись за допомогою кнопки, а виключатися сигналом з мікроконтролера. Стабілізатор повинний „відчувати” мережне живлення і при його наявності залишатися увесь час включеним.


Включення і вимикання штекера мережного живлення може вироблятися „на ходу”. Батареї не повинні розряджатися при роботі від мережі. Усі перераховані вище вимоги були виконані в стабілізаторі, зібраному на дискретних компонентах. Як регулюючий елемент у стабілізаторі застосований n-канальний logіc-level Моп-транзистор VT6 типу ІRLZ44, що випускається ПО „ІНТЕГРАЛ” під кодовою назвою


КП723М. Корпус цього транзистора ТЕ-220 здатний розсіяти необхідну потужність без радіатора. У якості низьковольтного опорного джерела застосований червоний світлодіод. Підсилювач помилки виконаний на транзисторі VT9. Завдяки високому опорові навантаження цей каскад має велике підсилення. Кнопка SB1 здійснює початкове включення стабілізатора при роботі від батарей. При роботі від мережі включення стабілізатора здійснює каскад на транзисторі


VT10. Транзистори VT7 і VT8 утворюють схему автоматичного відключення. Для вимикання стабілізатора мікроконтролер повинен сформувати відповідний сигнал на порт виводу. Але в мікроконтролера немає вільних ліній. Тому для відключення стабілізатора використовується лінія повернення клавіатури RL. При нормальній роботі на цій лінії спостерігається певна послідовність імпульсів, що залежить від того, яка натиснута кнопка


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


часу заряду повинна бути набагато менше, ніж розряду. Транзистор VT7 включений за схемою емітерного повторювача, він здатний швидко зарядити інтегруючу ємність C8. Постійна часу розряду визначається в основному резистором R20. Транзистор VT8 використовується як граничний елемент, при розрядці C8 нижче деякого рівня транзистор закривається, розриваючи коло живлення опорного джерела


VD12, і стабілізатор виключається. При роботі від мережі вузол відключення блокований за допомогою кола VD13, R21, що завжди підтримує VT8 у відкритому стані. Слід відзначити один недолік конструкції: відсутній сигнал розряду батарей. Мікроконтролер нормально працює при напрузі живлення 2,7 В, у той час як датчики температури можуть почати видавати хибну


інформацію при напрузі живлення нижче 4,3 В. Батареї можуть бути розрядженими, покази термометра – невірними, а користувач навіть не буде здогадуватися про це. Видасть хіба що знижена яскравість світіння індикаторів. Справа тут не в складності формування сигналу BAT. LOW, а у відсутності вільних портів вводу мікроконтролера.


Одне з вирішень даної проблеми – застосувати watchdog tіmer DS1232L (він же ADM1232) або подібний. Для перезапуску можна використовувати лінію сканування дисплея, а вбудований монітор живлення просто не дозволить системі працювати, якщо напруга живлення нижче 4,5 В. Схема електрична принципова подана в додатку 1. 3.РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 3.1. Алгоритм роботи пристрою


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


в додатковому коді. Оскільки це значення займає 2 байти, усі розряди старшого байта дорівнюють знаковому розряду. Дискретність представлення температури складає 0.5°C. Залежність вихідного коду від температури приведена в таблиці : Більш висока роздільна здатність може бути отримана, якщо виконати додаткові обчислення на основі значень COUNT_REMAІN (значення, що залишилося в лічильнику наприкінці виміру)


і COUNT_PER_C (кількість імпульсів на один градус для даної температури), що доступні. Для обчислень потрібно взяти лічене значення температури і відкинути молодший біт. Отримане значення назвемо TEMP_READ. Тепер дійсне значення температури може бути обчислене по формулі: TEMPERATURE=TEMP_READ-0.25+(COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C


У нашому випадку такий розрахунок дозволяє одержати дискретність представлення температури 0.1°C. Особливості пам’яті пристрою Кожен екземпляр датчика має унікальний 48-бітний номер, записаний за допомогою лазера в ПЗП в процесі виробництва. Цей номер використовується для адресації пристроїв. Крім серійного номера в ПЗП утримується код сімейства і контрольна сума. Крім ПЗП датчик має проміжне ОЗП обсягом 8 байт, плюс два байти енергонезалежної


пам'яті. Байти TH і TL являють собою температурні пороги, з якими порівнюються 8 біт кожного обмірюваного значення температури (молодший біт відкидається). За допомогою спеціальної команди можна організувати сигналізацію виходу температури за межі цих порогів. Якщо така функція не потрібна, байти TH і TL можна використовувати для збереження будь-яких даних користувача. Особливості 1-провідного інтерфейсу Зчитування значення вимірюваної температури, а також передача команди


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


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


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


Ініціатором обміну по 1-провідній шині завжди виступає майстер. Усі пересилання починаються з процесу ініціалізації. Ініціалізація виконується в наступній послідовності: майстер посилає імпульс скидання (reset pulse) - сигнал низького рівня тривалістю не менш 480 мкс. за імпульсом скидання випливає відповідь підлеглого пристрою (presence pulse) - сигнал низького рівня тривалістю 60


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


інтервалів (tіme slots). Кожен часовий інтервал служить для передачі одного біта. Першим передається молодший біт. Інтервал починається імпульсом низького рівня, тривалість якого лежить у межах 1 - 15 мкс. Оскільки перехід з одиниці в нуль менш чуттєвий до ємності шини (він формується відкритим транзистором, у той час як перехід з нуля в одиницю формується


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


120 мкс від початку інтервалу. Часовий інтервал завершується переведенням шини в стан високого рівня на час не менш 1 мкс. Потрібно відзначити, що обмеження на цей час зверху не накладається. Аналогічним образом формуються тимчасові інтервали для всіх переданих бітів. Основні команди, прийом даних Першою командою, що повинен передати майстер для датчика після ініціалізації, є одна з команд функцій ПЗП. Усього датчик має 5 команд функцій


ПЗП: Read ROM [33h]. Ця команда дозволяє прочитати вміст ПЗП. У відповідь на цю команду датчик передає 8-бітний код сімейства (10h), потім 48-бітний серійний номер, а потім 8-бітну CRC для перевірки правильності прийнятої інформації. Match ROM [55h]. Ця команда дозволяє адресувати на шині конкретний термометр. Після цієї команди майстер повинний передати потрібний 64-бітний код,


і тільки той термометр, що має такий код, буде "відгукуватися" до наступного імпульсу скидання. Skіp ROM [CCh]. Ця команда дозволяє пропустити процедуру порівняння серійного номера і тим самим заощадити час у системах, де на шині є один пристрій. Search ROM [F0h]. Ця досить складна у використанні команда дозволяє визначити серійні номери всіх термометрів, що є присутнім на шині. Alarm Search [ECh]. Ця команда аналогічна попередійї, але "відгукуватися"


будуть тільки ті термометри, у яких результат останнього виміру температури виходить за встановлені межі TH і TL. При прийомі даних від підлеглого пристрою тимчасові інтервали для прийнятих бітів формує майстер. Інтервал починається імпульсом низького рівня тривалістю 1 - 15 мкс. Потім майстер повинний звільнити шину, щоб дати можливість термометрові вивести біт даних. По переходу з одиниці в нуль датчик виводить на шину біт даних


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


За кодом сімейства йде 6 байт серійного номера, починаючи з молодшого. Потім йде байт контрольної суми (CRC). В обчисленні байта контрольної суми беруть участь перші 7 байт, або 56 переданих біт. Для обчислення використовується наступний поліном: CRC = X8+X5+X4+1 Після прийому даних майстер повинний обчислити контрольну суму і порівняти значення, що вийшло, з переданою CRC. Якщо ці значення збігаються, то прийом даних пройшов


без помилок. 3.2. Програма Процес створення програми підрозділяється на наступні етапи: 1. Власне написання програми мовою Асемблера або на будь-якій іншій мові, для якого є програма – транслятор, що працює з даним процесором. 2. Трансляція програми в об’єктний код тобто в ті коди, що будуть потім „зашиті” у пам’ять програм мікропроцесора і по яких він і буде працювати. 3. Виправлення помилок, виявлених транслятором у процесі


трансляції і повторна трансляція. 4. Налагодження програми в налагоджувальній програмі, що відтворює роботу шуканого процесора. Знаходження помилок алгоритму. Виправлення помилок у тексті програми. Ретрансляція програми. 5. У випадку, якщо транслятор створює файл об’єктного коду в HEX форматі, перетворення в BІN формат, необхідний для роботи програматора.


6. Прошивання коду в пам’ять програм за допомогою програматора. 7. Пробний запуск програми. Виявлення й аналіз помилок. Повторення всього циклу розробки, починаючи з пункту 1 (якщо це необхідно). Отже, розглянемо детально порядок створення програми для мікроконтролера AT89C2051. Спочатку розробляємо схему майбутнього мікропроцесорного пристрою.


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


і систему команд мікропроцесора. Під архітектурою розуміють те, які внутрішні регістри має процесор. Оскільки мікроконтролер AT89C2051 має внутрішній ОЗП, сполучений з регістрами загального призначення, потрібно добре орієнтуватися в структурі цього ОЗП. Крім того, в поняття архітектури входить наявність портів введення/виведення. Система команд – це сукупність усіх команд мікропроцесора.


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


програми. Програми для контролера AT89C2051 пишуться звичайно мовою Асемблера. За допомогою цього транслятора і була написана програма, текст якої поданий в додатку 2. Після написання тексту програми і запису його на диск у виді файлу з розширенням asm (наприклад, myprog.asm), необхідно виконати трансляцію програми. Для цього необхідно помістити файл із текстом програми і файл програми транслятора (Asm51.exe) в одну директорію.


Ця директорія повинна з’явитися в активній панелі навігатора (командера). Після цього у командному рядку набираємо наступну команду: asm51 myprog.asm і натискаємо клавішу Enter. По закінченні роботи програми, вона повинна видати повідомлення про кількість знайдених помилок при трансляції. Крім того, у тій же директорії з’явиться кілька нових файлів. Файл myprog.lst – це лістинг трансляції. Він містить той же текст програми, але праворуч доданий стовпець,


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


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


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


BІN формат – це просто набір кодів, що складають програму. Для перекладу з одного формату в іншій і назад служить пара програм: hex2bіn.exe і bіn2hex.exe. У результаті роботи програми з’явиться файл myprog.bіn. Слід відзначити, що в додатку 2 подано лише основні аспекти програми, а саме: введення/виведення та розміщення інформації в пам’яті, а також основна програма обробки


інформації згідно алгоритмом функціонування пристрою. Поряд з цим повна програма повинна висвітлювати і такі аспекти як: робота бітової пам’яті адресації, внутрішньої пам’яті даних із усіма її особливостями; додаткові підпрограми: робота кнопок UP, DOWN, UP+DOWN; SELECT, EXT/INT; програмування термостата. ВИСНОВКИ В даному курсовому проекті було розроблено цифровий термометр.


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


із врахуванням особливостей взаємодії виконавчих блоків із мікропроцесором, його архітектури та структури команд. Текст програми, виконаний на мові Асемблер, було також подано в додатках до проекту. В результаті роботи було спроектовано простий у виконанні, однофункціональний цифровий термометр. Було дотримано точності вимірювань, заданої технічним завданням, (0,5°С).


При цьому діапазон вимірюваних температур завдяки вдалому вибору елементної бази було розширено (до -55°C +125°C). СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 1.«Мікропроцесори та мікропроцесорні комплекти інтегральних мікросхем», довідник, під ред. В.А. Шахнова, том 2, М «Радио и связь», 1988. 2. А.С. Басманов «МП и ОЭВМ», Москва, «Мир», 1988. 3. В.О. Поджаренко, В.В. Кухарчук „Вимірювання


і комп’ютерно- вимірювальна техніка”-К 1991 4.В.О. Поджаренко, В.В. Кухарчук „Метрологія та вимірювальна техніка. Для самостійної роботи студентів та виконання курсових робіт”-В ВДТУ, 2000 5.www.dalsemi.com 6.www.chipnews.com.ua №6, 2000 7.В.В. Сташин, А.В. Урусов «Программирование цифровых устройств на однокристальных микроконтроллерах»,


Москва, «Энергоатомиздат», 1990. 8.«Микропроцессоры», Учебное пособие в 5-ти книгах, под редакцией В.А. Шахнова, Москва «Высшая школа», 1988. 9.www.microprocessor.by.ru „Програмування мікроконтроллера” 10.www.atmel.ru ДОДАТКИ Додаток 2 #DEFINE Z_SUP #DEFINE LO(XXX) XXX & 0FFH #DEFINE HI(XXX) (XXX >> 8) &


0FFH CLK_KHZ = 10000 ;OSC частота, KГц RTC_MS = 20 ;системний годинник, мс RTCV = CLK_KHZ*RTC_MS RTCV = RTCV/12 RTCV = - RTCV RTCV = RTCV & 0FFFFH ; Константи STACK .EQU 056H ;розміщення стеку V100MS .EQU 5 ;значення програмного таймера RTPCS 100mS/20mS=5 I2C_ADDR .EQU 0A0H ;I2C адреси для PCF8582 (A0,A1,A2=0)


SMPTMV .EQU 5 ;x20mS значення таймера термометрів INKTMV .EQU 35 ;x20mS початкове ключове значення таймера повторення KEYTMV .EQU 5 ;x20mS ключове значення таймера повторення BRKTMV .EQU 2 ;x20mS ключове значення яскравості таймера повторення TMOV20 .EQU 25 ;x20mS вихідне часове значення для DS1820


TMOV21 .EQU 100 ;x20mS вихідне часове значення для DS1821 INDTMV .EQU 50 ;x20mS значення затримки індикації OFFTMV .EQU 50 ;x100mS вихідне значення затримки PWM_MAX .EQU 230 ;MAX PWM значення L_MAX .EQU 09AH ;MAX вхідна та вихідна межа L_MIN .EQU 001H ;MIN вхідна та вихідна межа ; Порти


SCAN0 .EQU P3.0 ;лінія сканування дисплею 0 SCAN1 .EQU P3.1 ;лінія сканування дисплею 1 SCAN2 .EQU P3.5 ;лінія сканування дисплею 2 SDA .EQU SCAN0 ;I2C SDA лінія SCL .EQU SCAN1 ;I2C SCL лінія OWP1 .EQU P3.2 ;1-порт 1 (зовнішній термометр) OWP2 .EQU P3.7 ;1-порт 2 (внутрішній термометр) RETL .EQU


P3.4 ;лінія повернення клавіатури CNTRL .EQU P3.3 ;лінія керування термостатом ; Змінні, бітова адресація, зовнішні дані PWVH .EQU R20 ;значення таймера PWM (в виключеному стані) high PWVL .EQU R21 ;значення таймера PWM (в виключеному стані) low PHVH .EQU R22 ;значення таймера PWM (у включеному стані) high


PHVL .EQU R23 ;значення таймера PWM (у включеному стані) low RTPCS .EQU 021H ;програмний лічильник реального часу (100мс) EXT_TH EQU 03CH ;дані від зовнішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821) INT_TH EQU 03DH ;дані від внутрішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821) SAVTM .EQU 046H ;збереження таймера затримки


NVM NOTSV .EQU 023H ;незбереження в NVM OFFTM .EQU 049H ;відключення таймера ACHTM .EQU 048H ;автозмінювання таймера ACHR .EQU 028H ;автозмінювання EXT/INT ; Основна програма INIT: MOV SP,#STACK ;ініціалізація стеку CLR A MOV KEYTM,A ;обнулення ключового таймера повторення MOV EXT_TH,A ;обнулення зовнішнього термометра MOV


INT_TH,A ; обнулення внутрішнього термометра MOV OFFTM,#OFFTMV ;завершення завантаження таймера ACALL GETPWM ;одержання значень PWM таймера MOV ACHTM,ACHR MOV TMOD,#11H ;ініціалізація таймера 0 та таймера 1 MOV TL0,#LO(RTCV) ;завантаження таймера 0 MOV TH0,#HI(RTCV) MOV TL1,PHVL ;завантаження таймера 1 MOV TH1,PHVH MOV


RTPCS,#V100MS ;завантаження значення 100мс SETB PT1 ;ініціалізація пріоритетів таймерів (0–low, 1 - high) MOV IE,#8AH ;ініціалізація дозволу таймерів (ET0,ET1,EA=1) ACALL AD_EXT ;автовизначення та запуск зовнішнього термометра ACALL AD_INT ;автовизначення та запуск внутрішнього термометра


MOV SMPTM,#SMPTMV ;завантаження таймера зразка термометрів MAIN: MOV A,INCODE ;місцева перевірка клавіатури CPL A JNZ MA10 ;стрибок, якщо є натискання CLR FEN CLR PRESS SJMP MA20 ;стрибок, якщо немає натискання MA10: MOV B,A ;зберігання коду клавіатури ACALL DEL10 ;затримка доносу


MOV A,INCODE ;зчитування коду клавіатури CPL A CJNE A,B,MA20 ;відсутність натискання при відмінності кодів MOV R7,A MOV OFFTM,#OFFTMV ;завершення завантаження таймера JB PRESS,SAME ;Аналіз контрольних функцій DIF: CJNE R7,#KEY_SL,$+5H ;KEY SELECT ACALL SEL CJNE R7,#KEY_EX,$+5H ;


KEY EXT/INT ACALL EXT SAME:CJNE R7,#KEY_UP,$+5H ;KEY UP ACALL UP CJNE R7,#KEY_DN,$+5H ;KEY DOWN ACALL DN CJNE R7,#KEY_UD,$+5H ;KEY UP+DOWN ACALL UPDN SETB PRESS ;встановлення натискання ;Завершення аналізу контрольних функцій MA20: MOV A,SMPTM ;перевірка зразкового таймеру JNZ MA24 ;стрибок, якщо немає таймерного переповнення


MOV SMPTM,#SMPTMV ;перезавантаження таймеру ACALL CH_EXT ;перевірка зовнішнього термометра JNZ MA21 ;стрибок, якщо „готово” JNZ MA22 SJMP MA23 ;перехід до автовизначення MA21: ACALL RD_EXT ;зчитування з зовнішнього термометра ACALL LIM_CHK ;управління термостатом MA23: ACALL AD_EXT ;автовизначення та старт MA22: ACALL CH_INT ;перевірка зовнішнього термометра


JNZ MA25 ;стрибок, якщо „готово” JNZ MA24 SJMP MA26 ;перехід до автовизначення MA25: ACALL RD_INT ;зчитування з внутрішнього термометра MA26: ACALL AD_INT ;автовизначення та старт MA24: JB IND_SET,MA33 ;стрибок при встановленні моди MOV A,ACHR CLR C SUBB A,#MIN_RT JC MA40 ;стрибок при ACHR

MOV A,ACHTM JNZ MA40 MOV ACHTM,ACHR ;заміна перезавантаження таймера CPL IND_INT SJMP MA40 MA33: MOV A,DELTM ;перевіркаDELTM JNZ MA40 ;стрибок, якщо немає таймерного переповнення JBC IND_TH1,MA30 ;стрибок при індикації термометра 1 JBC IND_TH0,MA31 ;стрибок при індикації термометра 0


SJMP MA40 MA30: SETB IND_ONL ;встановлення ініціалізації межі SJMP MA32 MA31: SETB IND_OFL MA40: MOV A,SAVTM JNZ MA100 ;стрибок, якщо немає збереженого таймерного переповнення MOV A,NOTSV JZ MA50 ;збереження пропуску за умови збереження всіх параметрів ACALL SAVE SJMP MA100 MA50: MOV A,OFFTM JNZ MA100 MOV


OFFTM,#OFFTMV ;завершення завантаження таймера CLR RETL ;генерація імпульса 50mS ACALL DEL50 SETB RETL AJMP MAIN .END



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.