




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学实验报告学生姓名及学号:马先文2011079150001朱科2011079120020指导教师:王子斌实验地点:C2-110实验时间:2014.6.10实验室名称:二、实验项目名称:脉冲波形参数的自动测试系统三、实验学时:4学时四、实验内容:1.组建脉冲波形参数的自动测试系统2.设计脉冲参数测量系统界面2.用程控方式完成对脉冲波形参数的测量,显示脉冲波形及参数测量结果。五、实验结果:1、脉冲波形参数自动测试系统需求分析:答:函数/任意波形发生器33220A手动调节产生脉冲信号,信号输出到数字示波器DSO5012A,在LabWindows/CVI集成环境下编写脉冲参数测量控制程序,通过LXI总线控制数字示波器完成脉冲参数的测量,并在用户界面上显示脉冲波形及脉冲参数测量结果。2、本次实验设计的脉冲参数测量系统应用程序界面如下:3、本次实验内容的主体为一个程序的编制,程序的框架如下:开始开始建立仪器资源会话示波器初始化自动定标波形采集脉冲参数测量脉冲波形显示脉冲参数显示关闭仪器资源会话结束4、LabWindow/CVI程序代码如下:#include<cvirte.h> #include<userint.h>#include<visa.h>#include"PulseParameterTest.h"#defineRESOURCE"TCPIP0::192.168.1.108::inst0::INSTR"staticintpanelHandle;ViSessiondefaultRM,vi; doublepreamble[10];#defineWAVE_DATA_SIZE5000unsignedcharwaveform_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,"PulseParameterTest.uir",PANEL))<0) return-1; DisplayPanel(panelHandle); RunUserInterface(); DiscardPanel(panelHandle); return0;}intCVICALLBACKQuit(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ switch(event) { caseEVENT_COMMIT: QuitUserInterface(0); break; } return0;}intCVICALLBACKAcquire(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ charbuf[256]={0}; doubletemp; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viPrintf(vi,":MEASURE:SOURCECHAN1\n"); viQueryf(vi,":MEASURE:FREQUENCY?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_Frequency,temp); viQueryf(vi,":MEASURE:VBASE?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_Low,temp); viQueryf(vi,":MEASURE:VTOP?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_High,temp); viQueryf(vi,"MEASURE:PERIOD?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_Period,temp); viQueryf(vi,"MEASURE:VAMPLITUDE?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,temp); viQueryf(vi,"MEASURE:VPP?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,temp); viQueryf(vi,"MEASURE:RISETIME?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_RTime,temp); viQueryf(vi,"MEASURE:FALLTIME?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_FTime,temp); viQueryf(vi,"MEASURE:PWIDTH?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_PWidth,temp); viQueryf(vi,"MEASURE:NWIDTH?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_NWidth,temp); viQueryf(vi,"MEASURE:DUTYCYCLE?\n","%lf",&temp); SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,temp); Waveform(); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetPeriod(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublePeriod; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:PERIOD?CHAN1\n","%lf",&Period); SetCtrlVal(panelHandle,PANEL_Edt_Period,Period); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetTop(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doubletop; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:VTOP?CHAN1\n","%lf",&top); SetCtrlVal(panelHandle,PANEL_Edt_High,top); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetBase(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublebase; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:VBASE?CHAN1\n","%lf",&base); SetCtrlVal(panelHandle,PANEL_Edt_Low,base); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetAmplitude(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doubleamplitude; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:VAMPLITUDE?CHAN1\n","%lf",&litude); SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,amplitude); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetPTPeak(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublevpp; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:VPP?CHAN1\n","%lf",&vpp); SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,vpp); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetWaveform(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); Waveform(); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetFrequency(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublefrequency; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:FREQUENCY?CHAN1\n","%lf",&frequency); SetCtrlVal(panelHandle,PANEL_Edt_Frequency,frequency); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetRTime(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublertime; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:RISETIME?CHAN1\n","%lf",&rtime); SetCtrlVal(panelHandle,PANEL_Edt_RTime,rtime); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetFTime(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doubleftime; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:FALLTIME?CHAN1\n","%lf",&ftime); SetCtrlVal(panelHandle,PANEL_Edt_FTime,ftime); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetPWidth(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublepwidth; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:PWIDTH?CHAN1\n","%lf",&pwidth); SetCtrlVal(panelHandle,PANEL_Edt_PWidth,pwidth); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetNWidth(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doublenwidth; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:NWIDTH?CHAN1\n","%lf",&nwidth); SetCtrlVal(panelHandle,PANEL_Edt_NWidth,nwidth); viClose(vi); viClose(defaultRM); break; } return0;}intCVICALLBACKGetPDutycycle(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2){ doubledutycycle; switch(event) { caseEVENT_COMMIT: viOpenDefaultRM(&defaultRM); viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi); viClear(vi); Initialize(); Capture(); viQueryf(vi,"MEASURE:DUTYCYCLE?CHAN1\n","%lf",&dutycycle); SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,dutycycle); viClose(vi); viClose(defaultRM); break; } return0;}voidInitialize(void){ viPrintf(vi,"*RST\n"); viPrintf(vi,":AUTOSCALE\n");}voidCapture(void){ viPrintf(vi,":ACQUIRE:TYPENORMAL\n"); viPrintf(vi,":ACQUIRE:COMPLETE100\n"); viPrintf(vi,":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); viPrintf(vi,":WAVEFORM:FORMATBYTE\n"); viPrintf(vi,":WAVEFORM:POINTS1000\n"); viQueryf(vi,":WAVEFORM:PREAMBLE?\n","%,10lf\n",preamble); SetCtrlVal(panelHandle,PANEL_Edt_TimeBase,preamble[4]*100); SetCtrlVal(panelHandle,PANEL_Edt_Vertical,preamble[7]*32); Xmin=(0.0-preamble[6])*preamble[4]+preamble[5]; Xmax=(1000.0-preamble[6])*preamble[4]+preamble[5]; Ymin=(0.0-preamble[9])*preamble[7]+preamble[8]; Ymax=(256.0-preamble[9])*preamble
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 植物类中药饮片批发企业数字化转型与智慧升级战略研究报告
- 铁路客运车辆批发企业ESG实践与创新战略研究报告
- 机器人集成输送系统行业跨境出海战略研究报告
- 小麦钾转运蛋白基因TaHAK18功能及调控机制研究
- 三峡库区森林恢复对生态系统服务供需及农村家庭生计的影响及优化策略
- 课题开题报告:未来教育发展关键问题与对策研究
- 课题开题报告:网络思想政治教育方法创新研究
- 2025年便携式X荧光光谱分析仪项目经济效益评估报告
- 2025年协同管理软件项目经济效益评估报告
- 2024-2025年学期学生评估计划
- 2023年 新版评审准则质量记录手册表格汇编
- 2024年全国版图知识竞赛(小学组)考试题库大全(含答案)
- 博物馆保安服务投标方案(技术方案)
- (高清版)TDT 1047-2016 土地整治重大项目实施方案编制规程
- 2024年新疆维吾尔自治区中考一模综合道德与法治试题
- 医药代表专业化拜访技巧培训
- 今年夏天二部合唱谱
- 现代制造技术课件
- 小米公司招聘测试题目
- 2024年北京控股集团有限公司招聘笔试参考题库含答案解析
- 人教版二年级数学下册 3 图形的运动(一)1.轴对称图形(教学课件)
评论
0/150
提交评论