⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 单片机技术专题——利用vb实现pc机与多单片机通讯.htm

📁 利用VB实现PC机与多单片机通讯
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            InStr(_buffer$,“OK”)'从串行端口读“OK”响应'</FONT></P>
            <P><FONT 
            color=#000066>  In_buffer=Left(In_buffer,len(In_buffer)-2)</FONT></P>
            <P><FONT color=#000066>  接收数据=In_buffer$</FONT></P>
            <P><FONT color=#000066>  End Function</FONT></P>
            <P><FONT color=#000066>3.Timer控件控制</FONT></P>
            <P><FONT 
            color=#000066>  通过Timer控件来控制通讯中的发送命令和接收数据过程,在通讯程序中设置两个Timer控件分别控制发送单片机命令和接收单片机数据。为了实现一台PC机和多单片机之间的通讯,可在一个Timer控件的过程中,在发送命令之前设定命令参数和要接收数据的单片机号,然后发送单片机命令;在另一个Timer控件的过程中,根据发送前设定的单片机号,接收不同单片机的数据。</FONT></P>
            <P><FONT color=#000066>  Timer控件控制程序如下:</FONT></P>
            <P><FONT color=#000066>  '发送命令主控程序</FONT></P>
            <P><FONT color=#000066>  Privata Sub TimerSend_Timer()</FONT></P>
            <P><FONT color=#000066>  TimerSend.Enabled=False</FONT></P>
            <P><FONT color=#000066>  Select Case command</FONT></P>
            <P><FONT color=#000066>  Case 1]</FONT></P>
            <P><FONT color=#000066>  Call发送单片机命令过程(任务1)</FONT></P>
            <P><FONT 
color=#000066>  TimerReceive.Enabled=False'启动自动接收</FONT></P>
            <P><FONT color=#000066>  Case2</FONT></P>
            <P><FONT color=#000066>  Call发送单片机命令过程(任务2)</FONT></P>
            <P><FONT color=#000066>  MSComm1.Rthreshold=0'关闭自动接收</FONT></P>
            <P><FONT color=#000066>  TimerReceive.Interval=500</FONT></P>
            <P><FONT 
            color=#000066>  TimerReceive.Enabled=True'启动定时器接收机号=1</FONT></P>
            <P><FONT color=#000066>  Case 3</FONT></P>
            <P><FONT color=#000066>  Call发送单片机命令过程(任务3)</FONT></P>
            <P><FONT color=#000066>  MSComm1.Rthreshold=0'关闭自动接收</FONT></P>
            <P><FONT color=#000066>  TimerReceive.lnterval=500</FONT></P>
            <P><FONT 
color=#000066>  TimerReceive.Enabled=True'启动定时器接收</FONT></P>
            <P><FONT color=#000066>  机号=2</FONT></P>
            <P><FONT color=#000066>  Case 4</FONT></P>
            <P><FONT color=#000066>  ┆</FONT></P>
            <P><FONT color=#000066>  Case n</FONT></P>
            <P><FONT color=#000066>  …</FONT></P>
            <P><FONT color=#000066>  End Select</FONT></P>
            <P><FONT color=#000066>  End.Sub</FONT></P>
            <P><FONT color=#000066>  '接收数据主控程序</FONT></P>
            <P><FONT color=#000066>  Private Sub TimerReceive_Timer()</FONT></P>
            <P><FONT color=#000066>  TimerReceive.Enabled=False</FONT></P>
            <P><FONT color=#000066>  Select Case机号</FONT></P>
            <P><FONT color=#000066>  Case 1</FONT></P>
            <P><FONT color=#000066>  In_buffer$=接收数据(机号)</FONT></P>
            <P><FONT color=#000066>  Call任务2</FONT></P>
            <P><FONT color=#000066>  Case 2</FONT></P>
            <P><FONT color=#000066>  In_buffer$=接收数据(机号)</FONT></P>
            <P><FONT color=#000066>  Call任务3</FONT></P>
            <P><FONT color=#000066>  Case 3</FONT></P>
            <P><FONT color=#000066>  ┆</FONT></P>
            <P><FONT color=#000066>  Case n</FONT></P>
            <P><FONT color=#000066>  In_buffer$=接收数据(机号)</FONT></P>
            <P><FONT color=#000066>  Call任务n</FONT></P>
            <P><FONT color=#000066>  End Select</FONT></P>
            <P><FONT color=#000066>  End Sub</FONT></P>
            <P><FONT color=#000066>4.自动接收、监视总线状态和通讯错误的处理</FONT></P>
            <P><FONT 
            color=#000066>  自动接收、监视总线状态和通讯错误的处理可以通过OnComm事件实现。VB程序运行过程中只要设置MSComm1.Rthreshold=1,在接收事件发生时程序就会自动访问MSComm1.OnComm()过程。</FONT></P>
            <P><FONT 
            color=#000066>  由于外界干扰或电压波动等原因,PC机和单片机之间的通讯可能会出现错误,如接收缓冲区溢出、网络端口超速等。这些可能发生的事件都能在代码中引起运行错误。为了处理这些错误,须要将错误处理代码添加到程序中。通过控件中的OnComm事件可以捕捉和处理错误。在通讯过程中所发生的通讯错误是CommEvent属性返回的。当CommEvent属性值发生改变时,表明有通讯错误,就会产生OnComm事件。同时,可以利用自动引发OnComm事件的特点在接收过程中加入状态显示码。这样可以监视通讯线路状态,得到单片机和主机及单片机和单片机之间的通讯进程。通讯错误的处理程序如下:</FONT></P>
            <P><FONT color=#000066>  Private Sub MSComm1_OnComm()</FONT></P>
            <P><FONT color=#000066>  Select Case MSComm1.CommEvent</FONT></P>
            <P><FONT color=#000066>  Case ComReceive 'Receive data 
            '自动数据接收、监视总线通信信息</FONT></P>
            <P><FONT color=#000066>  Select Case In_buffer $</FONT></P>
            <P><FONT color=#000066>  Call A</FONT></P>
            <P><FONT color=#000066>  Label.Enabled=“正在执行任务1”</FONT></P>
            <P><FONT color=#000066>  Call B</FONT></P>
            <P><FONT color=#000066>  …</FONT></P>
            <P><FONT color=#000066>  End Select</FONT></P>
            <P><FONT color=#000066>  Case comFrame 'Framing Error 
            '通讯错误处理</FONT></P>
            <P><FONT color=#000066>  X=MsgBox(“Framing Error!”,16)</FONT></P>
            <P><FONT color=#000066>  …'错误处理</FONT></P>
            <P><FONT color=#000066>  Case comEventOverrun '数据丢失</FONT></P>
            <P><FONT color=#000066>  X=MsgBox(“数据丢失!”,16)</FONT></P>
            <P><FONT color=#000066>  …'错误处理</FONT></P>
            <P><FONT color=#000066>  End Select</FONT></P>
            <P><FONT color=#000066>  End Sub</FONT></P></TD></TR>
        <TR>
          <TD vAlign=top height=15>&nbsp;</TD></TR>
        <TR>
          <TD align=middle height=10>
            <FORM><INPUT class=main onclick=window.close() type=button value=关闭窗口 name="Close Window"> 
            </FORM></TD></TR>
        <TR>
          <TD align=middle height=10>
            <HR color=#996633 SIZE=1>
          </TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD vAlign=top height=36>
      <DIV align=center>
      <P><A class=ff href="http://www.flyto.cn/default.asp"><FONT 
      color=#0000ff>飞腾三环首页</FONT></A> - <A class=ff 
      href="http://www.flyto.cn/flytoweb/aboutus.asp"><FONT 
      color=#0000ff>关于飞腾三环</FONT></A> - <A class=ff 
      href="http://www.flyto.cn/flytoweb/aboutweb.asp"><FONT 
      color=#0000ff>联系飞腾三环</FONT></A> - <A class=ff 
      href="http://www.flyto.cn/flytoweb/cooper.asp"><FONT 
      color=#0000ff>与飞腾三环合作</FONT></A> - <A class=ff 
      href="http://www.flyto.cn/flytoweb/aboutweb.asp"><FONT 
      color=#0000ff>关于飞腾三环网站 </FONT></A>- <A class=ff 
      href="http://www.flyto.cn/flytoweb/copyright.asp"><FONT 
      color=#0000ff>版权声明</FONT></A><A class=ff 
      href="http://www.flyto.cn/flytoweb/copyright.asp"> </A><BR><FONT 
      color=#6600cc>Copyright@ 2001-2003 Flyto Electron Co.,Ltd.Beijing All 
      rights reserved </FONT><BR><FONT color=#0000ff>版权所有:<FONT 
      color=#0000ff>北京飞腾三环电子科技有限公司</FONT><FONT 
      color=#2b238b></FONT></FONT></P></DIV></TD></TR></TBODY></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -