3脉冲波形参数自动测试系统Word文件下载.docx

上传人:b****3 文档编号:18472662 上传时间:2022-12-17 格式:DOCX 页数:16 大小:60.32KB
下载 相关 举报
3脉冲波形参数自动测试系统Word文件下载.docx_第1页
第1页 / 共16页
3脉冲波形参数自动测试系统Word文件下载.docx_第2页
第2页 / 共16页
3脉冲波形参数自动测试系统Word文件下载.docx_第3页
第3页 / 共16页
3脉冲波形参数自动测试系统Word文件下载.docx_第4页
第4页 / 共16页
3脉冲波形参数自动测试系统Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

3脉冲波形参数自动测试系统Word文件下载.docx

《3脉冲波形参数自动测试系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《3脉冲波形参数自动测试系统Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

3脉冲波形参数自动测试系统Word文件下载.docx

2.用程控方式完成对脉冲波形参数的测量,显示脉冲波形及参数测量结果。

五、实验结果:

一、脉冲波形参数自动测试系统需求分析:

答:

函数/任意波形发生器33220A手动调剂产生脉冲信号,信号输出到数字示波

器DSO5012A,在LabWindows/CVI集成环境下编写脉冲参数测量操纵程序,

通过LXI总线操纵数字示波器完成脉冲参数的测量,并在用户界面上显示脉

冲波形及脉冲参数测量结果。

二、本次实验设计的脉冲参数测量系统应用程序界面如下:

3、本次实验内容的主体为一个程序的编制,程序的框架如下:

4、LabWindow/CVI程序代码如下:

#include<

>

#include"

PulseParameter"

#defineRESOURCE"

TCPIP0:

:

"

staticintpanelHandle;

ViSessiondefaultRM,vi;

doublepreamble[10];

#defineWAVE_DATA_SIZE5000

unsignedcharwaveform_data[WAVE_DATA_SIZE];

voidInitialize(void);

voidCapture(void);

voidWaveform(void);

intmain(intargc,char*argv[])

{

if(InitCVIRTE(0,argv,0)==0)

return-1;

/*outofmemory*/

if((panelHandle=LoadPanel(0,"

PANEL))<

0)

DisplayPanel(panelHandle);

RunUserInterface();

DiscardPanel(panelHandle);

return0;

}

intCVICALLBACKQuit(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

switch(event)

{

caseEVENT_COMMIT:

QuitUserInterface(0);

break;

}

intCVICALLBACKAcquire(intpanel,intcontrol,intevent,

charbuf[256]={0};

doubletemp;

viOpenDefaultRM(&

defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&

vi);

viClear(vi);

Initialize();

Capture();

viPrintf(vi,"

MEASURE:

SOURCECHAN1\n"

);

viQueryf(vi,"

FREQUENCY?

\n"

"

%lf"

&

temp);

SetCtrlVal(panelHandle,PANEL_Edt_Frequency,temp);

VBASE?

SetCtrlVal(panelHandle,PANEL_Edt_Low,temp);

VTOP?

SetCtrlVal(panelHandle,PANEL_Edt_High,temp);

PERIOD?

SetCtrlVal(panelHandle,PANEL_Edt_Period,temp);

VAMPLITUDE?

SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,temp);

VPP?

SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,temp);

RISETIME?

SetCtrlVal(panelHandle,PANEL_Edt_RTime,temp);

FALLTIME?

SetCtrlVal(panelHandle,PANEL_Edt_FTime,temp);

PWIDTH?

SetCtrlVal(panelHandle,PANEL_Edt_PWidth,temp);

NWIDTH?

SetCtrlVal(panelHandle,PANEL_Edt_NWidth,temp);

DUTYCYCLE?

SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,temp);

Waveform();

viClose(vi);

viClose(defaultRM);

 

intCVICALLBACKGetPeriod(intpanel,intcontrol,intevent,

doublePeriod;

CHAN1\n"

Period);

SetCtrlVal(panelHandle,PANEL_Edt_Period,Period);

intCVICALLBACKGetTop(intpanel,intcontrol,intevent,

doubletop;

top);

SetCtrlVal(panelHandle,PANEL_Edt_High,top);

intCVICALLBACKGetBase(intpanel,intcontrol,intevent,

doublebase;

base);

SetCtrlVal(panelHandle,PANEL_Edt_Low,base);

intCVICALLBACKGetAmplitude(intpanel,intcontrol,intevent,

doubleamplitude;

amplitude);

SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,amplitude);

intCVICALLBACKGetPTPeak(intpanel,intcontrol,intevent,

doublevpp;

vpp);

SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,vpp);

intCVICALLBACKGetWaveform(intpanel,intcontrol,intevent,

intCVICALLBACKGetFrequency(intpanel,intcontrol,intevent,

doublefrequency;

frequency);

SetCtrlVal(panelHandle,PANEL_Edt_Frequency,frequency);

intCVICALLBACKGetRTime(intpanel,intcontrol,intevent,

doublertime;

rtime);

SetCtrlVal(panelHandle,PANEL_Edt_RTime,rtime);

intCVICALLBACKGetFTime(intpanel,intcontrol,intevent,

doubleftime;

ftime);

SetCtrlVal(panelHandle,PANEL_Edt_FTime,ftime);

intCVICALLBACKGetPWidth(intpanel,intcontrol,intevent,

doublepwidth;

pwidth);

SetCtrlVal(panelHandle,PANEL_Edt_PWidth,pwidth);

intCVICALLBACKGetNWidth(intpanel,intcontrol,intevent,

doublenwidth;

nwidth);

SetCtrlVal(panelHandle,PANEL_Edt_NWidth,nwidth);

intCVICALLBACKGetPDutycycle(intpanel,intcontrol,intevent,

doubledutycycle;

dutycycle);

SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,dutycycle);

voidInitialize(void)

viPrintf(vi,"

*RST\n"

AUTOSCALE\n"

voidCapture(void)

ACQUIRE:

TYPENORMAL\n"

COMPLETE100\n"

DIGITIZECHAN1\n"

voidWaveform(void)

intwaveform_size,i;

doubletime_array[WAVE_DATA_SIZE],amp_array[WAVE_DATA_SIZE];

doubleXmin,Xmax,Ymin,Ymax;

DeleteGraphPlot(panelHandle,PANEL_GRAPH_Pulse,-1,VAL_IMMEDIATE_DRAW);

WAVEFORM:

FORMATBYTE\n"

POINTS1000\n"

viQueryf(vi,"

PREAMBLE?

%,10lf\n"

preamble);

SetCtrlVal(panelHandle,PANEL_Edt_TimeBase,preamble[4]*100);

SetCtrlVal(panelHandle,PANEL_Edt_Vertical,preamble[7]*32);

Xmin=[6])*preamble[4]+preamble[5];

Xmax=[6])*preamble[4]+preamble[5];

Ymin=[9])*preamble[7]+preamble[8];

Ymax=[9])*preamble[7]+preamble[8];

SetAxisScalingMode(panelHandle,PANEL_GRAPH_Pulse,VAL_BOTTOM_XAXIS,VAL_MANUAL,Xmin,Xmax);

SetAxisScalingMode(p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1