Контроль температуры и поддержание заданного режима в жилой комнате с помощью PIC 18F8620

Регулятор температуры MPT-1 как двухпозиционное устройство, исследование его основных технических характеристик, структурная схема и взаимосвязь элементов. Принцип и проектирование алгоритма действия данного устройства, сферы практического применения.

Рубрика Физика и энергетика
Вид лабораторная работа
Язык русский
Дата добавления 20.12.2012
Размер файла 825,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Лабораторная работа

«Контроль температуры и поддержание заданного режима в жилой комнате с помощью PIC 18F8620»

Цель работы

Назначение разработки - проектирование регулятора температуры, реализация алгоритма и написание кода программы. Целью разработки является изучение работы микропроцессорных систем.

Постановка задачи

Регулятор температуры MPT-1 представляет собой двухпозиционное устройство со следующими техническими характеристиками:

Интервал регулируемых температур…………………….. - 50… +500°С

Интервал индицируемых значений температур……….. - 60…+510°С

Интервал задания зоны возврата………………………….. - 25…+25°С

Основная приведенная погрешность измерений, не более………..+0,5%

Напряжение питания…………………………………..187…242 В (50 Гц)

Потребляемая мощность, не более………………………………..3 В·А

Рабочий интервал температур………………………………0…+50°С

Линия связи прибора с контролируемым объектом - двух- или трехпроводная экранированная с сопротивлением каждой из жил в первом случае - не более 0,1, во втором - 5 Ом, длина двухпроводной линии связи - до 2, трехпроводной - до 300 м. Из других характеристик можно отметить применение цифровой линеаризации характеристики платинового датчика температуры и энергонезависимую память установленных значений контролируемых параметров.

Следует учесть, что процесс регулирования температуры является сложным с точки зрения термодинамики и теплотехники. Это накладывает ограничения на область применения двухпозиционных регуляторов, поэтому при выборе данного регулятора необходимо оценить его пригодность для регулирования температуры объекта.

Рис. 1

Структурная схема прибора изображена на рис. 1. Он состоит из датчика температуры t°/R, установленного на контролируемом объекте, преобразователя R/U, логического, управляющего и сигнального устройств, узла индикации и клавиатуры, источника питания и образцового напряжения. Логическое устройство производит аналого-цифровое преобразование напряжения, поступающего от преобразователя R/U, и с помощью логических операций по специальному алгоритму формирует сигналы для управляющего и сигнального устройств, а также для узла индикации и клавиатуры.

Рис. 2

Основа регулятора (рис. 2) - PIC-контроллер DD1, осуществляющий весь процесс управления, формирования интерфейса, аналого-цифрового преобразования и выполнения математических операций. Тактовую частоту задает керамический резонатор ZQ1.

Преобразователь R/U выполнен на микросхеме DA1. Он состоит из генератора стабильного тока (ГСТ) на ОУ DA1.1, компенсатора линии связи (КЛС) на ОУ DA1.2, масштабного усилителя сигнала (МУС) на DA1.3 и формирователя виртуальной «земли» (ФВЗ) на DA1.4.

ГСТ создает измерительный ток, протекающий через датчик ВК1 и вызывающий падение напряжения, пропорциональное его сопротивлению. Значение измерительного тока выбирают из следующих соображений. Поскольку преобразователь R/U в целом представляет собой усилитель постоянного тока (УПТ), то, естественно, для того чтобы снизить влияние дрейфа напряжения смещения ОУ на результат измерения, ток необходимо выбирать как можно больший. Однако этот ток, в свою очередь, ограничен типом чувствительного элемента и нагрузочной способностью ОУ. При использовании проволочных термопреобразователей сопротивления он может достигать 10 мА, а если применен термопреобразователь, полученный методом напыления (как в нашем случае), он, как правило, ограничен значением 3 мА. Таким образом, если задаться током, не превышающим 3 мА, прибор можно использовать с термопреобразователем любого типа. За основу ГСТ выбрано устройство, представляющее собой УПТ с положительной (ПОС) и отрицательной (ООС) обратными связями.

Падение напряжения, созданное на датчике током ГСТ, поступает на КЛС (DA1.2). Он представляет собой инвертирующий усилитель с коэффициентом усиления -1. При длине линии связи, стремящейся к 0 (идеальный случай), напряжение на выходе ОУ DA1.2 стремится к значению падения напряжения на датчике в контрольной точке КТ1. По мере увеличения сопротивления линии связи напряжение в точке КТ2 уменьшается, компенсируя линию. Следует иметь в виду, что провода линии связи должны быть одинакового сечения и из одного материала. Обязательно должны быть одинаковыми сопротивления резисторов R7 и R8. Значение сопротивления резистора R9 получают делением на 2 сопротивления резистора R7 или R8.

Резистор R10 выполняет функцию элемента, «подтягивающего» к 0 неинвертирующий вход DA1.2 при обрыве линии связи. Его сопротивление должно быть в 1000 раз больше сопротивления датчика при максимальной измеряемой температуре.

Напряжение с выхода КЛС поступает на МУС (DA1.3). Он выполнен по классической схеме неинвертирующего усилителя и усиливает сигнал до уровня, необходимого для нормальной работы АЦП, встроенного в PIC-контроллер DD1. Резистор R18 необходим для исключения перегрузки входа АЦП при переходе ОУ DA1.3 в режим насыщения, когда напряжение на его выходе Uктз = Uпит - 1,5 В. Более подробную информацию об ОУ LMі24AN можно получить на сайте www.national.com.

ФВЗ (DA1.4) служит для смещения масштабного усилителя. Предварительно выбирают поступающее на вход АЦП напряжение «°С», которое должно быть согласовано с программным обеспечением.

Аппаратный интерфейс пользователя состоит из кнопок SB1-SB3 и светодиодных цифровых индикаторов HG1-HG3. Для сокращения числа линий и упрощения конструкции применена динамическая индикация, осуществляемая программным путем. Опрос состояния кнопок ведется внутри цикла индикации путем подключения «подтягивающих» резисторов, входящих в состав DD1, по линиям кнопок. Замкнутая кнопка формирует на линии лог. 0. Этот уровень поступает в логическое устройство, где происходит подавление дребезга контактов и формирование команды. Длительность оценки состояния кнопки не превышает нескольких микросекунд, поэтому на качество индикации не влияет. Для правильного распознавания состояния кнопки необходимо, чтобы падение напряжения на ней, соединенном с ней диоде и резисторе R23 не превышало уровня лог. 0 для микроконтроллера.

Коммутация катодов индикаторов HG1-HG3 и реле К1 осуществляется транзисторами VT1-VT4.

Для подачи сигнала при выходе из строя датчика температуры применен активный пьезоэлектрический излучатель НРМ14АХ (НА1). Кроме излучателя, он содержит усилитель и генератор сигнала с нормированной частотой. Такой излучатель не перегружает порт микроконтроллера и издает достаточно громкий звук (звуковое давление на расстоянии 1 м - более 80 дБ, чего вполне достаточно для помещений с низким уровнем шума).

Источник питания, включающий в себя трансформатор Т1, выпрямительный мост VD1, микросхемные стабилизаторы DA3, DA4 и фильтрующие конденсаторы С8-С12, каких-либо особенностей не имеет. Прецизионный термокомпенсированный стабилизатор DA2 (LM4040CIZ-4.1) формирует образцовое напряжение 4,096 В, которое поступает на вывод ВАЗ микроконтроллера DD1, на ГСТ (DA1.1) и на ФВЗ (DA1.4). Подробное описание стабилизатора LM4040CIZ-4.1 можно найти в Интернете на сайте, указанном выше.

Следует отметить, что напряжение, полученное на выходе преобразователя R/U, еще не пригодно для формирования управляющих сигналов и индикации температуры. Оно требует дополнительных цифровых преобразований, а именно: цифровой настройки нуля, цифровой дополнительной настройки коэффициента усиления, цифровой линеаризации термопреобразователя сопротивления. Все эти настройки выполняются программным способом.

Рис. 3

Как видно из рис. 3, общий алгоритм делится на два сегмента: первый - до появления первого прерывания, второй - циклический по прерываниям. В первом производится инициализация системы, настраиваются порты, прерывания, приводится в исходное состояние исполнительное устройство. Кроме того, в первые 4 с после включения прибора на индикаторы выводится символика производителя, а исполнительное устройство находится в выключенном состоянии.

Во втором сегменте, когда появляется прерывание, начинается циклический процесс работы прибора. Цикл прерывания привязан к индикации и имеет период 6,66 мс, что обусловлено эргономическими требованиями к динамической индикации. Размещение подпрограмм в теле прерывания позволяет простыми способами следить за счетчиками, привязанными ко времени. Кроме того, измерение следует с таким же периодом и позволяет приблизительно на 75% подавить первую гармонику сетевого напряжения помехи.

Температура, при которой выключается исполнительный элемент (реле К1), определяется из выражения Твыкл = SP, а при которой включается (сопровождается зажиганием децимальной точки в разряде сотен) - из выражения Твкл = SP + HYS (значения SP и HYS берутся из табл. 1 с учетом знака). Например, если в режиме «Нагреватель» SP = +300°С, HYS = -5°С, то температура выключения Твыкл, = +300°С, а включения Tвкл =+300+(-5)=295°С. Аналогично в режиме охладителя: если, например, SP = -40°С, HYS = +5°С, то Твыкл = -40°С, а Твкл = -40 + 5 = -35°С.

Таблица 1

Зона возврата (HYS) несимметрична относительно точки установки (SP) в сторону уменьшения абсолютного значения регулируемой температуры.

Рассмотрим порядок программирования параметров, контролируемых прибором. Для примера приведена последовательность операций по установке параметров на уровнях оператора и наладчика.

Программирование прибора на уровне оператора начинают с кратковременного нажатия кнопки SB1 («Set»). При этом на индикаторы HG1 - HG3 выводится сообщение «SP», а сами они начинают мигать с частотой около 2…4 Гц. Устанавливаемый параметр выбирают кратковременными нажатиями кнопок SB2 («?») или SB3 («?») до появления на индикаторах его имени. Для входа в параметр используют кнопку SB1, а изменяют его значение с помощью тех же кнопок SB2 или SB3. Чтобы вернуться в список параметров, повторно нажимают кнопку SB1. В завершение настройки ее нажимают дважды, после чего введенное значение переписывается в энергонезависимую память, мигание индикации прекращается и раздается кратковременный звуковой сигнал, свидетельствующий об удачном выполнении операции.

Программирование прибора на уровне наладчика также начинают с нажатия кнопки SB 1, но удерживают ее в таком состоянии не менее 4 с. По истечении этого времени на индикаторы выводится мигающее (с частотой 2…4 Гц) сообщение «PAS». Далее кратковременно нажимают кнопку SB1, устанавливают кнопкой SB3 код пароля (15), повторно нажимают SB1 и входят в список параметров. Нужный параметр выбирают кнопками SB2 и SB3, для входа в параметр используют SB1, а изменяют его значение с помощью SB2 или SB3 (чтобы вернуться в список параметров, повторно нажимают SB1). Установив параметр, дважды нажимают кнопку SB1. В результате введенное значение переписывается в энергонезависимую память, мигание индикаторов прекращается и раздается звуковой сигнал. При неверном пароле прибор переходит в режим регулирования температуры с ранее установленными параметрами.

Конструктивно прибор выполнен в виде двух блоков: контроллера и датчика. В свою очередь, контроллер состоит из двух субмодулей, которые при сборке соединяют короткими проводами и размещают в пластмассовом корпусе размерами 48x96x96 мм. Индикаторы HG1-HG3 установлены на лицевой панели децимальными точками вверх (они одновременно играют роль индикаторов состояния системы). Децимальная точка в разряде сотен индицирует состояние исполнительного элемента (реле К1), в разряде единиц - состояние настройки измерения.

В приборе использованы конденсаторы К10-17Б (С1-С9, С12, С13) и К50-35 (остальные). Постоянные резисторы R1-R8 - С2-14 группы (по ТКС) Б с допускаемым отклонением от номинального сопротивления (далее - допуском) ±0,1%; R11-R13, R15, R16 - того же типа и той же группы по ТКС, но с допуском ±0,5%; R9, R10 - С2-23 с допуском ±1%, все остальные (в том числе и R1-R8 в узле индикации) - С2-23 с допуском ±5%. Вместо С2-14 допустимо применение резисторов С2-29В. Датчик сопротивления ВК1 - платиновый M-FK 1020, R100 с температурным коэффициентом Tk=3850 ppm/°C. Возможна его замена на M-FK 1020, R 1000 с таким же Tk или другой с аналогичными параметрами, однако это потребует снижения тока ГСТ до 0,225мА.

Трансформатор Т1 - ТПК-2220В/12В, резонатор ZQ1 - керамический ZTT-8 (кроме собственно резонатора в его корпусе размещены два конденсатора емкостью 22…33 пф). Можно использовать и обычный кварцевый резонатор на частоту 8 МГц, подключив его к микроконтроллеру, как показано в нижней части рис. 1. Там же приведен вариант замены активного звукоизлучателя НРМ14АХ (НА1) узлом, выполненным на трех элементах микросхемы КР1533ЛАЗ и пьезоизлучателе ЗП-18 (нумерация деталей на этих фрагментах продолжает начатую на схеме прибора).

Реле К1 - TRV-12VDC-SC-AL. Допустимо применение другого реле с напряжением и током срабатывания соответственно не более 10 В и 30 мА. Его контакты должны быть рассчитаны на коммутацию тока нагрузки. Вместо выпрямительного моста W01M (VD1) можно использовать КЦ407А, вместо дросселя ЕС24-121К (L1) - ДПМ 0,1-120 (индуктивностью 120 мкГн). Светодиодные индикаторы SC56-11EWA (HG1 - HG3) заменимы отечественными КИПЦ38Б-1/8К (с общим катодом). Кнопки SB1-SB3 - любые малогабаритные без фиксации контактов в нажатом положении. Разъемы Х1-ХЗ - наборные из клеммных колодок ED500-2 или ED500-3.

Перед налаживанием необходимо запрограммировать PIC-контроллер (можно использовать программатор любого типа, поддерживающий данные контроллеры) и установить его в прибор.

При налаживании потребуются цифровой мультиметр (например, DT93A), магазин сопротивлений Р4831 и осциллограф С1-112А. Допустимо применение других приборов с аналогичными метрологическими и техническими характеристиками. Нормативная документация - ГОСТ 6651-94, при отсутствии его можно воспользоваться табл. 2. При налаживании необходимо соблюдать правила техники безопасности и принять меры по защите микросхем от статического электричества.

Таблица 2

Налаживают прибор в такой последовательности. Подключив к выходу в качестве нагрузки две лампы накаливания (220 В, 25 Вт), а ко входу - магазин сопротивлений, устанавливают на последнем сопротивление, равное 100 Ом, и включают питание. Убедившись, что децимальные точки индикаторов светятся и прозвучал звуковой сигнал (если этого нет, прибор необходимо быстро выключить и выяснить причину неисправности), измеряют напряжения в контрольных точках, которые не должны отличаться от указанных на схеме более чем на ±5%.

Далее настраивают прибор в режиме измерения температуры. Для этого одновременно нажимают все три кнопки SB1-SB3 и удерживают их в этом состоянии до появления на индикаторах надписи PAS и загорания децимальной точки в разряде единиц градусов. Затем устанавливают значение пароля, равное 30 (порядок действий такой же, как и описанный выше для режима «Наладчик»), после чего входят в систему параметров для настройки режима измерения.

В этом режиме доступны два параметра: «0_» (настройка нуля) и «_S»

(настройка шкалы). (Учтите, что на индикатор выводится не значение параметра, как в режимах «Оператор» и «Наладчик», а измеренное значение температуры). Изменяя параметры «0_» и «_S», методом последовательного приближения добиваются показаний индикатора 0°С. Не выходя из режима настройки измерения, устанавливают на магазине сопротивление, соответствующее 500°С (см. табл. 2), затем, изменяя параметр «_S», добиваются показания 500°С. После этого проверяют результат для 0°С, корректируют параметр «0_», повторно проверяют точность измерения в точке 500°С и корректируют параметр «_S». В последнюю очередь производят измерения по точкам во всем интервале температур (изменением сопротивления магазина в соответствии с табл. 2) и, убедившись в том, что приведенная погрешность измерения не превышает ±0,5%, выходят из режима настройки измерения. В завершение контролируют исправность командных цепей - меняя значения регулируемой температуры SP и HYS, проверяют работу реле К1.

регулятор алгоритм температура двухпозиционный

Код программы

;************************************************

; Данная программа предназначена для управления температурой

;************************************************

#include <P18F8620.inc> ; контроллер

org 0x00;

;************************************************

; описание пользовательских регистров

;************************************************

temperatura equ 0x20 ; температура

temp_stek equ 0x25 ; температура предыдущего измерения

reg_1 equ 0x2A ; регистр reg_1

reg_2 equ 0x2B ; регистр reg_2

reg_3 equ 0x2C ; регистр reg_3

reg_4 equ 0x2D ; регистр reg_4

reg_5 equ 0x2E ; регистр reg_5

bool equ 0x2F ; дополнительный регистр

delay equ 0x30 ; задержка для A/D модуля

indikator_1 equ 0x31 ; индикатор младшего значения

indikator_2 equ 0x32 ; индикатор старшего значения

my_reg equ 0x33 ; дополнительный регистр

goto MAIN; начало программы

;************************************************

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

;************************************************

; подпрограмма выполняющая A/D преобразование сигнала

AD_PROC

bsf STATUS, RP0 ; в банк 1

clrf ADCON1 ; настройка ADCON1 все входы А

bsf PIE1, ADIE ; разрешить AD прерывание

movlw 0xff ; инициализация PORTA-А

movwf TRISA ; все контакты на ввод

bcf STATUS, RP0 ; в банк 0

movlw b'11000001' ; инициализируем ADCON0 от RC

movwf ADCON0 ; модуль AD включён

bcf PIR1, ADIF ; сбросить флаг прерывания AD

bsf INTCON, GIE ; разрешить общее прерывание

l1 nop

decfsz delay ; ожидаем время для

goto l1 ; выборки AD

bsf ADCON0, GO ; запускаем AD преобразование

l2 btfsc ADCON0, GO ; если не конец AD преобразованию

goto l2 ; то продолжить его

movf ADRESL, w ; иначе выйти из цикла

return

; подпрограмма задержки (24 мс)

DELAY_M

movlw 0xff; инициализация регистра reg_3

movwf reg_3; через аккумулятор

l10 decf reg_3; вычитание 1 из reg_3

btfss STATUS, 2; проверка нулевого результата

goto l10

return

; подпрограмма задержки (102с)

DELAY_S

movlw 0xff; инициализация регистра reg_4

movwf reg_4; через аккумулятор

l11 call DELAY_M; вызов процедуры DELAY_M

decf reg_4; вычитание 1 из reg_4

btfss STATUS, 2; проверка нулевого результата

goto l11

return

; подпрограмма задержки перед следующим сбором информации (7 часов)

DELAY_7

movlw 0xf5; инициализация регистра reg_5

movwf reg_5; через аккумулятор

l12 call DELAY_S; вызов процедуры DELAY_S

decf reg_5; вычитание 1 из reg_5

btfss STATUS, 2; проверка нулевого результата

goto l12

return

; подпрограмма задержки (24 мс)

DELAY_MK

movlw d'04'; инициализируем счетчик на 20 мс

movwf reg_2; заносим в регистр reg_2

l9 decf reg_2; уменьшение времени задаржки

btfss STATUS, 2; проверка нулевого результата

goto l9

return

; подпрограмма общей индикации значений

INDICATION

bsf STATUS, RP0 ; в банк 1

movlw 0x00 ; инициализация PORTA-B

movwf TRISB ; (0-3) контакты на ввод

bcf STATUS, RP0 ; в банк 0

l3 btfsc PORTB, 3 ; выход из индикации значений

goto l4

btfsc PORTB, 2; индикация

goto l7

btfsc PORTB, 1; проверка 1 бита порта В

goto l5

btfss PORTB, 0; если 01, то

goto l38

l38

movfw temperatura ; иначе(00) в аккумулятор температура

goto l6

l5 btfss PORTB, 0; если 11, то

goto l39

l39

l6 call INDICATION_INF; вызов процедуры INDICATION_INF

l8 call VIVOD; вызов процедуры VIVOD

goto l3

l7 call INDICATION_NAPR; вызов процедуры INDICATION_NAPR

goto l8

l4

return

; подпрограмма вывода информации о индикаторах на лампочки индикаторов

VIVOD

bsf STATUS, RP0 ; в банк 1

movlw 0x00 ; инициализация PORTA-C

movwf TRISC ; (0-7) контакты на вывод

bcf STATUS, RP0 ; в банк 0

movf indikator_1, w; значение из indikator_1 переносится в аккумулятор

movwf PORTC; выводится через порт С

call DELAY_MK; вызов процедуры задержки на 20 мкс

movf indikator_2, w; значение из indikator_2 переносится в аккумулятор

movwf PORTC; выводится через порт С

return

; подпрограмма индикации направления ветра

INDICATION_NAPR

btfss napravlenie, 0; если ветер не дует с севера

goto l30

movlw b'10011100'; то в в аккумулятор костанта с номерами лампочек

movwf indikator_1; и помещается в регистр indikator_1

movlw b'00000000'; в старший 0

movwf indikator_2; и помещается в регистр indikator_2

goto l37

l30

btfss napravlenie, 1;

goto l31

movlw b'10011100'; то в в аккумулятор костанта с номерами лампочек

movwf indikator_2; и помещается в регистр indikator_2

movlw b'00111110'; то в в аккумулятор костанта с номерами лампочек

movwf indikator_1; и помещается в регистр indikator_1

goto l37

l31

btfss napravlenie, 2;

goto l32

movlw b'00111110'; то в в аккумулятор записывается костанта с номерами лампочек

movwf indikator_1;

movlw b'00000000'; в старший 0

movwf indikator_2; и помещается в регистр indikator_2

goto l37

l32

btfss napravlenie, 3;

goto l33

movlw b'01101110'; то в в аккумулятор записывается костанта с номерами лампочек

movwf indikator_2; и помещается в регистр indikator_2

movlw b'00111110'; то в в аккумулятор записывается костанта с номерами лампочек

movwf indikator_1; и помещается в регистр indikator_1

goto l37

l33

btfss napravlenie, 4;

goto l34

movlw b'01101110'; то в в аккумулятор записывается костанта с номерами лампочек

movwf indikator_1; и помещается в регистр indikator_1

movlw b'00000000'; в старший 0

movwf indikator_2; и помещается в регистр indikator_2

goto l37

l34

btfss napravlenie, 5;

goto l35

movlw b'01101110'; то в в аккумулятор записывается костанта с номерами лампочек

movwf indikator_1; и помещается в регистр indikator_1

movlw b'11110010'; то в в аккумулятор записывается костанта с номерами лампочек для

movwf indikator_2; и помещается в регистр indikator_2

goto l37

l35

btfss napravlenie, 6;

goto l36

movlw b'11110010'; то в в аккумулятор записывается костанта с номерами лампочек для запада

movwf indikator_1; и помещается в регистр indikator_1

movlw b'00000000'; в старший 0

movwf indikator_2; и помещается в регистр indikator_2

goto l37

l36

btfss napravlenie, 7;

goto l37

movlw b'10011100'; то в в аккумулятор записывается костанта с номерами лампочек для запада

movwf indikator_1; и помещается в регистр indikator_1

movlw b'11110010'; то в в аккумулятор костанта с номерами лампочек

movwf indikator_2; и помещается в регистр indikator_2

l37

return

; подпрограмма выбора лампочек на индикаторах

LAMP

btfsc bool, 3; проверка 3 бита регистра bool

goto l14

btfsc bool, 2; проверка 2 бита регистра bool

goto l15

btfsc bool, 1; проверка 1 бита регистра bool

goto l16

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'00111111'; в аккумулятор лампочки под 0

movlw b'00000110'; в аккумулятор лампочки под 1

goto l21

l16

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01010011'; в аккумулятор лампочки под 2

movlw b'01001111'; в аккумулятор лампочки под 3

goto l21

l15

btfsc bool, 1; проверка 1 бита регистра bool

goto l17

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01100110'; в аккумулятор лампочки под 4

movlw b'01101101'; в аккумулятор лампочки под 5

goto l21

l17

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01111101'; в аккумулятор лампочки под 6

movlw b'01000111'; в аккумулятор лампочки под 7

goto l21

l14

btfsc bool, 2; проверка 2 бита регистра bool

goto l18

btfsc bool, 1; проверка 1 бита регистра bool

goto l19

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01111111'; в аккумулятор лампочки под 8

movlw b'01100110'; в аккумулятор лампочки под 9

goto l21

l19

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01110111'; в аккумулятор лампочки под А

movlw b'01111100'; в аккумулятор лампочки под В

goto l21

l18

btfsc bool, 1; проверка 1 бита регистра bool

goto l20

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'00111001'; в аккумулятор лампочки под С

movlw b'10111111'; в аккумулятор лампочки под D

goto l21

l20

btfsc bool, 0; проверка 0 бита регистра bool

movlw b'01111001'; в аккумулятор лампочки под E

movlw b'01110001'; в аккумулятор лампочки под F

l21

return

; дополнительная подпрограмма выбора

VIBOR

movlw 0x04; установление регистра my_reg

movwf my_reg; через аккумулятор

l13

rlf bool, f; циклический здвиг влево регистра bool

rrf reg_1, w; циклический здвиг вправо регистра reg_1

btfsc STATUS, 0; есть переносв

bsf bool, 0; выставляем 1 в 0 бит регистра bool

decf my_reg; вычитание 1 из количества сдвигов

btfss STATUS, 2; кончился полный цикл сдвигов

goto l13

return

; подпрограмма индикации собранных значений

INDICATION_INF

movwf reg_1; из аккумулятора в reg_1

call VIBOR; вызов процедуры VIBOR

call LAMP; вызов процедуры LAMP

movwf indikator_1; и помещается в регистр indikator_1

call VIBOR; вызов процедуры VIBOR

call LAMP; вызов процедуры LAMP

movwf indikator_2; и помещается в регистр indikator_2

clrf bool; обнуление регистра bool

return

; подпрограмма сохранения информации

SAVE

movf temperatura, w; сохранение предыдущего значения температуры

movwf temp_stek; через аккумулятор в регистр temp_stek

movf davletie, w; сохранение предыдущего значения давления

movwf davl_stek; через аккумулятор в регистр davl_stek

movf vlajnost, w ; сохранение предыдущего значения влажности

movwf vlaj_stek; через аккумулятор в регистр vlaj_stek

movf skorost, w ; сохранение предыдущего значения скорости ветра

movwf skor_stek; через аккумулятор в регистр skor_stek

movf napravlenie, w; сохранение предыдущего значения направления ветра

movwf napr_stek; через аккумулятор в регистр napr_stek

return

; подпрограмма сбора данных с различных датчиков

GET_INF

call AD_PROC; вызов процедуры аналогово преобразования

movwf temperatura ; сохранение резистрового значения

comf temperatura, 1; получение температуры

call DELAY_MK; вызов процедуры задержки на 20 мкс

call AD_PROC; вызов процедуры аналогово преобразования

movwf davletie ; сохранение давления

call DELAY_MK; вызов процедуры задержки на 20 мкс

call AD_PROC; вызов процедуры аналогово преобразования

movwf vlajnost ; сохранение влажности

call DELAY_MK; вызов процедуры задержки на 20 мкс

call AD_PROC; вызов процедуры аналогово преобразования

movwf skorost ; сохранение скорости ветра

call DELAY_MK; вызов процедуры задержки на 20 мкс

call AD_PROC; вызов процедуры аналогово преобразования

movwf napravlenie ; сохранение направления ветра

call DELAY_MK; вызов процедуры задержки на 20 мкс

return

; подпрограмма прогноза

TREND_M

clrf PORTB; очистка порта В

movf davl_stek, w; в аккумулятор прошлое измерение давления

subwf davletie, w; если давление растет

btfss STATUS, 0; проверка 0 бита регистра STATUS

goto l22

movlw d'20';

subwf skorost, w;

btfss STATUS, 0; проверка 0 бита регистра STATUS

goto l22

btfss napravlenie, 7;

goto l23

bsf PORTB, 4;

l23

btfsc napravlenie, 6;

bsf PORTB, 4;

l22

movf davl_stek, w; в аккумулятор прошлое измерение температуры

subwf davletie, w; если температура падает

btfsc STATUS, 0; проверка 0 бита регистра STATUS

goto l24

btfss napravlenie, 4;

goto l25

l25

btfsc napravlenie, 5;

bsf PORTB, 5;

l24

movf davl_stek, w;

subwf davletie, w;

btfsc STATUS, 0; проверка 0 бита регистра STATUS

goto l26

movf temp_stek, w; в аккумулятор прошлое измерение температуры

subwf temperatura, w; если температура падает

btfsc STATUS, 0; проверка 0 бита регистра STATUS

goto l26

btfsc napravlenie, 3;

bsf PORTB, 6;

l26

movf vlaj_stek, w; в аккумулятор прошлое измерение температуры

subwf vlajnost, w; если температура падает

btfsc STATUS, 0; проверка 0 бита регистра STATUS

goto l27

movlw d'30';

subwf skorost, w;

btfsc STATUS, 0; проверка 0 бита регистра STATUS

goto l27

btfsc napravlenie, 7;

bsf PORTB, 7;

l27

return

; подпрограмма прогноза

TREND

btfsc bool, 0; первое измерение?

goto lab

call TREND_M; вызов процедуры TREND_M

lab

return

GET_MY

btfsc bool, 0; первое измерение?

goto l28

call GET_MY_2; вызов процедуры GET_MY_2

goto l29

l28

call GET_MY_1; вызов процедуры GET_MY_1

l29

return

; подпрограмма установления погоды в первом случае

GET_MY_1

movlw d'20'; установление температуры

movwf temperatura ; через аккумулятор

return

GET_MY_2

movlw d'10'; установление температуры

movwf temperatura ; через аккумулятор

return

;************************************************

; описание основной программы

;************************************************

MAIN

movlw 0x01; инициация регистра bool

movwf bool; через аккумулятор

loop

; call GET_INF; вызов процедуры сбора данных

call GET_MY; вызов процедуры установления

call INDICATION; вызов процедуры индикации значений

call TREND; вызов процедуры прогноза

; call DELAY_7; вызов процедуры задержки

call SAVE; вызов процедуры сохранения результатов

decf bool

goto loop; бесконечный цикл

end

Вывод

В результате выполнения данного курсового проекта были получены навыки в проектировании микропроцессорных систем. Была разработана программа для микропроцессора PIC18F8620. В ходе создания программного обеспечения получены навыки в разработке структуры и кода программы на языке низкого уровня для микропроцессора PIC18F8620.

Размещено на Allbest.ru

...

Подобные документы

  • Конструктивные характеристики пароперегревателя, его устройство. Назначение регулятора Протар-130. Регулятор температуры перегретого пара. Инженерные методы выбора типа автоматического регулятора. Расчеты токсичных выбросов в атмосферу с уходящими газами.

    дипломная работа [306,6 K], добавлен 03.12.2012

  • Понятие и внутренняя структура, взаимосвязь компонентов и назначение электрического котла, требования к нему, принцип действия и сферы практического применения. Критерии развития: функциональные, технологические, эконометрические, антропологические.

    контрольная работа [117,9 K], добавлен 19.02.2015

  • Понятие и внутреннее устройство простейшей тепловой трубы, принцип ее действия и взаимосвязь элементов. Теплопередача при пленочном кипении, путем теплопроводности, конвекции и излучения через пленку пара. Предпосылки и причины температурного перепада.

    реферат [603,0 K], добавлен 08.03.2015

  • Измерение расхода пара по методу переменного перепада давления. Расчет диафрагмы, температуры пара и элементов потенциометрической схемы. Оценка точности передачи сигнала измерительного компонента. Выбор воспринимающих элементов и вторичных приборов.

    курсовая работа [3,3 M], добавлен 04.12.2011

  • Диод Шотки как полупроводниковый диод, выпрямительные свойства которого основаны на использовании выпрямляющего электрического перехода между металлом и полупроводником. Структура данного устройства, сферы и особенности его практического применения.

    реферат [25,6 K], добавлен 29.04.2011

  • Выбор оптимального варианта структурной схемы вызывного устройства, используемого в составе зарядного устройства аккумуляторов. Определение объема трансформатора и реактора. Расчет характеристик инвертора и выбор компонентов его принципиальной схемы.

    контрольная работа [346,7 K], добавлен 07.07.2013

  • Расчет Ш–образного электромагнита автоматического выключателя с разработкой эскиза конструкции, расчета основных его элементов и технических показателей. Расчет магнитных цепей инженерным методом. Схема автоматического выключателя и принцип действия.

    курсовая работа [1,1 M], добавлен 21.09.2010

  • Математическая модель регулятора прямого действия. Выбор и расчет конструктивных параметров. Принцип работы регулятора. Расчёт статических характеристик по управляющему и возмущающему воздействиям. Нахождение частотных характеристик по программе Kreg.

    курсовая работа [129,6 K], добавлен 22.11.2013

  • Устройства дистанционной коммутации – общие сведения, внутреннее устройство и принцип работы, сферы практического применения. Технология монтажа тросовой электропроводки, светильников общего назначения. Требования безопасности при проведении работ.

    контрольная работа [675,0 K], добавлен 23.02.2016

  • Методики, используемые при измерении температур пламени: контактные - с помощью термоэлектрического термометра, и бесконтактные - оптические. Установка для измерения. Перспективы применения бесконтактных оптических методов измерения температуры пламени.

    курсовая работа [224,1 K], добавлен 24.03.2008

  • Понятие и назначение лазера, его структура и принцип действия, основные сферы применения на сегодня. История развития данного устройства. Спонтанные и вынужденные переходы. Главные свойства лазерного излучения. Методы создания инверсии населённости.

    реферат [106,2 K], добавлен 18.12.2010

  • Измерение температуры с помощью мостовой схемы. Разработка функциональной схемы измерения температуры с применением термометра сопротивления. Реализация математической модели четырехпроводной схемы измерения температуры с использованием источника тока.

    курсовая работа [1,4 M], добавлен 19.09.2019

  • Определение линейного теплового потока методом последовательных приближений. Определение температуры стенки со стороны воды и температуры между слоями. График изменения температуры при теплопередаче. Число Рейнольдса и Нусельта для газов и воды.

    контрольная работа [397,9 K], добавлен 18.03.2013

  • Определение цветовой температуры кинопроекционной лампы, напряжение на которой меняется с помощью переменного резистора. Снятие показаний фотоэлемента для синего и красного фильтров. Построение зависимости цветовой температуры лампы от напряжения.

    лабораторная работа [241,0 K], добавлен 10.10.2013

  • Способы и устройства электронагрева нефтескважин с целью их очистки от парафина. Принцип действия и основные функциональные узлы установки управления электроснабжением нефтегазодобывающих комплексов: функциональная схема, элементы и их взаимосвязь.

    курсовая работа [2,1 M], добавлен 05.04.2013

  • Понятие и функциональные особенности стробоскопа как прибора, позволяющего быстро воспроизводить повторяющиеся яркие световые импульсы. История и основные этапы разработок данного устройства, его современные конфигурации сферы практического применения.

    презентация [316,4 K], добавлен 26.03.2014

  • Схема нагнетательной скважины. Последовательность передачи теплоты от теплоносителя (закачиваемой воды) к горной породе. График изменения геотермической температуры по глубине скважины. Теплофизические свойства флюида, глины, цементного камня и стали.

    курсовая работа [1,7 M], добавлен 19.09.2012

  • Исследование переходных и установившихся процессов в системе автоматического регулирования температуры в производственной печи на основе методов компьютерного моделирования. Расчет значения параметров элементов по задающему и возмущающему воздействию.

    лабораторная работа [182,5 K], добавлен 22.10.2015

  • Регулирование температуры перегретого пара котельного агрегата за счет подачи конденсата на пароохладитель котла. Перестроение импульсной кривой в кривой разгона, определение параметров котельного агрегата. Структурная схема системы регулирования.

    курсовая работа [2,7 M], добавлен 09.01.2014

  • Понятие термоэлектрического эффекта; технические термопары, их типы. Характеристика и конструкция ТЭП, исполнение, назначение, условия эксплуатации, недостатки. Измерение температуры, пределы допускаемых отклонений термоЭДС от номинального значения.

    контрольная работа [138,8 K], добавлен 30.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.