Проектирование системы сбора данных

Проектирование системы сбора данных
1. ВВЕДЕНИЕ
В настоящее время проектированию измерительных систем уделяется много времени.
Делается большой акцент на применение в этих системах электронно-цифровых
приборов. Высокая скорость измерения параметров, удобная форма представления
информации, гибкий интерфейс, сравнительно небольшая погрешность измерения по
сравнению с механическими и электромеханическими средствами измерения все эти и
многие другие преимущества делаю данную систему перспективной в развитии и в
дальнейшем использовании во многих отраслях производства.
Развитие микроэлектроники и широкое применение ее изделий в промышленном
производстве, в устройствах и системах управления самыми разнообразными
объектами и процессами является в настоящее время одним из основных направлений
научно-технического прогресса.
Использование микроконтроллеров в изделиях не только приводит к повышению
технико-экономических показателей (надежности, потребляемой мощности, габаритных
размеров), но и позволяет сократить время разработки изделий и делает их
модифицируемыми, адаптивными, а также позволяет уменьшить их стоимость.
Использование микроконтроллеров в системах управления обеспечивает достижение
высоких показателей эффективности при низкой стоимости.
Системы сбора данных в наши дни сделали большой шаг в вперед и в плотную
приблизились к использованию совершенных электронных технологий. Сейчас, многие
системы сбора данных состоящие из аналогового коммутатора, усилителя
выборки-хранения, АЦП, стали размещать на одной интегральной микросхеме, что
сравнительно повлияло на скорость обработки данных, удобство в использовании, и
конечно же на их стоимость.
2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
Требуется спроектировать систему сбора данных предназначенную для сбора и
первичной обработки информации поступающей с четырех датчиков давления и датчика
контроля за давлением.
Основные характеристики: Количество каналов подключения датчиков давления4
Количество линейных датчиков
статическая характеристика
диапазон измеряемого давления
собственная погрешность измерения3
U(p)=a0p+b a0=0.1428 b=-0.71
5..50 КПа
0.1%
Количество нелинейных датчиков
статическая характеристика
диапазон измеряемого давления
собственная погрешность измерения1
U(p)=a0p+a1p2+a2p3+b a0=0.998, a1=0.003 a2=-0.001 b=-2.5
0.01..5 Мпа
0.1%
Максимальная погрешность одного канала не более0.5%
Количество развязанных оптоизолированных входов для подключения датчика
контроля за давлением
Активный уровень
Выходное напряжение логического нуля
Выходное напряжение логической единицы
Максимальный выходной ток
логического нуля мА
логической единицы мА1
1
уровень ТТЛШ
уровень ТТЛШ
2.5
1.2
Режим измерения давленияСтатический
Базовая микро-ЭВМ89С51 фирмы Atmel

3. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ. ОБОБЩЕННЫЙ АЛГОРИТМ РАБОТЫ
Структурная схема системы сбора данных представлена на рис.1
Обобщенная структурная схема системы сбора данных.

ДД1,ДД2,ДД3 – линейные датчики давления,
ДД4- нелинейный датчик давления,
ДКД1, ДКД2 – датчики контроля за давлением
AD7890 – АЦП, УВХ, ИОН, аналоговый коммутатор,
98С51 – микро-ЭВМ,
WDT –сторожевой таймер.
Рисунок 1.
Датчики давления преобразовывают измеренное давление в электрический сигнал.
Нормирующие усилители преобразовывают выходное напряжение с датчиков давления к
входному напряжению АЦП.
AD7890 (далее АЦП) служит для того чтобы, переключать требуемый канал
коммутатора, преобразовать аналоговую величину напряжения в соответствующий ей
двоичный цифровой код.
Однокристальная микро-ЭВМ предназначена для того чтобы:
производить расчет - Р(код) по известной статической характеристике датчика
давления;
передавать рассчитанное давление по последовательному интерфейсу RS-232 в ПК.
Буфер последовательного интерфейса RS-232 введен в схему, для того чтобы
преобразовывать логические уровни между ПК и микро-ЭВМ и микро-ЭВМ и ПК.
Т.К. работа системы производится в автономном режиме и она не предусмотрена для
работы с оператором, то в состав системы дополнительно вводится интегральная
микросхема сторожевого таймера, предназначенная для вывода микро-ЭВМ из
состояния зависания и ее сбросе при включении питания.
Временная диаграмма работы сторожевого таймера представлена на листе 2
графической части.
Блок схема обобщенного алгоритма работы представлена в приложении 4.
При включении питания микро-ЭВМ 89С51 реализует подпрограмму инициализации (1.
инициализация УАПП, 2. установка приоритета прерываний, 7. разрешение
прерываний). По запросу от ПК “Считать измеренное давление с датчика N” (где N –
номер датчика давления), МП последовательно выдает с линии 1 порта 1(Р1.1), байт
данных (в котором 1-ый, 2-ой и 3-ий биты указывают на выбор канала
мультиплексора) на вход АЦП — DATA IN. Прием каждого бита этого байта происходит
по фронту импульсов сигнала поступающего на вход SCLK от МП с линии 2 порта 1 (Р
1.2). Передача этого байта стробируется сигналом (низкий уровень), поступающего
на входот МП с линии 4 порта 1 (см. графическую часть лист 2) Приняв байт
информации АЦП производит переключение требуемого канала. После этого МП выдает
отрицательный импульс на вывод с линии 7 порта 1 и по положительному переходу
этого импульса начинается процесс преобразования напряжение в двоичный код,
которое поступает от датчика давления – N. По истечении 5.9 mс (время
преобразования ) АЦП готов к последовательной передачи полученного 12-ти
разрядного двоичного кода. Процесс передачи данных от АЦП к МП производится при
стробировании сигнала (низкий уровень), поступающего с линии 5 порта 1 на вывод
(см. графическую часть лист 2). Формат посылки состоит из 15-ти бит (первые три
бита несут за собой номер включенного текущего канала, а остальные 12 бит
двоичный код ). Приняв двоичный код, МП путем математических вычислений(см. п.5)
находит зависимость Р(код) и посылает в ПК по последовательному интерфейсу
RS-232 полученное значение давления P. На этом цикл работы системы
заканчивается.
4. РАЗРАБОТКА И РАСЧЕТ ЭЛЕМЕНТОВ ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ
4.1 Выбор микропроцессорного комплекта
В соответствии с заданием ядром системы послужила однокристальная микро-ЭВМ
89С51 фирмы Atmel.
Основные характеристики однокристальной микро-ЭВМ 89С51:
• Совместима с однокристальной микро-ЭВМ серии MCS-51
• 4Kb ре-программируемой флешь памяти
допустимо: 1000 циклов Записи/Стирания
• Рабочий диапазон частоты синхронизации : от 0 Гц до 24 МГц
• 128 x 8-бит встроенного ОЗУ
• 32 программируемых I/O линии
• Два 16-разрядных таймер/счетчика
• Семь источников внешних прерываний
• Программируемый УАПП
• Возможность включения режима пониженного энергопотребления
4.1.1 Аппаратное сопряжение ПК и микроконтроллера
Для решения задачи сопряжения ПК и микроконтроллера было решено использовать
интерфейс RS-232C.
Последовательный порт используется в качестве универсального асинхронного
приемопередатчика (УАПП) с фиксированной или переменной скоростью
последовательного обмена информацией и возможностью дуплексного включения.
Последовательный интерфейс микроконтроллера МК-51 может работать в следующих
четырех режимах:
Режим 0.Информация передается и принимается через вход RxD приемника (вывод
P3.0). Через выход передатчика TxD (вывод P3.1) выдаются импульсы синхронизации,
стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки
– 8 бит. Частота приема и передачи – тактовая частота микроконтроллера.
Режим 1.Информация передается через выход передатчика TxD, а принимается через
вход приемника RxD. Формат посылки – 10 бит: старт-бит (ноль), восемь бит
данных, программируемый девятый бит и стоп-бит (единица). Частота приема и
передачи задается таймером/счетчиком 1.
Режим 2.Информация передается через выход передатчика TxD, а принимается через
вход приемника RxD. Формат посылки – 11 бит: старт-бит (ноль), восемь бит
данных, программируемый девятый бит и 2 стоп-бита (единицы). Передаваемый
девятый бит данных принимает значение бита ТВ8 из регистра специальных функций
SCON. Бит ТВ8 в регистре SCON может быть программно установлен в “0” или в “1”,
или в него, к примеру, можно поместить значение бита Р из регистра PSW для
повышения достоверности принимаемой информации (контроль по паритету). При
приеме девятый бит данных принятой посылки поступает в бит RB8 регистра SCON.
Частота приема и передачи в режиме 2 задается программно и может быть равна
тактовой частоте микроконтроллера деленной на 32 или на 64.
Режим 3.Режим 3 полностью идентичен режиму 2 за исключением частоты приема и
передачи, которая в режиме 3 задается таймером/счетчиком 1.
Для реализации обмена информацией между ПК и микроконтроллером наиболее удобным
является режим 2, т.к. дляработы в этом режиме не требуется таймер/счетчик. Этот
режим полностью удовлетворяет предъявленным требованиям.
4.1.2 Выбор кварцевого резонатора
Для работы МП необходим кварцевый резонатор который подключается к выводам XTAL1
и XTAL2 (см. графическую часть курсового проекта, лист 1)
Рабочая частота кварцевого резонатора непосредственно связана со скоростью
работы УАПП, мы выбираем из п.1 fрез=11.059 МГц
4.1.3 Выбор скорости приема/передачи по RS-232
Скорость приема/передачи, т.е. частота работы универсального асинхронного
приемопередатчика (УАПП) в режиме 2 зависит от значения управляющего бита SMOD в
регистре специальных функций.
Частота передачи определяется выражением:
f=(2SMOD/64)fрез.
Иными словами, при SMOD=0 частота передачи равна (1/64)fрез, а при SMOD=1 равна
(1/32)fрез.
Исходя из вышеизложенного, выберем частоту приема данных при SMOD=1. Если
fрез=11,059 МГц, тогда частота приема данных будет 19,2 КБод.
Другие значения частот кварца могут быть выбраны из таблиц в п.1 и п.2.
4.1.4 Разработка формата принимаемых и передаваемых данных по RS-232
Формат принимаемых и передаваемых данных почти полностью описан режимом 2 работы
последовательного интерфейса.
Формат должен состоять из 11 бит:
стартовый бит – ноль;
восемь бит данных;
девятый бит – контроль по паритету, для повышения достоверности принимаемой
информации;
два стоповых бита – единицы.
4.2 Выбор буфера RS-232
Обмен данными между ПК и микроконтроллером будет производиться по
последовательному интерфейсу RS-232. Т.к. стандартный уровень сигналов RS-232 -
-12 В и +12 В, а стандартный уровень сигналов асинхронного интерфейса
микроконтроллера 89С51 – +5 В необходимо обеспечить согласование уровней между
RS-232 и 89С51. Преобразование напряжения будет производить цифровая
интегральная микросхема ADM 202E. Выбор данной микросхемы был произведен исходя
из ТЗ (техническое задание). Основные характеристики цифровой интегральной
микросхемы ADM 202E приведены в табл. 3.
Таблица 3.
Основные характеристики цифровой интегральной микросхемы ADM
202EПараметрМинимальныйМаксимальныйЕдиница измерения
Напряжение питания4.5 5.5 В
Нижний входной лог. порог0.8В
Высокий входной лог. порог2.4В
RS-232 приемник
Входное допустимое напр.-30+30В
Входной нижний парог0.4 В
Входной высокий парог 2.4В
RS-232 передатчик
Выходной размах напр.-+5 В
Сопр. Выхода передатчика300 Ом
Температурный диапазон-40+85C

Функциональная блок-схема интегральной микросхемы ADM 202E представлена на рис.2

Функциональная блок-схема интегральной микросхемы ADM 202E

Рисунок. 2
4.3 Выбор АЦП.
В качестве аналого-цифрового преобразователя послужила интегральная микросхема
фирмы Analog Devices – AD7890-2. Выбор данной микросхемы был произведен исходя
из ТЗ
Основные характеристики:
• 12-разрядный АЦП, время преобразования 5.9 мкс
• Восемь входных аналоговых каналов
• Входной диапазон :
от 0 В до +2.5 В
• Раздельный доступ к мультиплексору и к АЦП
• Встроенный источник опорного напряжения +2.5 В (возможно подключение
внешнего.)
• Высокая скорость, “гибкость”, последовательный интерфейс
• Низкая потребляемая мощность (50 мВт максимум)
• Режим пониженного энергопотребления (75 мкВт).
Функциональная блок-схема интегральной микросхемы AD 7890-2 представлена на
рис.3
Функциональная блок-схема интегральной микросхемы AD 7890-2

Рисунок 3
4.3.1 Расчет погрешности вносимой АЦП.
Аналого-цифровой преобразователь вносит следующие виды погрешностей:
нелинейности (погрешность нелинейности- это максимальное отклонение
линеаризованной реальной характеристики преобразования от прямой линии,
проходящей через крайние точки этой характеристики преобразования АЦП.);
дифференциальной нелинейности(погрешность дифференциальной нелинейности- это
отклонение фактической разности уровней (входного сигнала АЦП),
соответствующим двум соседним переключениям кода, от идеального значения этой
разности, равной 1 МЗР. Для идеального АЦП разница уровней между соседними
переключениями кода в точности равна 1 МЗР.);
погрешность полной шкалы (погрешность полной шкалы- это отклонение уровня
входного сигнала, соответствующего последнему переключению кода от идеального
значения, после того как была откорректирована погрешность биполярного нуля.);
В табл. 4 приведены погрешности взятые из каталога, на интегральную микросхему
AD7890 фирмы Analog Devices
Таблица 4
Основный погрешности интегральной микросхемы AD7890Вид
погрешностиЗначение%
Интегральная нелинейность±1 МЗР0.0244
Дифференциальная нелинейность±1 МЗР0.0244
Полной шкалы±2.5 МЗР0.061
Общая (DАЦП) 0,1098

4.4 Выбор сторожевого таймера.
Т.к. работа системы происходит в автономном режиме и не предусматривает работу
оператора с ней, то для случая зависания микро-ЭВМ в схему системы сбора данных
добавляется интегральная микросхема MAX690AMJA – сторожевой таймер. Выполняющая
две основные функции: выведение МП из состояния зависания и сброс МП при
включении питания.
Основные характеристики интегральной микросхемы МАХ690AMJA:
• Время сброса: 200 мС
• Рабочий диапазон напряжения питания: от 1 до 5.5 В
• Ток потребления: 200 мкА
• температурный диапазон эксплуатации: от –55 до +125 C.
4.5 Выбор интегральной микросхемы операционного усилителя
Нормирующий усилитель выполнен на аналоговой микросхеме OP-27А (операционный
усилитель), исполненной в восьми контактном DIP-корпусе. Основные хар-ки
операционного усилителя OP-27A приведены в табл.5.
Таблица 5
Основные характеристики аналоговой микросхемы ОР-27АНапряжение питания
(UПИТ)В:V+V-
22-22
Напряжение смещения (UСМ)мкВ:25 макс.
Ток смешения (IСМ)нА±40 макс.
Ток сдвига (IСДВ)нА35 макс.
Коэффициент озлобления синфазного сигнала (КООС)501190 макс. (144 Дб)
Коэффициент усиления при разомкнутой обратной связи1800000

В систему сбора данных входят три линейных и один нелинейный датчики давления.
Выходной диапазон напряжения нелинейного датчика давления составляет -2.5..+2.5,
в входной диапазон АЦП – 0..+2.5. Согласовать уровни напряжения выхода датчика
давления и входа АЦП можно с помощью схемы представленной на рис. 4. Данная
схема состоит из: операционного усилителя – DA1, повторителя напряжения – DA2,
схемы смещения – R1 и R2, схемы защиты – VD1 и VD2.. Для того чтобы не
нагружатьисточник опорного напряжения в состав схемы нормирующего усилителя
вводится повторитель напряжения. Данная схема вносит в ССД погрешность.
Нормирующий усилитель

R1,R2 – 40 КОм,
R3 – 20 КОм.
VD1, VD2 – схема защиты
Рисунок 4
4.5.1 Расчет погрешностей нормирующего усилителя
Суммарная погрешность нормирующего усилителя складывается из погрешности
напряжения смещения (DUсм), погрешности тока сдвига (DIсдв), погрешности
обратного тока диодов (В схеме защиты используются диоды марки 1N914A с обратным
током утечки IД ОБР.=25 нА. Рассмотрим худший случай, когда IД ОБР.== 2*IД ОБР.)
(DIд обр.), погрешности КООС (DКООС), погрешности разброса параметров
сопротивлений от номинального значения (DR1 R2 MAX).
Оценка погрешности от напряжения смещения (DUсм)
DUсм= Uсм*Ку
где Ку – коэффициент усиления (в нашем случае Ку=1)
DUсм=25 мкВ
DUсм%=
DUсм%=0.001 %
Оценка погрешности от обратного тока диодов (DIд обр )
U+д= IД ОБР.*R2
U+д=0.002
DIд обр= U+д*Ку
DIд обр=2 мВ
DIд обр%=
DIд обр%=0.0016
Оценка погрешности от КООС (DКООС)
,
где Кд – коэффициент усиления дифференциального сигнала (Кд=1);
КС – коэффициент усиления синфазного сигнала
КС=1/501190
КС=1.96*10-6
DКООС=UВХ СИН MAX*KC,
где UВХ СИН MAX – синфазное максимальное входное напряжение (UВХ СИН MAX=2.5 В).

DКООС=2.5*1.996*10-6
DКООС=7.7 мкВ
DКООС%=
DКООС%=0.0003
Оценка погрешности от тока сдвига (DIсдв)
U+=IСДВ*R2
где U+ - см. рис.4
U+= 0.7 мкВ
DIсдв= U+*Ку
DIсдв=0.7 мкВ
DIсдв%=
DIсдв%=0.00004%
Оценка погрешности вносимой разбросам сопротивлений R1 и R2 от их номинального
значения.
Для того чтобы уменьшить погрешность выбираем сопротивления с отклонениями от
номинального значения ± 0.05%
R1MIN= 39,996 Ом
R2MAX=40,004 Ом
Ток протекаемый через R1 и R2 будет

И тогда общая погрешность нормирующего усилителя будет равна
DНУ=((DR1R1max+DIсдв+DКООС+DIд обр+DUсм)/Ку)*100


DНУ=0.0277778 %(1)

4.6 Выбор и расчет внешних элементов гальванической развязки
В качестве элементов гальванической развязки используется цифровая микросхема
249ЛП5 - оптоэлектронный переключатель на основе диодных оптопар выполненных в
металлостеклянном корпусе. основные характеристики цифровой микросхемы 249ЛП5
приведены в табл. 5.
Таблица 5
Основные характеристики цифровой микросхемы 249ЛП5Электрические параметры
Входное напряжение при IВХ=15 мА не более 1.7 В
Выходное напряжение в состоянии логического нуля0.4 В
Выходное напряжение в состоянии логической единицы2.4
Предельные эксплутационные данные
Входной постоянный ток 12 мА
Входной импульсный ток15 мА
Напряжение питания 5(±0.5) В
Диапазон рабочих температур-60…+85 °С

VT1- КТ3102Г(h21Э=100),
R2, VT1 –схема усиления входного тока,
Рисунок 5
Выходной ток ДКД усиливается с помощью транзистора VT1 т.к. максимальный
выходной ток датчика контроля за давлением меньше, чем входной ток элемента
гальвано развязки.
Значения сопротивления R1 можно рассчитать по следующей формуле

при IД=5 мА, а значение сопротивления R2 будет равно

где UБЭ VT1 – напряжение насыщения на переходе база - эмиттер транзистора
VT1;UВХ_МIN – минимальное входное напряжение (2.4 В - уровень ТТЛШ);
IБ – ток протекающий через базу VT1

где IК – ток протекающий через коллектор VT1 (IК= IД)

5. АПРОКСИМАЦИЯ СТАТИЧЕСКОЙ ХАРАКТЕРИСТИКИ НЕЛИНЕЙНОГО ДАТЧИКА
Уравнение аппроксимированного участка статической характеристики нелинейного
датчика выглядит следующим образом:
U (p) = a*p + b,(2)

где a и b – коэффициенты, представленные в форме чисел с фиксированной точкой.
С АЦП приходит 12-ти разрядный код в диапазоне 0..4095,что соответствует
диапазону входных напряжений 0 ...+2.5 В.
Разрешающую способность по напряжению можно рассчитать как:
U = код*МЗР(Младший Значащий Разряд)(3)

где МЗР =
где UВХ MAX – максимальное входное напряжение подаваемое на вход АЦП;
UВХ MIN – минимальное входное напряжение подаваемое на вход


Выразив p из (2) и приняв во внимание (3), формула нахождения давления от
напряжения примет следующий вид:
Для уменьшения погрешности аппроксимации статическая характеристика нелинейного
датчика давления делится на 4 равных отрезка и находятся коэффициенты a и b (см.
табл.6) для уравнения вида p(код)=a*код+b описывающего каждый из этих отрезков.
Таблица 6
Таблица переведенных коэффициентов№ участкаa10b10a16b16
10.0012030.0103770.004edf0.02a8
20.0012060.0074130.004f030.01e5
30.001219-0.020940.004fe50.055c
40.001245-0.1011480.0051970.19e4

Аппроксимация статической характеристики нелинейного датчика давления была
произведена с помощью программы MATHCAD 8.0 (см п.5)
5.1 Оценка погрешности аппроксимации
Оценка этой погрешности была произведена на программе MATHCAD 8.0 (см п.4), и
она составляет DАПР=0.093 %
6. ВЫБОР ФОРМАТА ДАННЫХ
В курсовом проекте выбран формат чисел с фиксированной точкой.
Для коэффициентов a выделяется три байта под дробную часть и один байт под целую
часть, а для b два байта под дробную часть и один байт под целую часть Для кода
достаточно двух байт, а для результата три байта под целую и два байта под
дробную части соответственно.
6.1 Оценка погрешности от перевода коэффициентов
В соответствии с выбранным форматом данных данную погрешность можно найти так:
Dпер.коэф=Dk*код+Db=2-24*4096-2-16
Dпер.коэф = 0.044 %(4)


7. ОЦЕНКА ПОГРЕШНОСТЕЙ
При расчетах в курсовой работе мы оценили погрешности возникающие от АЦП,
аппроксимации, нормирующего усилителя и других. Суммарная погрешность всей ССД
равняется сумме найденных погрешностей, то есть:
DСУМ=DАЦП+DНУ+DАПР+Dпер.коэф
где DАЦП – погрешность вносимая от АЦП (см табл.4);
DНУ - погрешность от нормирующего усилителя (см. ф.(1));
DАПР - погрешность от аппроксимации(см.п.4);
Dпер.коэф - погрешность от перевода коэффициентов (см. 4)
DСУМ=0,1098+??+0.093+0.044
8. РАСЧЕТ ПОТРЕБЛЯЕМОЙ МОШНОСТИ ОСНОВНЫМИ ЭЛЕМЕНТАМИ СХЕМЫ
Примерную потребляемую мощность можно найти по формуле

где РМП – мощность потребляемая МП(РМП=0,1 Вт);
РАЦП - мощность потребляемая АЦП(РАЦП=0.0050 Вт);
РWDT - мощность потребляемая сторожевым таймером (РWDT=0.001);
PБУФ - мощность потребляемая буфером порта RS-232 (PБУФ=0.01);
PОУ - мощность потребляемая операционным усилителем (PОУ=0.09);

ПРИЛОЖЕНИЯ
Приложение 1
Точные значения кварцевКратностьСкорость передачи
(Кбод)Частота кварца (МГц)
SMOD=0 (1/64)SMOD=1 (1/32)
1115,27,37283,6864
257,63,68641,8432
338,42,45761,2288
428,81,84320,9216
523,041,47460,73728
619,21,22880,6144
716,4571421,0532570,526628
814,40,92160,4608
912,80,81920,4096
1011,520,737280,36864
129,20,61440,3072

Приложение 2
Возможные значения кварцев
SMOD=0КратностьСкорость передачи
(Кбод)Частота кварца (МГц)
SMOD=0 (1/64)SMOD=1 (1/32)
1115,27,3665037,378725
257,63,6738073,698251
338,42,4387112,475377
428,81,8180141,866903
523,041,4430781,504189
619,21,1910221,264355
716,4571421,0091831,094738
814,40,8712290,969007
912,80,7625330,872533
1011,520,6743170,796539
129,20,5388440,685511

SMOD=1КратностьСкорость передачи
(Кбод)Частота кварца (МГц)
SMOD=0 (1/64)SMOD=1 (1/32)
1115,23,6832523,689363
257,61,8369041,849126
338,41,2193561,237689
428,80,9090070,933452
523,040,7215390,752095
619,20,5955110,632178
716,4571420,5045920,547369
814,40,4356150,484504
912,80,3812670,436267
1011,520,3371590,398270
129,20,2694220,342756

Приложение 5
Подпрограмма инициализации
MOV SCON,#10010000b ; устанавливается второй режим УАПП
SETB 87h,1 ;SMOD=1
MOV IP,#00010000b ;высокий уровень приоритета прерывания у приема передатчика
MOV IE,#10010000b ; разрешаем прерывания

Подпрограмма записи 12-ти бит в управляющий регистр AD7890
SETB P1.2 ;Устанавливаем линию SCLK
SETB P1.4; Устанавливаем линию TFS
MOV R1,0Ch ; организовываем счетчик переданных бит (12)
MOV A,R0 ; загружаем а аккумулятор передаваемые биты
MET0:RRC A ; проталкиваем во флаг С передаваемый бит
MOV P1.1,C ; выставляем передаваемый бит на Р1.1
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
DJNZ R2,MET0
CPL P1.4
Подпрограмма задержки на 0.006 сек.
DELAY:MOV R0,C8h
MET1:NOP
DJNZ R0,MET1
RET
Подпрограмма задержки на 0.6 сек.
DELAY2:MOV R0,Ah
`MOV R1,Ah
MET1:NOP
MET2:NOP
DJNZ R1,MET2
DJNZ R0,MET1
RET
Подпрограмма работы сWDT
ACALL DELAY2 ;ожидаем
CPL P1.6
ACALL DELAY2 ;ожидаем
CPL P1.6
Подпрограмма чтения 15-ти бит с линии DATA OUT AD7890
SETB P1.2 ;Устанавливаем линию SCLK
SETB P1.3; Устанавливаем линию RFS
MOV R2,08h ; организовываем счетчик принятых бит в аккумулятор (если R2=0 –
аккумулятор полный
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
ACALL DELAY ;ожидаем
CPL P1.2 ;инверсия Р1.2
MET0:MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
RLC A ; достаем из флага С принятый бит
DEC R2
JZ MET2 ; если байт принят R2=0
MOV R3,A ; тогда занесем из А в R3 принятый байт
CLR A ; и обнулим аккумулятор, если не принят то -
MET2:ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
ACALL DELAY ;ожидаем
DJNZ R2,MET0
MOV R2,07h ;приняли первые восемь бит, теперь приймем еще семь
CPL P1.2 ;инверсия Р1.2
MET3:MOV C,P1.0 ; принимаем бит на Р1.0 и отправляем его во флаг
RLC A ; достаем из флага С принятый бит
DEC R2
JZ MET4
MOV R4,A
CLR A
MET4:ACALL DELAY ;ожидаем
CPL P1.2 ; инверсия Р1.2
ACALL DELAY ;ожидаем
DJNZ R2,MET3 ;ну вот, и все готово младшая часть посылки находится (8 бит) в R3,
а старшая (7 бит) в R4
CPL P1.4
;Подпрограмма выбора коэффициентов нелинейного датчика
MOV DPL,00h
MOV DPH,04h
MOV A,#00001100b
ANL A,R0
RL A
RL A
CLR 0D4H
CLR 0D3H
MOV R0,#0AH
MOV R1,#04H
M1: MOV A,#06H
MOVC A,@A+DPTR
MOV @R0,A
INC R6
INC R0
DJNZ R1,M1
END
;Подпрограмма умножения двух байт (регистры R0, R1 - 1-ый банк) на три (регистры
;R2, R3, R4 - 1-ый банк ), результат помещается в R3, R4, R5, R6, R7 - 0-ой
;банк.
MOV R4,#0h
MOV R5,#0h
MOV R6,#0h
MOV R7,#0h
MOV R3,#0h
MOV R0,#10h
me1:SETB 0D3h
CLR 0D4h
MOV A,R0
RRC A
MOV R0,A
MOV A,R1
RRC A
MOV R1,A
JNC me2
MOV A,R4
ADD A,5h
MOV 5h,A
MOV A,R3
ADDC A,4h
MOV 4h,A
MOV A,R2
ADDC A,3h
MOV 3h,A
me2:CLR 0D4h
CLR 0D3h
MOV A,R4
RRC A
MOV R4,A
MOV A,R5
RRC A
MOV R5,A
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
DJNZ r0,MET1
;Подпрограмма сложения пяти байт(R3, R4, R5, R6, R7 - 0-ой банк.
;) с двумя (R2(0Dh),R3(0Eh) - 0-ый банк), результат помещается в R3(13h),
;R4(14h), R5(15h), R6(16h), R7(17h) - 2-ой банк.
CLR 0D3H ;
CLR 0D4H ;
MOV A,R5
ADD A,R3
MOV 12H,A
MOV A,R4
ADDC A,R2
MOV 11H,A
JNC M1
MOV A,#01
ADD A,11H
MOV 11H,A
JNC M1
MOV A,#01H
ADD A,10H
MOV 10H,A
MOV 14h,0Ch
MOV 13h,0Bh
M1:CLR 0D3H
SETB 0D4H
END
Подпрограмма передачи пяти байт находящихся в R3 R4 R5 R6 R7.
;Выбор второго банка
SETB 0D4h
CLR 0D3h
;Передача первого байта данных
MOV A,R7
MOV C,P;Р - бит четности аккумулятора
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b ;Выставляется приоритет прерываний
NOP
NOP
NOP
;Передача 2 байта данных
MOV A,R6
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 3 байта данных
MOV A,R5
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 4 байта данных
MOV A,R4
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
NOP
NOP
NOP
;Передача 5 байта данных
MOV A,R3
MOV C,P
MOV TB8,C
MOV SBUF,A
MOV IE,#10010000b
END