非正弦交流可测电压与波形.txt非正弦交流可测电压与波形.txt
想通过MSCOMM控件向51单片机发送一串字符,如:“ABCDEFGH”,然后由单片机按原来的顺序发送回来,请求怎么编程实现,谢谢~
With MSComm1
.Setting="19200,n,8,1"'这里根据你的实际情况设置
If Not(.PortOpen) Then .PortOpen=True
.InBufferCount=0
.Output="ABCDEFGH"
Dim Buf
Do
DoEvents
Buf=Buf & .Input
Loop Until ...
非正弦交流可测电压与波形.txt
想通过MSCOMM控件向51单片机发送一串字符,如:“ABCDEFGH”,然后由单片机按原来的顺序发送回来,请求怎么编程实现,谢谢~
With MSComm1
.Setting="19200,n,8,1"'这里根据你的实际情况设置
If Not(.PortOpen) Then .PortOpen=True
.InBufferCount=0
.Output="ABCDEFGH"
Dim Buf
Do
DoEvents
Buf=Buf & .Input
Loop Until InStr(Buf,vbCrLf)>0'这里的结束控制字符根据你的实际情况设定
Debug.Print "接收到的字符为" & Buf
End With
单片机发送回来就要你单片机端处理了,也可以接收一个来自计算机的命令来识别是否要回传字符,这要你自己在单片机程序里定义和相应的硬件电路实现。
我是用:mscomm1.output=text1.text 'text.text="ABCDEFGH"
用INSTR()函数能否找到结束字符(呵呵,程序还没有调试)
对了,在Output的内容后也要加上结尾控制字符,不然单片机无法判断某次传输是否结束,这也要根据你单片机程序确定。
InStr函数找的是结尾控制字符,这和停止位不是一个概念,这样计算机就可以知道某次传输是否结束,是针对一个数据包,而不象停止位是针对一个字符。
mscomm1.output=text1.text & vbcrlf这样表达对吧,
由于温度巡回检测仪具有结构简单、使用方便、测量准确和可靠性好等优点,因而,它广泛应用于工业温度测量中。98系列上润仪表WP-RD温度巡回检测仪,能完成温度显示、输出控制、网络通信等功能。但温度巡回检测仪内部存储容量有限,需要与具有强大数据处理能力和丰富软件资源的微机组成分布式系统,实现由微机对整个测量过程的温度数据进行统一的显示、存储、打印报表、参数设定和数据的进一步处理,这样必须实现PC机与温度巡回检测仪之间的通信。它们之间的通信可以通过并行通信或串行通信两种方式实现,由于串行通信自身的长处,现已被广泛的使用。Borland公司推出的Delphi是一种功能强大的高级编程语言,是新一代可视化开发工具,具有功能强大、简便易用和代码执行速度快等特点,特别适用在Windows环境下图形界面和用户程序的编制。本文开发的温度智能化巡回检测系统,使用温度巡回检测仪作为下位机采集温度数据,经过预处理后通过自带的RS232串行口将数据送给上位机PC。在PC机上Win2000环境下运行用Delphi和VB的通信控件MSComm编制的实时监测系统软件,接受串行口送来的数据,进行相应的数据处理,在用户界面上进行实时显
示和设置。
2 温度智能化巡回检测系统通信协议
温度巡回检测仪与PC机之间通过RS232异步串行通信接口通信,波特率为1200bps;字节数据格式为1位起始位、8位数据位和1位停止位;仪表地址传送格式为双字节、16进制、高字节在前、低字节在后,数据传输格式为3字节定点数(3字节定点数,低字节高4位ASC?码,低字节低4位ASC?码,高字节高4位ASC?码,高字节低4位ASC?码,小数点高4位ASC?码,小数点低4位ASC?码);巡检仪与上位机的数据通信是以“帧”为单位进行的,“@”为起始符号。
3 MSComm控件的注册和属性
3.1 MSComm控件的注册
用Delphi实现串行通信,可用的方法有两种:(1)使用Windows API;(2)使用在Windows操作系统中注册的控件。其中调用API函数较为复杂,需要掌握大量通信知识;而利用MSComm控件,程序实现相对简单,结构清晰,并且该控件具有丰富与串行通信密切相关的属性和事件,提供对串口的各种操作,使用很方便,因此本实时监测系统软件使用第2种方法。
采用MSComm控件进行串行通信时,必须添加一MSComm控件到窗体中。其具体步骤是将MSComm.ocx拷入winnt\\system32下,在Delphi主菜单中的Component,选择Import ActiveX Control命令,弹出Import ActiveX窗口,选择Microsoft Comm Control5.0,再选择Add命令,加上MSComm32.ocx,在窗体中生成了一个MSComm对象,就可自由地设置它的属性了。 3.2 MSComm控件的属性设置
MSComm控件提供了2种处理通信的方式:事件驱动(实时)方式和查询方式。由于查询方式会占用大量的CPU时间,效率很低,所以本程序中使用的是事件驱动方式。
利用MSComm控件控制通信程序,关键是准确理解和设置通信控件的属性。下面对程序中所用到的主要属性事件加以
。
(1) CommPort属性。设置或返回串行端口号,其取值范围为1,99,缺省为1;
(2) Setting属性。设置或返回串行端口波特率、奇偶校验位、数据位、停止位等参数,本系统设置为MSComm.Setting,“1200,N,8,1";
(3) PortOpen属性。打开或关闭串行端口,格式为:MSComm.PortOpen={TRUE/FALSE};
(4) InputMode属性。设置从缓冲区读取数据格式,本程序中设置为0,表示为字符串格式;
(5) Input属性。从接收缓冲区读取数据;
(6) Output属性。向发送缓冲区写入数据;
(7) InBufferSize属性。接收缓冲区的大小,缺省值为1024B;
(8) InBufferCount属性。接收缓冲区中接收字节数;
(9) OutBufferSize属性。发送缓冲区的大小,缺省值为512B;
(10) OutBufferCount属性。发送缓冲区中待发送字节数;
(11) Inputlen属性。设置或返回Input每次读出的字节数;
(12) Rthreshold属性。在MSComm控件设置CommEvent属性为comEvReceive并产生Oncomm前,设置并返回的要接收的字符数,缺省值为0,不产生Oncomm事件;
(13) Sthreshold属性。在MSComm控件设置CommEvent属性为comEvSend并产生Oncomm前,设置并返回传输缓冲区中允许的最小字符数,缺省值为0,不产生Oncomm事件;
(14) CommEvent属性。串口事件或错误。
VB如何向串口发送十六进制数
VB如何向串口发送十六进制数
用VB编程想把两个十六进制数按顺序从232串口发送到单片机01h和cch,试了多种方法都
不成功,程序不出错,但单片机就是没有反应,设置没问题单片机本身也没问题.我想,可能还
是我对那个串口发送十六进制数不熟悉,请各位大虾帮忙,谢谢,,,,
晨曦) 一级(初级)
我想可以这样:大概过程是这样,先把MSCOMM控件设置成二进制模式,然后再发送,代码如
下
MSComm1.CommPort = 1
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
dim v(1) as byte
v(0)=&h1
v(1)=&hcc
MSComm1.output=v
这样应该可以~
回复人(冯大狂)
代码如下:
Private Sub Form_Load()
'初始化串口
With MSComm1
.InputMode = 1 '设置接受数据的类型是二进制类型数据 .InputLen = 8 '一次性从接收缓冲区中读取所有数据(8个字节为一组~~) .InBufferCount = 0 '清空接收缓冲区
.OutBufferCount = 0 '清空发送缓冲区
.SThreshold = 0 '不触发OnComm()事件
.RThreshold = 1 '接收1个字节数据触发OnComm()事件 .Settings = "9600,N,8,1" .CommPort = 1
.PortOpen = True
End With
End Sub
然后在按钮1中:
Private Sub Command1_Click() Dim Data(1) as Byte
Data(0)= &H1
Data(1)=&HCC
'以上两个就是你要发送的数据
'下面这一句就发给单片机了
MsComm1.Oupput = Data End Sub
至于对于单片机的反应操作则在:
Private Sub MsComm1_OnComm()
Select Case MsComm1.CommEvent
Case comEvReceive '这里就是接收数据后的处理,一般为: if CheckOK then
DoRight '正确数据处理
else
DoWrong '出错数据处理
end if
Case else
End Select
End Sub
End Sub
------------------------------------------
本文档为【非正弦交流可测电压与波形.txt】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。