Контроль температуры и поддержание заданного режима в жилой комнате с помощью 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