欢迎来到天天文库
浏览记录
ID:10009989
大小:30.50 KB
页数:4页
时间:2018-05-20
《电子秤使用串口与计算机进行通讯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BE01型仪表通讯编程 现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSComm串口通讯控件(在MicrosoftCommControl6.0中)。具体程序如下:控件简称:MSCDimOut(12)AsByte'接收var中的值DimvarAsVariant'接收MSC.input中的数值DimnReceAsInteger'计算MSC.inp
2、utbuffer的个数DimiAsInteger,jAsInteger'随即变量,计算循环****************************************************************************PrivateSubForm_Load() ClearText WithMSC .CommPort=1'设置Com1为通信端口 .Settings="9600,E,7,2"'设置通信端口参数9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。 含义是:B:BaudRate
3、(波特率);P:Parity(奇偶);D:DataBit;S:StopBit) .InBufferSize=40'设置缓冲区接收数据为40字节 .InputLen=1'设置Input一次从接收缓冲读取字节数为1 .RThreshold=1'设置接收一个字节就产生OnComm事件 EndWithEndSub****************************************************************************PrivateSubClearText() Text3.Text="" Text2.Text="5" Text1.Tex
4、t=""EndSubPrivateSubCommand1_Click() ClearText 'nRece=0'计数器清零 WithMSC .InputMode=comInputModeBinary'设置数据接收模式为二进制形式 .InBufferCount=0'清除接收缓冲区 IfNot.PortOpenThen .PortOpen=True'打开通信端口 EndIf EndWithEndSubPrivateSubMSC_OnComm() DelayTime‘用来延续时间 ClearText WithMSC SelectCase.CommEvent'判断通信事件
5、 CasecomEvReceive:'收到Rthreshold个字节产生的接收事件 SwichVar1 IfOut(1)=2Then'判断是否为数据的开始标志 .RThreshold=0'关闭OnComm事件接收 EndIf Do DoEvents LoopUntil.InBufferCount>=3'循环等待接收缓冲区>=3个字节 'nRece=nRece+1 Fori=2To12 SwichVari Text1.Text=Text1.Text&Chr(Out(i)) Next Text1.Text=LTrim(T
6、ext1.Text) Text2.Text=Text2.Text&CStr(nRece) .RThreshold=1'打开MSComm事件接收 CaseElse '.PortOpen=False EndSelect EndWithEndSub****************************************************************************PrivateSubDelayTime() DimbDTAsBoolean DimsPreviousAsSingle,sLastAsSingle bDT=True sPrev
7、ious=Timer(Timer可以计算从子夜到现在所经过的秒数,在MicrosoftWindows中,Timer函数可以返回一秒的小数部分) DoWhilebDT IfTimer-sPrevious>=0.3ThenbDT=False Loop bDT=TrueEndSub(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Priv
此文档下载收益归作者所有