Проектирование системы сбора данных 1. ВВЕДЕНИЕ В настоящее время проектированию измерительных систем уделяется много времени. Делается большой акцент на применение в этих системах электронно-цифровых приборов. Высокая скорость измерения параметров, удобная форма представления информации, гибкий интерфейс, сравнительно небольшая погрешность измерения по сравнению с механическими и электромеханическими средствами измерения все эти и многие другие преимущества делаю данную систему перспективной в развитии и в дальнейшем использовании
во многих отраслях производства. Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящее время одним из основных направлений научно-технического прогресса. Использование микроконтроллеров в изделиях не только приводит к повышению технико-экономических показателей надежности, потребляемой мощности, габаритных размеров, но и позволяет сократить время разработки изделий
и делает их модифицируемыми, адаптивными, а также позволяет уменьшить их стоимость. Использование микроконтроллеров в системах управления обеспечивает достижение высоких показателей эффективности при низкой стоимости. Системы сбора данных в наши дни сделали большой шаг в вперед и в плотную приблизились к использованию совершенных электронных технологий. Сейчас, многие системы сбора данных состоящие из аналогового коммутатора, усилителя выборки-хранения,
АЦП, стали размещать на одной интегральной микросхеме, что сравнительно повлияло на скорость обработки данных, удобство в использовании, и конечно же на их стоимость. 2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ Требуется спроектировать систему сбора данных предназначенную для сбора и первичной обработки информации поступающей с четырех датчиков давления и датчика контроля за давлением. Основные характеристики Количество каналов подключения датчиков давления4Количество линейных датчиков статическая характеристика диапазон измеряемого давления собственная погрешность измерения3 Upa0pb a00.1428 b-0.71 5 50 КПа 0.1Количество нелинейных датчиков статическая характеристика диапазон измеряемого давления собственная погрешность измерения1 Upa0pa1p2a2p3b a00.998, a10.003 a2-0.001 b-2.5 0.01 5 Мпа 0.1Максимальная погрешность одного канала не более0.5Количество развязанных оптоизолированных входов
для подключения датчика контроля за давлением Активный уровень Выходное напряжение логического нуля Выходное напряжение логической единицы Максимальный выходной ток логического нуля мА логической единицы мА 1 1 уровень ТТЛШ уровень ТТЛШ 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 Р 2. Передача этого байта стробируется сигналом низкий уровень, поступающего
на вход от МП с линии 4 порта 1 см. графическую часть лист 2 Приняв байт информации АЦП производит переключение требуемого канала. После этого МП выдает отрицательный импульс на вывод с линии 7 порта 1 и по положительному переходу этого импульса начинается процесс преобразования напряжение в двоичный код, которое поступает от датчика давления N. По истечении 5.9 с время преобразования
АЦП готов к последовательной передачи полученного 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 программируемых
IO линии Два 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 в регистре специальных функций. Частота передачи определяется выражением f2SMOD64fрез.
Иными словами, при SMOD0 частота передачи равна 164fрез, а при SMOD1 равна 132fрез. Исходя из вышеизложенного, выберем частоту приема данных при SMOD1. Если 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 приемникВходное допустимое напр 3030ВВходной нижний парог0.4ВВходной высокий парог2.4ВRS-232 передатчикВыходной размах напр 5ВСопр. Выхода передатчика300ОмТемпературный диапазон-4085CФункциональная блок-схема интегральной микросхемы
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Общая АЦП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ПИТВVV-22-22Напряжение смещения UСМмкВ25 макс.Ток смешения IСМнА40 макс.Ток сдвига IСДВнА35 макс.Коэффициент озлобления синфазного сигнала КООС501190 макс. 144 ДбКоэффициент усиления при разомкнутой обратной связи180 В систему сбора данных входят три линейных и один нелинейный датчики давления. Выходной диапазон напряжения нелинейного датчика давления составляет -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 Расчет погрешностей нормирующего усилителя Суммарная погрешность нормирующего усилителя складывается из погрешности напряжения смещения Uсм, погрешности тока сдвига Iсдв, погрешности обратного тока диодов В схеме защиты используются диоды марки 1N914A с обратным током утечки
IД ОБР.25 нА. Рассмотрим худший случай, когда IД ОБР. 2IД ОБР. Iд обр погрешности КООС КООС, погрешности разброса параметров сопротивлений от номинального значения R1 R2 MAX. Оценка погрешности от напряжения смещения Uсм Uсм UсмКу где Ку коэффициент усиления в нашем случае Ку1 Uсм25 мкВ Uсм Uсм0.001 Оценка погрешности от обратного тока диодов
Iд обр Uд IД ОБР.R2 Uд0.002 Iд обр UдКу Iд обр2 мВ Iд обр Iд обр0.0016 Оценка погрешности от КООС КООС , где Кд коэффициент усиления дифференциального сигнала Кд1 КС коэффициент усиления синфазного сигнала КС1501190 КС1.9610-6 КООСUВХ СИН MAXKC, где UВХ СИН MAX синфазное максимальное входное напряжение UВХ СИН MAX2.5 В. КООС2.51.99610-6 КООС7.7 мкВ КООС КООС0.0003 Оценка погрешности от тока сдвига Iсдв UIСДВR2 где U – см. рис.4 U 0.7 мкВ Iсдв UКу Iсдв0.7 мкВ Iсдв Iсдв0.00004 Оценка погрешности вносимой разбросам сопротивлений R1 и R2 от их номинального значения. Для того чтобы уменьшить погрешность выбираем сопротивления с отклонениями
от номинального значения 0.05 R1MIN 39,996 Ом R2MAX40,004 Ом Ток протекаемый через R1 и R2 будет И тогда общая погрешность нормирующего усилителя будет равна НУR1R1maxIсдвКООСIд обрUсмКу100 НУ0.0277778 14.6 Выбор и расчет внешних элементов гальванической развязки В качестве элементов гальванической развязки используется цифровая микросхема 249ЛП5 – оптоэлектронный переключатель на основе диодных оптопар выполненных в металлостеклянном корпусе. основные характеристики
цифровой микросхемы 249ЛП5 приведены в табл. 5. Таблица 5 Основные характеристики цифровой микросхемы 249ЛП5 Электрические параметрыВходное напряжение при IВХ15 мА не более 1.7 ВВыходное напряжение в состоянии логического нуля0.4 ВВыходное напряжение в состоянии логической единицы2.4Предельные эксплутационные данныеВходной постоянный
ток 12 мАВходной импульсный ток15 мАНапряжение питания 50.5 ВДиапазон рабочих температур-6085 С VT1- КТ3102Гh21Э100, R2, VT1 схема усиления входного тока, Рисунок 5 Выходной ток ДКД усиливается с помощью транзистора VT1 т.к. максимальный выходной ток датчика контроля за давлением меньше, чем входной ток элемента гальвано развязки.
Значения сопротивления R1 можно рассчитать по следующей формуле при IД5 мА, а значение сопротивления R2 будет равно где UБЭ VT1 напряжение насыщения на переходе база – эмиттер транзистора VT1UВХМIN минимальное входное напряжение 2.4 В – уровень ТТЛШ IБ ток протекающий через базу VT1 где IК ток протекающий через коллектор VT1 IК IД 5. АПРОКСИМАЦИЯ СТАТИЧЕСКОЙ ХАРАКТЕРИСТИКИ НЕЛИНЕЙНОГО ДАТЧИКА Уравнение аппроксимированного участка статической характеристики нелинейного датчика выглядит следующим образом U p ap 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 Таблица переведенных коэффициентов участкаa10b10a16b1610.0012030.0103770.00 4edf0.02a820.0012060.0074130.004f030.01e 530.001219-0.020940.004fe50.055c40.00124 5-0.1011480.0051970.19e4 Аппроксимация статической характеристики нелинейного датчика давления была произведена с помощью программы MATHCAD 8.0 см п.5 5.1 Оценка погрешности аппроксимации Оценка этой погрешности была произведена на программе MATHCAD 8.0 см п.4, и она составляет АПР0.093 6. ВЫБОР
ФОРМАТА ДАННЫХ В курсовом проекте выбран формат чисел с фиксированной точкой. Для коэффициентов a выделяется три байта под дробную часть и один байт под целую часть, а для b два байта под дробную часть и один байт под целую часть Для кода достаточно двух байт, а для результата три байта под целую и два байта под дробную части соответственно. 6.1 Оценка погрешности от перевода коэффициентов В соответствии с выбранным форматом данных данную погрешность можно найти так пер.коэфkкодb2-244096-2-16 пер.коэф 0.044 4 7. ОЦЕНКА ПОГРЕШНОСТЕЙ При расчетах в курсовой работе мы оценили погрешности возникающие от АЦП, аппроксимации, нормирующего усилителя и других. Суммарная погрешность всей ССД равняется сумме найденных погрешностей, то есть СУМАЦПНУАПРпер.коэф где АЦП погрешность вносимая от
АЦП см табл.4 НУ – погрешность от нормирующего усилителя см. ф.1 АПР – погрешность от аппроксимациисм.п.4 пер.коэф – погрешность от перевода коэффициентов см. 4 СУМ0,10980.0930.044 8. РАСЧЕТ ПОТРЕБЛЯЕМОЙ МОШНОСТИ ОСНОВНЫМИ ЭЛЕМЕНТАМИ СХЕМЫ Примерную потребляемую мощность можно найти по формуле где РМП мощность потребляемая МПРМП0,1 Вт РАЦП – мощность потребляемая
АЦПРАЦП0.0050 Вт РWDT – мощность потребляемая сторожевым таймером РWDT0.001 PБУФ – мощность потребляемая буфером порта RS-232 PБУФ0.01 PОУ – мощность потребляемая операционным усилителем PОУ0.09 ПРИЛОЖЕНИЯ Приложение 1 Точные значения кварцев КратностьСкорость передачи КбодЧастота кварца МГцSMOD0 164SMOD1 1321115,27,37283,6864257,63,68641,843233 8,42,45761,2288428,81,84320,9216523,041, 47460,73728619,21,22880,6144716,4571421, 0532570,526628814,40,92160,4608912,80,81 920,40961011,520,737280,36864129,20,6144 0,3072
Приложение 2 Возможные значения кварцев SMOD0 КратностьСкорость передачи КбодЧастота кварца МГцSMOD0 164SMOD1 1321115,27,3665037,378725257,63,6738073, 698251338,42,4387112,475377428,81,818014 1,866903523,041,4430781,504189619,21,191 0221,264355716,4571421,0091831,094738814 ,40,8712290,969007912,80,7625330,8725331 011,520,6743170,796539129,20,5388440,685 511 SMOD1 КратностьСкорость передачи КбодЧастота кварца МГцSMOD0 164SMOD1 1321115,23,6832523,689363257,61,8369041, 849126338,41,2193561,237689428,80,909007 0,933452523,040,7215390,752095619,20,595 5110,632178716,4571420,5045920,547369814 ,40,4356150,484504912,80,3812670,4362671 011,520,3371590,398270129,20,2694220,342 756 Приложение 5 Подпрограмма инициализации MOV SCON,10010000b устанавливается второй режим УАПП SETB 87h,1 SMOD1 MOV IP,00010000b высокий уровень приоритета прерывания у приема передатчика MOV IE,10010000b разрешаем прерывания Подпрограмма записи 12-ти бит в управляющий регистр AD7890 SETB P1.2 Устанавливаем линию SCLK SETB P1.4
Устанавливаем линию TFS MOV R1,0Ch организовываем счетчик переданных бит 12 MOV A,R0 загружаем а аккумулятор передаваемые биты MET0RRC 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 сек. DELAYMOV R0,C8h MET1NOP DJNZ R0,MET1 RET Подпрограмма задержки на 0.6 сек. DELAY2MOV R0,Ah MOV R1,Ah MET1NOP MET2NOP 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 организовываем счетчик принятых бит в аккумулятор если R20 аккумулятор полный ACALL DELAY ожидаем CPL P1.2 инверсия Р1.2 ACALL DELAY ожидаем CPL P1.2 инверсия Р1.2 MET0MOV C,P1.0 принимаем бит на Р1.0 и отправляем его во флаг
RLC A достаем из флага С принятый бит DEC R2 JZ MET2 если байт принят R20 MOV R3,A тогда занесем из А в R3 принятый байт CLR A и обнулим аккумулятор, если не принят то – MET2ACALL DELAY ожидаем CPL P1.2 инверсия Р1.2 ACALL DELAY ожидаем DJNZ R2,MET0 MOV R2,07h приняли первые восемь бит, теперь приймем еще семь CPL P1.2 инверсия Р1.2 MET3MOV C,P1.0 принимаем бит на Р1.0 и отправляем его во флаг RLC A достаем из флага С принятый бит DEC R2 JZ MET4 MOV R4,A CLR A MET4ACALL 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,ADPTR 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 me1SETB 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 me2CLR 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-ой банк. с двумя R20Dh,R30Eh – 0-ый банк, результат помещается в
R313h, R414h, R515h, R616h, R717h – 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 M1CLR 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