欢迎来到第一文库网! | 帮助中心 第一文库网-每个人都是第一
第一文库网
全部分类
  • 研究报告>
  • 学术论文>
  • 全科教育>
  • 应用文档>
  • 行业资料>
  • 企业管理>
  • 技术资料>
  • 生活休闲>
  • ImageVerifierCode 换一换
    首页 第一文库网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第6章VB串口通信程序设计典型实例.docx

    • 资源ID:737947       资源大小:339.78KB        全文页数:27页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    扫码关注公众号登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第6章VB串口通信程序设计典型实例.docx

    第6章VB串口通信程序设计典型实例利用VB开发串口通信程序既可以使用MSCOmm控件也可以调用WindowsAPI函数实现。不过,只要MSCOmm控件可以被选用,我们推荐选择此控件实现,因为MSComm控件的功能和AP1调用一样强,甚至比它还好且使用起来更加简单。在本章提供的串口通信程序设计中,除了PC与PC串口通信外,PC与单片机、PC与智能仪表、PC与P1C.PC与GSM短信模块等串口通信任务的实现均采用MSComm控件。6.1 PC与PC串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需3根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。本设计通过两台PC串口3线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。6.1.1 PC与PC串口通信程序设计目的(1)掌握PC与PC串口通信的线路连接方法。(2)利用MSComm控件和API函数实现PC与PC串口通信的程序设计方法。6.1.2 PC与PC串口通信程序设计用软、硬件本设计用到的硬件和软件清单如表6-1所示。表6-1设计用软、硬件序号名称数量1PC或IPC22串口通信线(三线制)13Visua1Basic6.016.1.3 PC与PC串口通信程序硬件线路图线路说明,在计算机通电前,按图6-1所示将两台PC通过串口线连接起来:计算机A串口COMI端口的TXD与计算机B串口CoM1端口的RXD相连,计算机A串口COM1端口的RXD与计算机B串口CoM1端口的TXD相连,计算机A串口COM1端口的GND与计算机B串口COM1端口的GND相连。6.1.4 IS6-1PC与PC串口通信线路6.1.5 设计任务利用MSComm控件和VBAPI函数编写程序实现PC与PC串口通信。任务要求,两台计算机互发字符并自动接收,如一台计算机输入字符串“P1easereturnabc123,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123",单击“发送字符”命令,信息返回到第一组的计算机。实际上就是编写一个简单的双机聊天程序。6.1.6 任务实现6. 1.5.1利用MSComm控件实现字符型数据发送与接收1 .建立新工程VB使用“工程”来管理每一个应用程序要使用的所有文件,每建立一个新程序,就要新建一个工程。一个工程由窗体、标准模块、控件及应用所需的开发环境设置等组成。运行VB程序,出现“新建工程”对话框,选择“标准EXE”,单击“打开”命令按钮,进入VB工程集成开发环境,窗体设计器中自动出现一个名为Form1的空白窗体。2 .程序界面设计向空白窗体添加各种控件,以完成预定的各种功能。开始一个项目的设计时,VB的工具箱中会有许多默认的控件让设计者予以选用,这些原本就出现在工具箱中的控件是内置控件,它提供了一些基本的系统设计组件给设计者,但功能比较特别的控件就不会出现在其中,如用来设计串口通信功能的控件MSComm就不在其中。(1)添加串口通信控件MSComm。由于VB的串行通信组件并不会主动出现在工具箱里中,当我们需要MSComm控件时,首先要把它加入到工具箱中。让MSComm控件出现在工具箱中的步骤如下。选择“工程”菜单下的“部件.”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“MicrosoftCommContro16.0,复选框,单击“确定”按钮后,在工具箱中就出现了一个形似“电话”的图标,它就是MSComm控件。工具箱中有了MSComm控件,就可以选择MSComm控件的图标后将其添加到程序窗体上,利用该控件编程,PC就可以通过VB实现与串口设备的串口通信了。由于每个使用的MSComm控件对应着一个串行端口,如果应用程序需要访问多个串行图6-2程序窗体界面端口,必须添加多个MSComm控件。(2)为了实现连续的自动接收,将工具箱中的Timer控件添加到程序窗体上。(3)添加两个文本框控件:TeXt1和Text2,用于输入要发送的字符和显示要接收的字符。(4)添加两个标签控件:1abe11和1abe12,作为发送和接收字符区的标签。(5)添加一个按钮控件:Command1执行发送字符命令。程序设计界面如图6-2所示。3 .属性设置从属性窗口设置属性时,只需从对象列表框中选择待设置属性的对象,然后从属性列表的左列选择属性,最后在属性列表的右列中输入或选择新的属性值。程序窗体、控件对象的主要属性设置如表6-2所示。表62窗体、控件对象的主要属性设置控件类型主要属性功能Form(名称)=COMForm窗体控件BorderSty1e=3运行时窗体固定大小CaPIion=PC与PC串口通信窗体标题栏显示程序名称1abe1(名称)=1abe11标签控件Caption=显示接收字符区:标签文本1abe1(名称)=1abe12标签控件Caption=输入发送字符区:标签文本TextBox(名称)=Textsend文本框控件Mu1ti1ine=TrUe允许多行显示Scro11Bars=2-Vertica1垂直滚动条可用TextBox(名称)=TextReceive文本框控件Mu1ti1ine=True允许多行显示Scro11Bars=2-Vertica1垂直滚动条可用CoinmandBuiion(名称)=Cmdsend按钮控件Cap1ion=发送字符手动发送字符MSComm(名称)=MSComm1串口通信控件其他属性在程序中设置Tinier(名称)=Timer1时钟控件Enab1ed=True时钟初始可用Interva1=500设置发送周期(ms)三"两台计算机中VB程序界面及属性设置应完全相同,尤其MSComm控件的InputMode和Settings*电属性值应相同。4 .程序代码设计程序要实现自动发送或读取,在VB程序中有两个方式可以达到,一是查询方式,利用查询事件是否发生,当发生时,去执行默认的程序代码,可以使用计时器控件(Timer),该控件属性中的Interva1可以控制计时器被启动的时间间隔,当时间间隔一到,便会执行原先放在计时器中的程序代码。下面是利用查询方式编写的PC与PC串口通信的参考程序,代码如下所示:'串口初始化PrivateSubFonn1oad(),设置通信端口号为CoM1,设置串口1参数,接收文本型数据,打开通信端口1MSComm1.CommPort=1MSConim1Senings="9600,n,8.'MSComm1.InputMode=0MSComm1.PortOpen=TrueEndSub,把字符通过串口发送出去PrivateSubCmdsendC1ick()IfTeXISend.Text=""ThenPP=MSgBOX("发送的数据不能为空!",16)ExitSubEndIfMSCornmI.Output=Trim(Textsend-Text)Fori=1To20000000NextiEndSub,通过时钟控制来自动接收字符PrivateSubTimer!Timer()'将缓冲区内的数据读入buf变量中'判断缓冲区内是否存在数据Dimbuf$buf=Trim(MSComm1.Input)If1en(buf)<>0ThenTextReceive1Text=TextReceive1Text+Chr(13)+Chr(IO)+buf回车换行EndIfEndSub,关闭通信端口,停止程序运行PrivateSubCmdquitC1ick()MSComm1.PortOpen=Fa1seUn1oadMeEndSub在WindoWS系统环境下,串口是系统资源的一部分。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。在WindOWS系统的系统函数中,均包含了支持通信中断的功能。二是使用事件方式。MSComm控件提供事件回应功能,可以利用此功能达到自动发送/接收的目的。下面是利用事件方式编写的PC与PC串口通信的参考程序,界面设计与图6-2基本相同,区别是事件方式不需要时间控件。'串口初始化PrivateSubFOr1T11oad()'设置通信端口号为COM1MSComm1.CommPort=1MSComm1Setiings="9600,n,8J",设置串口参数MsComm1InputMode=O'接收文本型数据MSCornmI.RThresho1d=接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件MSComm1.PortOpen=True,打开通信端口1EndSub'把字符通过串口发送出去'启动定时器PrivateSubCmdsendC1ick()IfTextsend-Text=",ThenPP=MSgBoX("发送的数据不能为空!",16)ExitSubEndIfMSComm1.Output=Trim(Textsend.Text)EndSub,MSComm的OnCOmm事件程序,CommEvent属性值的不同,将各自的程序代码写入相关的子程序中'只要RThreso1d中的设定字符数到达时便会使得CommEvent属性值变成ComEvReceive'因此接收的子程序便会被执行PrivateSubMSComm1OnComm()Dimbuf$Se1ectCaseMSComm1.CommEvent'通过取代每一个CaSe表达式来处理每个事件与错误CasecomEvCDCD线的状态发生变化CaseComEvCTS,CTS线的状态发生变化CasecomEvDSR'DSR线的状态发生变化CaseComEvReceivebuf=Trim(MSComm1.Input),将缓冲区内的数据读入buf变量中CaseComEvSendEndSe1ectTextReceive,Text=TextReceive.Text&bufEndSub'停止程序运行PrivateSubCmdquitC1ick()Un1oadMeEndSub关闭通信端口,PrivateSubFonnUn1oad(Cance1AsInteger)MSComm1.PortOpen=Fa1seEndSub5 .运行程序程序设计、调试完毕,单击工具栏快捷按钮“启动”,运行程序。<s>*两台计算机同时运行本程序。首先在一台计算机程序窗体中发送字符区输入要发送的字符,如“我是第一组,收到请回话!”,单击“发送字符”按钮,发送区的字符串通过CoM1口发送出去。如果联网通信的另一台计算机程序收到字符,则返回字符串,如“收到,我是第2组!”,如果通信正常该字符串将显示在接收区中。程序运行界面如图6-3所示。PC机与PC机通信图6-3程序运行界面6.1.5.2利用API函数实现字符型数据发送与接收1 .建立新工程运行VB,创建标准的工程项目文件,设计程序窗体。添加两个TeXtBoX控件,用于输入要发送的字符和显示需接收的字符。添加两个1abe1控件,作为发送和接收字符区的标

    注意事项

    本文(第6章VB串口通信程序设计典型实例.docx)为本站会员(lao****ou)主动上传,第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第一文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 001doc.com网站版权所有   

    经营许可证编号:宁ICP备2022001085号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



    收起
    展开