基于VB实现短信息收发功能....doc_第1页
基于VB实现短信息收发功能....doc_第2页
基于VB实现短信息收发功能....doc_第3页
基于VB实现短信息收发功能....doc_第4页
基于VB实现短信息收发功能....doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本论文主要介绍了利用VB来开发一套实现短信息收发功能的信息系统,并给出了短信息发送系统的软、硬件及设计过程,以及当前无线控制的发展趋势,与目前无线通信的紧密连接。该系统基于GSM 原理利用手机通信的远程信息检视系统该系统利用了手机短信的远距离收发与单片机的有效结合,最大特点是可实现安全远距离实时监控,并记录监控结果,由于利用了TC35模块,所以硬件相对简单,主要有PC机、TC35模块、单片机以及它们之间的串行接口,并进行编程来控制。PC机与TC35模块之间的通信协议采GSM通用通信协议,利用VB语言的MSC0MM控件实现两者之间的通信,单片机部分采用了上位机,使检测和检控在不同的地点,确保人员的安全,硬件看门狗使系统运行更可靠。关键词:VB;MSCOMM控件;串口通信;短信息收发39目 录1 绪论01.1 无线MODEM的现状及应用领域01.2 无线MODEM的发展趋势01.3 本次毕业设计的主要内容12 无线MODEM设计的方案12.1无线MODEM硬件电路的总体思路12.2无线MODEM设计软件工程实现的总体思路13 短信息系统33.1短信通信服务33.2基于短信息的远程控制系统53.3与短信息通信相关的AT指令53.4短信息传输的格式64 系统硬件94.1西门子TC35模块的外围电路94.2 MSP430单片机介绍及外围电路114.3 RS-232的介绍及外围电路124.4 复位电路144.5 电源电路155 Visusal Basic的编程环境165.1 VB软件介绍165.2 VB6.0的编程环境175.3 MSCOMM控件215.4 VB对英文和汉字的处理265.4短信息收发系统的实现295.5 实现系统功能的调试345.6 最终达到的结果34总结37致谢38参考文献391 绪论1.1 无线MODEM的现状及应用领域随着计算机通信技术的发展,计算机网络监控已成为各种重要现场监控的必要技术手段,对于远程监控使用无线远程监控已经成为控制领域的发展趋势。GSM网络由于其覆盖范围广、信号较稳定、无同频干扰、保密性好、可处理大量的短消息、数据和传真传送等业务功能,而GSM短消息具有随时在线(Always Online)不需拨号价格便宜覆盖范围广等特点,特别适合于需传送小流量数据的应用,而,广泛应用于油田、气象、港监、水网水文、环保监测、车辆船舶、移动作业等场所。以往这些领域往往采用集群通讯CDPD网或有线MODEM来进行通讯,但这些技术大多存在通讯范围有限费用高每次通讯需先拨号等缺点。使用无线MODEM,这些问题便迎刃而解。GSM系统是目前基于时分多支技术的移动通信体系中比较成熟、完善、应用最广泛的一种系统。主要提供话音、短信息、数据等多种业务。基于GSM短信息功能可以做成传输各种监测、监控数据信号和控制命令的数据通信系统,能广泛应用于远程监控、定位导航、个人通信终端等。由于GSM网络实现了联网和漫游,这样利用GSM网络传输数据不需要再组建专用通信网络,因此采用段心系方式传输数据的系统应用将会越来越广泛。此次通过单片机控制手机模块来实现数据传输的系统,该系统采用短信息的方式传输数据,该系统具有使用灵活、运行可靠等特点。1.2 无线MODEM的发展趋势随着无线数据业务的快速发展,许多从来没有的应用从理想变成了现实,如车辆导航远程监控无线上网无线POS物流控制、社区安防等,越来越多的设备开始要求具备无线通讯能力。无线MODEM无线通讯模块便是在这种背景下,由我们自己研发出的通讯产品。应用开发商通过它使自己的设备增添无线通讯能力,从而开发出各种各样的应用。该模块采用发展最成功的无线通讯技术,能提供短消息数据通讯功能,同时也可按照需求配备话音通讯功能。在一些监控系统中需要将数据传向远端服务器,实现这种应用的主要有有线传输和无线传输两种方式。有线传输具有可靠性高、成本低的特点,但是有线传输需要有电话线,这样就很大程度限制了应用场合。无线传输有数传电台的方式,由于采用电台的方式受通信距离的入网许可证等方面的限制,因此采用电台方式的无线数据传输系统在应用上也有很大的局限性。采用GSM网络传输数据具有介入方便、不需要组网等优点,加上短信息的广泛应用,因此采用短信息的方式传输数据将是一个实现远程传输数据的新的切入点。1.3 本次毕业设计的主要内容对于本次毕业设计的题目,主要设计是基于已有的硬件,利用VB来开发一套实现短信息收发功能的信息系统。2 无线MODEM设计的方案2.1无线MODEM硬件电路的总体思路此次设计研究的是无线MODEM工作原理与工程实现短信息收发功能的信息系统,此设计硬件电路:基于单片机实现数据传输系统。基本原理:采用TC35模块与单片机通过串口进行连接,再串口使PC机与单片机进行通信。其系统原理框图如图2-1所示。图2-1 系统原理框图2.2无线MODEM设计软件工程实现的总体思路整个软件系统主要实现数据的传输。利用VB的编程,来编写一个工程界面,实现短信息收发系统。发送流程图如图2-2所示。 图2-2 发送流程图接收短信息流程图如图2-3所示。图2-3 接收系统流程图整个信息接收系统是基于MSComm控件,利用收发AT指令进行数据交互,具体的实现是通过编码和解码的数据缓冲区来实现。3 短信息系统3.1短信通信服务(1)短信中心服务GSM(Global System for Mobile Communication)网络除了提供话音服务外,还提供面向字符的短信服务(SMS,Short Message Service)。SMS占用信道的时间短、费用小,可使得两个GSM用户方便地进行点对点通信。由于因特网开发的时间较长,而且已经具有大量的支持软件,并形成了丰富的资源,因此目前众多的短信服务厂商几乎都与国际因特网相结合而形成统一的短信服务中心。如图3-1是中国移动通信集团短信网络的结构,其中的简写短语意义如下:SMPP:Short Message Peer to Peer,短信点对点协议。CMPP:China Mobile Peer to Peer,中国移动点对点协议。ISMG:Internet Short Message Gateway,因特网短信网关。图3-1 中国移动通信短信息服务网络(2)基于串行口的单机短信通信GSM/GPRS/CDMA是目前商业化的移动通信网络,属于2.5G通信产品,都提供标准的短信服务。但由于其短信中心服务只授权给运营商,科研单位要想开展基于短信的应用研究,目前只能通过移动设备提供的与PC串行通信口来实现。其结构和原理如图3-2所示。图3-2 通信结构原理图(3) 基于串行口的短信通信通过短信可实现有限字符的通信,也可实现用户与因特网服务器之间的有限字符传送。利用这一特点可实现用户通过无线移动网络与因特网之间的通信,进而实现远程控制的目的。这样的控制不受时间、地点和场所的限制。3.2基于短信息的远程控制系统internet 图3-3 基于短信的油田控制系统结构3.3与短信息通信相关的AT指令与SMS有关的GSM AT指令(from GSM07.05)如下表3-1所示:AT 指令功 能AT+CMGCSend an SMS command发出一条短消息命令AT+CMGDDelete SMS message删除SIM卡内存的短消息AT+CMGLList SMS message from preferred store列出SIM卡中的短消息PDU/text: 0/“REC UNREAD”-未读,1/“REC READ”-已读,2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部的AT+CMGRRead SMS message读短消息AT+CMGSSend SMS message发送短消息AT+CMGWWrite SMS message to memory向SIM内存中写入待发的短消息AT+CMSSSend SMS message from storage从SIN|M内存中发送短消息AT+CNMINew SMS message indications显示新收到的短消息AT+CPMSPreferred SMS message storage选择短消息内存AT+CMGFSelect SMS message formate选择短消息信息格式:0-PDU;1-文本AT+CSCASMS service center address短消息中心地址AT+CSCBSelect cell broadcast messages选择蜂窝广播消息AT+CSMPSet SMS text mode parameters设置短消息文本模式参数AT+CSMSSelect Message Service选择短消息服务表3-1与SMS有关的GSM AT指令3.4短信息传输的格式对短消息的控制共有三种模式:Block Mode基于AT命令的PDU Mode基于AT命令的Text Mode使用Block模式需要手机生产厂家提供驱动支持,目前,PDU Mode 已取代 Block Mode, Text Mode比较简单,使用Text模式收发短信代码简单,实现起来十分容易,但是最大的缺点是不能收发中文短信,实在是有点美中不足.不过PDU模式完全可以解决这个问题,PDU模式不仅支持中文短信,也能发送英文短信,堪称完美无缺.PDU模式收发短信可以使用三种编码: 7-bit、8-bit和UCS2编码. 7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。PDU数据格式分析:例如,我们要将字符“Hi”字符发送到目的地PDU字符串为:08 91 683108200805F0 11 00 0D 91 3176378290F9 00 00 00 02 C834(1)08短信息中心地址长度。指(91)+(683108200805F0)的长度。(2)91短信息中心号码类型。91是TON/NPI遵守International/E.164标准,指在号码前需加+号;此外还有其它数值,但91最常用。9110010001BIT 7 6 5 4 3 2 1 0 Name 1 数值类型 号码鉴别 数值类型(Type of Number):000未知,001国际,010国内,111留作扩展;号码鉴别(Numbering plan identification):0000未知,0001ISDN/电话号码(E.164/E.163),1111留作扩展;(3)683108200805F0短信息中心号码。由于位置上略有处理,实际号码应为:8613800280500(字母F是指长度减1)。这需要根据不同的地域作相应的修改。(1)、(2)、(3)通称短消息中心地址(Address of the SMSC)。(4)11文件头字节。11&h=00010001&bBIT 7 6 5 4 3 2 1 0 Name TP-RP TP-UDHI TP-SPR TP-VFP TP-RD TP-MTI Value 0 0 0 1 0 0 0 1 应答路径TP-RP(TP-Reply-Path):0不设置; 1设置;用户数据头标识TP-UDHL(TP-User-Data-Header-Indicator):0不含任何头信息; 1含头信息;状态报告要求TP-SPR(TP-Status-Report-Request):0需要报告; 1不需要报告;有效期格式TP-VPF(TP-Validity-Period-Format):00不提供(Not present); 10整型(标准); 01预留; 11提供8位字节的一半(Semi-Octet Represented)拒绝复制TP-RD(TP-Reject-Duplicates):0接受复制; 1拒绝复制;信息类型提示TP-MTI(TP-Message-Type-Indicator):00读出(Deliver); 01提交(Submit);(5)00信息类型(TP-Message-Reference)(6)0B被叫号码长度。(7)91被叫号码类型(同(2)。(8)3176378290F9被叫号码,经过了位移处理,实际号码为。(6)、(7)、(8)通称目的地址(TP-Destination-Address)。(9)00协议标识TP-PID(TP-Protocol-Identifier)。BIT 7 6 5 4 3 2 1 0 Bit No.7与Bit No.6: 00如下面定义的分配Bit No.0Bit No.5;01参见GSM03.40协议标识完全定义;10预留;11为服务中心(SC)特殊用途分配Bit No.0Bit No.5。一般将这两位置为00Bit No.5:0不使用远程网络,只是短消息设备之间的协议;1使用远程网络。Bit No.0Bits No.4:00000隐含;00001电传;00010group 3 telefax;00100语音;00101欧洲无线信息系统(ERMES);00110国内系统;10001任何基于X.400的公用信息处理系统;10010Email。(10)00数据编码方案TP-DCS(TP-Data-Coding-Scheme)BIT 7 6 5 4 3 2 1 0 Bit No.7与Bit No.6 :一般设置为00;Bit No.5:0文本未压缩,1文本用GSM标准压缩算法压缩;Bit No.4:0表示Bit No.1、Bit No.0为保留位,不含信息类型信息,1表示Bit No.1、Bit No.0含有信息类型信息;Bit No.3与Bit No.2:00默认的字母表,018bit,10USC2(16bit),11预留;Bit No.1与Bit No.0:00Class 0,01Class 1,10Class 2(SIM卡特定信息),11Class 3(11)00有效期TP-VP(TP-Valid-Period)VP value(&h) 相应的有效期 00 to 8F (VP+1)*5 分钟 90 to A7 12小时+(VP-143)*30分钟 A8 to C4 (VP-166)*1天 C5 to FF (VP-192)*1 周 (12)02用户数据长度TP-UDL(TP-User-Data-Length)。(13)C834用户数据TP-UD(TP-User-Data)“Hi”。短消息编码:设需要发送的短消息内容为“Hi”,使用的GSM字符集为7位编码。首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:H翻译成1001000,i翻译成1101001,显然H的二进制编码不足八位,那么就将i的最后一位补足到H的前面。那么就成了11001000(C8),i剩下六位110100,前面再补两个0,变成00110100(34),于是“Hi”就变成了两个八进制数 C8 34。 4 系统硬件4.1西门子TC35模块的外围电路TC35模块是siemens公司推出的一种无线通信GSM模块,可以快速安全可靠地实现系统方案中的数据传输、语音传输、短信息服务和传真服务。模块的工作电压为3.3V5.5V,可以工作在900MHZ和1800MHZ两个频段,所在频段功耗分别为2W(900MHZ)和1W(1800MHZ)。模块有AT命令集接口,支持文本和PDU模式的短信息。此外,该模块还有电话簿功能、多方通话、漫游检测等功能。常见工作模式由省点模式、IDLE、TALK等模式。通过40管脚的zif连接器,可分别连接SIM卡支架和天线。TC35模块主要有GSM基带处理器、GSM射频模块、供电模块、闪存、zif连接器和天线接口6部分组成。作为TC35的核心,基带处理器主要处理GSM终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下,支持FR、HR和EFR和语音编码。TC35模块主要通过串口与单片机进行连接,从而单片家实现对TC35模块的控制。虽然TC35模块的串口提供了许多控制线,但是由于考虑到接口的简单性,并且与单片机的UART进行连接,所以采用两线(TXD、RXD)连接。对于TC35模块通信的控制可以通过软件来实现,采用软件实现控制具有使用比较灵活的特点,也能很好避免了过多的硬件信号的监测。对于TC35的其他管脚再不使用的时候,如果该馆较为输出的话,一般让改管脚悬空,如果该管脚位输入管脚,需要将该管脚通过10K的电阻拉高。另由于/IGT管脚是控制TC35模块工作的管脚,所以需要将管脚上拉,并且将该管脚与单片机进行连接,从而可以通过单片机来控制TC35模块的工作状态。在此次连接是使将TC35的电源管脚全部连接在一起,由于TC35是一个功能完全的模块,因此不需要做任何的信号处理和射频处理。另外TC35模块还需要连接SIM卡座子,这样就实现了一个完整独立的GSM终端。TC35的接口电路如图4-1所示。图4-1 TC35的接口电路在进行串口连接时,虽然TC35模块的串口管脚的工作电瓶是COMS电平,单片机的串口管脚的工作电平是TTL电平,但是由于单片机的高电平和低电平的逻辑判断电平可以实现与TC35模块的管脚进行连接,因此TC35模块的串口线直接与单片机的串口进行连接。对于TC35模块的串口管脚中DTR0和RTS0两个管脚为输入管脚,因此分别通过一个10K的电阻将这两个管脚拉高。/IGT为TC35模块的工作状态控制管脚,该管脚首先通过一个电阻拉高,平时该管脚为高电平,处于不工作的状态;另外该管脚还同时与单片机的一般I/O口进行连接,这样通过单片机来实现对TC35模块工作状态的控制,当单片机在该管脚送低电平的好似后,则TC35模块工作。TC35模块的SYNC管脚用来指示GSM模块的工作状态,连接一个指示灯来指示工作状态。TC35模块的SIM卡座子采用的是MOLEX座子,该座子优 个管脚,而TC35模块的SIM管脚只有6个管脚,具体的电路如图4-2所示。 图4-2 SIM卡座子接口图从图中可知,SIM座子只需要直接与TC35模块的ZIP连接器对应的SIM卡管脚进行连接,只是在需要的地方加电容进行滤波处理。对于跳线器JP不是必须的,图中加上主要是用来进行仿真模拟使用的。当SIM座子的管脚8与TC35模块的CCIN进行连接时,则用来模拟SIM卡插入的情况;当SIM座子的管脚8不与TC35模块的CCIN进行连接时,则用来模拟SIM卡没有插入的情况。4.2 MSP430单片机介绍及外围电路单片机电路作为整个系统的核心控制部分,主要是完成与TC35模块的通信,与上位机进行通信。单片机TC35模块与TC35模块的通信采用单片机的串口0(UART0)实现,虽然单片机与TC35模块的供电电压不同,但是他们的接口电平可以直接接口,因此不需要进行电平转换。单片机与上位机通信通过单片机的串口1(UART1)实现,由于单片机与上位机的接口电平不一致,所以需要通过串口芯片(SP3220)完成接口电平的转换。另外单片机还需要通过一个I/O管脚来控制TC35模块的工作,在该管脚上输出低电平来使TC35模块工作。整个系统的单片机电路图如图4-3所示。图4-3 系统的单片机电路图从上图可以看出,此单片机的时钟与其他单片机的时钟有一定的区别,MSP430单片机采用两个时钟输入,既一个32KHZ的时钟信号,一个8MHZ的时钟信号。该系统的时钟部分都是采用晶体振荡器来实现的。考虑到电源的输入纹波对单片机的影响,在电源的管脚增加一个0.1uF电容来实现滤波,以减小输入端受到的干扰。另外单片机还有模拟电源的输入端,因此在该系统中的干扰比较小,因此模拟地和信号地共地,模拟电源输入端增加一个滤波电容以减小干扰。利用单片机的串口0与TC35模块接口。为了控制单片机控制TC35模块传输数据的时刻,利用单片机的一般I/O口P1.5来作为启动通信的按键,由于P1.5可以作为中断口使用,这里使用低电平触发方式,需要将该管脚拉高。单片机的串口1与上位机进行通信,因此串口1与RS-232芯片进行连接。另外单片机的P1.0作为输出口,与TC35模块的/IGT管脚进行连接,实现控制TC35模块的工作,当/IGT管脚输出高电平的时候,TC35模块不工作,当/IGT管脚输出为低电平的时候,TC35模块工作。当TC35模块启动后,/IGT管脚可以是高电平。4.3 RS-232的介绍及外围电路在工业自动控制、智能仪器仪表中,单片机的应用越来越广泛。随着应用范围的扩大以及根据解决的问题的需要,对某些数据要做复杂的处理。由于单片机的运算功能较差,对数据进行较复杂的处理时,往往需要借助计算机系统。因此,单片机与PC机进行远程通信更具有实际意义。利用单片机的串口与PC机的串口COM1或COM2进行串行通信,将单片机采集的数据传送到PC机中,由PC机的高级语言或数据库语言对数据进行整理及统计等复杂处理,或者实现PC机对远程前沿单片机进行控制。在实现计算机与计算机、计算机与外设间的串口通信时,通常采用标准通信接口。这样就能很方便地把各种计算机、外部设备、测量仪器等有机的连接起来,进行串口通信。RS232C是有美国电子工业协会(EIA)正式公布的,在异步串口通信中应用最广的标准总线(C表示此标准修改了3次)。它包括了按位串行通信的电气和机械方面的规定,适用于短距离或带调制解调器的通信场合。为了底稿数据传输率和通信距离,EIA又公布了RS422,RS423和RS485串口总线接口标准。RS232C标准接口总线EIA RS232C是目前最常用的串行接口标准,用于实现计算机与计算机之间、计算机与外部之间的数据通信。该标准的目的是定义数据终端设备(DTE)之间接口的电气特性。一般的串行通信系统是指个人计算机和调制解调器(modem)。调制解调器叫数据电路终端设备(简称DCE)。RS232C提供了单片机与单片机、单片机与PC机间串行数据通信的标准接口。通信距离可达到15m。RS232C接口的具体规定如下:(1)范围RS232C标准适用于DCE和DTE间的串行二进制通信,最高的数据速率为19.2kb/s。如果不增加其他设备的话,RS232C标准的电缆长度最大为15m。RS232C不适于接口两边设备间要求绝缘的情况。(2)RS232C的信号特性为了保证二进制数据能够正确传输,设备控制准确完成,有必要使所用的信号电平保持一致。为了满足此要求,RS232C标准规定了数据和控制信号的电压范围。由于RS232C是在TTL集成电路之前研制的,所以它的电平不是+5V和地,而是采用负逻辑,规定+3V+15V之间的任意电压表示逻辑0电平,-3V-15V之间的任意电压表示逻辑1电平。信号电气特性与电平特性(1)电气特性为了增加信号在线路上的传输距离和提高抗干扰能力,RS232C提高了信号的传输电平。该接口采用双极性信号、公共地线和负逻辑。使用RS232C,数据传输的波特率允许范围为0b/s20kb/s。在使用19200b/s进行通信时,最大传输距离在20m之间。降低波特率可以增加传输距离。(2)电平转换RS232C规定的逻辑电平与一般微处理器、单片机的逻辑电平是不一致的。因此,在实际应用时,必须把微处理器的信号电平(TTL电平)转换为RS232C电平,或者对两者进行逆转换。这两种转换是通过专用电平转换芯片实现的。对于连接在RS232C和单片机间的芯片很多,此次采用MAX232。MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器IC芯片,适用于各种EIA-232C和V。28/V。24的通信接口。MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源电压变成RS232C输出电平所需要的10V电压。所以,采用此芯片借口的串口通信系统只需单一的+5V电源就可以了。对于没有12V电源的场合,其适用性更强。加之其价格适中,硬件接口简单。其接口电路如图4-4所示。图4-4 RS-232C接口电路图4.4 复位电路在单片机系统里,单片机需要复位电路,复位电路可以采用R-C复位电路,也可以采用复位芯片来实现复位,R-C复位电路据具有经济性,但是可靠性不高,用复位芯片实现的复位电路具有很高的可靠性,因此为了保证复位电路的可靠性,该系统采用复位芯片来实现复位电路。该电路中采用MAX809芯片,复位电路如图4-5所示。图4-5 复位电路为了减小电源的干扰,还需要在复位芯片的电源输入端加一个0.1uF的电容来实现滤波,以减小输入端受到的干扰。4.5 电源电路整个系统采用5V供电。除了TC35外都采用3.3V电压供电,为了减小电源电路对整个系统的影响。电源电路采用TPS76033芯片来实现。电路图如图4-6所示。 图4-6 电源电路图为了使3.3V输出电源的纹波小,在输出部分用了一个2.2Uf和0.1uF的电容,另外在芯片的输入端也放置一个0.1Uf的滤波电容,来减小输入端受到的干扰。对于TC35模块采用3.6V电源供电,由于该电源部分的输出电流必须满足输出电流能达到2A,在此采用NATIONAL公司生产的LP3966芯片。该芯片的管脚2为shutdown管脚,在使用时必须通过一个10k的电阻拉高到5V。该芯片的输出位可调类型,该芯片通过电阻R2和R1实现输出电压的调节。输出电压调节换算公式为:R2=R1(Vout/1.216-1通过上式可以得知:只要给定电阻R1和确定输出电压Vout的情况下,就可以计算得到电阻R2的值。为了使3.6V输出电源的纹波小,在输出部分用了一个68Uf、33uF和0.1uf的电容,实现滤波。另外在芯片的输入端也放置一个68uF的滤波电容,减小输入端受到的 干扰。5 Visusal Basic的编程环境5.1 VB软件介绍Basic语言是20世纪60年代美国Dartmouth学院的两位教授共同设计的计算机程序设计语言,其含义是“初学者通用的符号指令代码”。它简单易学、人机对话方便、程序运行调试方便,因此很快得到了广泛的应用。1988年,Microsoft公司推出的Windows操作系统,以其为代表的图形用户界面在微机上引起了很大的影响。在图形用户界面中,用户只要通过鼠标的点击和拖动便可以形象地完成各种操作,不必键入复杂的命令。但是对于程序员来说,可视化程序设计语言正式在这种背景下产生。可视化程序设计语言除了提供常规的编程外,还提供一套可视化的设计工具,便于程序员建立图形对象。1991年Microsoft公司推出的Visusal Basic语言是以结构化Basic语言为基础,以事件驱动为运行机制。继而Visusal Basic经历了1.0版、2.0版、6.0版的几次升级,他的功能也更加强大,更加完善。其主要的功能特点是:a) 具有面向对象的可视化设计工具b) 事件驱动的编程机制c) 提供了易学易用的应用程序集成开发环境d) 结构化的程序设计语言e) 强大的数据库操纵功能f) Active技术g) 网络功能h) 多个应用程序向导i) 完备的Help联机帮助功能5.2 VB6.0的编程环境 图5-1 VB6.0编程环境图1、 标题栏标题栏中的标题为“ Microsoft Visusal Basic 设计”说明此时集成开发环境处于设计模式,在进入其他状态时,方括号中的文字将被做相应的变化。VB有三种工作模式:设计模式:可进行用户界面的设计和代码的编制,来完成应用程序的开发。运行模式:运行应用程序,这时不可编辑代码,也不可编辑界面。中断模式:应用程序运行暂停中断,这时可以编辑代码,但是不可编辑界面。按F5键或单击“继续”按扭程序继续运行,单击“结束”按扭停止程序的运行。在此模式回弹出“立即”窗口,在窗口内可输入简短的命令,并立即执行。2、菜单栏VB6.0菜单栏中包括13个下拉式菜单,这是程序开发过程中需要的命令。(1) 文件(FIle):用于创建、打开、保存、显示最近的工程以及生成可执行文件的命令。(2) 编辑(Edit):用于程序源代码的编辑。(3) 视图(View):用于集成开发环境下程序源代码、控件的查看。(4) 工程(Project):用于控件、模块和窗体等对象的处理。(5) 格式(Format):用于窗体控件的对齐等格式化的命令。(6) 调试(Debug):用于程序的调试、查错的命令。(7) 运行(Run):用于程序的启动、设置中断和停止的等程序运行的命令。(8) 查询(Query):VB6.0新增,在设计数据库应用程序时用于设计SQL属性。(9) 图表(Diagram):VB6.0新增,在设计数据库应用程序时编辑数据库的命令。(10) 工具(Tools):用于集成开发环境下工具的扩展。(11) 外接程序(Add-Ins):用于为工程增加或删除外接程序。(12) 窗口(Windows):用于屏幕查的层叠、平铺等布局以及列出所有打开文档窗口。(13) 帮助(Help):帮助用户系统学习掌握VB的使用方法及程序设计方法。3、工具栏工具栏可以迅速地访问常用的菜单命令。除了所有的标准工具栏外,还有编辑、窗体编辑器、调试等专用的工具栏。要显示或隐藏工具栏,可以选择“视图”菜单的“工具栏”命令或用鼠标在标准工具栏处单击右键选取所需的工具栏。4、窗体窗口窗口窗体在、如图5-2所示。图5-2 窗口窗体图窗体是VB应用程序的主要构成部分,用户通过与窗体上的控制部件可控制应用程序的运行,得到结果。每个窗体查必须有唯一的窗体名字。处于设计状态的窗体有网格点构成,网格点方便用户对控件的定位,网格点检举可以通过“工具”菜单的“选项”命令,在“通用”标签的“窗体设置网格”中输入“宽度”和“高度”来改变。运行时通过属性控制窗体的可见性一个应用程序至少有一个窗体窗口。5、属性窗口属性窗口如图5-3所示。图5-3 属性窗口图所有窗体或控件的属性,如颜色、字体、大小等,可以通过属性窗体来修改。属性窗口由以下部分组成:对象列表框:单击其右边的下拉按扭可打开所选窗体所包含对象的列表。属性显示排列方式:有“按字母序”和“按分类按扭”。属性列表有中间一条线把其分成两个部分,左边列出的是各种属性;右边列出的则是响应的属性值。用户可以选顶某一属性,然后对该属性值进行设置或修改。属性含义说明:当在属性列表框选取某属性时,在该区显示所选属性的含义。6、程资源管理器窗口如图5-4所示。图5-4 程资源管理器窗口工程资源管理器窗口有三个按扭,分别为: “查看代码”按钮:切换到代码窗口,显示和编辑代码。 “查看对象”按钮:切换到窗体窗口,显示和编辑对象。“切换文件夹”按钮:切换文件夹显示的方式。工程资源管理器下面的列表窗口,以层次列表形式列出组成这个工程的文件。他包含两种主要类型的文件:窗体文件(.frm文件):该文件存储窗体上使用的所有控件对象和有关的属性、对象相应的事件过程、程序代码。一个应用程序至少包含一个窗体文件。标准模块文件(.bas文件):该文件存储所有模块级变量和用户自定义的通用过程。通用过程是指可以被应用程序各处条用的过程。7、代码窗口:代码窗口是专门用来进行程序设计的窗口,可显示和编辑程序代码,如5-5图所示。图5-5 代码窗口每个窗体都有各自的代码窗口,打开代码窗口有以下三种方法:(1) 从工程窗口中选择一个窗体或标准模块,并选择“查看代码”按钮;(2) 从窗体窗口中打开代码窗口,可用鼠标双击一个控件或窗体本身;(3) 从“视图”菜单中选择“代码窗口”命令。代码窗口主要包括:(1)“对象”下拉式列表框:显示所选对象的名称。可以单击右边的下拉按钮,来显示此窗体中的对象名。其中“通用”表示与特定对象无关的通用代码,一般在次声明模块级变量或用户编写子定义过程。(2)“过程”下拉式列表框:列出所有对象对应于“对象”列表框中对象的事件过程名称。在对象列表框选择对象名,在过程列表框中选择事件过程名,即可构成选中对象的事件过程模板,用户可在该摸板内输入代码。(3)“代码”框:输入程序代码。(4)“过程查看”按钮:只能显示所选的一个过程。(5)“全模块查看”按钮:显示模块中全部过程。5.3 MSCOMM控件微软的软件系统中提供了MSComm通讯控件。该控件在windows ystem 目录下,通讯控件是PC机通过串行端口与其它设备实现轻松连接的利器Visual basic等开发人员都可以使用它通过使用MSComm通讯控件,可简单高效的实现设备之间的通讯,而不必调用低级的API函数,从而使编程效率大大提高也降低了因编程不当导致系统不稳定。利用Mscomm控件完成一般的数据通信,使用此控件还是非常方便的,在接收数据方面可通过OnComm事件响应从而用Input属性从此控件的接收缓存区获得数据,在发送数据方面是通过给此控件的Output属性赋值来实现。在发送和接收时通过改变Output和Input的属性的类型来改变接收到的数据:若设置为字符串类型,则按文本方式发送或接收;若设置为字节数据,则按二进制数据格式发送或接收。MSC0mm控件的主要属性:1)commPorL:设置并返回通讯端口号,在设计时,value可以设置成从1到16的任何数(缺省值为 1),注意:必须在打开端口之前设置CommPort属性;2)Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位,设置的格式为“BBBB,P,D,S”,BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数;3)PortOpen:设置并返回通讯端口的状态。也可以打开和关闭端口title表示串口打开;4)Input:从接收缓冲区返回和删除字符;5)Output:向传输缓冲区写一个字符串;6)InputMode:设置发送和接收数据的类型,0表示文本的方式1表示二进制的方式;7)Rthreshold:设置CommEvent属性为comEvReceive并产生OnComm之前设置并返回的要接收的字符数,若Rthreshold属性设置为0(缺省值)则不产生OnComm 事件;8)SThreshold:MSComm 控件设置CommEvent属性为comEvSend并产生OnComm事件之前设置并返回传输缓冲区中允许的最小字符数若设置Sthreshold属性为l,当传输缓冲区完全空时MSComill控件产生OnComm事件。如果在传输缓冲区中的字符数小于value,CommEvent属性设置为comErSend并产生0nComm 事件:9)InputLen、Input:收缓和发送缓冲区字符数或字节数:10)comEvent:该属性列出了控件触发事件的类型和具体的事件活错误MSCOMM只有一个OnComm事件只要eomEvent的值一改变就会触发该事件这表示发生了一个通信错误或事件。MSC0mm控件的主要事件:OnComm事件:当CommEvent属性的值发生变化时,就触发此事件,标志发生了一个通信事件或错误。如果CommEvent属性值发生了变化,而通信事件又未发生,就必然出现错误。CommEvent属性中含有触发OnComm事件的真正错误或事件的标识代码。MSComm控件进行串行通信的一般步骤为:1)设置通信对象、通信端口号及其他属性;2)设定通信协议;3)打开通信端口,进行数据的传送;4)关闭通信端口;MSComm控件通信方式的选择:MSComm控件有两种处理通信的方式,即事件驱动和查询方式。事件驱动方式是处理串行通信的一种有效的方法,它可以利用OnComm事件捕获并处理通信中发生的事件或错误,实时性较强。而查询方式是在程序通过查询CommEvent属性的值来判断通信过程中的事件或错误这种方式适合于应用程序较小、实时性要求不高的系统中 。利用MSCOmm控件发送数据:MSComm控件提供了一个Output属性它能简化对数据的发送Output属性可以往发送缓冲区中写入一串数据,它在设计阶段是无效的在运行阶段也只能写入。其引用方法如下:MSCommOutput=value其中Value参数表示一串要写入到发送缓冲区中的字符。Output属性可以发送文本数据,也可以发送二进制数据。如果要发送文本数据Value就必须是含有字符串的Variant数据;如果要发送二进制数据,Value就必须是含有Byte数组的Variant数据。下面的示例程序是利用MSComm控件的Output属性发送数据:Private Sub RichTextBox KeyPress(KeyAscii As Integer)将键盘键人的字符传给RichTextBox控件和MSComm1控件Dim OutS as VariantMsComm 1CommPort=1MsComm 1PortOpen=TrueOutS:Ch KevAscii1MsComm 1Output=OutSEnd Sub利用MSComm控件接收数据:利用MSComm控件的Input属性可以接收数据。Input属性从接收缓冲区中返回一串数据,它在设计阶段是无效的,在运行阶段也只能读。Input属性的返回类型为Variant。InputLen属性值决定着Input属性读取的字符个数。将InputLen设为0,意味着利用Input属性读出接收缓冲区中的所有内容。InputMode属性值决定着Input属性接收的数据类型。如果InputMode设为ComInputModeText,就可利用Input属性返回文本数据;如果InputMode设为ComInputModeBinary,则返回Byte数组中的二进制数据。下面的示例程序是利用MSComm控件的Intput属性接收数据:Private Sub Commandl Click0用户单击Commandl按钮后读取输入缓冲区中的内容Dim InS as StringMsComm 1InputLen=OIf MsComm 1InBuferCount ThenInS=MsComm 1InputEnd IfMsgBox InSMsComm 1PortOpen=FalseEnd Sub开发步骤:1、创建新的工程 启动Visual Basic 60在“文件”菜单中,单击“新建工程”,选择“标准.exe” 单击确定2、加人MSComm控件 在“工程”菜单中单击“部件”显示“部件”对话框 选定“Microsoft Comm Control 6O”控件名称左边的复选框 单击”确定”关闭“部件”对话框,MSComm控件将出现在工具框中 将MSComm控件添加到窗体上添加MSComm控件如图5-6所示。图5-6 添加MSComm控件图3、属性设置下面通过一个实例具体说明。实例用于接收和发送不定长数据包,该仪器的通信协议如下。链路层:8位数据位、l位停止位、无奇偶校验、19200波特率CommPotr 设置并返回通讯端口号。l16,设置:1为COM1口。InBufferSize 设置并返回接收缓冲区的大小,以字节数为单位。设置:16 500。InputMode 设置并返回数据输入方式。设置:comlnputModeBinary输入为二进制数据。OutBufferSize 设置并返回输出缓冲区的大小,以字节数为单位。设置:512。Rthreshold 设置并返回要接收的字符数。当接收缓冲区中的字符数大于等于该值时,将产生OnComm事件。设置:1OSetting 以字符串形式设置或返回波特率、奇偶校验、数据位和停止位。设置:19 200,n,8,14、编写代码在窗体中加入一个组合框控件,名称为Comboport,用于选择设置通讯端口。加入一个命令按钮,用于控制通讯。加入一个通讯控件,名称为MSComml。加入一个文本框控件,名称为Textl,用于显示接收的数据。实现的界面如图5-7所示。图5-7 短信息收发界面5.4 VB对英文和汉字的处理英文的数据编码方式: GSM只支持ASCII码值从0x00到0x7f的128个字符。这些值只需要7bit去定义,而SMS短信息是以8bit字节序列传输的,因此GSM使用一种编码方式将7bit ASCII码值序列压缩成8 bit字节序列。数据编码过程事例如下:“TESTU”英文短

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论