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

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

Организация связи на железнодорожном транспорте на примере Свердловской железной дороги
Открытое акционерное общество «Российские железные дороги» (ОАО «РЖД») Филиал «Свердловская железная дорога» Свердловский региональный центр связи (С ...

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

Модернизация схемы блока управления для привода Fm-Stepdrive фирмы siemens с целью расширения функциональных возможностей
История развития бытовой и промышленной микропроцессорной аппаратуры тесно связана с развитием средств ЭВТ. За время своего развития средства ЭВТ прошли ...

Меню сайта