- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Labwindows的虚拟示波器
姓名: 学号: 专业:
综合实验:示波器
实验目的
(1)了解并掌握虚拟仪器的设计方法,具备初步的独立设计能力。
(2)初步掌握对图形化编程语言Lab Windows的编程、调试等基本技能。
(3)提高综合运用所学的知识独立分析和解决问题的能力。
二、实验内容
编写
三、实验仪器
计算机一台,装有LabWindows
四、实验原理
根据labwindows实验指导书,完成对示波器的设计。
五、实验步骤
完成用户界面的设计,即仪表板。.首先在界面上加上若干Decoration的矩形来划分面板。选择Graph中的Strip Chart,设置如图1。
图2 Strip Chart设置
在下面加一个text文件作为横坐标显示,设置为图2。
图3 text控件设置
接着在左上角放置时钟控件,设置为图3。
图4 时钟控件设置
然后放置电源开关控件和LED指示灯,如图4。
图5 电源开关及指示灯
再放置接收信号频率增益和幅度增益控件,设置为图5和图6。
图5 接收信号频率增益
图6接收信号幅度增益
用代码生成器生成程序框架。选择CodeGenerateAll Code,在如图2
面中选择QuitCallk项后确定。
图7 生成程序框架
插入库函数。将鼠标放在需要插入库函数的地方,点击library菜单来插入。在LibraryAdvanced Analysis有各种函数,选中任意函数会弹出设置面板,需要设置具体的参数。设置完成后选择CodeInsert Function Call即完成函数插入。
完成了程序框架的填写后对每个函数具体按照示波器的各个按钮的功能来写代码。此时要特别注意回调函数的用法,可以在函数上点击右键,选择Browse Identifier,如图3,来查看函数的定义与用法举例,还可以在右边的库中查找到其他有类似用法的函数,如图4,方便你的调用。
图8 查看函数定义 图9 库函数
另外,还可以直接右键,选择Find UI Object来直接查看该函数对应的用户面板上的控件。
再完成了程序的编写后就需要进行程序的调试了。点击菜单Run Debug**.exe或点击快捷栏内绿色三角图标就可以运行程序。未开启示波器时显示如图5.电源开关未按下时电源指示灯为绿色,开启电源开关后电源指示灯为红色。
图10 示波器面板
此时,点击电源开关,在选择好输入信号形式,输入信号幅度和频率以及输入信号通道,接受信号通道,曲线滚动模式及频率增益和幅度增益后,就可以显示需要的波形了。
六、关键代码及注释
#include analysis.h //头文件
#include ansi_c.h
#include cvirte.h /*做扩展编译时需要 */
#include userint.h
#include 综合示波器.h
#define PI 3.1416 //宏命令定义
#define TRUE 1
#define FALSE 0
#define MAX_POINTS 51200
struct CHANNELDATA{
int waveform;
double frequency;
double scope;
int pointnum;
double data[MAX_POINTS]; //定义通道数据结构体
}Channel1,Channel2;
static int handle; //定义参数
int channel=0,channel_signal=0;
double channel_scope_gain=1.0,channel_frequency_gain=1;
int chartmode=1; //继续
int power=0; //关闭
//静态整形波形
static double data[MAX_POINTS*2];
void GenerateData(void) ;
int main (int argc, char *argv[])//主函数
{
if (InitCVIRTE (0, argv, 0) == 0) /* 做扩展编译时需要 */
return -1; /* 读出内存 */
if ((handle = LoadPanel (0, 综合示波器.uir, PANEL)) 0)
return -1;
Display
文档评论(0)