测量仪器课程设计.doc_第1页
测量仪器课程设计.doc_第2页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测量仪器课程设计任务书练习1:温度报警程序,当温度值大于37则报警,小于-5则退出运行状态。前面板:程序功能及用途: 本程序功能为温度报警,温度值超过37就报警,小于-5就退出运行状态。程序演示:(备注:以下的当前温度值显示格式设置为2位的浮点数,当然也可以设置为其他形式)(1)当温度值大于37时 ,红灯亮表示报警。(备注:以下的温度值)(2)当温度值小于-5时 ,程序退出运行状态。练习2:建立一个实现计算器功能的 vi。前面板有数字控制件用来输入两个数值,有数值显示件用来显示运算结果。运算方式有加、减、乘、除,可用一个滑动条实现运算方式的设定。功能:实现加减乘除运算方式的切换,k为滑动杆的值 当0=k&k5时,运算方式为加法; 当5=k&k10时,运算方式为减法; 当10=k&k15时,运算方式为乘法; 当15=k&k=20时,运算方式为除法;该题利用公式节点来进行设计前面板:练习三:设计 vi,将一个字符串和两个数值联结成为一个字符串(顺序为两头为数值,中间为字符串)。两字符串间不用空格隔开。数值形式分别为输入时为四位、二位浮点型,显示时为两位、四位浮点型。并显示中间字符串长度和组成后的字符串长度。程序功能及用途: 本题要求将两个数值和一个字符串组合成一个新的字符串,对于输入的两个数值有精度要求(数值1,数值2的显示格式分别设置为四位,二位浮点型),对于输出的字符串也有格式要求(显示时为两位,四位浮点型),这可以通过“格式化写入字符串”函数来实现,对于计算中间字符串长度和组成字符串长度可以由“字符串长度”函数来说实现并最终用数值显示控件显示其长度,可以用字符串输出控件输出组合后的字符串。前面板:综合设计题目一:信号产生、测量与传输系统设计设计内容:在labview开发平台下,结合测试与信号处理理论设计下述虚拟仪器:函数发生器;频谱分析仪;具体要求:函数发生器输出正弦波、方波、三角波,波形可选择;频率、幅值和初相位可以调节;前面板上显示输出波形。频谱分析仪采样频率、采样点数、信号频率、幅值和初相位可调;分析正弦波、方波和三角波的频谱特性。图一、信号发生器设计一个vi,可以得到常见的正弦波、方波、锯齿波三角波信号,并叠加一个均匀白噪声,上面波形图显示基本信号,下面是基本信号和均匀白噪声叠加信号,设计如图所示,添加两个按钮,分别是波形生成和停止生成,来控制该信号发生器。要求:设计出程序框图。图二、虚拟滤波器设计在上一题基础上,设计一个虚拟滤波器,可以对有噪声信号的原始信号进行低通滤波处理,添加两个按钮,分别用来产生模拟信号和开始滤波功能。要求:设计出程序框图图三基于labview和单片机的温度测量系统设计设计一个基于串口的虚拟温度测量系统,其中单片机部分在proteus中设计,其代码在设计中已经提供,主要设计一个上位机接收程序,将单片机发送的温度值接收并保存起来,下图一给出的是一个示意图,可以按照这个界面来设计,也可以按照别的思路。主要思想:上位机作为一个接收端,实时接收数据, 单片机端的温度用有三个字节的数组成,第一个是一个标志位,如果接收为0则表示接收成功。第二个是发送实际温度值乘以10后的整型数据的高字节;第三个是发送实际温度值乘以10后的整型数据的低字节;上位机主要利用visa中的串口接收函数,同时由于单片机中的数据发送过来是以文本形式接收,要进行数据转化。根据上面的简单描述:设计出该上下位机测量系统要求:(1)分别在proteus和labview中完成两个实例 (2)写出程序设计过程和程序框图 (3) 完成课程设计报告。 #include #include#define uchar unsigned char#define uint unsigned intsbit dq =p36; /定义ds18b20通信端口uchar flag=0;code uchar table=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, /09的段码 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10, /带小数点09的段码 0xbf,0xff; /-和全灭的段码/uchar pc_command;/只要pc有发过来0x0a过来就算是告诉单片机启动发送指令uchar flag; /正负号标志void delay(unsigned int i)/延时函数while(i-);/显示程序void display(uchar bit_count,uchar dat) p2=0x00; p0=tabledat; p2=(0x01)0;i-)dq = 0; / 给脉冲信号dat=1;dq = 1; / 给脉冲信号if(dq)dat|=0x80;delay(4);return(dat);void write(unsigned char dat)/写一个字节unsigned char i;for (i=8; i0; i-)dq = 0;dq = dat&0x01;delay(5);dq = 1;dat=1;delay(4);uint readtemperature(void)/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float f_t=0;init_ds18b20();write(0xcc); / 跳过读序号列号的操作write(0x44); / 启动温度转换init_ds18b20();write(0xcc); /跳过读序号列号的操作write(0xbe); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=read();b=read();if(b127)t=b;t=8;t=t|a;flag=0;elsea=a;b=b;t=b;t=8;t=t|a;t=t+1;flag=1;f_t=t*0.0625; /温度值在寄存器中为11位,分辨率为0.0625t=f_t*10+0.5; /乘以10表示小数点后面只取1位,加0.5是四舍五入return(t);void serial_int() /设置定时器1的工作方式为方式2 tmod=0x20; /设定定时器1的初值,使串口通讯的波特率为9600bps th1=0xfd; tl1=0xfd; scon=0x50; pcon=0x00; es=1;ea=1; tr1=1;main() uint temperature;uchar temp_highbyte,temp_lowbyte;serial_int(); while(1)temperature=readtemperature(); dis_temperature(temperature);temp_highbyte=temperature/256;temp_lowbyte=temperature%256; es=0; sbuf=flag; /发送三个字节 while(ti=0); ti=0; sbuf=temp_highbyte; /发送实际温度值乘以10后的整型数据的高字节 while(ti=0); ti=0; sbuf=temp_lowbyte; /发送实际温度值乘以10后的整型数据的低字节 while(ti=0); ti=0; es=1; 补充:题目二 基于labview的摄像头控制程序理论介绍:在labview中利用电脑配备的 usb 摄像头进行视频监控,要用到两个 api 函数:capcreatecapturewindow 和 sendmessage。capcreatecapturewindow 的作用是创建一个视频窗口,摄像头捕捉到的视频图像在此窗口内显示,函数返回值就是代表此窗口的句柄。函数表示式如下所示:hwnd vfwapi capcreatecapturewindow( lpcstr lpszwindowname, dword dwstyle, int x, int y, int nwidth, int nheight, hwnd hwnd, int nid );各参数意义如下: lpszwindowname 视频窗口的窗口标题 dwstyle 窗口模式,设置值可用下面数值,也可组合使用: ws_child:视频窗口是子窗口,位于应用程序主窗口内。否则是独立的窗口 ws_visible:视频窗口可见 ws_caption:视频窗口有标题栏 ws_thickframe:视频窗口有边框 x 视频窗口位置x坐标 y 视频窗口位置y坐标 nwidth 视频窗口宽度 nheight 视频窗口高度 hwndparent 创建视频窗口的主窗口,设置为:me.hwnd nid 视频id视频窗口创建后,剩下的事情就是用 sendmessage 向该窗口发送各种消息,实现对摄像头的控制。函数表示式如下所示:lresult sendmessage( hwnd hwnd, / handle to destination window uint msg, / message wparam wparam, / first message parameter lparam lparam / second message parameter);#define wm_user 0x0400 const wm_cap_connect = wm_user + 10 连接一个摄像头const wm_cap_disconnect = wm_user + 11 断开一个摄像头的连接const wm_cap_set_preview = wm_user + 50 使预览模式有效或者失效const wm_cap_set_overlay = wm_user + 51 使窗口处于叠加模式,也会自动地使预览模式失效。const wm_cap_set_previewrate = wm_user + 52 设置在预览模式下帧的显示频率const wm_cap_edit_copy = wm_user + 30 将当前图像复

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论