目录
第一部分前面板: (1)
第二部分程序框图 (2)
2.1 初始界面设置 (2)
2.2 程序运行 (2)
2.2.1 0状态 (2)
2.2.2 1状态 (4)
2.2.3 2状态 (5)
2.2.4 4状态 (8)
第四章总结 (9)
第五章参考文献 (9)
声音文件调用播放
由于声卡的基本知识及声卡相关声音函数节点、相关文件函数节点的介绍已在整体综述中介绍过,故这里只详细介绍频谱分析仪中声音文件的调用和播放功能是如何实现的。
第一部分前面板:
前面板的最初显示
第二部分程序框图
2.1 初始界面设置
首先通过file、quit、play、stop、qause的属性节点来设置按键的属性:按键file、quit为启用,按键play、stop、pause为禁用并变灰,并通过布尔量设置按键file、quit初始值为0。
2.2 程序运行
然后,将file、play、quit三个布尔量的状态创建成一个数组,再通过函数布尔数组至数值转换变为二进制数,用这个二进制数来选择条件结构中的状态,file为低位,quit为高位(即000为0状态,001为1状态,010为2状态,100为4状态)。
2.2.1 0状态:按键file为0时,play和quit为禁用并呈灰色,只能是状态0,经过布尔量数组转化为二进制是0,这个状态在选择文件之前,通过布尔量保持循环的继续,从而保持界面状态:
2.2.2 1状态:按键file为1时,弹出对话框:
对话框中只显示wav波形文件,这是由条件结构来实现的:
起初全局变量无值,对话框中显示默认路径,选过一次路径拆分
后,会将所选路径保存到全局变量中,方便下次选择。
选好文件后,snd 读取波形文件通过文件路径读取文件的信息,并将信息写入全局变量,确定波形文件是mono(单音,非立体声)还是stereo(立体声),是8bit还是16bit,并将这些信息通过字符串显示出来,最后,利用一个布尔量来控制file的局部变量,使file 跳转为0,转换到保持状态:
2.2.3 2状态:按键file跳转为0后,点击play键,使其变为1,经过布尔量数组转化为二进制是2,跳转到2状态首先设置按键属性:
设置按键file和quit禁用并变灰,play禁用,pause和stop可用,并通过布尔量设置pause和stop值为0。
在这个状态中,配置声音输出vi、写入声音输出vi、暂停声音输出vi、启动声音输出播放vi和SO清零vi来控制文件的播放、暂停和停止。
对于wav波形文件,采样模式指定写入仅为一次(有限采样)或连续写入(连续采样)。
有限采样模式下,仅在写入每通道采样总数所指定的采样个数后,才可调用写入声音输出。
连续采样模式下,“写入声音输出”VI可随时重复调用。
声音格式设置声音操作的播
放速度、通道数和每采样比特数。
控件的值取决于声卡。
在1状态中对全区变量赋值,即文件信息,在这传递给配置声音输出vi和写入声音输出vi,并通过移位寄存器记录该次循环的末状态,用两个布尔量控制播放的暂停和停止。
当按键pause和stop都为0时,通过启动声音输出播放vi开始播放文件:
当按键pause为1,stop为0时,通过条件结构选择1状态,启动声音输出播放vi改为暂停声音输出vi,此时播放暂停,但还保留记录,再按下pause时,则会从上次暂停的位置开始播放:
当按键pause为0,stop为1时,循环停止,播放结束,不保留记录,若此时按下播放键,则从新开始播放。
执行完毕后,就会通过SO清零vi对信号清零。
错误输入表明VI或函数运行前发生的错误。
默认值为无错误。
如错误发生在VI或函
数运行之前,VI或函数将把错误输入值传递至错误输出。
如在VI或函数运行前没有发生错误,VI或函数将正常运行。
如在VI或函数运行时发生错误,VI或函数将正常运行并在错误输出中设置自身的错误状态。
简易错误处理器或通用错误处理器VI可用于显示错误代码的说明信息。
通过异常情况处理控件,可忽略一般意义上的错误,或将错误作为警告处理。
错误输入和错误输出用于检查错误并通过将一个节点的错误输出与另一个节点的错误输入连线指定执行顺序。
将错误信号解除捆绑,输出信号对布尔量赋值来显示是否存在错误,并将错误信息通过局部变量显示出来:
wav波形文件播放完毕后,通过file、quit、play、stop、pause的属性节点来设置按键的属性:按键file、play、quit为启用,按键stop、pause为禁用并变灰,并通过布尔量设置按键play、stop、pause初始值为0
2.2.4 4状态:按下quit键,经过布尔量数组转化为二进制是4,选择4
状态,在4状态中,通过布尔量的值控制循环,在这里布尔量为0,循环停止,即程序停止运行:
第四章总结
刚开始课设的时候,由于题目很多,我们像没头苍蝇似的乱找,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?对于我们这些新手来说,这是很大的考验,本来想找一个和生物医学有关的,可是很多论文,都没有大概的程序框图,资料也很少,没办法做,只好放弃,其实心中还有一点不甘心,就这样,定题目就花了很多时间。
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,通过对LabVIEW的系统学习和操作,使我充分了解了编写一个实际程序的具体过程,并从中学到了不少细节方面的东西。
最后,感谢老师的辅导,如有缺陷还请老师谅解!
第五章参考文献
●陈锡辉张银鸿 Labview 8.20程序设计从入门到精通清华大学出版社
2007年
●龙华伟顾永刚 Labview 8.21与DAQ数据采集清华大学出版社 2008年●雷振山赵晨光魏丽郭涛 Labview 8.2基础教程中国铁道出版社 2008
年。