位置:51电子网 » 技术资料 » 测试测量

利用VB实现PC机与多单片机通讯

发布时间:2008/5/26 0:00:00 访问次数:624

        

    

    

    来源:单片机与嵌入式系统应用 作者:赵志国 冯建武

    

    摘要:在windows98下利用vb的串行通讯控件可实现pc机与多单片机之间的通讯。采用定时器控制大大加快了自动化进程,克服了往多“握手”协议造成的通讯速度缓慢的缺点。本文以ps1016单片机为例,详细介绍了pc机与单片机之间的串行通讯、数据的发送和接收。

    

    关键词:通讯 属性 事件

    

    前言

    

    在采用以pc机为控制中心的数据采集自动化控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给pc机,pc对单片机进行定时控制,需要多个单片机协同工作。如果系统不很复杂,可通过定时器控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。这样,可以免去“握手”协议的繁琐过程,简化编程,提高速度。vb具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点,无论借用其他语言就可以开发出优秀的控制系统通讯软件。本文介绍在windows 98环境下如何利用vb来实现pc机与多个ps1016单片机之间的串行通讯。

    

    vb环境下通讯程序的设计

    

    vb提供了串行端口控制mscomm来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视mscomm控件的属性和事件,结合timer控件即可完成对串行口的初始化和数据的输入输出工作。mscomm控件的主要属性如下:

    

    (1)commport 设置并返回通讯端口号。端口号可以设置为1~16的任何数,如mscomm.commport=2表示设置当前通讯端口为com2。

    

    (2)setting 设置并返回波特率、奇偶校验、数据位、停止位。格式为mscomm.setting=string。string是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,n表示不校验,m表示符号校验,e表示偶校验,o表示奇校验,s表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。setting属性的缺省值为“9600,n,8,1”。

    

    (3)portopen 设置并返回通讯端口的状态,也可以打开和关闭端口。

    

    (4)input 从接收缓冲区返回和删除字符。该属性在运行时为只读。

    

    (5)inputlen 设置并返回每次input属性从接收缓冲区中读取的字符数。inputlen属性的缺省值为0。设置inputlen为0时,input将读取接收缓冲区的全部字符。

    

    (6)output 向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。

    

    (7)commevent 返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生oncomm事件。commevent属性中存有该错误或事件的数值代码。

    

    timer控件的主要属性如下:

    

    (1)enabled 返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把enabled设置为“galse”来使timer控件成为无效,将取消由控件的interval属性所建立的倒计时数。

    

    (2)interval 返回或设置对timer控件的计时事件调用间的毫秒数。timer控件的enabled属性决定该控件是否对时间的推移作出响应。将enabled设置为“false”会关闭timer控件,设置为“true”则打开timer控件。当timer控件置为有效时,倒计时总是从其interval属性设置值开始。创建timer事件程序。可通知vb在每次interval到时该做什么。timer控件和enabled属性设置为“true”时,vb将在interval时间到后自动访问timer_timer过程。

    

    为实现通讯程序,须在vb开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件mscomml和两个timer控件。vb的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。

    

    1.发送单

        

    

    

    来源:单片机与嵌入式系统应用 作者:赵志国 冯建武

    

    摘要:在windows98下利用vb的串行通讯控件可实现pc机与多单片机之间的通讯。采用定时器控制大大加快了自动化进程,克服了往多“握手”协议造成的通讯速度缓慢的缺点。本文以ps1016单片机为例,详细介绍了pc机与单片机之间的串行通讯、数据的发送和接收。

    

    关键词:通讯 属性 事件

    

    前言

    

    在采用以pc机为控制中心的数据采集自动化控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给pc机,pc对单片机进行定时控制,需要多个单片机协同工作。如果系统不很复杂,可通过定时器控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。这样,可以免去“握手”协议的繁琐过程,简化编程,提高速度。vb具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点,无论借用其他语言就可以开发出优秀的控制系统通讯软件。本文介绍在windows 98环境下如何利用vb来实现pc机与多个ps1016单片机之间的串行通讯。

    

    vb环境下通讯程序的设计

    

    vb提供了串行端口控制mscomm来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视mscomm控件的属性和事件,结合timer控件即可完成对串行口的初始化和数据的输入输出工作。mscomm控件的主要属性如下:

    

    (1)commport 设置并返回通讯端口号。端口号可以设置为1~16的任何数,如mscomm.commport=2表示设置当前通讯端口为com2。

    

    (2)setting 设置并返回波特率、奇偶校验、数据位、停止位。格式为mscomm.setting=string。string是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,n表示不校验,m表示符号校验,e表示偶校验,o表示奇校验,s表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。setting属性的缺省值为“9600,n,8,1”。

    

    (3)portopen 设置并返回通讯端口的状态,也可以打开和关闭端口。

    

    (4)input 从接收缓冲区返回和删除字符。该属性在运行时为只读。

    

    (5)inputlen 设置并返回每次input属性从接收缓冲区中读取的字符数。inputlen属性的缺省值为0。设置inputlen为0时,input将读取接收缓冲区的全部字符。

    

    (6)output 向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。

    

    (7)commevent 返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生oncomm事件。commevent属性中存有该错误或事件的数值代码。

    

    timer控件的主要属性如下:

    

    (1)enabled 返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把enabled设置为“galse”来使timer控件成为无效,将取消由控件的interval属性所建立的倒计时数。

    

    (2)interval 返回或设置对timer控件的计时事件调用间的毫秒数。timer控件的enabled属性决定该控件是否对时间的推移作出响应。将enabled设置为“false”会关闭timer控件,设置为“true”则打开timer控件。当timer控件置为有效时,倒计时总是从其interval属性设置值开始。创建timer事件程序。可通知vb在每次interval到时该做什么。timer控件和enabled属性设置为“true”时,vb将在interval时间到后自动访问timer_timer过程。

    

    为实现通讯程序,须在vb开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件mscomml和两个timer控件。vb的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。

    

    1.发送单

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!