Помощь в написании студенческих работ
Антистрессовый сервис

Проектирование микропроцессорной системы сбора данных на базе микроконтроллера Atmega8515

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

АЦП преобразует аналоговый сигнал в цифровой код и передает его в микроконтроллер (МК). МК вычисляет значение давления поданного на вход ДДН или ДДЛ. После этого, МК опрашивает датчики контроля давления (ДКД), на выходе которых могут быть либо логические ноли, либо логические единицы. Чтобы МК смог обработать данные, нужно преобразовать сигнал с ДКД в такой формат, который поймет МК. Это… Читать ещё >

Проектирование микропроцессорной системы сбора данных на базе микроконтроллера Atmega8515 (реферат, курсовая, диплом, контрольная)

Введение

Задание на курсовой проект

1. Разработка структурной схемы и обобщенного алгоритма работы прибора

2. Разработка и расчет элементов принципиальной электрической схемы

2.1 Схема питания

2.2 Нормирующие усилители на базе AD8532

2.3 Схема подключения МК ATmega8515

2.4 Схема включения АЦП

2.5 Схема включения буфера RS232 MAX1282BEUE

2.6 Схема включения гальванической развязки

3 Оценка максимальной погрешности для ДДЛ

3.1 Оценка максимальной погрешности нормирующего усилителя

3.2 Оценка максимальной погрешности АЦП

3.3 Максимальная оценка погрешности ИОН

3.4 Максимальная оценка погрешности вычисления ДДЛ

4 Оценка максимальной погрешности для ДДН

3 Расчет потребляемой мощности и надежности

3.1 Расчёт потребляемой мощности

3.2 Расчет надёжности

4 Разработка алгоритма вычислений

4.2 Оценка общей максимальной погрешности

5 Разработка программного кода, на языке ассемблера Заключение Приложения

Цель курсового проекта — проектирование микропроцессорной системы сбора данных (МССД), на базе микроконтроллера (МК) Atmega8515 от фирмы ATMEL с ядром AVR. Данные поступают с датчиков трех видов:

— линейный датчик давления (ДДЛ);

— нелинейный датчик давления (ДДН);

— датчик контроля давления (ДКД).

Аналоговые сигналы с ДДЛ и ДДН поступают в схему нормирования. После чего, аналоговые сигналы поступают в аналоговый мультиплексор, или же сразу поступают на вход аналогово-цифровой преобразователя (АЦП).

Дальше все данные оцифровываются и передаются в компьютер (ПК) через буфер RS232.

Основным элементом МССД является МК Atmega8515. Это 8-битный микроконтроллер. Он имеет:

— RISC архитектуру;

— встроенный таймер-счетчик;

— интерфейс USART;

— сторожевой таймер;

— общее количество выводов — 44.

Задание на проектирование

Основные технические характеристики устройства:

— количество линейных датчиков — 1;

— количество нелинейных датчиков — 1;

— количество датчиков контроля давления — 2;

— наименование ДДЛ — ДД73;

— наименование ДДН — ДД33;

— наименование ДКД — ДКД2(2).

Статистическая характеристика линейного датчика ДД73:

. (1)

Коэффициенты статистической характеристики а1 = 0,492, а0 = - 9,76.

Диапазон измерения давления от 0 до 40 кПа. Максимальная погрешность датчика 0,05%. Требуемая погрешность измерений 0,25%.

ДКД2 имеет характеристики:

— активный логический уровень — 1;

— выходное напряжение логического нуля — от минус 5 до минус 4,5 В;

— выходное напряжение логической единицы — от 4,5 до 5 В;

— максимальный выходной ток для логического нуля — 25 мА;

— максимальный выходной ток для логической единицы — 10 мА.

Устройство работает на базе АЦП — MAX1282BEUE, супервизора — MCP100_xTT, буфера RS232 — ADM206EAR, микроконтроллера — Atmega8515−16AI, операционного усилителя — AD8532ARU.

1. Структурная схема и обобщенные алгоритмы работы

На рисунке 1.1 представлена структурная схема системы сбора данных на базе микроконтроллера фирмы Atmel, с ядром AVR.

Рисунок 1.1 — Структурная схема системы сбора данных С датчиков давления ДДЛ и ДДН поступают аналоговые сигналы в совершенно разном диапазоне. Аналогово-цифровой преобразователь (АЦП) MAX1282BEUE имеет входной диапазон от 0 до 2,5 В. Чтобы выходной сигнал с датчиков давления совпадал с входным диапазоном АЦП, нужно поставить схему нормирования.

АЦП преобразует аналоговый сигнал в цифровой код и передает его в микроконтроллер (МК). МК вычисляет значение давления поданного на вход ДДН или ДДЛ. После этого, МК опрашивает датчики контроля давления (ДКД), на выходе которых могут быть либо логические ноли, либо логические единицы. Чтобы МК смог обработать данные, нужно преобразовать сигнал с ДКД в такой формат, который поймет МК. Это осуществляется через гальваническую развязку (ГР).

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

— РВП — разъем внутрисхемного программирования;

— СВ — супервизор;

— ГТИ — гениратор тактовых импульсов;

— ИОН — источник опорного напряжения.

2. Описание работы элементов принципиальной схемы

В целом вся принципиальная электрическая схема микропроцессора сбора данных представлена на листе в графической части 1.

2.1 Схема блока питания

На рисунке 2.1 представлена схема блока питания.

Рисунок 2.1 — Схема блока питания Блок питания формирует питание всей цепи. Без него не будет работать ни один прибор в схеме. Состоит он из стабилизатора напряжения, диодного моста (выпрямитель) и из конденсаторов (керамические и электролитический).

Диодный мост выпрямляет переменное напряжение. Конденсатор C2, емкостью 10 мкФ, используется для фильтрации сигнала поступающего от источника питания. Линейный стабилизатор понижает напряжение с 10 В на входе до 5 В на выходе. Так же на выходе стабилизатора устанавливаются керамический конденсатор С8, емкостью 0,1 мкФ и электролитический конденсатор С10, емкостью 0,1 мкФ для уменьшения помех на выходе блока питания.

2.2 Схема нормирования

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

Схема нормирования нужна для того, что бы сопоставить аналоговые сигналы с датчиков давления с входным уровнем АЦП. Резисторы R1 и R3, для ДДЛ, номиналом 10 кОм и резистор R4, номиналом 1,6 кОм, являются делителем напряжения. R3 и R4 нужны для того, чтобы выходное напряжение (от минус 9,76 до 9,92 В) преобразовать в напряжение от 0 до 2,5 В.

Рисунок 2.2 — Схема нормирования Резистор R2 = R5 = 1 кОм. Резистор R5 служит делителем напряжения. Так же как и в случае с ДДЛ, резистор R5 является делителем напряжения, преобразуя входной аналоговый сигнал (от 0 до 5 В) в напряжение от 0 до 2,5 В.

После преобразования, все сигналы отправляются в усилитель AD8532ARU. Для работоспособности операционного усилителя обязательно потребуется керамическая конденсатор С1, емкостью 0,1 мкФ, установленный между выводами питания.

В среде разработки OrCAD 9.2 была составлена принципиальная схема нормирования и проведен анализ сигналов. Входные сигналы и сигналы, прошедшие через схему нормирования, для ДДЛ представлены на рисунке 2.4, а принципиальная схема нормирования аналоговых сигналов изображена на рисунке 2.3. Принципиальная схема нелинейного датчика давления и схемы нормирования показана на рисунке 2.5.

Рисунок 2.3 — Принципиальная схема нормирования ДДЛ в пакете проектирования OrCAD

Рисунок 2.4 — Сигналы до и после схемы нормирования, для ДДЛ Рисунок 2.5 — Принципиальная схема нормирования ДДН в пакете проектирования OrCAD

Входные сигналы и сигналы, прошедшие через схему нормирования, для ДДН представлены на рисунке 2.6.

Рисунок 2.6 — Сигналы до и после схемы нормирования, для ДДН

2.3 Гальваническая развязка

На рисунке 2.7 представлена схема гальванической развязки.

В самых различных устройствах и системах, например промышленных системах управления, источниках питания, линиях связи, между компьютерами данные в последовательном виде передаются по различным интерфейсам.

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

Данные, поступающие с ДКД обязательно должны пройти через гальваническую развязку (ГР), чтобы получить нужный формат данных, который воспримет МК.

В ГР присутствует оптопара, которая состоит из светодиода и фотоприемника (фототранзистора). Нужна она для того, что бы получить аналоговый сигнал, в диапазоне от 0 до 2,5 В, на выходе. Так как форма изначального аналогового сигнала может быть непредсказуемой.

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

Полученный сигнал проходит через триггер Шмитта, тем самым мы получаем либо логическую единицу, либо логический ноль.

Триггер Шмитта — это компонент электронного устройства, функция которого является формирование постоянно изменяющегося сигнала на входе в серию прямоугольных импульсов на выходе.

2.4 Схема включения АЦП

На рисунке 2.4 представлена схема включения АЦП.

Рисунок 2.4 — Схема включения АЦП Для работоспособности АЦП по рекомендации производителя необходимо подключить 4 конденсатора (С3, С4, С5 и С6), два из которых являются электролитическими (C3 и С6). Емкость конденсаторов С3 и С5 равна 10 мкФ, а емкость конденсаторов С4 и С6 равна 0,1 мкФ. Так же обязательно ко входу REF подключить ИОН, который также нуждается в электролитическом конденсаторе С9 и керамических конденсаторах C11 и C15, емкостью 10, 0,1 и 0,1 мкФ соответственно. ИОН задает рабочий диапазон для сигнала для АЦП.

АЦП преобразует входной аналоговый сигнал с ДДЛ и ДДН в цифровой код, который передается в МК для дальнейшей обработки.

ИОН нужен АЦП для того, чтобы входное напряжение сравнивалось с опорным напряжением, и на основании этой разницы формировался соответствующий цифровой сигнал на выходе, а напряжение равное опорному напряжению, кодировалось как цифровой 0 (начало отсчёта). Данные АЦП в последовательном коде выставляются на вывод SDATA, которые далее поступают в МК для преобразования и передачи в ПК. Вход CS отвечает за запуск — начало работы АЦП. Вход SCLK служит для синхронизации АЦП с МК.

Минимальные и максимальные значения интервалов времени, изображенных на рисунке 2.5, представлены в технической документации производителя АЦП MAX1282BEUE.

Рисунок 2.5 — Временные диаграммы, однофазового режима работы АЦП MAX1282BEUE

По диаграммам (рисунок 2.5) видно, что в начальный момент времени сигнал CS инициирует процесс преобразования и передачи данных. Появление среза на линии CS в начальном состоянии приводит к тому, что выбирается аналоговый вход и начинается преобразование. Во временных диаграммах используются следующие временные интервалы:

— = 35 нс/мин. Установить начальный байт управления до начала работы АЦП;

— = 35 нс/мин. Окончание передачи байта управления и первый тактовый

импульс;

— = 62 нс/мин должно быть между импульсами на линии SCLK;

— = 62 нс/мин. Длительность тактового импульса (ТИ);

— = 156 нс/ми. Длительность между началом первого ТИ и началом второго ТИ ;

— = 0 нс/мин. Время, которое должно пройти после ТИ для выключения АЦП;

— = 100 нс/мин минимальное время для включения и выключения АЦП;

— = 35 нс/мин;

— = 25 нс/мин. Время, которое должно пройти после передачи байта

управления и первым ТИ;

— = 0 нс/мин. Время перехода ТИ из «0» в «1»;

— = 65 нс/мин

— = 20 нс/мин. Время от начала ТИ, до начала передачи от АЦП данных в МК;

— = 80 нс/мин. Время от начала ТИ, до передачи от АЦП данных в МК;

— = 65 нс/мин

— = 65 нс/мин

— = 20 нс/мин. Время от начала ТИ, до перехода в «1» на линии SSTRB;

— = 80 нс/мин. Время перехода из «0» в «1» на линии SSTRB;

— = 65 нс/мин. Время перехода от начала выключения АЦП на линии CS

до фронта перехода в «1» на линии SSTRB.

На рисунке 2.6 показаны временные диаграммы для одного цикла преобразования и байт управления АЦП.

Рисунок 2.6 — Временные диаграммы для одного цикла преобразования и байт управления АЦП В байте для регистра управления содержатся следующие биты:

— Start — бит старта, который равен 1;

— SEL2, SEL1, SEL0 — эти 3 бита отвечают за то, какой входной канал АЦП будет работать. Линия CH0 равна 001, CH1 равна 101, CH2 равна 010, CH3 равна 110;

— UNI/BIP — бит, отвечающий за униполярный или биполярный режим работы, для униполярного равен 0, для биполярного равен 1;

— SGL/DIF — бит, отвечающий за дифференциальный или одноканальный режим работы, для одноканального равен 1, а для дифференциального 0;

— PD2 (PD1 и PD0) — биты, отвечающие за режим работы АЦП. Без пониженного энергопотребления, в нормальном режиме PD1 = PD0 = 1.

2.5 Схема включения МК

На рисунке 2.5 представлена схема включения МК.

Рисунок 2.6 — Схема включения МК К МК обязательно подключаем супервизор MCP100, чтобы в случае падения питания на МК или в схеме в целом, ниже нужного уровня, от супервизора подавался импульс для перезагрузки всего устройства. По документации разработчиков, к выходу Vdd требуется подключить керамический конденсатор С12, емкостью 0,001 мкФ, для сглаживания помех на входе.

Для работы МК обязательно требуется генератор тактовых импульсов (ГТИ). ГТИ состоит из параллельно включенных в цепь емкостей с подключенным к ним кварцевым резонатором, и двумя запускающими конденсаторами С13 и С14, емкостью 10 мкФ. Кварцевый резонатор генерирует электрические импульсы заданной частоты (обычно прямоугольной формы) для синхронизации различных процессов в цифровых устройствах. Так же ко входу Vcc нужно подключить питание 5 В и конденсатор С16, емкостью 0,1 мкФ.

МК, получив цифровой код с ГР или с АЦП, начинает обрабатывать его. После завершения вычисления, МК пересылает данные в ПК, через буфер RS232, по линиям RxD и TxD. Но до начала работы МК, в него нужно записать программу через разъем программирования, написанную на языке программирования Assembler в IDE AVR Studio. Отлаженную программу записывают в МК по линиям MISO, MOSI, SCK.

Линии VTG и GND, в разъеме программирования — это выводы питания. К VTG подвести 5 В, а GND заземлить. MOSI, MISO, SCK подвести к МК в порты с (такими же) соответствующими названиями. Res — это линия входа. Если от супервизора посылается импульс, то прибор будет перезагружен (сброшен).

2.6 Схема включения буфера RS232 ADM206EAR

На рисунке 2.6 представлена схема включения буфера RS232 ADM206EAR.

RS232 — физический уровень для асинхронного (UART) интерфейса. Это физическая и электрическая среда для передачи данных. Обычно физический уровень описывает: передачи на примерах топологий, сравнивает аналоговое и цифровое кодирование, синхронизацию бит, сравнивает узкополосную и широкополосную передачу, многоканальные системы связи, последовательную (логическую 5-вольтовую) передачу данных.

Рисунок 2.7 — Буфер RS232 ADM206EAR

Информация передается по проводам двоичным сигналом с двумя уровнями напряжения в персональный компьютер (ПК). Логическому «0» соответствует положительное напряжение (от 3 до 15 В для передатчика), а логической «1» отрицательное (от минус 3 до минус 15 В для передатчика).

Для нормальной работы буфера ADM206EAR требуется 5 электролитических конденсаторов (С17, С18, С19, С20, С21), емкостью 0,1 мкФ, для работы встроенного удвоителя напряжения и инвертора напряжения.

Для дальнейшей работы и анализа данных, требуется подключить к буферу RS232 ком порт. Ком порт осуществляет прием и передачу данных с МК в ПК и обратно. Линию GND нужно заземлить. Линии DTR, DCD и DSR нужно замкнуть между собой. RTS и CTS, так же замкнуть между собой.

3. Оценка максимальной погрешности ДДЛ

Максимальная погрешность канала АЦП состоит из погрешности датчика линейного (ДДЛ) и нелинейного давления (ДДН), полученные путём сложения всех элементов канала. Погрешности для ДДЛ и ДДН рассчитываются по отдельности.

Формула погрешности для ДДЛ выглядит следующим образом:

(2)

где ?ЛД — собственная погрешность линейного датчика;

?НУ — погрешность нормирующего усилителя;

?АЦП — погрешность АЦП;

?ИОН — погрешность источника опорного напряжения (0,05%);

?ВЫЧ — погрешность вычислений.

3.1 Погрешность нормирующего усилителя

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

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

(3)

где IУТ — ток утечки диодов, IУТ = 25нА;

R1 — максимальное сопротивление резисторов в схеме НУ, R1 = 10 кОм;

KСХ — коэффициент усиления для ОУ (для повторителя KСХ = 1);

Umax — максимальное напряжение на выходе датчика давления;

Umin — минимальное напряжение на выходе датчика давления.

Разность напряжений, вызванная током утечки диодов, определяется как произведение максимального тока (25 нА) на максимальное сопротивление в схеме равна 10 кОм.

Подставляя значения в формулу (3), получаем:

Резисторы, выбранные в данном проекте имеют допуск ± 1%. Наихудший случай разброса значений резисторов для НУ DA1 будет следующим: R1 = R3 = 9990 Ом, R4 = 1610 Ом, при входном сигнале 10 В (максимальный). Промоделировав схему, с данными значениями резисторов, в Orcad, получаем U= 9,998 В. Если бы резисторы R1 — R4 были идеальными, то напряжение на положительном входе ОУ при максимальном входном сигнале, составляло 10 В. Разность, между двумя этими напряжениями будет составлять абсолютную погрешность (?U = 0,002 В).

Рассчитываем погрешность резисторов по формуле:

(4)

где UОП — опорное напряжение, равное 10 В;

UВЫХ РЕАЛ — реальное выходное напряжение, В.

Подставляя значения в формулу (4), получаем:

Погрешность операционного усилителя складывается из нескольких погрешностей.

Погрешность, вызванная смещением операционного усилителя, определяется по формуле:

(5)

где UСМ — максимальное напряжение смещения ОУ, которое указано в технической документации микросхемы AD8532, Uсм = 25 мВ.

Подставляя значения в формулу 5, получаем:

Погрешность ОУ вызванная током смещения ОУ определяется по формуле:

(6)

где IСМ — ток максимального смещения IСМ = 25 пA;

RСХmax — максимальное значение сопротивление схемы, равное 10 кОм.

Подставляя значения в формулу (6), получаем:

.

Максимальная приведенная погрешность, обусловленная конечным значением коэффициента ослабления синфазного сигнала (КОСС), определяется по формуле:

(7)

где UCmax — максимальное синфазное напряжение;

Kд — дифференциальный коэффициент усиления.

Подставляя значения в формулу (7), получаем:

Погрешность ОУ складывается из погрешностей смещения ОУ, тока смещения ОУ, обусловленного конечным значением коэффициента ослабления синфазного сигнала (КОСС) рассчитывается по формуле:

(8)

Подставляя значения в формулу (8), получаем:

.

Погрешность нормирующего усилителя рассчитывается по формуле:

(9)

Подставляя значения в формулу (9), получаем:

.

Максимально приведенная погрешность нормирующего усилителя (для ДДЛ не будет превышать

3.2 Оценка максимальной погрешности АЦП

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

Погрешность АЦП складывается из аддитивной погрешности 6 МЗР, мультипликативной погрешности 2,5 МЗР, дифференциальной нелинейности 1 МЗР и интегральной нелинейности 0,25 МЗР. Погрешность АЦП находится по формуле:

(10)

где — это сумма всех погрешностей младшего значащего разряда; n — разрядность АЦП.

Подставляя значения в формулу (10), получаем:

3.3 Вычисление погрешности ИОН

Погрешность ИОН рассчитывается по формуле:

(11)

где IA — указанно в документации в разделе Initial Accuracy IA =.

Подставляя значения в формулу (11), получаем:

3.4 Максимальная погрешность вычисления для ДДЛ

Погрешность вычислений находится по формуле:

(12)

где а1 и а2 — данные из варианта в таблице 3;

код — максимально возможный код АЦП, в десятичной системе счисления.

Подставляя значения в формулу (12), получаем:

Исходя из выше рассчитанных погрешностей, можно вычислить погрешность ДДЛ, по формуле 3:

.

Максимальная приведенная погрешность ДДЛ не превышает? 0,5%. Для того чтобы уменьшить погрешность канала ДДЛ необходимо проводить предварительную калибровку микропроцессорной системы сбора данных.

4. Оценка максимальной погрешности для ДДН

Аналогичным образом будет рассчитываться погрешность ДДН, но с учётом аппроксимации, рассчитанной в приложении, А и коэффициентами характеристики самого датчика, рассчитанными в приложении Б.

Формула погрешности для ДДН выглядит следующим образом:

(13)

где ?АП — максимальная погрешность аппроксимации;

?НД — собственная погрешность нелинейного датчика.

4.1 Максимальная погрешность канала для ДДН

Вычисление реального максимального давления необходимо умножить на масштабирующий коэффициент для записи этого числа в МК. Выберем масштабирующий коэффициент, А = 224. В результате, зависимость давления от кода примет вид:

где provK — максимальный коэффициент К, рассчитанный в приложении Б; provB — максимальный коэффициент В, рассчитанный в приложении Б; код — максимально возможный код АЦП, в десятичной системе счисления;

А — масштабирующий множитель равный ;

— реальное давление, воспринимаемое датчиком, кПа.

Подставляя значения в формулу (14), получаем:

Далее находим максимальную погрешность вычислений по формуле:

где Pmax — максимальное значение давления, указанное в задании.

Подставляя значения в формулу (15), получаем:

Общая максимальная погрешность прибора ДДН оценивается как сумма всех составляющих погрешностей и определяется по формуле (13):

Как видно из расчетов, максимальные погрешности прибора ДДН не превышают установленного порога в 0,5%. Для того чтобы уменьшить погрешность канала ДДЛ необходимо проводить предварительную калибровку микропроцессорной системы сбора данных.

4.2 Оценка максимальной погрешности системы сбора данных

Общая максимальная погрешность прибора оценивается как максимальная погрешность каждого канала системы сбора данных. В соответствии с проведёнными расчётами данных она не превышает погрешности канала ДДН %.

5 Расчет потребляемой мощности и надежности

5.1 Расчёт потребляемой мощности

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

Потребляемая мощность прибора определяется по формуле:

(16)

где Рп — потребляемая мощность отдельного элемента прибора;

Uпит — напряжение питания отдельного элемента прибора;

Iп — ток потребляемый отдельным элементом прибора;

K — количество элементов.

Расчет потребляемой мощности спроектированной системой сбора данных представлен в таблице 1.

Таблица 1 — Расчёт потребляемой мощности системы сбора данных

Наименование элемента

Потребляемый ток, мА

Напряжение, В

Количество элементов, шт

Потребляемая мощность, мВт

ATmega8515

MAX1282

ADM206

3,5

17,5

AD8532

0,75

3,75

L7805

MCP100

0,09

0,45

ADR291

0,009

0,045

TLP523

0,01

0,1

74HC14

0,02

0,2

Общее значение

18,369

;

;

133,945

Из таблицы 1 видно, что значение потребляемой мощности составляет 133,945?мВт, а потребляемый ток не превышает тока нагрузки источника напряжения.

5.2 Расчёт надёжности

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

Интенсивность отказов элементов i-го типа определяется по формуле:

(17)

где ?0 i — интенсивность отказов данного типа элементов при номинальной электрической нагрузке и нормальных условиях эксплуатации, 1/ч;

?i — коэффициент, учитывающий влияние температуры окружающей среды и электрической нагрузки элемента (принимаем ?i = 1);

k1 — коэффициент, учитывающий влияние механических факторов (вид проектируемого устройства — лабораторный, следовательно, принимаем k1=1);

k2 — коэффициент, учитывающий влияние климатических факторов (система будет эксплуатироваться при влажности окружающей среды 60 — 70% и температуре 20 — 40 °C, следовательно, k2 = 1);

k3 — коэффициент, учитывающий влияние пониженного атмосферного давления (система будет эксплуатироваться в наземном помещении, следовательно, k3 = 1).

Характеристики надёжности элементов, их среднее время восстановления и количество указаны в таблице 2.

Таблица 2 — Характеристики надёжности элементов

Тип элемента

Интенсивность отказов, ?0 i•10-6, 1/ч

Среднее время восстановления, ?в i, ч

Количество элементов m, шт.

№ 1

№ 2

№ 3

№ 4

Интегральные микросхемы

0,5

1,2

Диоды и стабилитроны

0,2

0,5

Оптроны

0,5

0,6

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

0,07

0,5

Резисторы постоянные

0,02

0,5

Разъёмы

0,25

1,0

Соединение пайкой

0,01

0,1

Принимая во внимание значения для поправочных коэффициентов ?i, k1, k2, k3, приводим формулу (17) к виду:

?i = ?0 i. (18)

Интенсивность отказов устройства в целом ?, (1/ч) определяется по формуле:

(19)

где mi — количество элементов i-го типа;

?i — интенсивность отказов.

Подставляя известные данные получаем:

? = (0,5 (1/ч).

Вероятность безотказной работы устройства P определяется по формуле:

(20)

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

Значение t выбирается из стандартного ряда: 1000 ч, 2000 ч, 4000 ч, 8000 ч, 16 000 ч. Пусть время безотказности работы t = 16 000 ч, тогда:

Р (t) =

Средняя наработка на отказ T определяется по формуле:

(21).

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

T = = 100 908 ч.

6. Разработка программного кода, на языке ассемблера

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

Первоначально МК настраивает АЦП, посылая определенные комбинации бит по линии DIN. После с АЦП приходят данные в двоичном коде, которые эквивалентны давлению на ДДЛ. Далее выполняется подпрограмма умножения и сложения коэффициентов К и В линейного датчика. Полученный ответ записывается в ОЗУ МК.

Следующим шагом переключается принимающий вход АЦП, который будет отправлять в МК код, эквивалентный давлению на ДДН. После происходит команда умножения и сложения. Полученный ответ сохраняется в ОЗУ МК.

Далее МК опрашивает ДКД, с которых приходят либо логический «0», либо логическая «1». Результаты записываются в ОЗУ МК.

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

Листинг программного кода представлен в приложении В.

Заключение

В данном курсовом проекте была спроектирована микропроцессорная система сбора данных, которая удовлетворяет поставленным условиям.

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

Значение потребляемой мощности составляет 133,945 мВт, а потребляемый ток не превышает тока нагрузки источника напряжения. Рассчитав значения надёжности элементов прибора, получили (1/ч).

При проектировании прибора были использованы разработки фирмы «Atmel», а также получен навык разработки устройства сбора данных.

В ходе работы использовались возможности различных программ, таких как MathCAD, KOMPAS 3D V12 и OrCAD. Для написания программы на языке программирования ассемблер, для микроконтроллера ATmega8515, использовалась программа AVR Studio 4.

Была разработана принципиальная электрическая и структурная схема микропроцессорной системы сбора данных на базе микроконтроллера ATmega8515, с ядром AVR.

Также был проведен Расчет коэффициентов аппроксимации для нелинейного датчика давления. Сделан расчет коэффициентов вычисления давления для нелинейного датчика.

Приложение А

Расчет коэффициентов аппроксимации для нелинейного датчика давления

Исходные данные для аппроксимации.

Вычисляем максимальное и минимальное напряжение при максимальном и минимальном давлении.

Разбиваем исходную характеристику датчика ДДН на 16 интервалов по напряжению. Находим шаг, между интервалами. Он равен 0,3099 В.

Дальше вычисляем функцию P (U) и получаем значения давления по значениям напряжения в заданных границах интервалов.

Рассчитываем коэффициенты линейной функции Kи B, для каждого участка аппроксимации.

Создаем массив точек по напряжению и давлению на всех интервалах аппроксимирующих функций.

Создаем график, показывающий погрешность на каждом участке аппроксимации.

Исходя из показания графика, погрешность аппроксимации не превысит 0,025%.

Приложение б

Расчет коэффициентов вычисления давления для нелинейного датчика

Находим коэффициенты Kadc и Badc, для расчета значения давления на каждом участке интервалов.

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

После получения значений коэффициентов K и B, переводим их в шестнадцатеричную систему счисления.

Приложение В

листинг программного кода на языке програмирования assembler для системы сбора данных на базе микроконтроллера ATmega8515, с ядром AVR

.include" m8515def. inc" ;включаем файл с описанием всех ;регистров ввода-вывода МК ;ATmega8515

.org 0

rjmp Reset ;вектор прерывания по сбросу МК

rjmp INT0 ;вектор прерывания на линии INT0 (PD2)

rjmp INT1 ;вектор прерывания на линии INT1 (PD3)

rjmp TIMER1_CAPT ;вектор прерывания по захвату Т/С 1

rjmp TIMER1_COMPA ;вектор прерывания по совпадению «А» Т/С 1

rjmp TIMER1_COMPB ;вектор прерывания по совпадению «B» Т/С 1

rjmp TIMER1_OVF ;вектор прерывания по переполнению Т/С 1

rjmp TIMER0_OVF ;вектор прерывания по переполнению Т/С 0

rjmp SPI_STC ;вектор прерывания по окончании передачи модуля SPI

rjmp USART_RxC ;вектор прерывания по окончанию приёма данных

;модулем USART

rjmp USART_UDRE ;вектор прерывания, если UDR передатчика пуст вектор

;прерывания по окончанию передачи данных

;модулем USART

rjmp ANA_COMP ;вектор прерывания аналогового компаратора

rjmp INT2 ;вектор прерывания на линии INT2 (PE0)

rjmp TIMER0_COMP ;вектор прерывания по совпадению Т/С 0

rjmp EE_RDY ;вектор прерывания в момент готовности

;модуля EEPROM

rjmp SPM_RDY ;вектор прерывания в момент готовности модуля SPM

Reset:

cli

ldi r16, 0×01 ;инициализируем стек

out SPH, r16 ;старший байт

ldi r16, 0x5F

out SPL, r16 ;младший байт

ldi r16, 0b10110001 ;это настраиваем ножки на вход и

;выход (PC3(SData)-вход, PC2(BUSY — EOC) — вход,

;PC0(SCLK) — выход, PC4(CS) — выход РС1 (DIN) — выход)

;ддр нужен для того, чтобы настроить выводы МК.

;7,6,5 бит — это настройка по документации

;(там 3 поля, чтобы работал вход сн1 = 101,

;чтобы сн2 = 010)

out DDRC, r16 ;в регистре находятся 8 битов, каждый определяет как

;будет работать линия (вход, выход). Линии которые не

;используются — на вход делаем (0), на выход — 1

ldi r16, 0b00010000 ;sclk = 0, cs = 1 начальные значения для запуска ацп

out PORTC, r16 ;порт нужен для того, чтобы выдать данные

;настройка USART

ldi r16, 0×00 ;загружаем константу в регистр UBRR

out UBRRH, r16 ;чтобы задать скорость 9600 бод

ldi r16, 0×17

out UBRRL, r16 ;8 бит данных, без удвоения скорости

ldi r16, 0b00000000 ;1 стоп бит

out UCSRA, r16 ;без прерывания

ldi r16, 0b00000000 ;без контроля

out UCSRA, r16 ;асинхронный

ldi r16, 0b00011000 ;включить приемник и передатчик

out UCSRB, r16

ldi r16, 0b10000110

out UCSRC, r16

sei

main:

ldi r16, 0b10011111 ;настраиваем данные для DIN

;(предварительная настройка)

rcall initADC ;вызов подпрограммы настройки АЦП

rcall oprosADC ;вызов подпрограммы опроса АЦП

sts 0×0160, r21 ;адрес ячейки, в который запишем данные с ацп (код)

sts 0×0161, r20 ;две ячейки потому, что разрядность ацп больше 8

ldi r19,0×28 ;загружаем множимое К (40(10))

lds r2,0×0160 ;загружаем в r2 код с АЦП (старший байт)

lds r1,0×0161 ;младший байт

rcall umnog2x1 ;вызов п/п умножения для вычисления давления

;линейного датчика

sts 0×0162, r18 ;сохранение регистра r18 в ячейке памяти

;с адресом 0×0162 старший

sts 0×0163, r17 ;сохранение регистра r17 в ячейке памяти с адресом 0×0163

sts 0×0164, r16 ;сохранение регистра r16 в ячейке памяти с адресом

;0×0164 младший

out PORTB, r19 ;загружаем константу из r19 в PORTB

rcall oprosDDN ;вызов подпрограммы опроса нелинейного

;датчика давления

sts 0×0165,r19 ;записываем старший байт в ячейке памяти

;с адресом 0×0165

sts 0×0166,r18 ;сохранение регистра r18 в ячейке памяти

;с адресом 0×0166

sts 0×0167,r17 ;сохранение регистра r17 в ячейке памяти

;с адресом 0×0167

sts 0×0168,r16 ;записываем младший байт в ячейке памяти

;с адресом 0×0168

rcall oprosDKD ;вызов п/п опроса ДКД

sts 0×0169, r4 ;записываем данные с ДКД1 в ячейке памяти

;с адресом 0×0169

sts 0×016A, r5 ;записываем данные с ДКД2 в ячейке памяти

;с адресом 0×016A

sbic UCSRA, 7 ;пропуск команды, если 7 бит = 0

rcall peredacha ;вызов п/п передачи данных в ПК

rjmp main ;переход на метку main

;*****************П/П для вычисления давления поданного на вход линейного датчика давления*******

umnog2x1:

ldi r25, 0×00 ;записываем в регистр r25 нули

ldi r26, 0x0A ;записываем число 10 в 26 регистр

clr r3 ;очищаем 4 регистра под ответ

clr r4

clr r5

clr r6

ldi r16, 0×10 ;записываем 16 в счетчик, так как 4 байта и в каждом по 8 бит

mainMul:

ror r2 ;двигаем все умножаемое число вправо

ror r1 ;начиная со старшего байта

brcc sdvig ;если число во флаге с = 0, то переходим на метку sdvig

add r5, r19 ;складываем результат с константой без переноса

adc r6, r25 ;учитываем перенос

sdvig:

ror r6 ;двигаем весь результат вправо 1 раз

ror r5

ror r4

ror r3

dec r16 ;уменьшаем счетчик

brne mainMul ;если счетчик не равен 0, то перейти на метку mainMul

add r3, r26 ;складываем результат умножение с другой константой,

;без учета переноса

adc r4, r25 ;складываем с учетом переноса

adc r5, r25

mov r16, r3 ;копируем регистр r3, в регистр r16

mov r17, r4 ;копируем регистр r4, в регистр r17

mov r18, r5 ;копируем регистр r5, в регистр r18

finish: ret ;выходим из подпрограммы умножения

;***************П/п опроса датчиков контроля давления**********************

oprosDKD:

clr r4 ;обнуляем r4 под результат

sbic PINC, 0 ;пропускаем строчку если в бите 0 PINC записан 0

rjmp DKD2 ;переход на метку DKD2

inc r4 ;записываем единицу в r4

DKD2:

clr r5 ;обнуляем r5 под результат

sbic PINC, 1 ;пропускаем строчку если в бите 1 PINC записан 0

rjmp vixod ;переход на метку vixod

inc r5 ;записываем единицу в r4

vixod: ret ;выход из подпрограммы

;*******************П/П для передачи данных в ПК***********************

peredacha:

ldi r25, 0x0B ;счетчик

ldi r31, 0×01 ;помещаем в РП Z адрес ячейки ОЗУ

ldi r30, 0×60

cikl:

m2: sbis UCSRA, 5 ;пропуск команды если бит5=1

rjmp m2 ;переход на метку m2

ld r4, Z+ ;отправляем 1 байт данных с линейного датчика

out UDR, r4 ;загружаем в UDR передатчика содержимое r4

dec r25 ;уменьшаем счетчик

brne cikl ;если счетчик не равен 0, то перейти на метку cikl

ret ;выход из подпрограммы

oprosDDN:

rcall initADC2 ;переключаем линию АЦП для приема данных

rcall oprosADC2 ;получаем код с АЦП

lsl r16 ;логический сдвиг содержимого регистра 16 влево

lsl r16 ;три раза, чтобы потом узнать адрес,

lsl r16 ;с которого начнем доставать коэффициенты

ldi r31, high (tabKuB*2) ;загружаем из таблицы старший байт коэффициента

ldi r30, low (tabKuB*2) ;загружаем из таблицы младший байт коэффициента

clr r15

add r30, r16 ;складываем числа, чтобы получить адрес

;с которого начнем доставать коэффициенты

adc r31, r15

ldi r18, 0×08 ;создаем счетчик равный 8

ldi r27, 0×01 ;cоздаем регистровую пару х для того,

ldi r28, 0×70 ;чтобы указать там ячейку памяти в озу

lpmCheck:

lpm ;берется байт из таблицы и помещается в регистр r0

st X+, r0 ;взять из r0 и положить в ячейку памяти озу,

;которая указана в регистровой паре Х,

;после чего увеличить значение РП Х на 1.

adiw r30, 0×01 ;прибавить 1 к регистровой паре z, чтобы достать

;следующий байт из таблицы

dec r18 ;уменьшить счетчик

brne lpmCheck ;если счетчик не равен 0 — перейти на метку lpmCheck

Lds r7, 0×0172 ;загружаем из ОЗУ старший байт коэффициента k

;в регистр 5

Lds r8, 0×0173 ;загружаем из ОЗУ младший байт коэффициента k

;в регистр 6

ldi r25, 0×00 ;обнуляем регистр 25

clr r3 ;очищаем 4 регистра под ответ

clr r4

clr r5

clr r6

ldi r16, 0×10 ;счетчик, равный 16

mov r21, r2 ;загружаем в r2 код с АЦП (старший байт)

mov r21, r1 ;младший байт

mainMul:

ror r2 ;двигаем все умножаемое число вправо

ror r1 ;начиная со старшего байта

brcc sdvig ;если число во флаге с = 0, то переходим на метку sdvig

add r4, r8 ;складываем коэффициент К с регистрами под ответ

adc r5, r7 ;с учетом переноса

sdvig:

ror r5 ;сдвигаем ответ вправо, начиная со старшего байта

ror r4

ror r3

dec r16 ;уменьшаем счетчик

brne mainMul ;если счетчик стал равен 0 то переходим на метку mainMul

lds r7,0×0174 ;загружаем с r7 по r10 коэффициент В (старший байт)

lds r8,0×0175

lds r9,0×0176

lds r10,0×0177 ;младший байт

add r3, r10 ;складываем результат умножения

adc r4, r9 ;кода АЦП на коэффициент К с коэффициентом В

adc r5, r8 ;с учетом переноса

adc r6, r7

mov r16, r3 ;копируем ответ в другие регистры,

mov r17, r4 ;для работы с ними

mov r18, r5

mov r19, r6

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

;**************подпрограмма инициализации ацп*********

initADC:

ldi r17, 0×08 ;создаем счетчик, равный 8

init2: rol r16 ;двигаем настроечный байт влево,

;что бы 1 или 0 оказались во флаге С

brcc one ;если флаг С = 0, то перейти на метку one

sbi PORTC, 1 ;выставляем на первую линию порта С 1, для инициализации

rjmp two ;перейти на метку two

one: cbi PORTC, 1 ;выставляем на 1 линию порта С 0, для инициализации

two: cbi PORTC, 0 ;первая линия порта С, которая отвечает за тактовый импульс

sbi PORTC, 0 ;выставляем на 0 линию порта С 1 (тактовый импульс)

nop

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

dec r17 ;уменьшаем счетчик

brne init2 ;если r17 не равен 0, то перейти на метку init2

ret ;выход из подпрограммы инициализации ацп

;*********закончилась подпрограмма инициализации ацп***********

;*************подрограмма опроса ацп******************

oprosADC:

sbi PORTC, 0 ;устанавливаем линию, отвечающую за тактовые

;импульсы равной 1 (9 импульсный такт)

nop

cbi PORTC, 0 ;устанавливаем линию, отвечающую за тактовые

;импульсы равной 0

sbi PORTC, 0 ;10 тактовый импульс

nop

cbi PORTC, 0

checkThreeBit:

sbis PINC, 3 ;проверяем третий бит из порта С, если он равен 1,

;то следующую команду не выполнять

rjmp checkThreeBit ;перейти на метку checkThreeBit

sbi PORTC, 0 ;11 тактовый импульс

nop

cbi PORTC, 0

checkThreeBit2:

sbic PINC, 3 ;проверяем третий бит из порта С, если он равен 1,

;то следующую команду не выполнять

rjmp checkThreeBit2 ;перейти на метку checkThreeBit

m1:

ldi r22, 0x0C ;создаем счетчик цикла для тактовых импульсов — это для

;12 разрядного

clr r20 ;очищаем регистры под код ацп

clr r21

mADC2:

sbi PORTC, 0 ;такт ГТИ

nop

in r16, PINC ;копируем данные в r16 из порта C МК.

;Но нам нужен только третий бит (PC3),

;так как остальные данные являются управляющими

;от мк к ацп

ror r16 ;извлекаем последний бит, поступивший из порта С (sData)

ror r16 ;извлекаем 1 бит

ror r16 ;извлекаем 2 бит

ror r16 ;получаем 3 бит данных

rol r20 ;записываем в регистры r20 и r21 данные,

rol r21; ;которые приходят из 3 бита в порте С

cbi PORTC, 0 ;тактовый импульс делаем равным 0

dec r22 ;уменьшаем счетчик на 1

brne mADC2 ;если счетчик не равен 0, то перейти на метку mADC2

sbi PORTC, 0 ;24 тактовый импульс

nop

cbi PORTC, 0

nop

sbi PORTC, 4 ;устанавливаем линию cs в 1, чтобы выключить ацп

ret ;выход из подпрограммы опроса АЦП

;*********закончилась подпрограмма опроса ацп***********

;**************подпрограмма инициализации ацп*********

initADC2:

ldi r16, 0b01010001 ;это настраиваем ножки на вход и

;выход (PC3(SData)-вход, PC2(BUSY — EOC) — вход,

;PC0(SCLK) — выход, PC4(CS) — выход РС1 (DIN) — выход)

;ддр нужен для того, чтобы настроить выводы МК.

;7,6,5 бит — это настройка по документации

;(там 3 поля, чтобы работал вход сн1 = 101,

;чтобы сн2 = 010)

out DDRC, r16 ;в регистре находятся 8 битов, каждый определяет как

;будет работать линия (вход, выход). Линии которые не

;используются — на вход делаем (0), на выход — 1

ldi r17, 0×08 ;создаем счетчик, равный 8

initTwo:

rol r16 ;двигаем настроечный байт влево,

;что бы 1 или 0 оказались во флаге С

brcc one2 ;если флаг С = 0, то перейти на метку one

sbi PORTC, 1 ;выставляем на первую линию порта С 1, для инициализации

rjmp two2 ;перейти на метку two

one2: sbi PORTC, 1 ;выставляем на 1 линию порта С 1, для инициализации

two2: cbi PORTC, 0 ;первая линия порта С, которая отвечает за тактовый импульс

sbi PORTC, 0 ;выставляем на 0 линию порта С 1 (тактовый импульс)

nop

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

dec r17 ;уменьшаем счетчик

brne initTwo ;если r17 не равен 0, то перейти на метку initTwo

ret ;выход из подпрограммы инициализации ацп

;*********закончилась подпрограмма инициализации ацп***********

;*************подпрограмма опроса ацп******************

oprosADC2:

sbi PORTC, 0 ;устанавливаем линию, отвечающую за тактовые

;импульсы равной 1 (9 импульсный такт)

nop

cbi PORTC, 0 ;устанавливаем линию, отвечающую за тактовые

;импульсы равной 0

sbi PORTC, 0 ;10 тактовый импульс

nop

cbi PORTC, 0

checkThreeBit2:

sbis PINC, 3 ;проверяем третий бит из порта С, если он равен 1,

;то следующую команду не выполнять

rjmp checkThreeBit2 ;перейти на метку checkThreeBit2

sbi PORTC, 0 ;11 тактовый импульс

nop

cbi PORTC, 0

checkThreeBitTwo:

sbic PINC, 3 ;проверяем третий бит из порта С, если он равен 1,

;то следующую команду не выполнять

rjmp checkThreeBitTwo ;перейти на метку checkThreeBitTwo

m12:

ldi r22, 0x0C ;создаем счетчик цикла для тактовых импульсов — это для

;12 разрядного

clr r20 ;очищаем регистры под код ацп

clr r21

mADC22:

sbi PORTC, 0 ;такт ГТИ

nop

in r16, PINC ;копируем данные в r16 из порта C МК.

;Но нам нужен только третий бит (PC3),

;так как остальные данные являются управляющими

;от мк к ацп

ror r16 ;извлекаем последний бит, поступивший из порта С (sData)

ror r16 ;извлекаем 1 бит

ror r16 ;извлекаем 2 бит

ror r16 ;получаем 3 бит данных

rol r20 ;записываем в регистры r20 и r21 данные,

rol r21; ;которые приходят из 3 бита в порте С

cbi PORTC, 0 ;тактовый импульс делаем равным 0

dec r22 ;уменьшаем счетчик на 1

brne mADC22 ;если счетчик не равен 0, то перейти на метку mADC2

sbi PORTC, 0 ;24 тактовый импульс

nop

cbi PORTC, 0

nop

sbi PORTC, 4 ;устанавливаем линию cs в 1, чтобы выключить ацп

ret ;выход из подпрограммы опроса АЦП

;*********закончилась подпрограмма опроса ацп***********

;******************НЕИСПОЛЬЗУЕМЫЕ ПРЕРЫВАНИЯ********************

INT0: reti

INT1: reti

TIMER1_CAPT: reti

TIMER1_COMPA: reti

TIMER1_COMPB: reti

TIMER1_OVF: reti

TIMER0_OVF: reti

SPI_STC: reti

USART_RxC: reti

USART_UDRE: reti

USART_TxC: reti

ANA_COMP: reti

INT2: reti

TIMER0_COMP: reti

EE_RDY: reti

SPM_RDY: reti

;*********************Таблица коэффициентов K и b******************

tabKuB:

.db 0×00,0×00 ;k 0 интервал

.db 0×06,0x6f

.db 0×00,0×00 ;b 0 интервал

.db 0×00,0×00

.db 0×00,0×00 ;k 1 интервал

.db 0×06,0×40

.db 0×00,0×66 ;b 1 интервал

.db 0xf0,0×95

.db 0×00,0×00 ;k 2 интервал

.db 0×06,0x1b

.db 0×00,0xca ;b 2 интервал

.db 0xed, 0×98

.db 0×00,0×00 ;k 3 интервал

.db 0×05,0xfe

.db 0×01,0x2c ;b 3 интервал

.db 0×97,0x3f

.db 0×00,0×00 ;k 4 интервал

.db 0×05,0xe7

.db 0×01,0x8c ;b 4 интервал

.db 0×70,0×62

.db 0×00,0×00 ;k 5 интервал

.db 0×05,0xd7

.db 0×01,0xea ;b 5 интервал

.db 0xe7,0×98

.db 0×00,0xa6 ;k 6 интервал

.db 0×10,0x6d

.db 0×02,0×48 ;b 6 интервал

.db 0x5d, 0x7b

.db 0×00,0×00 ;k 7 интервал

.db 0×05,0xc7

.db 0×02,0xa5 ;b 7 интервал

.db 0×29,0×39

.db 0×00,0×00 ;k 8 интервал

.db 0×05,0xc7

.db 0×03,0×01 ;b 8 интервал

.db 0x9c, 0×14

.db 0×00,0×00 ;k 9 интервал

.db 0×05,0xcb

.db 0×03,0x5e ;b 9 интервал

.db 0×04,0×55

.db 0×00,0×00 ;k 10 интервал

.db 0×05,0xd4

.db 0×03,0xba ;b 10 интервал

.db 0xaf, 0xe9

.db 0×00,0×00 ;k 11 интервал

.db 0×05,0xe2

.db 0×04,0×17 ;b 11 интервал

.db 0xee, 0xfe

.db 0×00,0×00 ;k 12 интервал

.db 0×05,0xf7

.db 0×04,0×76 ;b 12 интервал

.db 0×16,0xd1

.db 0×00,0×00 ;k 13 интервал

.db 0×06,0×12

.db 0×04,0xd5 ;b 13 интервал

.db 0×85,0×04

.db 0×00,0×00 ;k 14 интервал

.db 0×06,0×35

.db 0×05,0×36 ;b 14 интервал

.db 0xa3,0xd3

.db 0×00,0×00 ;k 15 интервал

.db 0×06,0×61

.db 0×05,0×99 ;b 15 интервал

.db 0xef, 0xcc

Показать весь текст
Заполнить форму текущей работой