搜索
bottom↓
回复: 31

串口工具与环境温度视窗(c语言的下位机程序与MFC的上位机串口程序)

[复制链接]

出0入0汤圆

发表于 2010-12-24 13:33:53 | 显示全部楼层 |阅读模式
简单地从单片机上实现DS18B20温度传感器的程序是远远不能满足应用要求的,于是,就想从单片机上实现DS18B20的c程序,再将采集到的数据实时地发送给电脑作出相应的处理,后来就用c++实现。

  先用单片机实现DS18B20的C程序,再结单片机串口通信,将DS18B20的温度数据以ASCII码的格式以七个字节为一组通过串口发送给电脑,单片机以一定的时间间隔读取DS18B20的温度数据,之后再发送给电脑,如此循环下去即可,对于下位机的程序还是比较容易实现的。

 上位机(电脑)的程序实现起来就有相当的难度了(对我来说),原来想过用C语言来实现,不过我所用的电脑不能实现图形界面的编程,只要是涉及到图形界面的程序就会黑屏,甚至假死,无奈之下只有学习c++了,功夫不负有心人,直到今天也总算实现了这个当初的既定目标,用MFC来实现。

   通过修改HistogramCtrl这个类来实现温度折线的描绘,类似于电脑的任务管理器中的CPU使用记录的曲线。看下图1:
这个是界面 (原文件名:001.jpg)

   对于电脑串口功能的实现我选择了MSComm控件,实现起来还是相当方便的。只要接收缓冲区内有7个字节的数据时就会产行OnComm事件,这时就可以接收来自单片机的数据和处理了。
   后用为了功能扩展的原因,花了些时间把这个程序的串口功能加强了不少,基本上满足了串口工小工具的要求并对界面做了一些美化。
这个是下位机单片机程序:下位机程序,用KEIL uvision 4编译ourdev_606834HO54AQ.zip(文件大小:38K) (原文件名:testds18b20.zip)
这个是上位机程序(vc6.0):上位机程序,用Visual c++6.0编译ourdev_606837GR2ZEK.zip(文件大小:129K) (原文件名:LinuxLanScomm.zip)
这个是程序:经过简单测试的程序ourdev_606838FC6AII.zip(文件大小:114K) (原文件名:Serial LinuxLan.zip)

  如果按下“关闭曲线就是下面的界面”:
(原文件名:002.jpg)

  按下“开始采集”,上位机就向下位机发送十六进制的0xff,此时下位就开始采集温度并通过串口向上位机发送数据,按下“关闭采集”就发送0xfe,下位机就停止温度转换。
  更多程序的说明请进:http://tianshawuming.blog.163.com/

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-12-24 14:09:21 | 显示全部楼层
顶下。楼主打车我问下.MFC是什么东西呢?VF吗?
上位机你是怎么的呢?你从学到做这个出来用了多久呢?要什么基础吗?0基础可以吗?我也很想学,但是不知道买什么书,你能推荐一下吗?

出0入0汤圆

 楼主| 发表于 2010-12-24 18:40:58 | 显示全部楼层
回复【1楼】hepday  
-----------------------------------------------------------------------
MFC(Microsoft Foundation Classes),是微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。

我是在7月份0基础学C++的,一个月学C++基础,8月份学MFC,到九月就开始按触串口编程并一边学单片机C语言,全过程都是自学。

我并不买书,只是在网上和图书馆找资料。

出0入0汤圆

发表于 2010-12-24 19:25:04 | 显示全部楼层
测试下!!谢了!

出0入0汤圆

发表于 2010-12-24 20:27:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-24 20:48:31 | 显示全部楼层
C++学一个月 MFC一个月 就能有如此水平了 真厉害啊

出0入0汤圆

发表于 2010-12-24 21:42:20 | 显示全部楼层
回复【5楼】freestylehll  
-----------------------------------------------------------------------

实话的说,学vb两天就能这个水平
vb对付这些小的控件还是很有优势的。

出0入0汤圆

发表于 2010-12-25 00:34:15 | 显示全部楼层
8错

出0入0汤圆

发表于 2010-12-25 23:37:37 | 显示全部楼层
楼主强人 顶起~~~~

出0入0汤圆

发表于 2010-12-25 23:55:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-26 00:10:13 | 显示全部楼层
谢谢你的分享!

出0入0汤圆

发表于 2010-12-26 10:31:24 | 显示全部楼层
楼主强人 顶起~~~~

出0入0汤圆

发表于 2010-12-28 09:11:38 | 显示全部楼层
回复【2楼】wumingjianke
回复【1楼】hepday   
-----------------------------------------------------------------------
mfc(microsoft foundation classes),是微软公司提供的类库(class libraries),以c++类的形式封装了windows的api,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
上位机是指人可以直接发出操控命令的计算机,一般是pc,屏幕上显示各种信号变化(液压,水位,温度等)。
我是在7月份0基础学c++的,一个月学c++基础,8月份学mfc,到九月就开始按触串口编程并一边学单片机c语言,全过程都是自学。
我并不买书,只是在网上和图书馆找资料。
-----------------------------------------------------------------------

牛×谢谢你的答复

出0入0汤圆

发表于 2011-1-5 13:42:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-13 17:44:06 | 显示全部楼层
哈哈,我同学来的,我要向你学习了

出0入0汤圆

发表于 2011-2-7 19:29:42 | 显示全部楼层
mark~~~

出0入0汤圆

发表于 2011-2-7 20:27:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-4 19:23:15 | 显示全部楼层
&蓺  22.63 ?&蓺  22.56  22.56悞抮 ?&┎ ?&┎  22.69  22.69悞抮彩 ?&墒 ?&墒  22.69悞抮彩悞抮彩 ?&墒  22.69  22.56悞抮悞抮 ?&┎  22.56  22.63

串口发送到PC结果中,有乱码.不像楼主的那个整齐. 是不是我的12M晶振.和代码中的11.5M不一样?

出0入0汤圆

发表于 2011-3-4 19:25:43 | 显示全部楼层
我选择了7字节,能画出曲线.就是不连续.温度22.56 之间有乱码.

出0入0汤圆

发表于 2011-3-4 19:52:35 | 显示全部楼层
void UART_Init(void)
{
        SCON = 0x50;                 //串口工作方式为1(10位异步收发) , 串行允许接收
                //SM0=0;
                //SM1=1;
                //REN=1;
        TMOD = 0x20;                 //定时器1 工作在方式2
                PCON = 0x80;  //SMOD = 1; 波特率加倍
        TH1 = 0xf3;                 //0xfd波特率 9600bps fosc="11".0592MHz   0xf3为波特率 4800bps .可能是我串口转USB问题,9600bps,取7字节不正常
        TL1 = 0xf3;
        ES = 1;                         //开串口中断
        TR1 = 1;                         //允许定时器1工作
        EA = 1;                         //开总中断
}/*

修改串品速率后,上位机取温度正常.在此感谢楼主无私分享代码!

出0入0汤圆

发表于 2011-3-4 20:01:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-5 16:18:33 | 显示全部楼层
求上位机下位机测温度程序

出0入0汤圆

发表于 2011-10-25 15:57:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-25 19:03:49 | 显示全部楼层
MFC看的我迷糊啊,mark

出0入0汤圆

发表于 2011-10-27 07:48:22 | 显示全部楼层
顶一个

出0入0汤圆

发表于 2011-10-27 08:28:03 | 显示全部楼层
学习,多谢分享!

出0入0汤圆

发表于 2011-10-27 08:28:32 | 显示全部楼层
不错;
其实有个 串口猎人 的软件挺好使得,虽然不是全部如意,一般还是可以的,功能也不错;

出0入0汤圆

发表于 2011-10-27 09:10:57 | 显示全部楼层
回复【17楼】danceman_uk
-----------------------------------------------------------------------

重新设置一下单片机的波特率

出0入0汤圆

发表于 2011-10-27 10:35:18 | 显示全部楼层
楼主,这个软件的表格绘制的坐标怎么改啊 mfc的函数看了半天也没看懂 这个坐标太大了  我想改成只显示20到30的 怎么改啊

出0入0汤圆

发表于 2011-11-5 23:57:11 | 显示全部楼层
正在做温度曲线的上位机,学习下了。谢楼主分享~

出0入0汤圆

发表于 2013-5-6 10:41:20 | 显示全部楼层
收藏了,,没有下位机做测试,,楼主好厉害

出0入0汤圆

发表于 2013-5-6 11:47:38 来自手机 | 显示全部楼层
够历害的.牛人学了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 18:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表