




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
39/44专业综合课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目:基于PC机Windows环境下数据通信、处理及存储程序设计与实现。初始条件:提供实验室机房及安装Windows系统的PC机;数据通信的差不多理论学习。要求完成的要紧任务:(包括课程设计工作量及其技术要求,以及讲明书撰写等具体要求):(1)在PC机Windows环境下设计出一款集数据发送、接收处理及存储程序;(2)通信接口为RS-232,USB,网卡任意一款;(3)通信的数据流自定,处理操作自定;(4)接收的数据以文件的形式存在硬盘上;(5)对结果进行分析;(6)要求阅读相关参考文献许多于5篇;(7)依照课程设计有关规范,按时、独立完成课程设计讲明书。时刻安排:(1)布置课程设计任务,查阅资料,确定方案四天;(2)进行编程设计一周;(3)完成课程设计报告书三天;指导教师签名:年月日系主任(或责任教师)签名:年月日
目录摘要 I1Proteus软件简介 12VisualBasic6.0简介 23串口通信原理 33.1串行通信定义 33.2串行通信的异步通信 43.3波特率 43.4串行接口的差不多特点 53.4.1串行端口工作方式 54单片机与PC机通信 84.1AT89C51单片机上对应端口介绍 84.3单片机通信代码 94.4仿真电路图 115VB设计PC机 125.1界面设计 125.2VB设计的窗体 125.3VB代码 126串口通信结果及其分析 226.1通信结果 226.2结果分析 247实物图 258心得体会 26参考文献 27摘要为了实现本次课设的要求,完成基于PC机Windows环境下数据通信、处理及存储程序设计与实现。我们采纳VisualBasic6.0软件设计和Proteus单片机串口仿真来完成课程设计的要求。我们选取的是通信接口为RS-232,利用单片机与PC机的之间相互通信来实现课设要求,VisualBasic软件要紧用于设计代表PC机的窗体,实现PC机进行串口通信的差不多功能;Proteus软件仿确实单片机用于模拟单片机,完成与PC机的通信。本次课设除了要用到VB和Proteus软件外,还需使用KEIL软件生成适用于51单片机的.HEX文件,以及用到VirtualSerialPortDriver软件来对PC机和单片机之间串口进行连接,使用VSPD软件来设置连接串口的时候我将单片机设为COM3,PC机设为COM1。关键字:RS-232,串口通信,Proteus,VisualBasic6.01Proteus软件简介Proteus是世界上闻名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:1.原理布图2.PCB自动或人工布线3.SPICE电路仿真4.互动的电路仿真5.仿真处理器及其外围电路Proteus拥有丰富的资源,它体现在:1.Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。2.Proteus可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器能够在一个电路中随意的调用。3.除了现实存在的仪器外,Proteus还提供了一个图形显示功能,能够将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的阻碍。4.Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、制造精神的平台随着科技的进展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时刻大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。2VisualBasic6.0简介VisualBasic(VB)是由\o"微软"微软公司开发的包含\o"协助开发环境(页面不存在)"协助开发环境的\o"事件驱动"事件驱动编程语言。它源自于\o"BASIC"BASIC编程语言。VB拥有\o"图形用户界面"图形用户界面(\o"GUI"GUI)\o"快速应用程序开发"快速应用程序开发(\o"RAD"RAD)系统,能够轻易的使用\o"DAO(页面不存在)"DAO、\o"RDO(页面不存在)"RDO、\o"ADO"ADO连接\o"数据库"数据库,或者轻松的创建\o"ActiveX"ActiveX控件。程序员能够轻松的使用VB提供的组件快速创建一个\o"应用程序"应用程序。VB的中心思想确实是要便于\o"程序员"程序员使用,不管是新手或者专家。VB使用了能够简单创建应用程序的\o"GUI"GUI系统,然而又能够开发相当复杂的程序。VB的程序是一种基于\o"窗体(页面不存在)"窗体的可视化组件安排的联合,同时增加代码来指定组建的属性和方法。因为默认的属性和方法差不多有一部分定义在了组件内,因此程序员不用写多少代码就能够完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,然而随着\o"计算机"计算机速度的飞速增加,关于性能的争论差不多越来越少。窗体控件的增加和改变能够用\o"拖放"拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的\o"属性(页面不存在)"属性和\o"事件"事件。默认的属性值会在控件创建的时候提供,然而程序员也能够进行更改。专门多的属性值能够在运行时候随着用户的动作和修改进行改动,如此就形成了一个动态的程序。举个例子来讲:窗体的大小改变事件中加入了能够改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。VB的程序能够包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于\o"操作系统"操作系统的模样。有专门少功能的对话框\o"窗口"窗口(比如没有\o"最大化(页面不存在)"最大化和\o"最小化(页面不存在)"最小化按钮的窗体)能够用来提供弹出功能。VB的组件既能够拥有用户界面,也能够没有。如此一来\o"服务器"服务器端程序就能够处理增加的\o"模块"模块。VB使用\o"引用计数"引用计数的方法来进行垃圾收集,那个方法中包含有大量的对象,提供差不多的\o"面向对象的程序设计"面向对象支持。因为越来越多组建的出现,程序员能够选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,然而能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,然而能够关闭那个功能。VB使得大量的外界控件有了自己的生存空间。大量的第三方控件针对VB提供。VB也提供了创建、使用和重用这些控件的方法,然而由于语言问题,从一个应用程序创建另外一个并不简单。3串口通信原理3.1串行通信定义串口是计算机上一种特不通用设备通信的协议。大多数计算机包含两个基于RS-232的串口。串口同时也是仪器仪表设备通用的通信协议;专门多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也能够用于猎取远程采集设备的数据。3.2串行通信的异步通信字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成。在串行通信中,发送端一帧一帧发送信息,接收端一帧一帧接收信息。两相邻字符帧之间能够无空闲位,也能够由若干空闲位,自行定义。串行通信的数据或者字符是一帧一帧地传送,在异步通信中,一帧数据先用一个起始位“0”表示字符的开始,然后是5~8位上数据,即该字符的代码,规定低位在前,高位在后,接下来是奇偶校验位,最后一个停止位“1”表示字符的结束。下面是异步通信一帧数据为10位的帧格式见图3-1。图3-1字符帧格式图3.3波特率波特率是通信中对数据传送速率的要求。在计算机通信中,其意义是每秒钟传送多少位二进制数。假如异步传送速率为每秒120个字符,每个字符有1个起始位,8个数据位,1个停止位组成,则其传送波特率为QUOTE10×120=1200bps=1200波特传送一位所需要的时刻为波特率的倒数,即QUOTETd=11200=0.833ms在串行传输中,二进制数据序列是以数字波形出现的,发送时在发送时钟下将通信线上传来的数据串行移入移位寄存器,因此,发送时钟和同意时钟也可作移位时钟。能产生该时钟的电路称为波特率发生器。为提高采样的分辨率,准确地测定数据位的上升沿或下降沿,时钟频率总是高于波特率的若干倍,那个倍数称为波特率因子。在单片机中,发送和接收时钟能够由系统时钟fQUOTEfoscoscQUOTEfosc产生,其波特率因子为12,32,64.假如波特率由fQUOTEfoscosc决定称为固定波特率方式。也能够由单片机的内部定时器T1产生,它工作于自动重装8位定时方式,由于定时器的计数初值能够人为的改变,T1产生的时钟频率就能够改变,称为可变波特率方式。3.4串行接口的差不多特点3.4.1串行端口工作方式MCS-51\o"确实是一个微型的电脑,麻雀虽小,五脏俱全"单片机的串行端口有4种差不多工作方式,通过编程设置,能够使其工作在任一方式,以满足不同场合的需要。其中,方式0要紧用于外接移位寄存器,以扩展单片机的I/O\o"电流流过的路叫做电路"电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还能够作多机通信,以构成分布式多微机系统。串行端口有两个操纵寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率[每秒传送的位数]以及作为中断标志等。串行端口有一个数据寄存器SBUF[在专门功能寄存器中的字节地址为99H,该寄存器为发送和接收所共用。串行端口的波特率能够用程序来操纵。在不同工作方式中,由时钟振荡\o"频率"频率的分频值或由定时器T1的定时溢出时刻确定,使用十分方便灵活。
串口操纵寄存器:输入:在QUOTEREN=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。只有当8位数据接收完,并检测到高\o"电平"电平停止位后,只有满足①QUOTER1=0;②或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。因此在方式1接收时,应先用软件清零RI和SM2标志。1.方式2方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也能够作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令且QUOTETI=0时,就启动发送器发送。发送一帧信息后,置位中断标志TI。输入:在QUOTEREN=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第9位数据后,当满足①QUOTER1=0;②QUOTESM2=0或接收到的第9位数据为1时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。且不置位RI。2.工作方式3方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。
波特率的选择
如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率操纵。1.方式O方式0的波特率固定为主振\o"频率"频率
的QUOTE1/12。2.方式2方式2的波特率由PCON中的选择位SMOD来决定,可表示为:QUOTE波特率=2sMOD×fosc/64也确实是当QUOTESMOD=1时,波特率为QUOTE1/32×fosc,当QUOTESMOD=0时,波特率为QUOTE1/64×fosc。3.方式1和方式3定时器T1作为波特率发生器,其公式如下:式中T1计数率取决于它工作在定时器状态依旧计数器状态。当工作于定时器状态时,T1计数率为fosc门2:当工作于计数器状态时,T1计数率为外部输入\o"频率"频率,此频率应小于QUOTEfosc/24。产生溢出所需\o"交流电完成一次完整的变化所需要的时刻叫做周期"周期与定时器T1的工作方式、T1的预置值有关。
定时器T1工作于方式O:QUOTE溢出所需周期=8192-x
定时器T1工作于方式1:QUOTE溢出所需周期=65536-x定时器T1工作于方式2:QUOTE溢出所需周期=256-x
因为方式2为自动重装入初值的8位定时器/计数器模式,因此用它来做波特率发生器最恰当。这种方式下,T1的溢出率[次/秒]计算式能够表示为:(二)串行口的通信波特率串行口的通信波特率恰好反映串行口传输数据的速率。通信波特率的选用,不仅和所选通信设备、传输距离有关,还受传输线状况所制约。波特率设计1、方式0的波特率工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率是固定的,为振荡频率的QUOTE112,不受PCON寄存器中SMOD的阻碍。用公式表示为:工作方式0的QUOTE波特率=fosc/122、方式2的波特率工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即)给出,因此,方式2波特率取决于PCON中的SMOD位的值,当QUOTESMOD=2时,波特率为fosc的QUOTE164;当QUOTESMOD=1时,波特率为fosc的QUOTE132,用公式表示为;工作方式2:QUOTE波特率=2SMOD/64×fosc3、工作方式1和方式3的波特率在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率也是可变的。相应公式为:QUOTE波特率=2SMOD/32×定时器T1QUOTE定时器T1溢出率=fosc/12实际上定时器T1通常采纳方式2,因为定时器T1在方式2下工作,TH1和TL1分不设定为两个8位重装计数器。4单片机与PC机通信4.1AT89C51单片机上对应端口介绍本次课设要紧用到AT89C51单片机上的P3口,P3口的功能简介如下:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些专门功能口,如下表所示:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪耀编程和编程校验接收一些操纵信号本次单片机部分只需用到P3口的P3.0口和P3.1口,用于和PC连接通信。4.2RS-232简介通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,RS-232的电器特性、逻辑电平和各种信号线功能也有规定。在TxD和RxD上:逻辑1:-3V~-15V逻辑0:+3V~+15V发送数据(TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。接收数据(RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。4.3单片机通信代码#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintunsignedcharflag,a,i;ucharcodetable[]="OHMYGOD";voiddelay1ms(){ uchari,j; for(i=0;i<10;i++) for(j=0;j<33;j++);}voiddelay(ucharn)//延时n毫秒{ uchari; for(i=0;i<n;i++) delay1ms();}voidinit(){TMOD=0x20;//T1定时器方式2TH1=0xfd;TL1=0xfd;//T1定时器装初值TR1=1;//启动定时器T1REN=1;//数据同意同意SM0=0;设定串口方式1SM1=1;//EA=1;//开总中断ES=1;//同意串口中断}voidmain(){uchark;init();while(1){ if(flag==1) { ES=0;//关闭串口中断 for(i=0;i<17;i++) { SBUF=table[i];//接收数据 while(!TI);//等待是否发送完毕 TI=0; } SBUF=a;//发送数据 while(!TI); TI=0; ES=1; flag=0; }}}voidser()interrupt4//串口中断程序{RI=0;//软件清零,进入中断服务程序a=SBUF;flag=1;//标志位置1,推断是否已收到数据}4.4仿真电路图图4-1单片机电路仿真图5VB设计PC机5.1界面设计本次设计需要添加MSComm控件,可用Project--Components—commcontrol6.0进行添加。在设计窗体时要添加以下控件:1个ComboBox、9个Label、1个Option、7个CommandButton、2个TextBox。5.2VB设计的窗体图5-1VB设计软件5.3VB代码OptionExplicit'OptionBase1PrivateDeclareSubSleepLib"kernel32"(ByValdwMillisecondsAsLong)DimcomportAsByteDimrateAsLongDimdata_cntAsIntegerDimstop_cntAsIntegerDimdisp_onAsIntegerDimmutAsBooleanDimout()AsByte——————————————————————————————————PrivateSubcom_change()DimflagAsBooleanOnErrorResumeNextErr.ClearIfmut=FalseThenExitSub'初始化完成前本过程无效flag=MSComm1.PortOpenIfflagThenMSComm1.PortOpen=False'已打开先关闭MSComm1.CommPort=comport'设置串行端口MSComm1.Settings=CStr(rate)+",N,"+CStr(data_cnt)+","+CStr(stop_cnt)'设置波特率及数据帧格式MSComm1.PortOpen=TrueIfErr.NumberThenIfErr.Number=8002ThenMsgBox"串口"+CStr(comport)+"不存在!",vbOKOnly,"警告"IfErr.Number=8005ThenMsgBox"串口"+CStr(comport)+"已打开!",vbOKOnly,"警告"Option1.BackColor=RGB(0,0,0)Command1.Enabled=FalseCommand6.Enabled=FalseErr.ClearElseOption1.BackColor=RGB(255,0,0)Command1.Enabled=TrueCommand1.Caption="关闭串口"Command6.Enabled=TrueEndIfEndSub——————————————————————————————————-PrivateSubCombo1_click()comport=Combo1.ListIndex+1com_changeEndSub——————————————————————————————————PrivateSubCombo2_click()SelectCaseCombo2.ListIndexCase0rate=300Case1rate=600Case2rate=1200Case3rate=2400Case4rate=4800Case5rate=9600Case6rate=19200Case7rate=38400Case8rate=56000Case9rate=57600Case10rate=115200EndSelectcom_changeEndSub——————————————————————————————————PrivateSubCombo3_click()data_cnt=8-Combo3.ListIndexcom_changeEndSub——————————————————————————————————PrivateSubCombo4_click()stop_cnt=1+Combo4.ListIndexcom_changeEndSub——————————————————————————————————PrivateSubCommand1_Click()IfCommand1.Caption="关闭串口"ThenMSComm1.PortOpen=FalseCommand1.Caption="打开串口"Option1.BackColor=RGB(0,0,0)ElseMSComm1.PortOpen=TrueCommand1.Caption="关闭串口"Option1.BackColor=RGB(255,0,0)EndIfEndSub——————————————————————————————————PrivateSubCommand2_Click()Text1.Text=""EndSub——————————————————————————————————PrivateSubCommand3_Click()Staticf2AsByteIff2=0Thendisp_on=0f2=1Command3.Caption="接着显示"Elsedisp_on=0f2=0Command3.Caption="停止显示"EndIfEndSub——————————————————————————————————PrivateSubCommand4_Click()DimtimeAsDatetime=Now()Open"C:\Users\Lenovo\Desktop\NICE.txt"ForOutputAs#5Print#5,timePrint#5,Text1.TextClose#5EndSub——————————————————————————————————PrivateSubCommand5_Click()Text2.Text=""EndSub——————————————————————————————————PublicFunctionIsHex(cAsString)AsIntegerIfc>="0"Andc<="9"ThenIsHex=Val(c)-Val("0")ElseIfc>="a"Andc<="f"ThenIsHex=Asc(c)-Asc("a")+10ElseIfc>="A"Andc<="F"ThenIsHex=Asc(c)-Asc("A")+10ElseIsHex=16EndIfEndFunction——————————————————————————————————PrivateSubCommand6_Click()DimoutsAsStringouts=Text2.TextCallToChar(out,CStr(outs))MSComm1.Output=outExitSubDimsAsStringDimlAsIntegerDimiAsInteger,jAsInteger,cntAsIntegerDimaAsIntegerDimtmpAsStringDimsend_buf()AsByteReDimsend_buf(1024)cnt=0s=Trim(Text2.Text)l=Len(s)DoWhile(l)DoUntilIsHex(Left(s,1))<>16l=l-1Ifl=0ThenExitDotmp=Right(s,l)Loopa=IsHex(Left(s,1))l=l-1s=Right(s,l)Ifl<>0AndIsHex(Left(s,1))<>16Thena=a*16+IsHex(Left(s,1))l=l-1s=Right(s,l)EndIfcnt=cnt+1send_buf(cnt)=aLoopIfcnt>128Thencnt=128ReDimPreservesend_buf(cnt)MSComm1.Output=send_buf()EndSub——————————————————————————————————PrivateSubCommand7_Click()UnloadMeEndSub——————————————————————————————————PrivateSubForm_Activate()OnErrorResumeNextmut=FalseCombo1.ListIndex=0Combo2.ListIndex=5Combo3.ListIndex=0Combo4.ListIndex=0mut=TrueMSComm1.PortOpen=TrueIfErr.NumberThenMsgBox"串口1已打开!",vbOKOnly,"警告"Option1.BackColor=RGB(0,0,0)Command1.Enabled=FalseCommand6.Enabled=FalseErr.ClearEndIfCommand1.SetFocusEndSub——————————————————————————————————PrivateSubForm_Load()MSComm1.CommPort=1'设置串行端口com1MSComm1.Settings="9600,N,8,1"'设置波特率及数据帧格式MSComm1.InputLen=0'读取接收缓冲区的所有字符MSComm1.InBufferSize=256'数据同意缓冲区大小为4000字节MSComm1.OutBufferSize=256'数据发送缓冲区大小为4000字节MSComm1.RThreshold=1'每10位数据到接收缓冲区都触发接收事件'MSComm1.SThreshold=1'发送缓冲区空触发发送事件'MSComm1.InputMode=comInputModeText'字节模式'设定InputMode以读取二进位资料MSComm1.InputMode=comInputModeBinarydisp_on=1comport=1rate=9600data_cnt=8stop_cnt=1EndSub——————————————————————————————————PrivateSubLabel3_Click()EndSub——————————————————————————————————PrivateSubMSComm1_OnComm()StaticcntAsIntegerDimreceive_cntAsIntegerDimiAsIntegerDimBufferAsVariantDimArr()AsByteDimsAsStringSelectCaseMSComm1.CommEventCasecomEvReceivereceive_cnt=MSComm1.InBufferCount'接收缓冲区的字节数'往暂存区存二进位资料Buffer=MSComm1.Input'指定给位元组阵列以便处理Arr=Buffers=""Fori=0Toreceive_cnt-1IfArr(i)>=32AndArr(i)<=126Thens=s&Chr(Arr(i))cnt=cnt+1EndIfNextiText1.Text=Text1.Text&s&vbCrLfIfcnt>=300ThenText1.Text=""cnt=0ExitSubEndIfCasecomEvSendEndSelectEndSub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《李凭箜篌引》教学设计 2024-2025学年统编版高中语文选择性必修中册
- 一年级数学苏教版下册第五单元《单元复习》教学设计教案
- 建筑信息模型技术员习题(含参考答案)
- 防火员试题库(含参考答案)
- 2024国家中铝国际工程股份有限公司所属长沙院副总经理岗位竞争上岗1人笔试参考题库附带答案详解
- 2024国家中铝国际工程股份有限公司纪委工作部(巡察办公室)副主任岗位竞争上岗1人笔试参考题库附带答案详解
- 《试说新语-聚沙成塔丰富词语积累》教学设计 2024-2025学年统编版高中语文必修上册
- 2024内蒙古煤炭地质勘查(集团)一一七有限公司招聘笔试参考题库附带答案详解
- 2025年河北省承德市单招职业适应性测试题库附答案
- 2025至2030年中国河南白蒜数据监测研究报告
- GB/T 17421.2-2023机床检验通则第2部分:数控轴线的定位精度和重复定位精度的确定
- 小区燃气安全宣传新闻稿
- WORD一级上机题答案
- 合唱社团第二学期活动记录
- 264省道淮安段(原淮安楚州施河至涟水五港公路)环评报告
- 矢量分析和场论基础
- 进步粘滞流体阻尼器埋件的一次验收合格率
- (完整版)书籍装帧设计
- 第九章古典文献的检索
- 高职院校创新创业教育数字化转型和改革研究
- 初中物理实验全集-ppt
评论
0/150
提交评论