stststst2012 发表于 2011-7-10 15:41:30

大家用上位机显示单片机串口输出数据波形都用什么软件,这两天看到论坛里提到labview,

需要做的工作:
51单片机上传感器采样,(现只有温度传感器,变化太小,做程序时,是用随机数代替的)上位机软件接收数据画出图形(横轴是时间,纵轴是采样数值),这里要使用labview,输出类似示波器的效果。

我使用的方法发如下:(第一天接触labview,可以说真是一无所知,四处查资料,不得要领,另外单片机串口通讯也只是刚刚学),遇到了问题,请大家帮忙指点。
一、
上位机从网上找到一个labview的实例VI,串口试验的,功能界面基本等同于常用开发板上的“串口调试程序”,VI如下:
这是我在网上看到的串口接收数据的VI,我加了个波形控件ourdev_656458S2UVM6.rar(文件大小:54K) (原文件名:串口调试程序.rar)
界面如图:http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656459Y3T564.JPG
这个VI的界面图和程序框图画红圈的是我自己添加的 (原文件名:1.JPG)

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656460QC2LGN.JPG
(原文件名:2.JPG)

二、单片机上是简单的循环发送数据程序,摘部分写在下面:

/*------------------------------------------------
                  主函数
------------------------------------------------*/
void main (void)
{

   InitUART();
   int temp;
   while (1)                     
    {
      for(i=0;i<3;i++)
      {
          temp=rand()*9+1;
      }
      SendStr(temp);//这个字符串就会每次发送三位随机数(100-999)过去
      //延时循环发送
      DelayMs(240);
    }
}

/*------------------------------------------------
                  发送一个字节
------------------------------------------------*/
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
      TI = 0;
}
/*------------------------------------------------
                  发送一个字符串
------------------------------------------------*/
void SendStr(unsigned char *s)
{
while(*s!='\0')// \0 表示字符串结束标志,
                //通过检测是否字符串末尾
{
SendByte(*s);
s++;
}
}

运行单片机,打开串口程序,这里我让单片机试验了两种数据,一个是随机3数整数,另一个是循环加1,都是在(100-999之 间),运行都接收正常,国图中绿色的就是接收的循环加一的效果。
三、我在上位机程序中加入图形“控件”(这里因对labview不懂,它没有文本编程,只有程序框图,所以感到很难下手。)根据自己的理解,在原程序框图中在接收区前端和图形控件间连了线,但不支持,后来试着在中间加入一个函数(转字符串为整数),一下子成了!(也是没想到)运行VI,图线出来了,但不是我想要的效果。

现在的问题如下:

曲线不是我想要的样子,我是要把这些点用线连起来,labview把每个点向下连到横轴上,这是要解决的第一个
第二个是当我把下位机延迟减到delay(20),原来是delay(200),就不是每个点都显示了,似乎处理速度不够的样子,不明白因为什么,点显示的断断续续的
还有就是如果我要传两种数据进来,用两条曲线分别显示,应该怎么做,请会的朋友,给些指点,谢谢了!!!!


网上有现成例子,是将温度发送成四个字节,然后用labview去读取,因对labview看得不得要领,也没看懂,不过大概路子应该是一样的!有了解的朋友指出我labview中的问题.....

stststst2012 发表于 2011-7-10 16:22:43

http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656464JYCYUE.JPG
这是温度采集得到的,温度只取了两位整数,用手使之升高再放开 (原文件名:4.JPG)

但这根本不是我想要的,我想要的是平滑曲线也就是把图中的点与点连起来,即便是采集时间间隔再长一些,也是曲线也可以,但这里只是孤立的点,哪个地方的问题呢??

lwy86 发表于 2011-7-10 16:51:14

右单击控件
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656474V55IK2.jpg
(原文件名:Snap1.jpg)

stststst2012 发表于 2011-7-10 16:57:16

我看看,这个好像我调了,我把单片机上改成那个四个字节发送的然后用网上一个例子是对的,我试试你的,再对一下他的labview,改成他的以后图线如下:显示效果是对的
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656476WTULTD.JPG
(原文件名:5.JPG)

stststst2012 发表于 2011-7-10 17:22:42

不是那个原因,因为我的图形中,我是把点到x轴他本来画的线给用黑色掩盖掉了,所以一定不对,就是labview程序框图的问题.....在哪呢?

Excellence 发表于 2011-7-10 19:02:19

TeeChart...
查论坛里有。

linjs137 发表于 2011-7-11 08:43:02

强大的控件 先收藏

MINI2440 发表于 2011-7-11 09:29:33

MARK

ligongxiaobie 发表于 2011-12-2 10:41:59

mark

newhand1991 发表于 2011-12-14 22:42:53

mar

zzt8899 发表于 2011-12-14 23:03:07

我想用bcb做

leestrong 发表于 2011-12-23 19:00:51

支持!

& Mark!

726544893 发表于 2012-1-15 09:56:37

强大,标记学习!

belimys 发表于 2012-3-27 13:57:07

谢谢分享………………支持

belimys 发表于 2012-3-27 13:59:03

(原文件名:串口调试程序.rar)      里面的子VI不在了,可以发一个给我不。。谢了哈 578357980@qq.com

mavericklx 发表于 2012-4-9 14:34:20

mark
串口Labview

McuPlayer 发表于 2012-4-9 14:44:10

LabView是个很方便的工具
页: [1]
查看完整版本: 大家用上位机显示单片机串口输出数据波形都用什么软件,这两天看到论坛里提到labview,