




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学毕业设计说明书(毕业论文)摘 要Visual Basic6.0是一种功能强大的Windows应用程序的开发工具,它具有众多的特点,提供了面向对象的可视化的程序设计方法,是开发Windows应用程序的一种方便而简捷的方法。本文主要介绍了利用VB提供的串行通信控件开发串行通信的详细过程,已经如何利用VB6.0中的MSComm控件实现pc机与单片机的通信,同时在功能上也提供了不少简便之处。着重讲述了软件设计的全过程,分别阐述了串口的初始化,数据的接收与发送,串口配置的初始化与实现,以及PC机与单片机的通信。本软件具有收发数据及时准确,无遗漏数据现象出现,并对传输中出现的错误能够检验并实现纠正功能。适合于对数据传输的准确性有较高要求的场合使用,而且具有方便实用,操作简单等特点。关键字:Visual Basic 6.0;串行通信;MSComm;单片机内蒙古科技大学毕业设计说明书(毕业论文)AbstractVisual Basic 6.0 is a powerfully functional exploit tool for windows application programming. It has many distinguishing features, offered Object-Oriented visual programming tools. So it is convenient and simply means for Windows applications.The detailed process of developing serial communication, using the serial communication facilities offered by VB, is mainly introduced In this article. The most important part is about the whole process of software designing, which includes the initialization, the datas receiving and sending, the serial disposal initial and achieving of correcting code and verifying code. It mainly refers to VB and serial communication, the rules of correcting and verifying.The software has some functions such as receiving and sending data in time and exactly, never missing data verifying and correcting mistakes transmitted. It is suitable to be used in the occasion which needs high accuracy. Whats more, it is easy to use and operate.This project is a successful application of VI in measurement domain,which testifies that VI is an available and effective solution and can be employed to accomplish majority complicated measurement task.Key words: Visual Basic 6.0;serial communication; MSComm MCU目 录摘 要IAbstractII目 录III第一章 绪 论11.1 引言11.2 软件设计的背景11.2.1 Visual Basic简介11.2.2 串行通信的特点21.3 本设计所做的工作31.3.1 VB串口通信软件的设计31.3.2 单片机串口通信的设计3第二章 串行通信的基本概念42.1 通信42.2 串口通信42.3 RS-232接口标准52.4 通信参数52.5 本章小结7第三章 VB串行通信控件83.1 VB中串行通信的实现方法83.1.1 API函数实现串口通信83.1.2 MSComm实现串口通信83.2 MSComm控件83.2.1 引用步骤83.2.2 工作方式83.3 本章小结8第四章 程序设计94.1 串口技术94.2 程序的实现94.2.1 窗体的界面设计94.2.2 定义窗体变量94.2.3 响应窗体事件94.3 本章小结9第五章 单片机硬件设计105.1 单片机概述105.1.1 主要性能参数105.1.2 功能特性105.1.3 单片机最小系统115.1.4 引脚功能说明115.2 单片机的串行通信165.3 单片机串口通信程序的实现165.4 本章小结16第六章 VB串口软件与单片机的通信17第七章 总 结18致 谢19参 考 文 献20附录 VB串口软件系统代码21湖南科技大学毕业设计说明书(毕业论文)第一章 绪 论1.1 引言测控技术在现代科学技术、工业生产和国防科技等诸多领域中应用十分广泛,它的现代化已被认为是科学技术、国防现代化的重要条件和明显标志。20世纪70年代以来,计算机、微电子等技术迅猛发展,在其推动下,测控仪器与技术不断进步,相继诞生了智能仪器、PC仪器、VXI仪器、虚拟仪器及互换性虚拟仪器等微机化仪器及其自动测控系统,计算机与现代化仪器设备间的界限日渐模糊,测控领域和范围不断拓宽1。1.2 软件设计的背景1.2.1 Visual Basic简介早期的测控系统采用大型仪表集中对各个重要设备的状态进行监控,通过操作盘进行集中式操作;而计算机测控系统是以计算机为主体,加上检测装置、执行机构与被控对象(生产过程)共同构成的整体。系统中的计算机实现生产过程的检测、监督和控制功能。由于通信协议不开放,因此这种测控系统是一个自封闭系统,一般只能完成单一的测控功能,一般通过接口,如RS-232或GPIB接口可与本地计算机或其他仪器设备进行简单互连1。网络化的测控技术兴起于国外,是在计算机网络技术、通信技术高速发展,以及对大容量分布式测控的大量需求背景下发展起来。主要可分为以下几个阶段。第二阶段:起始于20世纪80年代VXI标准化仪器总线的出现,VXI系统可以将大型计算机昂贵的外设、VXI设备、通信线路等硬件资源以及大型数据库程序等软件资源纳入网络, 在对现代化要求极高的领域,传统的测控系统已经逐渐无法满足用户的要求。许多1.2.2 串行通信的特点数据在单条一位宽的传输线上,一比特接一比特地按顺序传送的方式称为串行通信。如图1.1(a)所示的并行通信中,一个字节(8位)数据是在8条并行传输线上同时由源传到目的地;而在图1.1(b)所示的串行通信方式中,数据是在单条1位宽的传输线上一位接一位地顺序传送。这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。由此可见,串行通信的特点如下:1、节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的主要优点。2、数据传送效率低。与并行通信比,这也这是显而易见的。这也是串行通信的主要缺点。 图1.1 串行通信与并行通信比较例如:传送一个字节,并行通信只需要1T的时间,而串行通信至少需要8T的时间。由此可见,串行通信适合于远距离传送,可以从几米到数千公里。对于长距离、低速率的通信,串行通信往往是唯一的选择。并行通信适合于短距离、高速率的数据传送,通常传输距离小于30米。特别值得一提的是,现成的公共电话网是通用的长距离通信介质,它虽然是为传输声音信号设计的,但利用调制解调技术,可使现成的公共电话网系统为串行数据通信提供方便、实用的通信线路。 1.3 本设计所做的工作1.3.1 VB串口通信软件的设计1.3.2 单片机串口通信的设计第二章 串行通信的基本概念2.1 通信通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。随着通信技术和计算机网络技术的发展、Internet网的普及,计算机远程通信已渗透到国民经济的各个领域,而远程通信绝大多数采用串行通信的方式,所以了解和研究串行通信中的概念和技术有非常重要的意义。2.2 串口通信串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。2.3 RS-232接口标准RS-232-C接口也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。2.4 通信参数典型地,串口用于ASCII码字符的传输,通信使用3根线完成:地线,第五端口;接收,第二端口;发送,第三端口。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:1) 波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。2) 数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。3) 停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。4) 奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。2.5 本章小结第三章 VB串行通信控件3.1 VB中串行通信的实现方法3.1.1 API函数实现串口通信3.1.2 MSComm实现串口通信3.2 MSComm控件3.2.1 引用步骤3.2.2 工作方式3.3 本章小结第四章 程序设计软件是虚拟仪器的关键。设计一个虚拟仪器系统,在硬件平台确定之后,就可以通过设计不同的软件,实现不同的仪器功能。在设计、实现虚拟仪器的软件系统时,需要考虑众多因素,如硬件需求、计算机硬件、操作系统;软件是否建立在开放的结构上,是否需要编程经验?利用此软件程序是否能在不同的计算机平台上移植?将来能否方便的扩展虚拟仪器的功能。由于选用专用的开发软件,必须具有一定的仪器以及数据采集设备配合使用。4.1 串口技术目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时( 0 Then MsgBox (请输入汉字) Else Call s0 Call s1 Call s2 End IfEnd IfEnd SubPrivate Sub Command11_Click()Text3.Text = Comm1.InBufferCount = 0Text3.SetFocusEnd SubPrivate Sub Command14_Click()Dim filenum1 As IntegerDim data filenum1 = FreeFile data = Text3.Text On Error Resume Next 文件保存函数 CommonDialog1.DialogTitle = 保存为txt文件 CommonDialog1.Filter = Text(*.txt)|*.txt CommonDialog1.ShowSave If CommonDialog1.FileName Then If Err 32755 Then Open CommonDialog1.FileName For Binary As filenum1 Put #filenum1, , data Close #filenum1 End If End IfEnd SubPrivate Sub Command15_Click()Form2.ShowEnd SubPrivate Sub Command16_Click()EndComm1.PortOpen = FalseEnd SubPrivate Sub Command13_Click()Dim j As ByteReDim a(1 To (UBound(hzstr1) * 32) As ByteFor i = 1 To UBound(hzstr1) 字数循环,有几个字循环几次 For j = 1 To 32 a(i - 1) * 32 + j) = zmhp(i, j) Next jNext iMsgBox (b(6) : MsgBox (b(2)a(UBound(hzstr1) * 32 + 1) = 255 结束标志 0xffa(UBound(hzstr1) * 32 + 2) = 255 结束标志 0xff If Comm1.PortOpen = True Then Comm1.Output = aElse MsgBox (请打开串口)End IfEnd SubPrivate Sub Command2_Click()Text1.Text = Text1.SetFocusComm1.OutBufferCount = 0End SubPrivate Sub Command3_Click()Dim w As String * 6000q = FreeFileWith CommonDialog1 .Filter = Text(*.txt)|*.txt|Doc(*.doc;*.docx)|*.doc;*.docx .DialogTitle = 打开文件 .ShowOpenEnd Withe = CommonDialog1.FileNameIf CommonDialog1.FileName Then If Err 32755 ThenOpen e For Binary As qGet #q, , wText1.Text = wClose #q End IfEnd IfEnd SubPrivate Sub Command4_Click()If Command4.Caption = 暂停显示 Then Comm1.InBufferCount = 0 Command4.Caption = 继续显示 Text3.Text = Text3.TextElse Command4.Caption = 暂停显示End IfEnd SubPrivate Sub Command5_Click()Comm1.CommPort = CommIDComm1.PortOpen = Not Comm1.PortOpenOn Error GoTo uerrorIf Command5.Caption = 打开串口 Then Comm1.PortOpen = True Command5.Caption = 关闭串口 Shape1.FillColor = vbRed Label7.Caption = CommID:串口 & CommID & 已成功 打开Else Comm1.PortOpen = False Command5.Caption = 打开串口 Shape1.FillColor = vbBlack Label7.Caption = vbNewLine & 串口已关闭End IfExit Subuerror: msg$ = 无效端口号 Title$ = 串口调试助手 X = MsgBox(msg, 48, Title)End SubPrivate Sub Command6_Click()Text2.Text = 0Text4.Text = 0End SubPrivate Sub Command7_Click()Dim a As StringDim bComm1.Output = Trim(Text1.Text)a = Trim(Text1.Text)If Len(a) = 0 Then b = MsgBox(发送字符为空!, vbInformation, 提示信息) If b = vbOK Then Text1.SetFocus End IfEnd IfIf Check1.Value = 1 Then Text2.Text = Comm1.OutBufferCountEnd IfEnd SubPrivate Sub Command9_Click()Text1.Text = Comm1.OutBufferCount = 0End SubPrivate Sub Form_Load() For i = 1 To 16 Comm1.CommPort = i On Error Resume Next Comm1.PortOpen = True If Err.Number = 0 Then CommID = i Else MSComm1.PortOpen = False End If Next imypath1 = App.Path & 获取文件所在目录zitipath = mypath1 & hzk16 获取字库所在地址Text2 = mypath1 & zitipathForm1.Picture = LoadPicture()Comm1.Settings = 9600,n,8,1 设置发送的数据格式Comm1.PortOpen = FalseComm1.InputLen = 0 一次读走接收缓冲区的全部数据Comm1.RThreshold = 1 接收缓冲区中有数据则产生comm_on事件Comm1.InBufferCount = 0 清空接收缓冲区的数据Comm1.OutBufferCount = 0 清空发送缓冲区的数据End SubPublic Sub s0() 将要发送的汉字存入数组中,去除空格,和西文字符n = 0Dim L As Integer, i As Integer, j As IntegerL = Len(Text1.Text) 获取文本框中字的字数,此字数不仅包括汉字还包含西文字符,和空格.For i = 1 To L If Asc(Mid(Text1.Text, i, 1) 0 Then 由于中文的最高位为1,ascii码小于零. On Error Resume Next n = n + 1 得到中文字的字数 End IfNext iReDim hzstr1(1 To n) 重新定义存储汉字的数组长度.j = 1For i = 1 To L If Asc(Mid(Text1.Text, i, 1) 0 Then hzstr1(j) = Mid(Text1.Text, i, 1) 把汉字存入数组中. j = j + 1 ascii End IfNext iEnd SubPublic Sub s1()Dim hzk166() As Byte 定义存放汉字库的数组Dim qwm 存储区位码Dim qm 区码Dim wm 位码Dim i As Integer, j As IntegerDim intfilenum 定义文件号Dim filenafilena = zitipath 把字库地址传递过来intfilenum = FreeFile 获取未使用的文件号Open filena
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水质监测系统合作协议书
- 人力资源管理咨询服务协议要求
- 农村经济管理责任承包合同
- 健康饮食健康咨询协议
- 2025年重组链激酶项目发展计划
- 地产开发投资证明书(7篇)
- 金融科技解决方案合作合同
- 餐饮外卖行业智能化订单处理系统开发方案
- 2025年红外光学测量雷达项目建议书
- 出生日期与在职薪资证明(7篇)
- 外墙真石漆施工质量通病与预防措施
- 毕业设计粗饲料粉碎机的设计全套CAD图纸
- 国外高速公路管理模式及发展趋势
- 煤矿自动化(培训)
- 肖申克的救赎 英语三分钟演讲-文档资料
- 植物基酸奶项目说明(范文模板)
- 九年级化学中考第二轮复习--八大专题人教版
- XIRR测算公式本金(模板)
- 钣金报价计算表(强)
- IATF16949过程审核检查表模版
- 单相半桥逆变电路
评论
0/150
提交评论