VC串口通信技术网
对于学单片机的朋友,串口调试工具是必需的,网上可以很方便地找到相关免费软件,并且其功能还可以满足一般的要求。但是我们可能还需要对通过串口采集的数据进行加工,此时我们就很有必要去自己DIY一个属于自己的串口工具了,在修改过程中还可以对MFC编程的能力提升有一定的好处,将C51和C++用到所需的地方去解决实际问题。
下面是我修改的一个串口调试助手,先看下图:
上面这个是程序图标。
这是主要界面,和一般的串口调试助手相比还是少了一些功能,对于这些少了的功能,同样也可以加上去(在需要时)
下半部分是类似于电脑任务管理器CPU性能的曲线图,用以实时描绘当前采集到的温度,这里用折线来显示,也可以改成条形图来显示,只需改少量代码就可以了。
系统菜单中的“锁定窗口”选项,其功能等同于串口调试助手的图钉按钮。
这是关于这个程序的“关于(A)...”的响应。
这个小程序用到其它的类并作一定的修改或无修改,用到主要类有:用于绘图的----HistogramCtrl;用于更改控件颜色的-----CColorButton类;而用于串口数据收发与设置的--------CMSComm类;借助CMScomm串口控件或者用CSerialPort类,此时我们就只需关注功能的实现就可以了。
这个程序原来是针对DS18B20采集温度而写的,后来觉得功能不够用时才加上去的。图二中的响应字节数
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示每当串口接收缓冲区中有多于或等于相应字节个字符时将引发一个接收数据的OnComm事件,这样可以很方便地处理上位机程序与单片机的通信。单片机端连发7个字节后,上位机程序就相应地接收完7个字节时才产生OnComm事件。
简单地从单片机上实现DS18B20温度传感器的程序是远远不能满足应用要求的,于是,就想从单片机上实现DS18B20的c程序,再将采集到的数据实时地发送给电脑作出相应的处理,后来就用c++实现。
先用单片机实现DS18B20的C程序,再结单片机串口通信,将DS18B20的温度数据以ASCII码的
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
以七个字节为一组通过串口发送给电脑,单片机以一定的时间间隔读取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,下位机就停止温度转换。