本帖最后由 风之追逐 于 2015-10-27 16:55 编辑
功能:
通过电脑主机串口(笔记本可以用USB转串口线),读取 单片机恒温器的温度,并保存至电脑D盘的test文件夹中(文件夹不存在自动创建)。TXT文件名为运行程序后,点击开始按钮的时间,精确到秒。
说明:(程序版本 labview2014)
1.串口号,默认COM1,也可选择其他已有串口
2.温度1,为环境温度,供恒温器控温参考
3.温度2,为恒温器温度
4.温度调整,可修改恒温器平衡温度值,限制范围0~99℃
5.加热状态,显示恒温器的加热器是否工作
6.开始按钮,点击后,程序创建TXT文件,并每隔2秒钟以ASCII码形式向下位机发送AABB3520151027105620
数据说明:
AABB是起始码,供单片机判断接收到的数据是否是有效数据
35是要求恒温器当前应保持的平衡温度
20151027105620为发送数据时的当前系统时间,也可供单片机系统进行时间校正或参考
单片机响应:
单片机接收到有效数据后,就会以ASCII码形式上传环境温度值(温度1)和恒温器温度值(温度2),
例如:25.6 35.0。也可以用串口调试助手模拟单片机系统,测试程序。温度1和温度2中间用一个空格隔
开,设置成每隔2秒钟自动发送就可以了。
电脑响应:
程序接收到温度数据后,保存至TXT文件,并自动添加序号。序号范围1~99999,超出后重新从1开始
累加。
7.停止按钮,点击后,程序关闭TXT文件。
8.打开电脑D盘test文件夹中的TXT文件,查看已保存的温度数据吧 ^-^
补充说明:程序中用到了局部变量,很多人都说最好别用,要另想办法。我在程序中使用“隐藏的序号”这个变量
时,确实出过一次问题:当序号超出最大值时,它没有从1重新开始循环,而是继续累加了。而且程序运行
时,也没有错误报告。后来调整了一下,倒是正常了。不过确实感到变量这个东西要谨慎使用,提醒新手
们注意吧!!!当然,我们也不要被它吓死。有精力和兴趣的话,我们可以研究何时使用它?如何用好
它?既然存在了这么久,必然有其价值。
23
|
|
|
|
现在的笔记本已经没有串口,用串口的话,买USB转串口线或模块吧
|
|
|
|
|
那用DAQ虚拟采集卡是不是也可以代替呢?想问问你想实现这样一个功能该怎么办呢,就是想把采集到的一个数和下一个采集到的数做比较,如果下一个采集到的数比前一个数要大,就报警闪灯。主要是采集先后的这两个数不知道该怎么表示。能否请教一下?
|
|
|
|
|
复健科吓死鬼i血管壁的特色任务额头有味儿有问题要让他也认同与
|
|
|
|
|
请教楼主一个问题啊,这个采集温度数据时是连续采集吗?如果是连续采集,数据输入时,扫描字符串控件只扫描前两个数据,是怎样做到连续采集的呢?
|
|
|
|
|
程序是应答模式的。
每隔2秒钟都会有新的数据上传。程序读取完数据后,清空串口缓存,然后等待下一个数据。。。如此循环而已。
|
|
|
|
|
你的温度传感器是什么型号的啊?我串口通信时,一次只传一位数据,接收到的都是一位一位独立的字符,处理起来比较麻烦,想了解下你怎样实现数据传输的?
|
|
|
|
|
本帖最后由 风之追逐 于 2015-11-25 17:17 编辑
我用的两个Pt1000电阻,分别桥式差分放大后,进入AD7705,这个AD转换器正好有两个采样口。单片机通过AD7705读取到两个温度值之后,将他们转换成ASCII码字符串,通过RS232串口再一起上传。
|
|
|
|
|
风之追逐 发表于 2015-11-25 17:16
我用的两个Pt1000电阻,分别桥式差分放大后,进入AD7705,这个AD转换器正好有两个采样口。单片机通过AD7705读取到两个温度值之后,将他们转换成ASCII码字符串,通过RS232串口再一起上传。
我的实现方式不一样,还是谢谢你
|
|
|
|
|