Informatics Point

Информатика и проектирование

Обработка на ассемблере

Основное назначение ассемблерного кода - измерение входного сигнала с одинаковыми интервалами времени и обеспечение требуемой скорости вычислений 500 отсчетов в секунду. Сначала мы программируем Timer0 на непрерывную работу и генерацию прерываний с интервалом 1 мс. С каждым прерыванием перезапускается Timer0, считывается отсчет входного сигнала и увеличивается значение переменной c2ms, которая используется для синхронизации с кодом C. На этой стадии разработки кода первыми строками кода на C были:

while(c2ms<2);ms = 0;= iAdc0;

Изначально c2ms равно нулю и код C зациклится на строчке while(c2ms<2). После 1 ms таймер Timer0 вырабатывает прерывание, затем c2ms увеличивается на 1. После следующей 1 мс переменная c2ms увеличивается до 2. Теперь условие (c2ms<2) больше не выполняется, сбрасывается на 0 счетчик c2ms, и производятся вычисления фильтра. После этого код C помещает результаты в цепочку переменных, представляющих собой последовательные результаты, готовые для дальнейшей обработки с помощью повторной итерации. Завершает цикл команда printf( .), которая посылает результат на дисплей компьютера. Последующая обработка данных на PC может быть очень простой - например, просто вывод результата на графический дисплей, - либо сколь угодно сложной.

Для повышения точности результата период прерываний таймера Timer0 был сокращен до 1/32 мс и данные были накоплены в iAdc0 для того, чтобы получить большее число измерений за то же время. Кроме того, условие цикла было переделано в c2ms<64, так что процессор дожидается 64 измерений, прежде чем выполнить цикл фильтрации.

Величина iAdc0 сохранена в iAdc00 для дальнейшей обработки, затем iAdc0 сбрасывается, и теперь эта переменная готова к получению следующих 64 измерений. Ниже приведен код на ассемблере. Этот улучшенный алгоритм обеспечивает получение графика, показанного на рис. 5 внизу.

: push ACCPSWTR0 ;Остановить счетчик T0.

mov TH0,#0fdh ;Загрузить 1/32ms.TL0,#0f6hTR0 ;Запустить T0.a,ADCDATALa,iAdc0+3iAdc0+3,aa,ADCDATAH ;прибавить результат

;преобразования к iAdc0.a,#0fh

addc a,iAdc0+2iAdc0+2,aaa,iAdc0+1

mov iAdc0+1,aADCCON2,#0 ;Начать преобразование.ADCCON2,#10hc25ms ;Увеличить счетчик ms.

IntT0R: pop PSWACC

Программа на ассемблере

Другие среды разработки

Так же можно использовать более специализированную среду LABView.

Рис. 6. Результаты ЭКГ в программе LABView

Рис. 7, Результаты ЭКГ в программе LaView

Усилители:

Рассмотрены вопросы стабилизации режима усилителей по постоянному току и, в частности, описываемых измерительных усилителей серии AD62x и нового усилителя AD8225.

Для усилительных устройств существенным является стабильность их режима по постоянному току [1], при котором обеспечиваются линейность характеристик и, вообще, способность устройств выполнять свои усилительные функции.

Входы большинства операционных усилителей и других устройств являются выводами баз биполярных транзисторов. Примерами могут быть измерительный усилитель AD620 фирмы Analog Devices [3], микросхемы для измерения электрической энергии [4] и другие устройства.

Перейти на страницу: 1 2 3 4

Лучшие статьи по информатике

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

Электромагнитная совместимость средств связи
Исходные данные для прогнозирования ЭМС Мощность передатчика РРЛ, Вт; Частота сигнала передатчика РРЛ, МГц; Высота установки антенны передатчика РР ...

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

Меню сайта