您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制用VB和单片机开发串行通信软件 正文
用VB和单片机开发串行通信软件

用VB和单片机开发串行通信软件

点击数:7626 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  一、MSComm控件的主要属性、事件
  
  在VisualBasIC中有一个名为MicroSOFtCommunicationControl(简称MSComm)的通信控件,利用这个控件可以很方便的编写一个与单片机通信的上位机。
  
  1.MSComm的属性
  
  由于MSComm控件属性很多,在此笔者仅介绍与实现串口通信密切相关的核心属性。
  
  Commport,:设置通信所占用的串口号。如设成1(默认值),表示对Coml进行操作。
  
  Setting:对串口通信的相关参数。包括串口通信的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。
  
  Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。
  
  Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。
  
  Ouput:发送数据到输出寄存器。
  
  InBufferCount:设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。
  
  InputMode:设置从输入寄存器中读取数据的形式。
  
  若值为O,则表示以文本形式读取;值为1,则表示以二进制形式读取。
  
  OutBufferCount:设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。
  
  RThreshold:设置在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm事件之前要接受的字符数。
  
  CommEvent属性:返回最近的通讯事件或错误。通过对它具体属性值的查询,我们就可以获得通讯事件和通讯错误的完整信息。当其值是comEvReceive时表示接收到数据。
  
  2.MSComm的事件
  
  除了公共事件之外,MSComm只有一个OnComm事件。当CommEvent属性值变化时将发生OnComm事件,指示发生一个通信事件或错误。当我们设置Rtheshold属性值为O时,将使得捕获comEvReceive事件无效。

  二、上位机的串口通信编程
  
  1.软件说明
  
  (1)在流水灯控制区域,可以通过点击界面的LED1...LED8来控制电路板上流水灯的工作状态,如下图所示。
  
  (2)在数码管显示区域,可以通过小窗口进行数字输入,并把此数字发送到电路上显示。
  
  (3)在18820温度传感器区域,点击相应的控制按键可以对电路上的温度采集系统进行实时的监控,将当前温度显示在上位机软件上。
  
  (4)在串口发送和接收区域,可以对电路的串口进行调试。

  2.软件设计
  
  此软件是通过VB6.0编写,主要是对MSComm控件进行操作。将51单片机的控制电路串行接口和电脑连接后,选择正确的波特率,即可进行通信。其主要通信程序如下:

 

  三、下位机的串口通信编程
  
  下位机以8951单片机作为控制器,带用数码管显示、LED指示灯和18820数字温度传感器。
  
  1.程序功能
  
  通过PC端的串口调试工具,从PC端发出一个十六进制的数,通过串口传输到单片机,并由单片机通过LED数码管显示,而且单片机又将这个数发回PC端,并在PC端显示出来,从而实现单片机与PC机的通信。另外还可以采集温度,控制流水灯。
  
  注:晶体使用110592MHz。程序中不含有18820的温度采集程序,温度值设置的是37℃。
  
  2.程序设计

  3.下位机编程小结
  
  单片机要发送和接收的操作其实都是对串行数据缓冲器(SBUF)进行调用。串行数据缓冲器SBUF用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,例如:
  
  (1 )date=SBUF;表示单片机接收到数据data。
  
  ( 2)SBUF=date;表示单片机发送数据到上位机。

  四、下位机的硬件电路
  
  下位机的硬件电路如下图所示。

下位机的硬件电路

 




本文关键字:单片机  通信  开发  软件  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制

《用VB和单片机开发串行通信软件》相关文章>>>