查看: 1788|回复: 0
打印 上一主题 下一主题

(c语言的下位机程序与MFC的上位机串口程序)

[复制链接]
跳转到指定楼层
沙发
发表于 2016-5-8 23:13:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单地从单片机上实现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) (原文件名inuxLanScomm.zip)
这个是程序:经过简单测试的程序ourdev_606838FC6AII.zip(文件大小:114K) (原文件名:Serial LinuxLan.zip)

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

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







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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