ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:132.43KB ,
资源ID:7646524      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7646524.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Lab windows结课作业模板.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Lab windows结课作业模板.docx

1、Lab windows结课作业模板Lab Windows结课作业学生姓名: 学号: 学 院: 专 业: 2012 年 月Lab Windows结课作业姓名: 学号: 专业: 综合实验: 示波器 1、实验目的 通过虚拟示波器的设计, 了解和学习利用LabWindows/ CVI进行虚拟仪器设计的方法、步骤和实现技术, 锻炼自己的创新思维,并借此展望虚拟仪器具有的广阔应用前景。2、实验内容 1.根据自己所学知识,结合自己的想法完成一个简单虚拟示波器的设计; 2.要求设计要有自己的特色和创新点,同时要密切的联系实际,实现尽可能多的功能;3、实验仪器 装有labwidows软件的计算机一台。4、实验原

2、理 基于Labwindows,通过对它增加控件,然后增加控件函数,用C语言进行编程,在每个控件的消息上增加关联函数,在触发消息时,调用函数,我们主要对这个函数进行编程。 要完成虚拟示波器的设计必须有外部的信号采集,内部信号的处理函数,要真正完成数据的采集,需要用到PCI板卡,还需要基于PCI协议开发数据卡驱动,数据采集函数,才能完成数据的采集。本次设计采用的是虚拟信号,也就是给示波器一个设定的信号,然后让它显示出来。五、实验步骤 步骤1:根据要实现的功能,设计用户界面; 步骤2:修改用户界面各控件的属性; 步骤3:生成代码框架,并在代码框架中添加相应代码及自定义函数; 步骤5:保存并运行程序,

3、查看运行结果;六、关键代码及注释 程序1:控件dispaly的回调函数 int CVICALLBACK displaycallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) int noise_type ,i,j; double mean,stdev,max,min; double data_noise100; char buf20 ; switch (event) case EVENT_COMMIT: GetCtrlVal (panelHandle,PAN

4、EL_WAVEFORM, &noise_type); switch(noise_type) case 0: for (i=0;i100;i+) data_noisei = rand()/32767.0 ; break; case 1: WhiteNoise (100, 1.0, 5, data_noise); break; case 2: GaussNoise (100, 1.0, 5, data_noise); break; StdDev (data_noise, 100, &mean, &stdev); MaxMin1D (data_noise, 100, &max, &i, &min,

5、&j); sprintf(buf,%6.2f,mean); SetCtrlVal (panelHandle, PANEL_MEAN, buf); sprintf(buf,%6.2f,stdev); SetCtrlVal (panelHandle, PANEL_STDEV, buf); sprintf(buf,%6.2f,min); SetCtrlVal (panelHandle, PANEL_MIN, buf); sprintf(buf,%6.2f,max); SetCtrlVal (panelHandle, PANEL_MAX,buf ); break; case EVENT_RIGHT_C

6、LICK: MessagePopup(help,press this button to display chart); break; return 0;程序2:增益的回调函数int CVICALLBACK DataFunc (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) double signal_scope,signal_frequency; int waveform; switch (control) case PANEL_SCOPEGAIN: if (even

7、t = EVENT_VAL_CHANGED) GetCtrlVal (panelHandle, PANEL_SCOPEGAIN, &channel_scope_gain); break; case PANEL_FREQGAIN: if (event = EVENT_VAL_CHANGED) GetCtrlVal (panelHandle, PANEL_FREQGAIN, &channel_frequency_gain); break; case PANEL_SCOPE: if (event = EVENT_COMMIT) GetCtrlVal (panelHandle, PANEL_SCOPE

8、, &signal_scope); if(channel_signal=0) Channel1.scope=signal_scope; else Channel2.scope=signal_scope; break; case PANEL_FREQUENCY: if (event = EVENT_COMMIT) GetCtrlVal (panelHandle, PANEL_FREQUENCY, &signal_frequency); if(channel_signal=0) Channel1.frequency=signal_frequency; else Channel2.frequency

9、=signal_frequency; break; case PANEL_WAVEFORM: if (event = EVENT_COMMIT) GetCtrlVal (panelHandle, PANEL_WAVEFORM, &waveform); if(channel_signal=0) Channel1.waveform=waveform; else Channel2.waveform=waveform; break; return 0;程序3:通道选择的回调函数int CVICALLBACK Channel (int panel, int control, int event, voi

10、d *callbackData, int eventData1, int eventData2) switch (event) case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_CHANNEL, &channel); if(channel=0) SetCtrlAttribute (panelHandle, PANEL_CHART, ATTR_NUM_TRACES, 1); SetTraceAttribute (panelHandle,PANEL_CHART,1 ,ATTR_TRACE_COLOR, VAL_GREEN); if(channel=

11、1) SetCtrlAttribute (panelHandle, PANEL_CHART, ATTR_NUM_TRACES, 1); SetTraceAttribute (panelHandle, PANEL_CHART,1, ATTR_TRACE_COLOR, VAL_RED); if(channel=2) SetCtrlAttribute (panelHandle, PANEL_CHART, ATTR_NUM_TRACES, 2); SetTraceAttribute (panelHandle, PANEL_CHART,1,ATTR_TRACE_COLOR, VAL_GREEN); Se

12、tTraceAttribute (panelHandle, PANEL_CHART,2,ATTR_TRACE_COLOR, VAL_RED); break; return 0;程序4:定时器的回调函数int CVICALLBACK Timer (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) int i; switch (event) case EVENT_TIMER_TICK: GenerateData(); if( panelHandle=0) PlotStripC

13、hart ( panelHandle, PANEL_CHART, Channel1.data, Channel1.pointnum, 0, 0, VAL_DOUBLE); if(panelHandle=1) PlotStripChart (panelHandle, PANEL_CHART, Channel2.data, Channel2.pointnum, 0, 0, VAL_DOUBLE); if(panelHandle=2) PlotStripChart (panelHandle, PANEL_CHART, data, Channel1.pointnum*2, 0, 0, VAL_DOUB

14、LE); break; return 0;七、实验结果图1 开始时图像图2 调节幅度图3 调节频率图4 调节扫频图5 调节block图6 调节通道和输入信号图7 调节噪声图8 调节通道八、心得本次试验所学软件Labwidows/cvi和我正在学习的linux环境下的图形界面开发工具Qt designer有很多相似之处,虽然Labwidows/cvi的程序不能直接移植到Qt中运行,但是C和C+的相似相同之处给我提供了更加深刻的理解和广阔的思路,其事件和响应机制更是和Qt中信号与槽的概念的理解完全相同。这次试验,使我实现了运用labwidows/cvi设计虚拟仪器的方法、步骤和技术,使得自己的创新

15、思维的到了充分的扩展,为我下一步设计媒体播放器提供了新的思路和设计方案,为我进一步学习Qt打好了基础,做好了铺垫。感谢老师,感谢实验,感谢这门课给我带来了巨大了乐趣。参考文献1 张宗橙、张玲华.数字信号处理与应用M.南京:东南大学出版社.2006.2罗霄华、虚拟仪器技术的应用与发展J科技情报开发与经济.2001(3) 3 赵勇虚拟仪器软件平台和发展趋势J国外电子测量技术.2002(1)4 沈元隆、周井泉.信号与系统M.北京:人民邮电出版社.2003.5赵美泽关于虚拟教学仪器的设计与实现J莱阳农学院学报,2005,22(2)6杨乐平LabVIEW程序设计与应用M北京:电子工业出版社,20017王霄. 虚拟仪器设计及其在教学中的应用J .现代电子技术.2005,28(8); 8 张凤均. LabWindows/CVI 开发入门和进阶 M.北京: 北京航空航天大学出版社.2001.9 张毅、周绍磊、杨秀霞虚拟仪器技术分析与应用M.北京:机械工业出版社.200410张易知、肖啸、张喜斌、卫跃春虚拟仪器的设计与实现M西安电子科技大学出版社200211林永平、蔡坚勇.基于网络的虚拟示波器的设计J .福建师范大学学报: 自然科学版,2005,21(2).12崔红梅、麻硕士、裴喜春等. 基于LabWindows/CVI 平台的虚拟数字信号分析仪的研究与开发J.计量技术,2005(11).

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

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