Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
salashenko_slozhnoe_nagruzhenie.doc
Скачиваний:
11
Добавлен:
18.09.2019
Размер:
530.94 Кб
Скачать

Автоматизация процессов управления испытаниями и обработки результатов

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

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

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

Программа калибровки

#define STAT 0 x 309 /*Регистр состояния макетной платы*/

#define CNTRL 0 x 30С /*Управляющий регистр макетной платы*/

#define ADC 0 x 308 /* АЦП: адрес и данные*/

#define STRTAD 0x30A /*Регистр запуска преобразования*/

main ( )

{

int nagr 0,5, nagr 30, nagr x, slope,F, velichinasoprotivlenia;

char c=0

output(CNTRL,1); /*Установка второго бита в управляющем*/

/*регистре для разрешения запуска программы*/

/*преобразования*/

output(ADC,1): /*Выбор канала 1*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);

cprintf («Через 1 минуту нажмите любую клавишу. \n»);

while (!kbhite()); /*Ждать нажатия клавиши*/

nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 2: задать нагрузку F =30 \ n»);

cprintf («Через 5 минут нажмите любую клавишу. \n»)

while (!kbhit()); /*Ждать нажатия клавиши*/

nagr 30=get_data()

slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/

/*зависимости величины сопротивления от величины нагрузки F */

cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);

cprintf («Нажмите е для выхода из программы. \n»);

while(c!=’e’) /*Повторять, пока не нажата клавиша е*/

{

If (kbhit() /*Отсчет величины сопротивления, если нажата*/

/*любая клавиша*/

{

nagr x=get_data();

velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */

cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);

c=getch();

}

}

}

get=data()

{

int datum;

outp(STRTAD); /*Запуск преобразования*/

while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/

datum=inp(ADC);

return(datum);

}

output(ADC,1): /*Выбор канала 2*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);

cprintf («Через 1 минуту нажмите любую клавишу. \n»);

while (!kbhite()); /*Ждать нажатия клавиши*/

nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 2: задать нагрузку F =30 \ n»);

cprintf («Через 5 минут нажмите любую клавишу. \n»)

while (!kbhit()); /*Ждать нажатия клавиши*/

nagr 30=get_data()

slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/

/*зависимости величины сопротивления от величины нагрузки F */

cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);

cprintf («Нажмите е для выхода из программы. \n»);

while(c!=’e’) /*Повторять, пока не нажата клавиша е*/

{

If (kbhit() /*Отсчет величины сопротивления, если нажата*/

/*любая клавиша*/

{

nagr x=get_data();

velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */

cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);

c=getch();

}

}

}

get=data()

{

int datum;

outp(STRTAD); /*Запуск преобразования*/

while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/

datum=inp(ADC);

return(datum);

output(ADC,1): /*Выбор канала 3*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 1: задать нагрузку =0,5 \ n»);

cprintf («Через 1 минуту нажмите любую клавишу. \n»);

while (!kbhite()); /*Ждать нажатия клавиши*/

nagr 0,5=get_data() /*Получить значение величины тока для порога ударных нагрузок =0,5*/

cprintf («Ввести величину нагрузки F \ n»);

cprintf («Калибровка 2: задать нагрузку F =30 \ n»);

cprintf («Через 5 минут нажмите любую клавишу. \n»)

while (!kbhit()); /*Ждать нажатия клавиши*/

nagr 30=get_data()

slope=29,5/( nagr 30- nagr 0,5); /*Расчет коэффициента линейной*/

/*зависимости величины сопротивления от величины нагрузки F */

cprintf («Нажмите любую клавишу для отсчета величины сопротивления. \n»);

cprintf («Нажмите е для выхода из программы. \n»);

while(c!=’e’) /*Повторять, пока не нажата клавиша е*/

{

If (kbhit() /*Отсчет величины сопротивления, если нажата*/

/*любая клавиша*/

{

nagr x=get_data();

velichinasoprotivlenia =slope*( nagr x/F); /*Расчет величины сопротивления */

cprintf («Величина сопротивления =мкОм d/n», velichinasoprotivlenia);

c=getch();

}

}

}

get=data()

{

int datum;

outp(STRTAD); /*Запуск преобразования*/

while(!(inp(STAT)&2)); /*Ждать завершения преобразования*/

datum=inp(ADC);

return(datum);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]