Система централизованного контроля температуры

Курсовая работа

Система централизованного контроля температуры (СЦКТ) предназначена для измерения температуры объекта и получении информации о выходе температуры разных точек объекта за границы уставок.

Система централизованного контроля (СЦК) позволяет собирать и обрабатывать большое количество информации, а оператору предоставить в удобной форме необходимую её часть. В работе реализована СЦК для измерения температуры.

СЦК осуществляет измерение температуры при помощи нескольких датчиков. Вывод информации осуществляется при помощи жидкокристаллического индикатора (ЖКИ).

Одной из задач СЦКТ, помимо вывода информации о температуре, является контроль заданного значения температуры. Выход температуры за границы заранее заданных уставок отображается на дисплее автоматически с указанием канала.

СЦКТ применяются для контроля температуры объектов разного рода. Это может быть объект для лабораторных измерений, промышленный объект (сельскохозяйственный инкубатор), дата-центр и т.д.

В основе СЦК лежит микроконтроллер (МК) 51-го семейства [1].

МК предназначен для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в него программой. На сегодняшний день микроконтроллеры часто используются при проектировании различных электронных устройств, в частности, микроконтроллеры очень часто встречаются в составе измерительных вычислительных систем.


1. Полное наименование темы: Система централизованного контроля температуры.

  • Назначение и область применения.

1 Система предназначена для измерения температуры объекта и получения информации о выходе температуры различных точек объекта за границы уставок.

2 Область применения системы — практика лабораторных и промышленных измерений.

  • Технические требования к системе.

1 Условия эксплуатации.

1.1 Нормальные условия применения по ГОСТ 22261-94. Допуск на отклонение от нормального значения температуры ±1 о С.

1.2 Рабочие условия применения в соответствии с требованиями ГОСТ 22261-94 к СИ 2 группы.

2 Основные технические требования.

2.1 Первичный преобразователь фирмы ANALOG DEVICES

2.2 Диапазон измеряемых температур: 0 — 100 о С с разрешением в 0.1 о С

2.3 Количество каналов измерения — 5.

2.4 Время опроса канала не более 0.5 с.

12 стр., 5506 слов

Развитие автоматизированных систем контроля

... применения надежных элементов. Цель данной работы состоит в том, чтобы проследить историю развития автоматизированных систем контроля. Для достижения поставленной цели необходимо решить следующие задачи: рассмотреть историю развития автоматизации; ...

2.5 Количество уставок для регулирования температуры не менее 50 через 2% от диапазона измерений.

2.6 Зона предельных уставок для каждого канала не менее 2% от диапазона измерений.

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

2.8 Сопротивление линии связи не более 10 Ом.

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

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

  • Специальные требования

1 В системе применить ОМК семейства 51.

2 В качестве цифрового индикатора использовать жидкокристаллический индикаторный модуль со встроенным контроллером HD44780.


Согласно техническому заданию (ТЗ) необходимо спроектировать систему централизованного контроля температуры. ТЗ накладывает некоторые условия на проектируемое устройство:

  • Диапазон измеряемых температур: 0 — 100 о С с разрешением в 0.1 о С
  • Количество каналов измерения — 5
  • Время опроса канала не более 0.5 с.
  • Допускаемая приведенная погрешность измерений температуры по каждому каналу в рабочих условиях не более 1%.

Данные параметры оказывают влияние на ход проектирования — выбор первичных преобразователей, выбор МК, разработка ПО.

Согласное ТЗ необходимо выбрать датчик температуры фирмы Analog Devices. Датчик должен удовлетворять следующим требованиям:

Наименьшая максимальная погрешность в диапазоне измерений,

Разрешающая способность ≤0.1 о С,

Время измерения <0.5c,

Минимальная стоимость.

Был проанализирован ряд датчиков данной фирмы, удовлетворяющих требованиям ТЗ (таблица 1).

Табл. 1. Датчики температуры фирмы Analog Devices.

Moдель

Максимальная погрешность в диапазоне 0.100˚С

Разрешающая способность

Напряжение питания

Tизм, мс

Стоимость, $

Прочее

Min, B

Max, B

ADT7320

±0.25°C

0.0078˚С

2.7

5.5

240

3.1

Индикатор превышения критической температуры; Прерывание выхода температуры за нижнее/верхнее пороговое значение

ADT7310

0.5°C

0.0078˚С

2.7

3.6

240

1.32

Индикатор превышения критической температуры; Прерывание выхода температуры за нижнее/верхнее пороговое значение

ADT7301

1°C

0.03125°C

2.7

5.25

1.5

1.21

TMP06

0.25°C

0.025°C/5мкс

3

5.5

100

0.66

Работает на основе ШИМ

Все датчики, представленные в таблице 1 удовлетворяют требованиям ТЗ. Был выбран датчик типа TMP06 [П3], т.к. он имеет наименьшую максимальную погрешность измерения 0.25°C как и датчик типа ADT7320, но имеет более низкую стоимость. Отличительной особенностью датчика TMP06 является то, что его принцип работы основан на широко-импульсной модуляции (ШИМ).

Данный датчик преобразует температуру в сигнал прямоугольной формы, при этом длительность периода высокого уровняTh — практически не меняется, а длительность периода низкого Tl меняется в соответствии с изменением температуры. Согласно техническому описанию (ТО) данного датчика [5], значение температуры вычисляется по следующей формуле:

=421- (751* (Th/Tl)).

(1)

В соответствии с ТЗ, разрабатываемая СЦКТ должна иметь 5 первичных преобразователя температуры. Согласно ТО TMP06, использование нескольких датчиков производится путем их последовательного соединения (рисунок 1.1.1).

Система централизованного контроля температуры 1

Рис. 1.1.1 Структурная схема последовательного соединения датчиков ADT06

В результате на выходе группы датчиков образуется последовательность прямоугольных импульсов. Очередность прямоугольных сигналов соответствует очередности датчиков в последовательной группе (рис. 1.1.2).

Система централизованного контроля температуры 2

Рис. 1.1.2 Временная диаграмма выходного сигнала группы датчиков


На рисунке 2.1 представлена структурная схема СЦКТ, работающего на основе МК семейства 51.

Система централизованного контроля температуры 3

Рис. 2.1 Схема электрическая структурная СЦКТ

Пояснение к рисунку 2.1:

Х1 — разъем,- микроконтроллер 51-го семейства,

АD1. АD5 — датчики температуры,- кварцевый резонатор (генератор опорной частоты),- жидкокристаллический индикаторный модуль (ЖКИМ),- клавиатура 4х4.

Рассмотрим принцип работы устройства. Начало измерения определяется генерацией старт-импульса на выводе Р0.2 МК. Спустя некоторый промежуток времени на вход Р0.1 МК от группы датчиков поступает последовательность импульсов, которая содержит информацию о температуре на каждом из датчиков. Очередность импульсов, которые поступают на вход Р0.1 МК, согласно ТО датчика TMP06, соответствует последовательности подключения самих датчиков (см. рис. 1.1.1 и 1.1.2).

Далее вся полученная информация обрабатывается микроконтроллером: вычисляется температура (Тх) на каждом из датчиков, значения температуры сверяются с заранее введенными оператором уставками (если значение температуры на любом из датчиков выходит за границы уставок, то генерируется сигнал оповещения, на дисплей выводится сообщение об ошибке и номер датчика на котором обнаружена аномалия).

В любой момент времени, в течение работы устройства, оператор может запросить вывод на дисплей информацию о температуре на любом из датчиков. Для этого необходимо воспользоваться клавиатурой (F).

На рисунке 2.2 представлена схема размещения кнопок на клавиатуре.

Система централизованного контроля температуры 4

Как показано на рисунке 2.2, в работе СЦКИ используется клавиатура размером 4х4 кнопок. Для вывода на дисплей температуры Tx N-го датчика необходимо нажать кнопку «TEMP», ввести номер датчика N (от 1 до 5) и нажать кнопку ENT. В результате на дисплее появится значение температуры на датчике под номером N.

Для ввода уставок (верхней и нижней) необходимо нажать кнопку «UST», ввести значение первой (нижней) уставки, нажать кнопку «ENT». Затем повторно нажать кнопку «UST», ввести значение певторой (верхней) уставки, нажать кнопку «ENT». Данное действие необходимо производить последовательно для каждого из 5 датчиков. Если вследствие ошибки оператора последовательность выполнения команд была нарушена, то необходимо перезапустить устройство дважды нажав на кнопку «on/off».

Кнопка «CLR» очищает введенное значение уставки. После нажатия на эту кнопку необходимо ввести новое значение уставки и далее следовать прежней последовательности выполнения операций.

Замечание:

Нажатие кнопки RST осуществляется перезагрузка микроконтроллера. Использовать перезагрузку МК целесообразно при непредвиденном сбое системы или если СЦКТ работает не верно по не понятным причинам.

Вывод данных осуществляется при помощи ЖКИ модуля. ЖКИ индицирует значение вводимых уставок в реальном времени, отображает значение температуры по запросу оператора, выводит сообщение об ошибке на любом из датчиков, если она обнаружена в процессе измерения.

Рассмотрим подробнее процесс вычисления значения температуры Tx на примере одного из датчиков. Согласно формуле 1 из раздела 1.1, значение температуры Tx вычисляется по формуле:

=421- (751* (Th/Tl))

где Th — длительность информационного сигнала высокого уровня,- длительность сигнала низкого уровня.

Вычисление значение Th и Tl производится при помощи таймеров/счетчиков (Т/С) микроконтроллера. Пусть Т/С1 работает в режиме таймер и считает длительность Th c частотой Fo, а Т/С0 работает в режиме таймера и считает длительность Tl. Тогда в результате обработки одного прямоугольного сигнала будут определены значения Nh и Nl — это число отсчетов, которое сосчитали Т/С0 и Т/С1 в результате своей работы. Тогда формула вычисления Tx выглядит так:

=421- (751* ( (Nh*To) / (Nl*To))), (2)


Ниже на рисунке 3.1 представлена принципиальная схема разрабатываемого устройства.

Замечание  1

Рис. 3.1 Схема электрическая принципиальная СЦКТ

Пояснения к принципиальной схеме:- микроконтроллер 51-го семейства,- ЖКИ-модуль. AD5 — первичные преобразователи,- клавиатура,

Х1 — разъем,- кварцевый резонатор,

С1, С2, С3, С4 — конденсаторы,- подстроечный резистор,,R3,R4 — резисторы.

Разъем Х1 имеет вывод питания +5В для МК, ЖКИ модуля и для датчиков.

В схеме СЦКТ используется микроконтроллер 51-го семейства типа AT89C51RB2, ЖКИ модуль типа PC-2001L [3], матричная клавиатуры размером 4х4 фирмы PARALLAX [6], датчики температуры типа TMP06. Подробнее выбор всей элементной базы представлен в разделе 3.1.

Как показано на рисунке 3.1, с вывода Р0.2 МК подается «старт импульс», который поступает на вход последовательно соединенную группу датчиков температуры AD1-AD5. На вход Р0.1 МК поступает последовательность прямоугольных импульсов, которая содержит информацию о температуры на каждом из датчиков. Клавиатура F марки Parallax позволяет вводить верхние и нижние уставки, послать запрос для вывода информации на дисплей.

Для формирования опорной частоты МК в схеме используется внешний кварцевый резонатор. Частота кварца составляет 6 МГц. Согласно ТО МК, кварцевый резонатор подключается к выводам XTAL1 и XTAL2 МК.

Питание организовано при помощи разъема. Напряжение питания составляет 5В. Тракт питания обеспечивает напряжением все активные узлы схемы: МК, датчики, дисплей. Питание МК осуществляется при помощи вывода Vcc. Питание каждого из датчиков производится при помощи вывода Vdd датчиков.

Подключение дисплея:

К выводу Vo дисплея подключен подстроечный резистор R1 для организации контрастности символов модуля. К выводу А через резистор R3 подведено напряжение питания +5В для организации подсветки ЖКИ. К выводу Vdd ЖКИ подведено напряжение питания +5В для питания модуля.

Из рисунка 3.1 видно, что конденсаторы С1 и С2 шунтируют цепь питания. Данные конденсаторы позволяют исключить всплески напряжения тракте питания между разъемом и МК. Было решено использовать конденсаторы ёмкостями 4.7мкФ и 0.1мкФ.

Было решено использовать следующие модели конденсаторов:

С1: танталовый конденсатор К53-18, ёмкостью 4.7мкФ,

С2: керамический конденсатор К10-17Б, ёмкостью 0.1мкФ.

Конденсаторы С3 и С4 применяются ТО МК при подключении кварцевого резонатора к МК в качестве внешнего генератора системной частоты.

Разработчики рекомендуют использовать конденсаторы С3 и С4 с емкостью 22пФ.

Было решено использовать следующие модели конденсаторов:

С3,4: танталовый конденсатор КM5Б-M47, ёмкостью 22пФ

В данном разделе представлен выбор элементной базы проектируемого устройства (рис. 3.1).

Был выбран МК 51-го семейства типа C8051F410 [П1]. Причиной этому послужило следующее:

) Требует питания +5В (как дисплей и датчики).

2) Имеет систему прерываний от клавиатуры (облегчает процесс проектирования с точки зрения создания ПО)

) Имеет 2 таймера/счетчика

) Имеет диапазон рабочих температур (-40 ч +85) О С. Эти данные приемлемы согласно ГОСТ 22261-92, который оговаривается в ТЗ.

) Имеет необходимое количество портов для работы с периферией.

Выше описанными свойствами обладает и ряд других микроконтроллеров серии 51. Тем не менее нет никаких противоречий в работе данного МК для его использования в рамках ТЗ.

Кварцевый резонатор применяется в качестве периферийного узла для генерации тактовой частоты МК. Был выбран резонатор типа HC-49SM. Частота работы данного резонатора 6 МГц. В сочетании с делителем МК значение которого равно 12, частота тактовых импульсов составляет 500 кГц. Данное значение частоты Fo приемлемо с точки зрения проектирования СЦКТ. Более подробные технические характеристики данного резонатора представлены в приложении [П5].


В работе используется клавиатура размером 4х4 кнопок фирмы Parallax. На рынке матричных клавиатур данная модель позиционируется как Matrix Membrane KeyPad (#27899).

Принцип работы с точки зрения обработки вводимых данных описан в следующих разделах. Отличительная особенность данного компонента заключается в том, что для оперирования матрицей из 16 кнопок необходим один 8-разрядный порт, а не 16 линий связи для каждой кнопки в отдельности. Работа клавиатуры организуется посредством задания «бегущего нуля» на одних выводах и опроса состояния других выводов [6].

Согласно ТЗ необходимо выбрать ЖКИМ, который должен иметь встроенный контроллер HD44780.

В работе используется ЖКИ-модуль типа PC-2001L фирмы POWERTIP [П2].

Данный ЖКИМ имеет 1 строку. Этого достаточно для ввода уставок, вывода информации о температуре и отображения сообщений об ошибке. Данный ЖКИМ полностью удовлетворяет требования ТЗ.

Выбор R1:

В ходе проектирования в качестве подстроечного резистора R1 был выбран элемент типа СП3-19а [П4].

Выбор R2:

В качестве резистора R2 разработчики МК советуют использовать резистор с сопротивлением 50кОм. Был выбран резистор типа CF-25 с номинальным значением сопротивления 47кОм.

Выбор R3:

Минимальное значение сопротивления резистора R3 было определено следующим образом:

= (Vdd-Va) / I,

где Vdd — напряжение питания схемы, составляет +5В,- максимально допустимое напряжение подводимое к А, составляет 4.2В [П2]- максимально допустимый ток, составляет 360мА [П2].

Допустимое значение мощности для резистора R3 определяется

=I* (Vdd-Va) =0.36* (5-4.2) =0.144Вт.

Тогда R3=2,2Ом. Был выбран резистор марки KNP-100. Его номинальное значение сопротивления составляет 5.1Ом, номинальная мощность составляет 1Вт

Выбор R4:

Согласно ТО клавиатуры, разработчики советуют использовать резистор с сопротивление 1кОм. Был выбран резистор типа СF-25.

Выбор R5:


В данном разделе представлен анализ проектируемого устройства с точки зрения метрологии. Согласно ТЗ допускаемая приведенная погрешность измерения температуры по каждому каналу в рабочих условиях не должна превышать 1%.

Составляющие общей погрешности измерения:

) Погрешность датчика (γs),

) Погрешность дискретизации (расчета) (γд),

) Погрешность, возникающая в следствие отклонения частоты Fo опорного генератора от номинального значения (γq).

Тогда общая формула расчета приведенной погрешности проектируемого устройства имеет следующий вид:

γ= γs + γд + γq. ( 3)

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

. Погрешность датчика:

На рисунке 4.1 представлен график зависимости погрешности (error) датчика от температуры.

Замечание  2

Рис. 4.1 График зависимости погрешности датчика от температуры

Для работы СЦКТ напряжение питания составляет 5В. Из рисунка 4.1 видно, что максимальное значение отклонения температуры график принимает на границах диапазона измерения — 0 О С и 100 О С, по этому в дальнейшем анализ составляющих погрешности будет проводиться по граничным значения диапазона измерения.

Тогда:

Δ 100 = — 0.25О С при Tx=100 О С,

Δ 0 = 0.15О С при Tx=0 О С.

Формула вычисления приведенной погрешности выглядит так:

γ= (|Δ|/Xш) *100%, (4)

где Xш — диапазон шкалы измерения (0-100 О С).

Из формулы 4 видно, что приведенная погрешность измерения вносимая датчиком составляет: γ s_100 = 0.25%, γ s_0 = 0.15%.

. Погрешность дискретизации:

Под погрешностью дискретизации следует понимать погрешность счета. Она возникает из-за расчета значения температуры Tx для каждого из датчиков по формуле:

=421- (751* (Th/Tl)), (5)

где Th — длительность информационного сигнала высокого уровня,- длительность сигнала низкого уровня.

Для количественной оценки данной составляющей погрешности необходимо вычислить частные производные d/dTh и d/dTl формулы 5.

Тогда:

|Δд|= 751 (Δт /Tl + (Th/Tl2) * Δт) , (6)

где

Δт — аддитивная составляющая погрешности счета, которая возникает из-за ошибки счета Т/С0 и T/C1. Т.е. момент начала счет T/C может не совпадать с моментом изменения логического уровня на вывозе Р0.1. Максимально значение данной составляющей равно периоду опорного импульса частота Fo которого равна 6МГц. Значение Δт рассчитывается так:

Δт = To = 1/ (Fo/12) =1/ (6*106) = 2 (мкс).

Делитель 12 в уравнении выше присутствует из-за того, что в МК присутствует делитель тактовой частоты от внешнего генератора. Значение этого делителя равно 12.

Упрощая выражение 6, получим:

|Δд|= (751* Δт) /Tl * (1+Th/Tl).

(7)

Определим предельные значения для Tl и Th из ТО TMP06:

Для Tx=100 О С: Tl = 84.1мс, Th = 36мс;

для Tx=0 О С: Tl = 61.4 мс, Th = 33.6мс.

Подставив значения Th, Tl и Δт , получим:

Для Tx=100 О С: ΔД_100 = 0.026 О С;

Для Tx=0 О С: ΔД_0 = 0.039 О С;

Значения приведенной погрешности дискретизации вычисляются по формуле 4:

Для Tx=100 О С: γ Д_100 = 0.026 % ;

Для Tx=0 О С: γ Д_0 = 0.039 % ;

. Погрешность, возникающая в следствие отклонения частоты Fo опорного генератора от номинального значения.

Согласно ТО кварцевого резонатора HC49-SM, отклонение частоты от его номинального значения составляет 10-6 % от номинального значения. Данное значение отклонения не существенно влияет на общее значение погрешность. Данной составляющей погрешности в дальнейших расчетах можно пренебречь.

Общее значение погрешности для проектируемой СЦКТ вычисляется по формуле 3. Значения приведенной погрешности устройства принимают следующие значения:

Для Tx=100 О С: γ = γs + γд = 0.25%+0.026%=0.276%;

Для Tx=0 О С: γ = γs + γд = 0.15%+0.039%=0.189%;

Вывод: Значения γ проектируемой СЦКТ удовлетворяют требованию ТЗ и не превышают 1% на всем диапазоне измерения температуры.


С точки зрения применения проектируемой СЦКТ одним из важных аспектов является максимальная длина соединительных проводов (СП), при которой система измерения температуры сохраняет метрологические характеристики (МХ) в рамках ТЗ. По соединительным проводам передается измерительный ШИМ сигнал (рис. 5.1).

Замечание  3

Рис. 5.3 Схема последовательного включения датчиков температуры и МК в СЦКТ.

На рисунке 5.3:

СП — соединительный провод,

УУ — устройство управления, которое состоит из МК, дисплея, клавиатуры,. AD5 — группа последовательно включенных датчиков TMP06B.

Известно, что с увеличением длины провода его емкость увеличивается.

Емкостные параметры СП влияют на форму передаваемого сигнала. Следовательно чем длиннее провод, тем передаваемый сигнал будет более искажен.

Замечание  4

Рис.5.2 ШИМ сигнал датчика TMP06B.

На рисунке 5.2 представлен измерительный ШИМ сигнал, который поступает по СП от датчика к датчику и от датчиков в МК. Очевидно, что при увеличении длинны проводов, МХ системы будут зависеть от искажения фронта и среза сигнала. Из технического описания (ТО) датчика TMP06B известно, что при емкостной нагрузке 100 пФ, резистивной нагрузке 10кОм и напряжении 5.5 В, типовое значение величины среза и фронта соответственно равно 30 нс и 50 нс [7].

На рисунке 5.2 представлен, взятый из ТО датчика TMP06B, график зависимости длительности времени фронта/среза от емкостной нагрузки линии передачи сигнала.

Замечание  5

Рис. 5.3 График зависимости времени фронта/среза от емкостной нагрузки линии передачи.

Согласно международному стандарту коммуникационных кабельных сетей ISO/IEEC11801, нормируемая длинна линии составляет 100м между сегментами сети, при максимальной емкостной нагрузке 5.6 нФ [8].

Из рисунка 5.3 видно, что при емкостной нагрузке С равной 5.6 нФ, длительность фронта Tф = 920 нс, а длительность среза Tc = 520 нс. Тогда, используя линию длиной 100м, можно оценить увеличение длительности ШИМ сигнала приблизительно на 1.5мкс.

Используя формулу (7) из раздела 4, получим:

|Δд|= (751* Δт) /TL * (1+TH /TL ), (5.1)

где

Δд — погрешность дискретизации,L — длительность сигнала низкого уровня (рис. 5.2),H — длительность сигнала высокого вровня (рис. 5.2),

Δт — аддитивная составляющая погрешности счета.

Ниже представлен расчет Δт.

Формула расчеты аддитивной составляющей выглядит так:

Δт =Tи+To, (5.2)

где- период опорного импульса (2 мкс, см. раздел 4),

Ти — суммарное время «завала» фронтов/срезов сигнала от группы датчиков.

Расчет оценочного предельного значения Ти (из формулы 5.2) выглядит

Пороги срабатывания каждого датчика в цепи, при поступлении импульсного сигнала в ТО датчика TMP06B не описаны. Следовательно не известно на сколько меняется длительность информационного интервала ШИМ сигнала (Ти) при прохождении через датчик (при использовании группы датчиков).

Тогда:

Ти = ТИ1 + ТИ2 + ТИ3 + ТИ4 + ТИ5 , (5.3)

где ТИ1 — длительность сигнала от датчика AD1 при поступлении в МК,

ТИ1 — длительность сигнала от датчика AD2 при поступлении в МК,

ТИ1 — длительность сигнала от датчика AD3 при поступлении в МК,

ТИ1 — длительность сигнала от датчика AD4 при поступлении в МК,

ТИ1 — длительность сигнала от датчика AD5 при поступлении в МК,

Тогда, при прохождении сигнала от одного датчика к другому, длительность информационного интервала от каждого датчика увеличивается на 1.5мкс (см. выше).

Следовательно:

ТИ1 = = (1.5*5) мкс = 7.5мкс,

ТИ2 = = (1.5*4) мкс = 6мкс,

ТИ3 = = (1.5*3) мкс = 4.5мкс,

ТИ4 = = (1.5*2) мкс = 3мкс,

ТИ5 = = (1.5*1) мкс = 1.5мкс.

В результате, используя формулу 5.3, получим:

Ти = ТИ1 + ТИ2 + ТИ3 + ТИ4 + ТИ5 = (7.5+6+4.5+3+1.5) мкс = 22.5мкс.

Тогда, согласно формуле 5.2:

Δт =Tи+To= (22.5+2) мкс=24.5мск.

Возвращаясь к формуле 5.1, получим:

) При температуре Т=100 О С, TL = 84мс, TH = 36мс.

Тогда, |Δд100 |=0.464 %.

) 1) При температуре Т=0 О С, TL = 60мс, TH = 33.6мс.

Тогда, |Δд0 |=0.319 %.

Применим формулу 3 из раздела 4 для оценки общего значения приведенной погрешности СЦКТ:

γ = γs + γд, ( 5.4)

где γs — приведенная погрешность датчика (см. раздел 4),

γд — приведенная погрешность дискретизации (расчета, см. раздел 4).

Из раздела 4 известно, что для температуры Т=100 О С и 0 О С, значение погрешности датчика равно γs100 =0,25% и γ s100 =0.15% соответственно.

Тогда, используя формулу 5.4, получим:

Для T=100 О С: γ = γs100 + γд100 = 0.25%+0.464%=0.714%;

Для T=0 О С: γ = γs0 + γд0 = 0.15%+0.319%=0.469%;

Данные значения приведенной погрешности удовлетворяют условиям ТЗ.

Представленный выше расчет позволяет использовать провода длинной не более 100м между датчиками и МК при емкостной нагрузке 5.6нФ/100м, при погрешности измерения температуры Т не более 1% (см. ТЗ).

На рисунке 5.1 представлен «радиальный» метод соединения датчиков и МК СЦКТ. который позволяет использовать провода одинаковой длины. Так как расчет позволяет использовать провода длинной не более 100м, то «радиальный» метод соединения датчиков и МК приемлем для проектируемой СЦКТ.

Анализируя различные виды проводов (витая пара, оптоволоконный кабель, коаксиальный кабель) можно сказать, что для работы СЦКЗ подходит множество различных типов кабелей (с точки зрения электрических характеристик).

На пример в пределах помещения чаще всего используют витую пару для соединения сегментов системы на расстоянии не больше ~100 метров. Оптоволоконный кабель применяется для соединения сегментов системы на расстоянии больше 100 метров, так как сигнал в оптоволоконном кабеле затухает (искажается) меньше, в отличие от витой пары, но и цена таких кабелей много больше.

Витая пара типа ТПП ЭП [9] — экранированная витая пара категории 2. Согласно электрическим характеристикам данного провода, емкостная нагрузка составляет 4.5нФ/100м. Данное значение емкостной нагрузки соответствует расчетам проведенным в данном разделе. Так как значение емкостной нагрузки ТПП ЭП меньше нормируемого в стандарте ISO/IEC11801 (5.6нФ/100м), то можно использовать провода длинной ~120 метров. Использование такого кабеля длинной 120 метров между датчиками и МК СЦКТ приемлемо с метрологической точки зрения. Но диапазон рабочих температуры ТПП ЭП составляет от — 15 О С до 60 О С, тогда как согласно ТЗ диапазон измеряемой температуры составляет от 0 О С до 100 О С. Для решения этой проблемы в схеме подключения датчиков и МК используется провод для работы с термопарами. То есть вблизи датчиков, где температура может превышать 60 О С используется термостойкий длиной от 1 до 10 метров (в зависимости от области и специфики применения СЦКТ), а в остальной части соединения используется термопара (рис. 5.4).

Замечание  6

Рис. 5.4 Схема соединения датчиков, термостойкого провода и витой пары в СЦКТ.

На рисунке 5.4 представлен пояснительный рисунок подключения датчиков и МК, где:

СП1 — термостойкий провод длинной 10 метров,

СП2 — кабель типа ТППЭП длинной 100-110 метров.

В качестве термостойкого провода можно использовать провод типа ПВКВ [10].

Это провод с медной многопроволочной жилой. Диапазон рабочих температур данного провода составляет от — 15 О С до 180 О С.


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

На рисунке 6.1 представлена схема алгоритма работы основного модуля ПО. Программа производит настройку МК, дисплея; инициализирует процесс измерения; вызывает подпрограммы (П/П) вычисляет значение температуры Tx для каждого датчика, вывода данных на дисплей.

Замечание  7

Рис. 6.1 Схема алгоритма основного программного модуля ПО

Из рисунка 6.1 видно, что в самом начале производится вызов П/П «начальные установки». Данная подпрограмма осуществляет настройку МК: настройка источника системного тактового сигнала; проводит настройку дисплея. Далее загружается счетчик импульсов — регистр R07. Значение данного регистра изначально равно 5, т.к. процесс измерения состоит из 5 циклов. За каждый цикл производится измерение температуры на 1 из 5 датчиков.

В предыдущих разделах было сказано, что для организации процесса измерения на основе 5 датчиков достаточно 2 линии связи. Первая линия связи вывод P0.2 — > CONV/IN, которая служит для передачи старт-импульса (старт-импульс инициализирует процесс измерения).

Вторая линия связи — OUT->P0.1, которая предназначена для приема измерительных импульсов от группы датчиков микроконтроллером. Тогда, за один переданный старт импульс на вход Р0.1 МК «приходит» 5 прямоугольных информационных сигнала от датчиков и в конце следует старт-импульс, завершающий единичный процесс измерения.

Измерение значения Tx на каждом из датчиков организовано на основе таймеров-счетчиков микроконтроллера (см. раздел 2).

Т/С0 и Т/С1 работают в 16-ти разрядном режиме и считают длительность высокого и низкого уровня каждого из прямоугольных сигналов.

Процесс измерения длительностей Th и Tl реализован так, что за время пока, T/C1 считает длительность Th текущего сигнала, производится сохранения в память данных информации о длительности Tl, который был отсчитан перед началом работы Т/С1. И наоборот, пока работает Т/С0 — сохраняются данные о Th.

После измерения Th и Tl одного из 5-ти импульсов происходит вызов П/П вычисления значения температуры Тх. Результат выполнения данной П/П — число, которые храниться в памяти данных по адресу 0х40 и 0x41 (0x40-адрес ячейки где храниться информация о целом значении Tx, 0x41 — адрес ячейки где храниться десятичный остаток значения Tx).

В итоге форма представления значения температуры на N-нном датчике такова:. Y,

где XXX — трехзначное цело числа Tx, а Y — десятичный остаток числа Tx.

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

Тогда, согласно работе основного модуля ПО, происходит выpов П/П сравнения Tx c уставками на каждом из измерительных каналов. Это организовано в подцикле, где осуществляется измерение текущего сигнала.

После вычисления и сравнения 5-ти значений Тх для каждого из датчиков, происходит проверка флага нажатия кнопки запроса для вывода Tx N-го датчика на дисплей. Согласно алгоритму работы П/П обработки прерывания, если нажимается кнопка «ТЕМР», а затем нажимается одно из кнопок 1,2,3,4 или 5, то определенной переменной F присваивается значение 1.5 нажатой кнопки. Тогда при проверке флага F, значение F будет от 1 до 5 если кнопка была нажата. Значение F будет нуль если кнопка для запроса вывода температуры не нажималась. В результате будет произведен вызов П/П вывода значения температуры Tx для N-го датчика на дисплей, если значение F не будет равно нулю. Так реализована работа СЦКТ на программном уровне.

На программном уровне проектирования присутствует возможность уменьшения погрешности измерения. Для этого необходимо лругим способом использовать систему прерываний МК от внешних источников иным. Необходимо реализовать процесс измерения так, чтобы запуск и остановка Т/С0 и Т/С1 управлялись состоянием на выводе /INT0 и /INT1 соответственно. Тогда запуск процесса измерения осуществляется программно, а работа Т/С0 и Т/С1 происходит на аппаратном уровне. В таком варианте работы устройства отсутствует Δт — аддитивная составляющая погрешности счета (см. раздел 4).

В данном разделе представлен листинг разработанной программы. Программа написана на языке ассемблер.

Листинг ПО:

$NOLIST

$NOMOD51

$LIST

$include (fp51s. lib)

; ===========================================================AT 0START0x0BPORT_PRER

; ===========================================================_main segment CODEPR_mainAT 0x15: ds 1; флаг (0=номер датчика для вывода на дисплей не введен,; 1=запрос на вывод Тх 1-го датчика, 2=запрос Tx; второго.5=запрос Tx 5-го датчика): ds 1; флаг В и Н уставок (0=Н уставка, 1=В уставка): ds 1; флаг-номер датчика (для передачи номера датчика на; котором обнаружена ошибка в П/П вывода сообщения об; ошибке)

; ===========================================================

; Начальные установки

; Fsys=500 Khz

; ===========================================================: MOV CKCON,#00000111b; T/C TAKT F/12SCON,#000000000b; Fxtal/12IEN1,#00000001b; use interrapt from keyboardKBE,#00001111b; ENABLE INTERRUPR REQUEST FOR P0.4-P0.7TCON,#01010000b; T/C1 — ON, T/C2 — ONTMOD,#00010001b; оба таймеры в 16разр режимеTH0TL0TH1TL1:

; ===========================================================

; MAIN

; программа измерения температуры

; P0.2-START PIN

; P0.1-END PIN

; R6-DATA ADRESS

; R4 — BUF FOR SAVE TX

; ===========================================================:INIT0R7,#5; загрузка счетчика импульсовR5,#20; начальный адрес хранения Тх: SETB P0.2; START-IMPULSEP0.2P0.1,#1,$; ожидание 1-го уровня на Р0.1TR1: MOV R6,#0X47h; начальный адрес хранения Nl и NhP0.1,#0,$; ожидание 0-го уровня на Р0.1TR1TR0@R6,TH1; запись в память Nh для периода высокого уровняR0,R6; запись в R0 адреса ячейки (для П/П MAKE_TEMP)R6@R6,TL1; запись в память Nl для периода высокого уровняR1,R6; запись в R1 адреса ячейки (для П/П MAKE_TEMP)R6TH1TL1P0.1,#1,$; ожидание 1-го уровня на Р0.1TR0TR1@R6,TH0; запись в память Nh для периода низкого уровняR2,R6; запись в R3 адреса ячейки (для П/П MAKE_TEMP)R6@R6,TL0; запись в память Nl для периода низкого уровняR3,R6; запись в R3 адреса ячейки (для П/П MAKE_TEMP)MAKE_TEMP; вызов П/П вычисления Tx для измеренного импульса

; на вых — 0х40h адрес ячейки с целым Tx

; 0x41h адрес ячейки с дес. остатком TxR4,@40@R5,R4R5R4,@41@R5,R4CHECH_Tx; вызов П/П сравнения Tx с уставкамиR6TH0TL0R7,CICLE: MOV A,FLAG1NODISPOUT; проверка флага запроса вызова, если flag=0 то не; надо выводитьDISP_TEMP; вызов П/П вывода Tx N-го датчика на дисплей: JMP START

; ===========================================================

; П/П вывода Тх на дисплей

; входные переменные:

; flag1 — значение флага определяет для какого датчика выводить tx

; результат выполнения П/П — вывод Тх N-го датчика на дисплей

; ===========================================================_TEMP: USING 3

; проверка какая кнопка нажатаA,FLAG1A,#1,NED1R0,@0X20hR1,@0X21h: CJNE A,#2,NED2R0,@0X22hR1,@0X23h: CJNE A,#2,NED3R0,@0X24hR1,@0X25h: CJNE A,#2,NED4R0,@0X26hR1,@0X27h: CJNE A,#2,NED5R0,@0X28hR1,@0X29h: MOV R0,@0X30hR1,@0X31h

; преобразование Tx (разбиение числа на цифры)A,R0B,#00001010bABR6,BA,BB,#00001010bABR5,BR4,AR7,R1

; В РЕЗУЛЬТАТЕ R4 R5 R6 — ЦИФРЫ ЦЕЛОГО

; R7 — ЦИФРА ДЕСЯТИЧНОГО ОСТАТКА Тх

; преобразование r4-r7 в когды для пересылки (ДОПИСЫВАЕМ 3 В СТАРШУЮ ТЕТРАДУ)R4,#00110000bR5,#00110000bR6,#00110000bR7,#00110000b

; ПЕРЕСЫЛКА КОДОВ

SIMV: MOV P2,R4P0.7P0.7P2,#11111111b,#1d

SIMV: MOV P2,R5P0.7P0.7P2,#11111111b,#1d

SIMV: MOV P2,R6P0.7P0.7P2,#11111111b,#1d

SIMV: MOV P2,#00101110b; POINTP0.7P0.7P2,#11111111b,#1d

SIMV: MOV P2,R7P0.7P0.7P2,#11111111b,#1d

; ===========================================================

; П/П сравнений Tx с уставками

; входные параметры:

; 0x50 — адрес байта, где хранится число — сколько раз вызывалась П/П

; это число нужно, чтобы знать для какого датчика какие уставки использовать

; что храниться в адресах:

; 0x67h-0x70h — уставки для 1-го датчика

; 0x71h-0x74h — уставки для 2-го датчика

; 0x75h-0x78h — уставки для 3-го датчика

; 0x79h-0x82h — уставки для 4-го датчика

; 0x83h-0x86h — уставки для 5-го датчика

; выходные переменные:

; переменная FLFORERR — значение переменной опеределяет номер датчика на; котором выявлена ошибка

; переменная имеет место только когда ошибка выявлена, но значения; присваиваются в любом случае, тк

; сначала определяется для какого датчика надо производить сравнение,; присваивается значение переменной FRFORERR,

; А ЗАТЕМ уже происходит сравнение

; ===========================================================_Tx: USING3R0,@0X50hR0@0x50h,R0R0,#1d,TO2R0,@67hR1,@68hR2,@69hR3,@70hFLFORERR,#1CHECK: CJNE R0,#1d,TO3R0,@71hR1,@72hR2,@73hR3,@74hFLFORERR,#2CHECK: CJNE R0,#1d,TO4R0,@75hR1,@76hR2,@77hR3,@78hFLFORERR,#3CHECK: CJNE R0,#1d,TO5R0,@79hR1,@80hR2,@81hR3,@82hFLFORERR,#4CHECK: MOV R0,@83hR1,@84hR2,@85hR3,@86hR0@0x50h,R0; ОЧИСТКА СЧЕТЧИКА ВЫЗОВОВ п/п ТК ЦИКЛ ИЗМЕРЕНИЯ — ; 5 ИМПУЛЬСОВFLFORERR,#5CHECK

; R0. R1 — HIGH UST, R2. R3 — LOW UST FOR N D: MOV R4,@0X40hR5,@0X41h; R4.45 — TX

; сравнение с нижней уставкойA,R2A,R4ERR_LCHECK_HA,R3A,R5ERR_LCHECK_H

; сравнение с верхней уставкой_H: MOV A,R2A,R0NOTERRERR_H: MOV A,R5A,R1ENDCHECKERR_H: USING0

; ===========================================================

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

; входные параметры:

; R0,R1,R2,R3-адреса ячеек памяти данных, где храняться значения периодов Th; и Tl датчика

; выходные параметры:

; 0X40 — адрес ячейки, где храниться целое значение температуры (1 байт)

; 0X41 — адрес ячейки, где храниться десятичный остаток значения; температуры (1 байт)

; форма представления T: Х. У

; ===========================================================_TEMP:

; перезапись адресов из банка 0 в банк 1A,R0B,R11R3,@AR4,@B0A,R2B,R31

; — ———————————————R5,@AR6,@B

; перевод Th из W в FPR3,@R0R4,@R1W_TO_FP@0x45h,R2@0x46h,R3@0x47h,R4

; перевод Tl из W в FPR3,R5R4,R6W_TO_FP

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

; деление Th на Tl

; загрузка делителя (Tl)R6,R3R7,R4

; загрузка делимого (Th)R2,@0x45hR3,@0x46hR4,@0x47hDIV_FP; OUT — R2 R3 R4

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

; умножение Th/Tl на 751

; загрузка множителя Th/TlR5,R2R6,R3R7,R4

; загрузка множителя 751R3,#00000010bR4,#11101111bW_TO_FP; перевод в 754 из W в FPMUL_FP; OUT — R2 R3 R4

; запись результата как вычитательR5,R2R6,R3R7,R4

; вычитание

; загрузка вычитаемого 421R3,#00000001bR4,#10100101bW_TO_FP; перевод 421 из W в FPSUB_FP; OUT — R2 R3 R4 в формате FPCREAT_MAIN_OST; вызов подпрограммы вычисления целой части; значения Тх и дес. остатка в формате W

; — ———————————————-

; — ———————————————-

; подпрограмма вычисления целой части и десятичного остатка Tx из FP в W

; входные параметры:

; R2,R3,R4 — ЧИСЛО Tx В ФОРМАТЕ FP

; выходные параметры:

; 0X40 — адрес ячейки, где храниться целое значение температуры

; 0x41 — адрес ячейки где хранится десятичный остаток

; выходные параметры передаются в формате W

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

; создание делителя_MAINOST:R0,R2B,#10; ПРОМЕЖУТОЧНЫЙ ДЕЛИТЕЛЬA,#1; ОСНОВНОЙ ДЕЛИТЕЛЬ: MUL ABR0,LOOP1R6,#0R7,AR5,#1DIV8; OUT — R5, R3 R4@0x40,R5R0,#5; СЧЕТЧИК: MOV R1,R5R6,#0R7,#10A,R3R5,R4: MOV R3,AR4,R5R5,#1DIV8R5,#0,LOOP2R0,LOOP3@0x41,R1

; =====================================================

; подпрограмма обработки прерывания порта Р1

; определяет какая кнопка нажата и в зависимости от этого, согласно алгоритму,

; производит дальнейший скан клавиатуры для считывания уставок или фиксирует; номер датчика для которого надо вывести Tx или вызывает П/П ошибки ввода; данных,

; если дважды нажата запятая

; =====================================================_PRER:2FLAG1,#0dFLAG2,#0,d

; начало сканирования клавиатуры через порт Р1P1,#01110000bR2,P1

; проверка нажата ли кнопка TEMPR2,#01110001b,NOTEMP

; кнопка TEMP нажата, проверка какая кнопка (номер датчика) нажата

; в соответствии с этим запись в регистры r0-r3 данных об Nh и Nl чтобы

; потом вызвать П/П вычисления Tx: MOV R2,P1R2,#01111000,NO1R0,@0X47h; adress high TH byte D1R1,@0X48h; adress high TL byte D1R2,@0X49h; adress low TH byte D1R3,@0X50h; adress low TL byte D1FLAG1,#1dWENT1: CJNE R2,#01110100,NO2R0,@0X51h; adress high TH byte D2R1,@0X52h; adress high TL byte D2R2,@0X53h; adress low TH byte D2R3,@0X54h; adress low TL byte D2FLAG1,#2dWENT1: CJNE R2,#01110010,NO3R0,@0X55h; adress high TH byte D3R1,@0X56h; adress high TL byte D3R2,@0X57h; adress low TH byte D3R3,@0X58h; adress low TL byte D3FLAG1,#3dWENT1CJNE R2,#10111000,NO4R0,@0X59h; adress high TH byte D4R1,@0X60h; adress high TL byte D4R2,@0X61h; adress low TH byte D4R3,@0X62h; adress low TL byte D4FLAG1,#4d: CJNE R2,#10110100,NO5R0,@0X63h; adress high TH byte D5R1,@0X64h; adress high TL byte D5R2,@0X65h; adress low TH byte D5R3,@0X66h; adress low TL byte D5FLAG1,#5dWENT1: JMP D1

; ожидание пока будет нажата кнопка ENTER: MOV P1,#00010000bR2,P1R2,#00010001b,WENT1FLAG1,#0dKBFENDSKAN

; кнопка TEMP не нажата, следовательно скан нажата-ли кнопка UST: CLR R0R3,#3d: CLR KBFP1,#10110000bR2,P1R2,@10110001b,NOUST

; кнопка UST нажата, скан клавиатуры на прием первой цифры уставки

; уставка в формате ABC. D (3 цифры целого и 1 цифра остаток): MOV P1,#01110000bP1,#01111000b,NE1R7,#1dP2,#00110001bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#01110100b,NE2R7,#2dP2,#00110010bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#01110010b,NE3R7,#3dP2,#00110011bP0.7P0.7P2,#11111111bPOPAL: MOV P1,#10110000bP1,#10111000b,NE4R7,#4dP2,#00110100bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#10110100b,NE5R7,#5dP2,#00110101bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#10110010b,NE6R7,6dP2,#00110110bP0.7P0.7P2,#11111111bPOPAL: MOV P1,#11010000bP1,#11011000b,NE7R7,#7dP2,#00110111bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#11010100b,NE8R7,#8dP2,#00111000bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#11010010,NE9R7,#9dP2,#00111001bP0.7P0.7P2,#11111111bPOPAL: MOV P1,#11100000bP1,#11101000b,NE0R7,#0dP2,#00110000bP0.7P0.7P2,#11111111bPOPAL: CJNE P1,#11100100b,NEPR4,#FFh; ФЛАГ ЗАПЯТОЙP2,#00101110bP0.7P0.7P2,#11111111bPOPAL: JMP P1: DEC R3

; первая цифра уставки введена, ожидание ввода 2-й цифры целого уставки

; или нажатия кнопки ENT.

; если еще одна цифра уставки введена то ожидание ввода 3-й цифры целого

; или кнопки ENT.

; нажатие запятой фиксируется флагом-регистром R4, если запятая нажата то

; ввод цифры определяется как десятичный остаток уставки и далее окончание; приема значения уставки.: MOV P1,#11100000bR2,P1R2,#11100001b, WENT2A,FLAG2F2E1FLAG2,#1bE1: MOV FLAG2,#0bENDUST: MOV P1,#01110000bP1,#01111000b,NEE1R5,#1dP2,#00110001bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#01110100b,NEE2R5,#2dP2,#00110010bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#01110010b,NEE3R5,#3dP2,#00110011bP0.7P0.7P2,#11111111bPOPAL2: MOV P1,#10110000bP1,#10111000b,NEE4R5,#4dP2,#00110100bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#10110100b,NEE5R5,#5dP2,#00110101bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#10110010b,NEE6R5,6dP2,#00110110bP0.7P0.7P2,#11111111bPOPAL2: MOV P1,#11010000bP1,#11011000b,NEE7R5,#7dP2,#00110111bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#11010100b,NEE8R5,#8dP2,#00111000bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#11010010,NEE9R5,#9dP2,#00111001bP0.7P0.7P2,#11111111bPOPAL2: MOV P1,#11100000bP1,#11101000b,NEE0R5,#0dP2,#00110000bP0.7P0.7P2,#11111111bPOPAL2: CJNE P1,#11100100b,NEEPERROR_DPOINR; вызов П/П вывода ошибки на; дисплей (дважды нажата кнопка запятой)ENDSKAN: CLR KBFWAIT: CJNE R4,#FFh,NOTPR6,R5: MOV P1,#00010000bR2,P1R2,#00010001b,WAIT2A,FLAG2F2E1_2FLAG2,#1bE1_2: MOV FLAG2,#0,bENDUST

; переход по метке означает что введена вторая/третья цифра целого числа

; уставки и надо сформировать новое число, т.е. было A, СТАЛО AB (или было AB; СТАЛО ABC): MOV A,R7B,#00001010bABB,R6ABR7,AR0R0,FROMR3: MOV P1,#00010000bR2,P1R2,#00010001b,WAIT3A,FLAG2F2E1_3FLAG2,#1bE1_3: MOV FLAG2,#0,bENDUST: LCALL SET_USTR0R0,#6d,FROM3: MOV P1,#11010000bR2,P1R2,#11010001b,NORSTPCON; ПЕРЕЗАГРУЗКА МК (СБОР ФЛАГА POF в регистре PCON)PCON,00010000bENDSKAN: MOV P1,#11100000bR2,P1R2,#11100010b,SKAN_PADCLR_DISP; вызов П/П очистки дисплея вследствие; нажатия кнопки CLR: USING 0KBF

; ===============================================

; П/П сохранения уставок в память

; вызывается 10 раз, каждый раз по вызову сохраняет набор уставок (2 байта; r7. r6 уставки в память)

; входные переменные:

; r0 — счетчик указывающий номер датчика, для которого вводится В или Н; уставка

; flag2 — переменная-флаг, если =0 то Н уставка, если =1 то В уставка

; выходные переменные отсутствуют

; результат выполнения ПП — данные в памяти

; ===============================================_UST: CJNE R0,#1d,NOD1A,FLAG2NODL1@0X67h,R7@0X68h,R6: MOV @0X69h,R7@0X70h,R6: CJNE R0,#1d,NOD2A,FLAG2NODL2@0X71h,R7@0X72h,R6: MOV @0X73h,R7@0X74h,R6: CJNE R0,#1d,NOD3A,FLAG2NODL2@0X75h,R7@0X76h,R6: MOV @0X77h,R7@0X78h,R6: CJNE R0,#1d,NOD4A,FLAG2NODL2@0X78h,R7@0X79h,R6: MOV @0X80h,R7@0X81h,R6: MOV A,FLAG2NODL2@0X78h,R7@0X79h,R6: MOV @0X80h,R7@0X81h,R6

; ====================================================

; П/П вывода на дисплей сообщения «ERROR DOUBLE POINT»

; ====================================================_DPOINT: USING 5P2,#01000101b; EP0.7P0.7P2,#11111111bP2,#01010010b; RP0.7P0.7P2,#11111111bP2,#01010010b; RP0.7P0.7P2,#11111111bP2,#01000101b; OP0.7P0.7P2,#11111111bP2,#01000101b; RP0.7P0.7P2,#11111111bP2,#000000001b; PROBELP0.7P0.7P2,#11111111bP2,#01000100b; DP0.7P0.7P2,#11111111bP2,#01001111b; OP0.7P0.7P2,#11111111bP2,#01010110b; UP0.7P0.7P2,#11111111bP2,#01000010b; BP0.7P0.7P2,#11111111bP2,#01001000b; LP0.7P0.7P2,#11111111bP2,#01000101b; EP0.7P0.7P2,#11111111bP2,#00000000b; PROBE;P0.7P0.7P2,#11111111bP2,#01010000b; PP0.7P0.7P2,#11111111bP2,#01001111b; OP0.7P0.7P2,#11111111bP2,#01001001b; IP0.7P0.7P2,#11111111bP2,#01001110b; NP0.7P0.7P2,#11111111bP2,#01010100b; TP0.7P0.7P2,#11111111b

; ====================================================

; П/П вывода на дисплей сообщения «ERR LOW UST ON Dx»

; входные переменные:

; флаг FLRORPRER — значение флага определяет на каком датчике обнаружена; ошибка (1-5)

; ====================================================_L: USING 5P2,#01000101b; EP0.7P0.7P2,#11111111bP2,#01010010b; RP0.7P0.7P2,#11111111bP2,#01010010b; RP0.7P0.7P2,#11111111bP2,#00000000b; PROBELP0.7P0.7P2,#11111111bP2,#01001100b; LP0.7P0.7P2,#11111111bP2,#01001111b; OP0.7P0.7P2,#11111111bP2,#01010111b; WP0.7P0.7P2,#11111111bP2,#00000000b; PROBELP0.7P0.7P2,#11111111bP2,#01010110b; UP0.7P0.7P2,#11111111bP2,#01010011b; SP0.7P0.7P2,#11111111bP2,#01010100b; TP0.7P0.7P2,#11111111bP2,#00000000b; PROBELP0.7P0.7P2,#11111111bP2,#001001111b; OP0.7P0.7P2,#11111111bP2,#01001110b; NP0.7P0.7P2,#11111111bP2,#00000000b; PROBELP0.7P0.7P2,#11111111bP2,#01000100b; DP0.7P0.7P2,#11111111bR0,FLFORERRR0,#00110000bP2,R0; n (НОМЕР ДАТЧИКА)P0.7P0.7P2,#11111111b

; ====================================================

; П/П вывода на дисплей сообщения «ERR HIGH UST ON Dx»

; входные переменные:

; флаг FLRORPRER — значение флага определяет на каком датчике обнаружена; ошибка (1-5)



1) Микроконтроллеры семейства MCS-51 — Режим доступа: #»670052.files/image012.gif»>


Спецификация

Позиц. Обознач.

Наименование

Кол.

Конденсаторы

С1

К53-18 4.7мкФ х 16В, 10% <http://www.chipdip.ru/product0/22663.aspx> 1

С2

К10-17Б имп.0.1 мкФ X7R,10%, 0805 <http://www.chipdip.ru/product0/77059545.aspx>1

C3

КМ5Б М47 22пФ, 10%

1

C4

КМ5Б М47 22пФ, 10%

1

Резисторы

R1

СП3-19а, 0.5 Вт, 47 Ом

1

R2

CF-25 (С1-4) 0.25 Вт, 1.0 кОм, 5% <http://www.chipdip.ru/product0/44435.aspx>1

R3

KNP-100 1Вт, 5% 2.2 ом

1

R4

CF-25 (С1-4) 0.25 Вт, 1 кОм, 5%

Генератор

Q1

HC49-SM

1

Микросхемы

DD1

AT89C51RB2

1

DD2

PC 2001L

1

AD1

TMP06B

5

Разъем

Х1

B4B-PH-K-S

1