close

Вход

Забыли?

вход по аккаунту

?

Курсовой (УиКПО)

код для вставки
В данном курсовом проекте рассматривается тщательно термометр-термостат как он работает, также в в курсовом имеется управляющая программа на Ассемблере
Содержание
Содержание
4
Введение
5
1 Общий раздел
7
1.1 Анализ поставленной задачи
8
1.2 Технические требования к проектируемому устройству
9
1.3 Обзор аналогов проектируемого устройства – «РАТАР–02К»
9
1.4 Обзор аналога проектируемого устройства – «РАТАР–03.2УВ–Щ1»
11
1.5 Вывод по проектируемому устройству
13
2 Разработка схемы устройства
14
2.1 Разработка алгоритма работы устройства
14
2.2 Разработка схемы электрической структурной
16
2.3 Выбор элементной базы
16
2.4 Разработка схемы электрической принципиальной
22
Заключение
24
Список использованных источников
25
Приложение
26
Изм Лист № докум.
Подпись Дата
Жарких С. И.
Разраб.
Глазков Р. К.
Пров.
Н.контр.
Утв.
ППЭТ КП 230113 10 000 ПЗ
Лит
Курсовой проект.
Пояснительная записка
у
Лист
Листов
4
36
КСК-12
Введение
Внедрение микропроцессорной, и вообще цифровой, техники в устройства управления
промышленными объектами требует от специалистов самого различного профиля быстрого
освоения этой области знания. В процессе разработки функциональных схем цифровых
устройств отчетливо выделяются два характерных этапа. На первом этапе, который можно
назвать структурным проектированием, заданный неформально алгоритм разработчик
представляет в виде последовательности некоторых операторов, таких, как получение
результата, счет, преобразование кода, передача информации. При этом он старается
использовать ограниченный набор общепринятых операторов. При использовании этих
операторов, как правило, алгоритм можно представить довольно небольшим их числом.
Структура алгоритма становится обозримой, понятной, легко читаемой и однозначной. На
основе полученной структуры алгоритма формулируются технические требования к схемам,
реализующим отдельные операторы. По техническим требованиям в качестве функциональных
узлов схемы можно применить либо готовые блоки в интегральном исполнении, либо, если
таких микросхем в наличии нет, синтезировать их из более простых элементов. Подобный
синтез первоначально производится при помощи алгебры логики, после чего по полученным
функциям строится эквивалентная схема. Однако, как правило, синтезированные схемы хуже
их аналогов в интегральном исполнении. К этому приводят следующие обстоятельства:
большее время задержки, большие габариты, большее потребление энергии. Поэтому
результативного проектирования цифровых устройств разработчик должен уметь: выбрать
наиболее приемлемый вариант решения поставленной задачи, работать с алгеброй логики,
знать основные цифровые элементы и уметь их применять, по возможности знать наиболее
простые и распространенные алгоритмы решения основных задач. Знание наиболее
распространенных инженерных приемов в проектировании устройств позволит в будущем
сразу воспользоваться готовой схемой, не занимаясь бесполезной работой. Необходимо
заметить, что реализация схемы гораздо сложнее, чем простое решение задачи в алгебре логики
и наборе полученной функции из логических элементов. В действительности даже, казалось бы,
самые простые элементы, необходимо включать по определенной схеме, знать назначения всех
выводов. Необходимо знать, чем различаются элементы в пределах серии. Понимание
внутренней логики микросхемы особенно важно именно для специалистов по автоматике и
промышленной электронике, поскольку цифровые микросхемы изначально создавались для
выполнения строго определенных функций в составе ЭВМ. В условиях автоматики и
радиотехники они часто выполняют функции, не запланированные в свое время их
разработчиками, и грамотное использование микросхем в этих случаях прямо зависит от
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
5
понимания логики их работы. Хорошее знание тонкостей функционирования схем узлов
становится жизненно необходимым при поиске неисправностей, когда нужно определить,
имеется ли неисправность в данном узле или же на его вход поступают комбинации сигналов,
на которые схема узла не рассчитана. Составление тестов, а тем более разработка само
проверяемых схем также требуют очень хороших знаний принципов работы узлов.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
6
1 Общий раздел
Термостат — прибор для поддержания постоянной температуры. Поддержание
температуры
обеспечивается
либо
за
счёт
использования
терморегуляторов,
либо
осуществлением фазового перехода (например, таяние льда). Для уменьшения потерь тепла или
холода термостаты, как правило, теплоизолируют. Но не всегда. Широко известны
автомобильные моторы, где летом нет никакой теплоизоляции и за счёт действия восковых
термостатов поддерживается постоянная температура. Другим примером термостата является
холодильник.
Термостаты можно классифицировать по диапазону рабочих температур:

Термостаты высоких температур (300—1200 °C);

Термостаты средних температур (−60—500 °C);

Термостаты низких температур (менее −60 °C (200 К)) — криостаты.
Термостаты можно классифицировать по рабочему телу (теплоносителю):

Воздушные;

Жидкостные;

Твердотельные (как правило, используются элементы Пельтье и воск).
Термостаты можно классифицировать по точности поддержания температуры:

5-10 градусов и хуже, как правило, достигается без перемешивания, за счёт
естественной конвекции;

1-2
градуса
(хорошая
тепловая
стабильность
для
воздушных,
очень
посредственная для жидкостных), как правило, с перемешиванием;

0,1 градуса (очень хорошая тепловая стабильность для воздушных, на уровне
лучших образцов, средняя для жидкостных);

0,01 градуса (как правило, достигается в жидкостных термостатах специальной
конструкции), практически невозможно получить в воздушном термостате с вентилятором.
Термостаты можно классифицировать по области и способу применения:

Промышленные термостаты;

накладные термостаты;

погружные термостаты;

Комнатные термостаты.
В термодинамике термостатом часто называют систему, обладающую столь большой
теплоёмкостью, что подводимое к ней тепло не меняет её температуру.
Термометр (греч. θέρμη — тепло; μετρέω — измеряю) — прибор для измерения
температуры воздуха, почвы, воды и так далее. Существует несколько видов термометров:
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
7

жидкостные;

механические;

электронные;

оптические;

газовые;

инфракрасные.
1.1 Анализ поставленной задачи
Цель данной работы, овладение видом деятельности, применение микропроцессорных
систем, установка и настройка периферийного оборудования. Формирование знаний и умений в
области периферийных устройств в соответствии с современными технологиями развития.
Задача курсового проекта, разработка схемы электрической принципиальной, схемы
электрической структурной и алгоритм работы термометра-термостата на микроконтроллере.
Термометр-термостат
обеспечивает поддержку температурного режима. Порог
температуры включения и выключения термостата определяется значениями TH и TL в памяти
датчика, которые необходимо записать при помощи программатора DS1820. При превышении
текущей температуры значения TH на выходе датчика появится высокий уровень.
Для предотвращения помех, схема управления нагрузкой построена так, что транзистор
VT1 запирается в тот период сетевого напряжения, когда оно равно нулю, подавая тем самым
напряжение на затвор полевого транзистора VT2. Транзистор VT2 включает оптосимистор,
который в свою очередь открывает симистор VS1 управляющий нагрузкой.
Надежность закрытия транзистора VT1 необходимо настроить путем подбора нужного
сопротивления резистора R5. Данную схему можно так же применить в качестве термостата
теплого пола.
Выход датчика является выходом с открытым стоком, который выдерживает
протекающий через него ток до 4 мА. При достижении фактической температуры любого из
трех датчиков уровня TH, на резисторе R1 возникает напряжение, которое в свою очередь
открывает тиристор VS1 и включается реле K1. Контакты реле включают какое-либо
исполнительное устройство.
Для составления схемы в основу термометра-термостата используется схема из
журнала «Радио» – Усовершенствованный термометр-термостат на микроконтроллере.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
8
1.2 Технические
требования
к
проектируемому
устройству

погрешность измерения температуры в диапазоне Технические требования к
проектируемому устройству.

индивидуальный 64-битный идентификационный номер;

напряжение питания от +3 до +5,5 В;

измеряемая температура от -55 до + 125°С;

-10...+85°С не более 0,5°С;

в остальном диапазоне температур погрешность измерения не превышает 2°С;

информация о температуре выдается 9-битным кодом;

установка пороговых значений температуры по максимуму и минимуму,

максимальное время преобразования температуры в код 750 мс;

возможность питания от высокого уровня шины данных;

термодатчики не требуют индивидуальной настройки при замене.
1.3 Обзор аналогов проектируемого устройства –
«РАТАР–02К»
Регулятор температуры со встроенным таймером РАТАР–02К предназначен для
контроля и поддержания температуры объектов эксплуатации бытового и производственно–
технического назначения.
Прибор применяется в качестве блока управления электрическими каменками для бань
и саун, парогенераторами для саун, бань, фитобочек, ИК нагревателей саун, водонагревателями,
электрическими термокамерами и другими системами.
В качестве датчика температуры в приборе применяется датчик температуры на основе
полупроводникового чувствительного элемента ТС1047 .
Примечание – Датчик температуры, датчик уровня и термовыключатель в комплект
поставки прибора не входят и поставляются по заявке Заказчика.
Прибор позволяет:
a)
автоматически включать нагрузку через заданное время;
b)
автоматически отключать нагрузку через заданное время;
c)
отключать нагрузку в случае аварийных режимов:
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
9

срабатывание защитного термовыключателя;

выход из стоя датчика температуры;

уровень воды ниже нормы.
Рисунок 1 – Регулятор температуры со встроенным таймером РАТАР–02К
Регулятор температуры со встроенным таймером РАТАР–02К предназначен для
контроля и поддержания температуры объектов эксплуатации бытового и производственно–
технического назначения.
Регулятор температуры применяется в качестве блока управления электрическими
каменками для бань и саун , парогенераторами для саун, бань, фитобочек, ИК нагревателей
саун, водонагревателями, электрическими термокамерами и другими системами.
Отличительные особенности терморегулятора:

два независимых канала;

два цифровых индикатора;

две уставки по времени;

вход от датчика уровня;

вход от термовыключателя;

разрешение 0,1°С.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
10
Регулятор температуры Ратар-02К снабжен двумя дополнительными входами: для
подключения датчика уровня (кондуктометрического, поплавкового и т.д.), для подключения
термовыключателя (например термовыключатель с температурой размыкания контактов 140°С
для сауны).
Два цифровых индикатора позволяют одновременно отслеживать температуру и время.
Регулятор температуры со встроенным таймером Ратар-02К может использоваться для
управления работой электрической каменки совместно с датчиком температуры для сауны.
Области применения терморегулятора Ратар-02У:

производство парогенераторов, отопительных и водогрейных котлов, фитобочек;

мелкое производство пива, кисломолочной продукции и т.д.;

фермерские хозяйства (для поддержания уровня и температуры воды);

дачи и частные жилые дома (для создания автоматически работающей системы
горячего водоснабжения, душа и т.д.).
1.4 Обзор аналога проектируемого устройства –
«РАТАР–03.2УВ–Щ1»
Назначение.
Терморегулятор РАТАР–03.2УВ–Щ1 предназначен для измерения и регулирования
температуры, а также других физических параметров.
Область применения.
Измерение и регулирование температуры или другой физической величины по двум
независимым каналам по двухпозиционному закону. Регулирование по одному каналу по
трехпозиционному
закону
(две
уставки,
два
устройства
управления)
Измерение
и
регулирование: по одному каналу – физической величины, по другому каналу – разницы
физических
величин.
Отображение
измеренных
величин
в
необходимых
единицах
(масштабирование) Возможность подключения к двум входам датчиков разных типов.
Отображение
на
алфавитно–цифровом
жидкокристаллическом
дисплее
одновременно:
значений из- меряемых величин и выставленных уставок. Работа в режиме милливольтметра.
Примечание – Датчики температуры в комплект поставки терморегулятора не входят и
поставляются по заявке Заказчика. Терморегулятор имеет два универсальных входа,
рассчитанных для работы со следующими входными сигналами.
Точность задания уставки – 1.0 единиц измеряемой величины.
Время измерения (смены показаний):

1,5…4 с для термопар, сигналов тока и напряжения;
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
11

3,0…12 с для термосопротивлений (настраивается потребителем);

Задержка на включение/выключение

1…100с (настраивается потребителем)
Терморегулятор имеет два выходных устройства. Тип выходного устройства
указывается при заказе прибора.
Максимальный ток нагрузки и количество коммутационных циклов для различных
типов выходных устройств:

электромагнитное реле
– 7 А , 220 В;

симистор
– 1 А , 220 В;

транзистор (открытый коллектор)
– 50 мА , 5 В.
Выходы типов электромагнитное реле и симистор имеют встроенные в прибор RC
цепочки, что позволяет подключать к выходам прибора индуктивные нагрузки.
Диапазон отображения измеренных величин от –9999 до 99999 единиц измеряемой
величины с разрешающей способностью 1.0, для диапазона от минус 99.9 до плюс 999.9 °С.
Разрешающая способность 0.1 единиц измеряемой величины.
Диапазон настройки сдвига зависимости входной величины –500.0…500.0 единиц
измеряемой величины с шагом 0.1.
Диапазон настройки наклона зависимости входной величины (множитель) 0.500…2.000
с шагом 0.001.
Диапазон уставки гистерезиса 0…100 единиц измеряемой величины с шагом 1.
Выбор или автоматическая настройка измерительного тока через термометры
сопротивления из ряда – 0,5; 5,0 мА.
Возможность отключения «холодного спая» для работы с дифференциальными
термопарами.
Время
установления
рабочего
режима,
исчисляемое
с
момента
включения
терморегулятора – не более 3 с.
Терморегулятор
обеспечивает
работоспособность
от
сети
переменного
тока
номинальным напряжением от 180 до 240 В частотой (50±1) Гц.
Потребляемая мощность – не более 4,5 ВА.
Средняя наработка на отказ – не менее 30000 ч (для варианта выходного устройства–
реле при 5 срабатываниях в минуту).
Средний срок службы – 5 лет (для варианта выходного устройства–реле при 4
срабатываниях в минуту).
Габаритные размеры терморегулятора, не более – 96х48х110 мм; 2.18 Масса
терморегулятора – не более 0,50 кг.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
12
Внешний вид терморегулятора приведен на рисунке 2.
Рисунок 2 – Внешний вид регулятора температуры РАТАР–03.2УВ–Щ1
1.5 Вывод по проектируемому устройству
Устройство простое, не требует лишних затрат. Термометр-термостат применяется в
смесителях. Могут быть вмонтированы в водяной смеситель, тем самым поддерживая без
перепадов заданный уровень тепла воды. В качестве дополнения к газовому котлу. Комнатный
термостат
используется
для
автоматической
корректировки
работы
газовых
котлов,
обогревающих помещение. Работа котла проводится только в случае, если зафиксирована
температура воздуха ниже заданной. Если же к котлу не подключать такой аппарат, то он будет
работать в зависимости от тепла воды в нем, что приведет к перегреву или наоборот
охлаждению помещения. Для регулировки системы пола с подогревом. Это механический или
электронный прибор, включающий системы подогрева пола и позволяющий им работать только
до достижения необходимой температуры. Электронное оборудование запрограммировано на
отключение системы подогрева в случае, если полом будет достигнут требуемый уровень
тепла. Такие приспособления бывают накладными, которые можно установить в любом месте, а
бывают встраиваемыми – их необходимо монтировать в стену. Автомобильные термостаты
используются в системе охлаждения двигателей. Они позволяют разогреть двигатель быстрее, а
затем помогают поддерживать необходимый температурный режим без перегрева. Такие
приборы продлевают срок жизни двигателя и уменьшают количество его поломок.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
13
2 Разработка схемы устройства
В
данном
разделе
производится
проектирование
схемы
электрической
принципиальной, электрической структурной и алгоритма работы устройства.
Проектирование проходит в несколько этапов:

Разработка алгоритма работы устройства;

Разработка схемы электрической структурной;

Разработка схемы электрической принципиальной.
2.1 Разработка алгоритма работы устройства
Работу следует начать с инициализации микроконтроллера, объявляются константы,
переменные, выставляются флаги. Производится настройка портов A и B на ввод.
Устанавливается период измерения в 1 секунду, переходим в рабочий режим. Если кнопка SB2
нажата, то производится процедура корректировка таймера, если нет – опрос состояния кнопок
управления. При нажатии кнопки SB1 происходит изменение значения температуры кнопками
SB1 и SB2. Если температура превышает верхний предел, то включается нагрузка охлаждения,
если при достижении нижнего предела, то нагрузку следует отключить, если не достигла,
продолжать понижать температуру. При достижении нижнего предела, следует включить
нагрузку подогрева или нагревателя, достигнув верхнего предела, отключить нагрузку, если не
достигли, продолжать нагревать температуру. Переходим снова в рабочий режим термометратермостата и повторяем снова. Если ничего не предполагается делать – отключить питание.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
14
Рисунок 3 – Алгоритм работы
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
15
2.2 Разработка схемы электрической структурной
Рисунок 4 – Схема электрическая структурная
В основном режиме прибор регулирует температуру в помещении по введенному в
него графику, задаваемому на каждый час каждого дня недели. В любой момент его можно
перевести в режим ТЕРМОСТАТ, и он станет независимо от графика поддерживать
температуру, заданную для этого режима. Этой возможностью удобно пользоваться, например,
чтобы быстро прогреть помещение. На индикатор прибора выводятся значения текущей
(измеренной) и заданной температуры, информация о дне недели и текущем времени.
Температура может быть задана в интервале 5...35 °С. Погрешность ее измерения не превышает
0,5 °С.
2.3 Выбор элементной базы
Микроконтроллер PIC16F84A
PIC16C84 относится к семейству КМОП микроконтроллеров. Отличается тем, что
имеет внутреннее 1K x 14 бит EEPROM для программ, 8-битовые данные и 64байт EEPROM
памяти данных. При этом отличаются низкой стоимостью и высокой производительностью. Все
команды состоят из одного слова (14 бит шириной) и исполняются за один цикл (400 нс при 10
МГц), кроме команд перехода, которые выполняются за два цикла (800 нс). PIC16C84 имеет
прерывание, срабатывающее от четырех источников, и восьмиуровневый аппаратный стек.
Периферия включает в себя 8-битный таймер/счетчик с 8-битным программируемым
предварительным делителем (фактически 16 - битный таймер) и13 линий двунаправленного
ввода/вывода. Высокая нагрузочная способность (25мА макс. втекающий ток, 20 мА макс.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
16
вытекающий ток) линий ввода/вывода упрощают внешние драйверы и, тем самым,
уменьшается общая стоимость системы. Разработки на базе контроллеров PIC16C84
поддерживается ассемблером, программным симулятором, внутрисхемным эмулятором и
программатором.
Серия
PIC16C84
высокоскоростного
экономичных
подходит
управления
удаленных
для
широкого
автомобильными
приемопередатчиков,
и
спектра
приложений
электрическими
показывающих
от
двигателями
приборов
и
схем
до
связных
процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды
передатчика, скорости двигателя, частоты приемника и т.д.).
Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает
эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена,
экономичность, быстродействие, простота использования и гибкость ввода/вывода делает
PIC16C84 привлекательным даже в тех областях, где ранее не применялись микроконтроллеры.
Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Следует добавить, что встроенный автомат программирования EEPROM кристалла
PIC16C84 позволяет легко подстраивать программу и данные под конкретные требования даже
после завершения ассемблирования и тестирования. Эта возможность может быть использована
как для тиражирования, так и для занесения калибровочных данных уже после окончательного
тестирования.
Обзор характеристик

высокоскоростной RISC процессор;

только 35 простых команд;

все команды выполняются за один цикл(1 мкс), кроме команд перехода,

выполняющихся за два цикла;

рабочая частота 0 Гц ... 4 МГц (min 1 мкс цикл команды);

14- битовые команды;

8- битовые данные;

1024 х 14 электрически перепрограммируемой программной

памяти на кристалле (EEPROM);

36 х 8 регистров общего использования;

15 специальных аппаратных регистров SFR;

64 x 8 электрически перепрограммируемой EEPROM памяти для данных;

восьмиуровневый аппаратный стек;

прямая, косвенная и относительная адресация данных и команд;

четыре источника прерывания:
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
17

внешний вход INT,

переполнение таймера TMR0,

прерывание при изменении сигналов на линиях порта B,

по завершению записи данных в память EEPROM.
Периферия и Ввод/Вывод

13 линий ввода-вывода с индивидуальной настройкой;

входной/выходной ток для управления светодиодами.

макс. входной ток - 20 мА. ,

макс. выходной ток - 25 мА.,

TMR0: 8 - битный таймер/счетчик TMR0 с 8-битным программируемым
предварительным делителем.
Специальные свойства

автоматический сброс при включении;

таймер включения при сбросе;

таймер запуска генератора;

WatchDog таймер (WDT) с собственным встроенным

генератором, обеспечивающим повышенную надежность;

EEPROM бит секретности для защиты кода;

экономичный режим SLEEP;

выбираемые пользователем биты для установки режима

возбуждения встроенного генератора:

RC генератор: RC;

обычный кварцевый резонатор: XT;

высокочастотный кварцевый резонатор: HS;

экономичный низкочастотный кристалл: LP;

встроенное устройство программирования EEPROM памяти

программ и данных; используются только две ножки.
КМОП технология

экономичная высокоскоростная КМОП EPROM технология;

статический принцип в архитектуре;

широкий диапазон напряжений питания и температур:

коммерческий: 2.0 ... 6.0. В, 0...+70С,

промышленный: 2.0 ... 6.0 В, -40...+70С,

автомобильный: 2.0 ... 6.0 В, 40...+125С;
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
18

низкое потребление:

2 мА типично для 5В, 4МГц,

15 мкА типично для 2В, 32КГц,

1 мкА типично для SLEEP режима при 2В.
Типы корпусов и исполнений
Обозначения корпусов для кристаллов PIC16F84. Тип корпуса указывается в
маркировке при заказе микросхем. Корпуса бывают только с 18 выводами.
PDIP - Обычный пластмассовый двухрядный корпус
SOIC - Малогабаритный DIP корпус для монтажа на поверхность.
Рисунок 4 – Микроконтроллер PIC16F84A
Семисегментный индикатор BQ-M514RD
Таблица 1 – Технические характеристики 7-сегментного индикатора
Параметр
Напряжение питания
Максимальное напряжение питания
Допустимый ток сегмента
Максимальная тактовая частота
Рабочая температура
Значение
3,3..5 В
6В
0..30 мА
До 30 МГц
-40°С..+85°С
Цвет свечения
Зелёный
Высота символа
14,2 мм
Вес модуля
14 г
Размеры модуля
69x19x11 мм
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
19
Рисунок 5 – 7-сегментный индикатор BQ-M514RD
Термодатчик DS18B20
Основные характеристики DS18B20:

Уникальный интерфейс 1-WIRE;

Нет внешних элементов;

Питание 3,0..5,5V;

Диапазон температур -55°C..+125°C;

Точность ±0.5°C (в диапазоне -10°C..+85°C);

Разрешение 9-12 бит (программируемое);

Корпус TO-92;

Быстродействие 750mS (12 бит).
Рисунок 6 – Термодатчик DS18B20
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
20
Реле HJR-4102-L-05V
Таблица 2 – Технические характеристики реле
Характеристика контактов
Схема
1А, 1С
Материал
Максимальный рабочий ток
Максимальное рабочее напряжение
Ag+Au
AgNi+Au
1А
3А
240В AC/60В DC
Максимальная рабочая мощность
120В A/30Вт
360В A/90Вт
Номинальная нагрузка (резистивная
нагрузка)
1A 120В AC
1A 24В DC
3A 120В AC
3A 30В DC
Сопротивление (при 6В DC 1A)
100 мОм
Характеристика катушки индуктивности
Номинальное напряжение
3-48В DC
Номинальная мощность
200/360/450мВт
Рисунок 6 – Реле HJR-4102-L-05V
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
21
2.4 Разработка
схемы
электрической
принципиальной
Конденсаторы С1 и С2 — керамические, СЗ — оксидный (К50-35). Все резисторы —
МЛТ, некоторые из них расположены под индикатором HG1, где имеется свободное место.
Диод
VD1
установлен
со
стороны
печатных
проводников, его
выводы
припаяны
непосредственно к выводам обмотки реле.
Рисунок 7 – Схема электрическая принципиальная
Интегральный стабилизатор КР142ЕН5А можно заменить КР142ЕН5В или импортным
7805. У примененного автором реле SYS1-S-105L есть полный аналог HJR-4102-L-05V. Если
имеется реле с большим напряжением срабатывания, верхний вывод его обмотки вместе с
подключенным к нему катодом диода VD1 нужно соединить с плюсом источника
соответствующего напряжения в обход стабилизатора DA1. Светодиод КИП-М01 Б-1К можно
заменить любым другим подходящих размеров и цвета свечения, а индикатор BQ-M51DRD CA56-21SRWA. Потребляемый ток, если реле не сработало, не превышает 29, а при
сработавшем реле — 80 мА.
Чтобы
переработать
заставить
программу,
микроконтроллер
прежде
всего,
обслуживать
ее
участок,
новый
индикатор,
отвечающий
за
пришлось
установку
на
соответствующих выводах портов RA и RB высоких и низких уровней напряжения. Новая
программа устанавливает их инверсными относительно прототипа, что и требуется при
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
22
изменившейся полярности подключения светодиодов индикатора. В связи с этим претерпел
изменения и алгоритм определения состояния кнопок SB1 и SB2, причем логика установки
заданного значения температуры этими кнопками осталась прежней.
Следует иметь в виду, что при первом включении термометра в энергонезависимой
памяти микроконтроллера находятся случайные данные, не соответствующие, как правило,
никаким разумным значениям температуры. По этой причине светодиод HL1 может
беспорядочно мигать, а реле К1 — срабатывать. Все приходит в норму после первой же
установки температуры кнопками SB1 и SB2.
В процессе налаживания термометра обнаружено, что он не всегда правильно работает
при отрицательной температуре датчика и при заданном отрицательном значении температуры
стабилизации. Некоторые радиолюбители, с которыми пришлось обсуждать эту проблему,
считали ее несущественной, утверждая, что "мороз стабилизировать не нужно" Тем не менее
недостаток есть недостаток. Чтобы устранить его, пришлось довольно существенно переделать
программу в части правильного считывания с датчика и обработки отрицательных значений
температуры.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
23
Заключение
В данном курсовом проекте разработан термометр-термостат на микроконтроллере,
предназначенный для поддержания заданной температуры воздуха в помещении. Он может
устанавливаться как в квартирах с центральным отоплением, так и в коттеджах с
индивидуальной системой обогрева, а также в любых других помещениях независимо от года
постройки здания. Устройство соответствует техническим характеристикам задания.
Повышение качества и экономичности производства во многом зависит от уровня
автоматизации технологического процесса. Автоматизация развивается в направлении от
автоматизации отдельных операций (пайка, сварка и др.) к широкому использованию
автоматизированных линий.
Особенностью производства ЭВМ является также большая трудоемкость контрольных
операций. На отдельных предприятиях количество контролеров достигает до 30 - 40% от
общего числа рабочих.
Автоматизация технологических процессов и сокращение количества работающих
способствуют
централизации
объектов
обслуживания,
их
укрупнению.
При
полной
автоматизации и дистанционном управлении производством или группой производств
существенно изменяется организация обслуживания.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
24
Список использованных источников
1.
Кузин, А.В. Микропроцессорная техника [Текст]: учебник для студ.
учреждений сред. проф. образования / Кузин А.В., М.А Жаворонков.- Москва: ИЦ
« Академия»,2012.-234с.
2.
Партыка, Т.Л. Периферийные устройства вычислительной техники
[Текст]: учебное пособие / Т.Л. Партыка, И.И.Попов.- Москва: ФОРУМ, 2012.432с
3.
Гребенюк,
Е.И.Технические
средства
информатизации
[Текст]:
учебник для студ. учреждений сред. проф. образования/Е.И. Гребенюк,
Н.А.Гребенюк - Москва: ИЦ « Академия»,2012.-352с.
4.
Мюллер, Скотт. Модернизация и ремонт ПК [Текст]: пер. с англ./
Скотт Мюллер. – Москва: ИД «Вильямс», 2011 -688с.
5.
Александров, Е.К. Микропроцессорные системы [Текст]: Учебное
пособие для вузов / Е.К. Александров, Р.И. Грушвицкий – Санкт-Петербург:
«Политехника», 2012 – 935с.
6.
Баранова, Е. К. Основы информатики и защиты информации [Текст]:
Учебное пособие / Е. К. Баранова. - Москва: ИНФРА-М, 2013. - 183 с.
7.
Калашников, В.И. Электроника и микропроцессорная техника:
учебник.- Москва: Академия, 2012. - 368 с.
8.
Трищенко, К. Термометр-термостат на микроконтроллере [Текст]/К.
Трищенко // Радио – 2006 – №1 – с. 43-45
9.
Регулятор температуры со встроенным таймером [Электронный
ресурс]. – Режим доступа:
http://relsib.com/product/regulyator-temperatury-so-
vstroennym-tajmerom-ratar-02k
10. Регулятор температуры [Электронный ресурс]. – Режим доступа:
http://www.relsib.com/product/regulyator-temperatury-ratar-032uvsch1-dvuhkanalnyjs-universalnymi-vhodami
11. Чип
и
Дип
[Электронный
ресурс].
–
Режим
доступа:
http://www.chipdip.ru/
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
25
Приложение
Программа работы микроконтроллера PIC16F84A:
#include <P16F84.INC>
__config _XT_OSC & _WDT_OFF & _PWRTE_ON
F0
EQU
0
RTIF equ
2
;Переменные и константы,используемые в программе
NumL EQU
0x0C
NumH EQU
0x0D
Thou EQU
0x0E
Hund EQU
0x0F
Tens
EQU
0x10
Ones EQU
0x11
I
EQU
0x13
A
EQU
0x14
BACKUPW
EQU
0x15
BACKUPS
EQU
0x16
RAZR0 EQU
0x17
;Три ячейки, содержат семисегментный код для
вывода на индикатор
RAZR1 EQU 0x18
RAZR2 EQU 0x19
;В переменной FLAGS каждый бит сигнализирует о:
;0 - нажата кнопка вызова таймера
;1 - нажата кнопка установки таймера
;2 - необходимости обновления в экранном буфере оставшегося времени в таймере
;3 - произошло нажатие кнопки вызова таймера, необходимо подать короткий звуковой сигнал
;4 - закончилась выдержка времени таймера, необходимо подать условный звуковой сигнал
;5 - раз в секунду сигнализирует о необходимости считывания показаний DS1820
;6 - необходимости вывода десятичной точки
FLAGS EQU 0x1A
J
EQU
0x1B
K
EQU
0x1C
TIME0 EQU
0x1D
TIME1 EQU
0x1E
PA
EQU 0x1F
T7SEG0 EQU
0x20
T7SEG1 EQU
0x21
T7SEG2 EQU
0x22
T_IND EQU
0x23
TEMP_READH
EQU
0x24
TEMP_READL
EQU
0x25
TL
EQU
0x26
TH
EQU
0x27
TIME2
EQU
0x28
I_BYTE
EQU
0x29
_N
EQU
0x2A
TEMP
EQU
0x2B
O_BYTE
EQU
0x2C
LOOP1
EQU
0x2D
LOOP2
EQU
0x2E
T_ALARM
EQU
0x2F
DT_ALARM
EQU
0x30
CONSTANT
DATA_PIN=7
;****** Начальная инициализация контроллера и программы *******
BSF STATUS, RP0
CLRF TRISA
CLRF
TRISB
GOTO
BEGIN_PROG
;Устанавливаем страницу памяти 1
;Настраиваем все линии порта А и В на вывод
;***** Точка входа в процедуру обработки прерываний от таймера*************
BCF
INTCON, GIE
MOVWF BACKUPW
рабочего регистра
MOVF
STATUS, 0
MOVWF BACKUPS
;Програмные таймеры
INCF
TIME0, 1
MOVF
TIME0, 0
SUBLW .81
BTFSC STATUS, C
GOTO
L22
CLRF
TIME0
INCF
TIME2, 1
;Запрещаем прерывания
;Сохраняем
содержимое
;и регистра STATUS
;122
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
26
L18
MOVF
SUBLW
измерения температуры равным 1 сек.
BTFSC
GOTO
CLRF
BSF
L26
BTFSS
нажатии кнопки
GOTO
BTFSS
GOTO
BCF
BSF
INCF
MOVF
SUBLW
до -55 градусов
BTFSS
GOTO
MOVLW
MOVWF
L22
TIME2, 0
.2
;Устанавливаем
STATUS, C
L26
TIME2
FLAGS, 5
FLAGS, 0
период
;Корректировка таймера возможна только при
;вызова таймера
;Если нажата кнопка установки таймера
L22
FLAGS, 1
L22
FLAGS, 2
FLAGS, 7
T_ALARM, 1
T_ALARM, 0
0x7D
;Если достиг 125 градусов, сбрасываем
STATUS, Z
L22
0xC9
T_ALARM
;Опрос состояния кнопок управления
BCF
PA, 0
BCF
FLAGS, 1
BCF
PA, 1
BCF
PA, 2
BSF
PA, 4
MOVF
PA, 0
MOVWF PORTA
BSF STATUS, RP0
BSF
TRISB, 5
;Флаги, показывающие
;состояние кнопок.
;Выключаем индикаторы
;Устанавливаем страницу памяти 1
;Разряды порта В, подключенные к
кнопкам настраиваем на ввод
BSF
TRISB, 6
BCF STATUS, RP0
BTFSC PORTB, 6
;Устанавливаем страницу памяти 0
;Устанавливаем флаги в зависимости от состояния
кнопок
GOTO
L23
BSF
FLAGS, 0
MOVLW .255
MOVWF T_IND
L23
DECFSZ T_IND
GOTO
L24
BCF
FLAGS, 0
BTFSC FLAGS, 7
CALL
SEEPROM
BCF
FLAGS, 7
L24
BTFSS PORTB, 5
BSF
FLAGS, 1
BSF STATUS, RP0
BCF
TRISB, 5
кнопкам настраиваем на вывод
BCF
TRISB, 6
BCF STATUS, RP0
;Устанавливаем страницу памяти 1
;Разряды порта В, подключенные к
;Устанавливаем страницу памяти 1
;Динамическая индикация содержимого RAZR0, RAZR1, RAZR2
MOVLW .0
SUBWF
BTFSS
GOTO
MOVLW
ANDWF
I, 0
STATUS, Z
L2
B'10000000'
PORTB, 1
MOVF
IORWF
BSF
RAZR0, 0
PORTB, 1
MOVF
MOVWF
GOTO
MOVLW
SUBWF
BTFSS
GOTO
MOVLW
ANDWF
PA, 0
PORTA
L4
.1
I, 0
STATUS, Z
L3
B'10000000'
PORTB, 1
MOVF
RAZR1, 0
;Очищаем
;Отображаем разряд 0
разряды
порта,
подключенные
к
индикатору
PA, 0
;Выводим отображаемую цифру
;Включаем соответствующий
разряд индикатора
L2
;Отображаем разряд 1
;Очищаем
разряды
порта,
подключенные
к
индикатору
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
27
L3
;Выводим отображаемую цифру
IORWF
BSF
BTFSC
BCF
BTFSS
BSF
MOVF
MOVWF
GOTO
MOVLW
ANDWF
PORTB, 1
PA, 4
PA, 0
PORTA
L4
B'10000000'
PORTB, 1
;Очищаем
MOVF
IORWF
BSF
MOVF
MOVWF
INCF
MOVLW
RAZR2, 0
PORTB, 1
;Выводим отображаемую цифру
PA, 1
FLAGS, 6
PA, 4
FLAGS, 6
разряды
порта,
подключенные
к
индикатору
L4
PA, 2
PA, 0
PORTA
I, 1
.3
;Обнулить счетчик разрядов,
если достиг 3
SUBWF I, 0
BTFSC STATUS, Z
CLRF
I
IRET
BCF
;Завершение обработки прерывания от таймера
INTCON, RTIF
;Сброс флага прерывания от таймера
MOVF
BACKUPS, 0
MOVWF STATUS
MOVF
BACKUPW, 0
;Востановление рабочего регистра
BSF
INTCON, GIE
;Разрешение прерываний
RETFIE
;Возврат из обработки прерывания
;****** Продолжение начальной инициализации *****************************
BEGIN_PROG
MOVLW B'01000011'
;Подключаем пределитель к таймеру и устанавливаем
коэффициент
MOVWF OPTION_REG
;деления 1:16, сигнал на таймер от внутреннего генератора
BCF STATUS, RP0
;Устанавливаем страницу памяти 0
CLRF
PORTB
MOVLW B'00000111'
MOVWF PA
MOVF
PA, 0
MOVWF PORTA
CLRF
I
;Инициализируем используемые в программе
CLRF
FLAGS
;переменные
CALL
START_DS
CLRF
TMR0
CLRF
TEMP_READL
CLRF
TEMP_READH
CALL
LEEPROM
MOVLW 0x02
MOVWF DT_ALARM
CLRF
TIME0
CLRF
TIME2
CLRF
TMR0
MOVLW B'10100000'
;Разрешаем прерывание от переполнения таймера
MOVWF INTCON
BCF
FLAGS, 5
BCF
FLAGS, 3
MOVLW B'10111111'
;(три тире при старте)
MOVWF RAZR0
MOVWF RAZR1
MOVWF RAZR2
CALL
START_DS
;Пауза до получения первого достоверного результата измерения температуры
L0
BTFSS FLAGS, 5
GOTO
L0
CALL
START_DS
BCF
FLAGS, 5
L00
BTFSS FLAGS, 5
GOTO
L00
;****** Основной цикл программы ******
L10
CLRWDT
L25
BTFSS FLAGS, 0
GOTO
L12
BTFSC FLAGS, 2
GOTO
L10
BSF
FLAGS, 2
BCF
FLAGS, 6
;Необходимо отображение температуры
;Отключение запятой
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
28
L70
L71
BTFSC
GOTO
MOVF
MOVWF
GOTO
MOVLW
MOVWF
MOVF
SUBWF
CLRF
CALL
MOVF
CALL
MOVWF
MOVF
CALL
MOVWF
MOVF
CALL
MOVWF
BTFSC
BCF
T_ALARM, 7
L70
T_ALARM, 0
NumL
L71
0xFF
NumL
T_ALARM, 0
NumL, 1
NumH
Convert
Ones, 0
DS7SEG
RAZR0
Tens, 0
DS7SEG
RAZR1
Hund, 0
DS7SEG
RAZR2
T_ALARM, 7
RAZR2, 6
;Вычисление целой части
;Температура ниже нуля
;Включение знака минус при отрицательной температуре
GOTO
L10
BCF
FLAGS, 2
;Отображение температуры
BTFSC FLAGS, 3
CALL
CONV_T
BCF
FLAGS, 3
BTFSS FLAGS, 5
GOTO
L10
;Передается управление каждую секунду
BCF
FLAGS, 5
BSF
FLAGS, 3
CALL
READ_T
CALL
START_DS
ANDLW 0xFF
BTFSS STATUS, Z
GOTO
L10
MOVLW B'00000001'
MOVWF RAZR0
MOVWF RAZR1
MOVWF RAZR2
BCF
FLAGS, 3
GOTO
L10
;Возвращаемся на начало цикла
;****************************************************************************
L12
;Процедура преобразования десятичной цифры из WREG в код 7-ми сегментного индикатора
DS7SEG
ADDWF PCL, 1
RETLW
B'01000000'
;0
RETLW
B'01111001'
;1
RETLW
B'00100100'
;2
RETLW
B'00110000'
;3
RETLW
B'00011001'
;4
RETLW
B'00010010'
;5
RETLW
B'00000010'
;6
RETLW
B'01111000'
;7
RETLW
B'00000000'
;8
RETLW
B'00010000'
;9
RETLW
B'01111111'
;Пробел
RETLW
B'00111111'
;Минус
;*****************************************************************************
;Процедура перевода числа формата HEX16 (переменые NumL, NumH) в формат BSD
;(переменные Thou, Hund, Tens, Ones)
Convert swapf NumH,w
IORLW
B'11110000'
movwf Thou
addwf Thou, 1
addlw 0xE2
movwf Hund
addlw 0x32
movwf Ones
movf NumH, 0
andlw 0x0F
addwf Hund, 1
addwf Hund, 1
addwf Ones, 1
addlw 0xE9
movwf Tens
addwf Tens, 1
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
29
addwf Tens, 1
swapf NumL, 0
andlw 0x0F
addwf Tens, 1
addwf Ones, 1
rlf Tens, 1
rlf Ones, 1
comf Ones, 1
rlf Ones, 1
movf NumL, 0
andlw 0x0F
addwf Ones, 1
rlf Thou, 1
movlw 0x0A
Lb1:
addwf Ones, 1
decf Tens, 1
btfss 3, 0
goto Lb1
Lb2:
addwf Tens, 1
decf Hund, 1
btfss 3, 0
goto Lb2
Lb3:
addwf Hund, 1
decf Thou, 1
btfss 3, 0
goto Lb3
Lb4:
addwf Thou, 1
btfss 3, 0
goto Lb4
MOVLW
MOVWF
MOVLW
MOVWF
L54
MOVF
ANDLW
BTFSS
RETURN
MOVLW
MOVWF
INCF
DECFSZ
GOTO
RETURN
;Удаление незначащих нулей
Thou
FSR
3
I
F0, 0
0x0F
STATUS, Z
;Разряд не равен 0
0x0A
F0
FSR
I
L54
;Процедура вычисления температуры с точностью до 0.1 по данным полученным от DS18В20
;Входные параметры: TEMP_READH, TEMP_READL,результат помещается в экранный буфер
CONV_T
MOVF
TEMP_READL, 0
MOVWF NumL
MOVF
TEMP_READH, 0
MOVWF NumH
BTFSC TEMP_READH, 7
;Вычисление целой части
GOTO
L30
;Температура ниже нуля
MOVLW .4
;Выделяем целую часть значения температуры делением на
.16d
L61
L30
MOVWF
BCF
RRF
RRF
DECFSZ
GOTO
MOVF
MOVWF
MOVF
ANDLW
GOTO
MOVLW
A
MOVWF
BCF
RRF
RRF
DECFSZ
GOTO
MOVLW
MOVWF
MOVF
SUBWF
movlw
movwf
MOVF
A
STATUS, C
NumH, 1
NumL, 1
A, 1
L61
NumL, 0
TH
TEMP_READL, 0
B'00001111'
L50
.4
;Вычисляем десятичную часть
;Выделяем целую часть значения температуры делением на
.16d
L62
STATUS, C
NumH, 1
NumL, 1
A, 1
L62
0xFF
TH
NumL, 0
TH, 1
0xFF
NumH
TEMP_READL, 0
;Вычисляем десятичную часть
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
30
ANDLW
SUBWF
ANDLW
MOVWF
CLRF
MOVLW
MOVWF
MOVF
ADDWF
DECFSZ
GOTO
MOVF
MOVWF
CLRF
CALL
MOVLW
SUBWF
BTFSC
CLRF
MOVLW
SUBWF
BTFSC
INCF
MOVF
MOVWF
L50
L63
B'00001111'
NumH, 0
B'00001111'
NumL
NumH
.6
A
NumL, 0
NumH, 1
A, 1
L63
NumH, 0
NumL
NumH
Convert
0x0A
Tens, 0
STATUS, Z
Tens
.5
Ones, 0
STATUS, C
Tens, 1
Tens, 0
TL
;Округление
;Сравнение температур
BTFSC
T_ALARM, 7
; Проверяем уставку
GOTO
L72
;Уставка ниже нуля, значит переход
MOVF
T_ALARM, 0
;Уставка выше нуля
MOVWF
NumL
;Прибавим к NumL значение уставки и
MOVLW
.54
;добавим 54, чобы не мучиться при сравнении
ADDWF
NumL, 1
;положительной температуры и отрицательной уставки (или наоборот)
GOTO
L73
;Переход
L72 MOVLW
0xFF
;Появляемся здесь при условии отрицательной уставки
MOVWF
NumL
MOVF
T_ALARM, 0
SUBWF
NumL, 1
L73 BTFSC
TEMP_READH, 7 ; Проверяем считанный код с датчика температуры
GOTO
L74
;Температура ниже нуля
MOVF
TH, 0
;Температура выше нуля и опять добавим 54,но
MOVWF
NumH
;не к считанным с датчика данным,
MOVLW
.54
;а к целой части вычисленной температуры
ADDWF
NumH, 1
GOTO
L76
;Переход
L74 MOVF
TH ,0
;Появляемся здесь при условии отрицательной температуры
MOVWF
NumH
BTFSC PA, 3
;Проверим, включен ли нагреватель!
CALL
L2E
;включен, значит сходим, добавим гистерезис и вернемся
MOVF
NumH, 0
;Нет не включен значит сравниваем,
DECF
NumL, 1
SUBWF
NumL, 0
; вычитая из уставки температуру
BTFSC
STATUS, C
GOTO
L2A
;Переход
L2B BSF
PA, 3
;если измеренная температура ниже- включение нагревателя
MOVF
PA, 0
MOVWF
PORTA
GOTO
L31
;Выход из подпрограммы
L2A
BTFSC
T_ALARM, 7
; Проверяем еще раз уставку, на случай положительной температуры,
но
GOTO
GOTO
L2C BCF
L76
BTFSC
L2D MOVF
L2C
L2B
PA, 3
; отрицательной уставки, чтобы не было проблем при переходе через 0
; соответственно отключаем или включаем нагреватель
;если измеренная температура выше- выключение нагревателя
MOVF
MOVWF
GOTO
PA, 3
CALL
MOVF
DECF
SUBWF
BTFSC
GOTO
BCF
MOVF
MOVWF
GOTO
PA, 0
PORTA
L31
;Выход из подпрограммы
;Появляемся здесь при условии положительной температуры
L2D
;Проверим, включен ли нагреватель? Да , сбегаем и добавим;гистерезис
NumH, 0
;Нет не включен, значит сравниваем,
NumL, 1
NumL, 0
STATUS, C
; вычитая из уставки температуру
L88
PA, 3
PA, 0
PORTA
L31
DT_ALARM, 0
;Добавим 2 град. гистерезиса, чтобы выключить нагреватель
ADDWF
NumL, 1
;на 2 град.выше
RETURN
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
31
L2E
MOVF
SUBWF
RETURN
L88
BSF
DT_ALARM, 0
;Вычтем 2 град. гистерезиса, чтобы выключить нагреватель
NumL, 1
;на 2 град.выше, при отрицательной температуре.
PA, 3
MOVF
MOVWF
L31
PA, 0
PORTA
;Запись полученного значения температуры в экранный буфер
BTFSS TEMP_READH, 7
GOTO
L36
MOVF
TH, 0
SUBLW .19
BTFSC STATUS, C
GOTO
L36
;Температура выше нуля
;Температура выше минус 19
градусов
;при температуре меньше -19.9
MOVF
TH, 0
;Занесение
MOVWF
CLRF
CALL
MOVF
CALL
MOVWF
MOVF
CALL
MOVWF
MOVLW
CALL
MOVWF
BCF
RAZR2, 6
;Включение
FLAGS, 6
;Отключить вывод десятичной точки
значения
температуры
в
экранный буфер
NumL
NumH
Convert
Ones, 0
DS7SEG
RAZR0
Tens, 0
DS7SEG
RAZR1
0x0A
DS7SEG
RAZR2
знака
минус
при
отрицательной температуре
L36
BCF
RETURN
MOVF
SUBLW
BTFSC
GOTO
TH, 0
.99
STATUS, C
L37
MOVF
TH, 0
;Температура выше плюс 99
градусов
;Занесение
значения
температуры
в
экранный буфер
L37
экранный буфер
MOVWF NumL
CLRF
NumH
CALL
Convert
MOVF
Ones, 0
CALL
DS7SEG
MOVWF RAZR0
MOVF
Tens, 0
CALL
DS7SEG
MOVWF RAZR1
MOVF
Hund, 0
CALL
DS7SEG
MOVWF RAZR2
BCF
FLAGS, 6
RETURN
;при температуре от -19.9 до 99.9
MOVF
TL, 0
MOVWF
CLRF
CALL
MOVF
CALL
MOVWF
MOVF
NumL
NumH
Convert
Ones, 0
DS7SEG
RAZR0
TH, 0
MOVWF
CLRF
CALL
MOVF
CALL
MOVWF
MOVF
CALL
MOVWF
BTFSC
NumL
NumH
Convert
Ones, 0
DS7SEG
RAZR1
Tens, 0
DS7SEG
RAZR2
TEMP_READH, 7
;Отключить вывод десятичной точки
;Занесение
значения
температуры
в
;Занесение
значения
температуры
в
экранный буфер
;Включение
знака
минус
при
отрицательной
температуре
BCF
BSF
RETURN
RAZR2, 6
FLAGS, 6
;Включить вывод десятичной точки
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
32
;Процедура считывает данные об измеренной температуре из DS18В20
READ_T
CALL
INIT
MOVLW 0xCC
MOVWF O_BYTE
CALL
OUT_BYTE
MOVLW 0xBE
MOVWF O_BYTE
CALL
OUT_BYTE
;Прием данных
CALL
IN_BYTE
MOVWF TEMP_READL
CALL
IN_BYTE
MOVWF TEMP_READH
CALL
IN_BYTE
CALL
IN_BYTE
CALL
IN_BYTE
CALL
IN_BYTE
CALL
IN_BYTE
CALL
IN_BYTE
CALL
IN_BYTE
;Подсчет и сравнение контрольной суммы пропущено
RETLW 0xFF
;Skip ROM
;Read Scratchpad
;0
;1
;2
;3
;4
;5
;6
;7
;8
;Процедура выдает команду на старт измерения температуры для датчика DS18В20
START_DS
CALL
INIT
MOVLW 0xCC
MOVWF O_BYTE
CALL
OUT_BYTE
MOVLW 0x44
MOVWF O_BYTE
CALL
OUT_BYTE
RETLW 0xFF
; The following are common 1-Wire routines used in all applications
INIT: CALL
PIN_HI
CALL
PIN_LO
MOVLW .50
; 500 us delay
CALL
DELAY_10USEC
CALL
PIN_HI
MOVLW
.50
CALL
DELAY_10USEC
RETURN
IN_BYTE:
CLRF
IN_BYTE_1:
;Skip ROM
;Convert T
; 500 usec delay
; returns byte in W
MOVLW .8
MOVWF _N
I_BYTE
CALL PIN_LO
; momentary low on DATA_PIN
NOP
CALL PIN_HI
NOP
NOP
NOP
NOP
NOP
NOP
MOVF
RRF
CALL
DECFSZ
GOTO
MOVF
RETURN
PORTB, W
MOVWF TEMP
BTFSS TEMP, DATA_PIN
BCF STATUS, C
BTFSC TEMP, DATA_PIN
BSF STATUS, C
I_BYTE, F
MOVLW .6
DELAY_10USEC
_N, F
IN_BYTE_1
I_BYTE, 0
; 7 usecs later, fetch from DATA_PIN
; its a zero
; its a one
; now delay 60 usecs
; return the result in W
OUT_BYTE:
MOVWF
OUT_BYTE_1:
BTFSS
MOVLW .8
_N
RRF
STATUS, C
GOTO
OUT_0
O_BYTE, F
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
33
GOTO
OUT_1
OUT_BYTE_2:
DECFSZ _N, F
OUT_BYTE_1
GOTO
RETURN
OUT_0: CALL
PIN_LO
MOVLW .6
CALL
DELAY_10USEC
PIN_HI
OUT_BYTE_2
PIN_LO
PIN_HI
.6
CALL
DELAY_10USEC
OUT_BYTE_2
CALL
GOTO
OUT_1: CALL
CALL
MOVLW
GOTO
PIN_HI: BCF
BSF
BSF
BCF
BSF
RETURN
PIN_LO:
BCF
BCF
BSF
BCF
BCF
BSF
RETURN
; bring DATA_PIN low
; for 60 usecs
; momentary low
INTCON, GIE
STATUS, RP0
TRISB, DATA_PIN
STATUS, RP0
INTCON, GIE
; high impedance
INTCON, GIE
PORTB, DATA_PIN
STATUS, RP0
TRISB, DATA_PIN
; low impedance zero
STATUS, RP0
INTCON, GIE
DELAY_LONG
DELAY_N_MS:
OUTTER
MOVLW .250
MOVWF LOOP1
; 250 msec delay
MOVLW .110
MOVWF LOOP2
; close to 1.0 msec delay when set to .110
INNER NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ
GOTO
DECFSZ
GOTO
RETURN
LOOP2, F
INNER
LOOP1, F
OUTTER
; decrement and leave result in LOOP2
; skip next statement if zero
DELAY_10USEC:
; provides a delay equal to W * 10 usecs
MOVWF LOOP1
DELAY_100USEC_1:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ LOOP1, F
GOTO
DELAY_100USEC_1
RETURN
;*****************************************************************************
;Процедура сохраняет значение переменной T_ALARM
;в энергонезависимой памяти данных
SEEPROM
MOVLW .50
MOVWF EEADR
MOVF
T_ALARM, 0
CALL
L21
RETURN
L21
MOVWF EEDATA
;Подпрограмма записи EEROM
BCF
INTCON, GIE
;Запрещение всех прерываний
BSF STATUS, RP0
;Устанавливаем страницу памяти 1
BSF
EECON1, WREN
;Разрешаем запись в EEROM
MOVLW 0x55
;Даем набор команд для записи
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF
EECON1, WR
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
34
L20
NOP
BTFSC EECON1, WR
GOTO
L20
BCF
EECON1, WREN
BCF STATUS, RP0
BSF
INTCON, GIE
INCF
EEADR, 1
RETURN
;Ожидаем завершения записи
;Запрещаем запись в EEROM
;Устанавливаем страницу памяти 0
;Разрешение всех прерываний
;Процедура загружает значение переменной T_ALARM
;из энергонезависимой памяти данных
LEEPROM
MOVLW .50
MOVWF EEADR
CALL
RROM
MOVWF T_ALARM
RETURN
;Подпрограмма считывания данных из EEROM
RROM BSF STATUS, RP0
;Устанавливаем страницу памяти 1
BSF
EECON1, RD
;Команда на чтение EEROM
BCF STATUS, RP0
;Устанавливаем страницу памяти 0
INCF
EEADR, 1
MOVF
EEDATA, 0
RETURN
END
;Конец программы.
Лист
Изм Лист № докум.
Подпись Дата
ППЭТ КП 230113 10 000 ПЗ
35
Документ
Категория
Рефераты
Просмотров
84
Размер файла
437 Кб
Теги
уикпо
1/--страниц
Пожаловаться на содержимое документа