基于VB_NET的PC机和MCS_51单片机之间的串行通信
- 格式:pdf
- 大小:222.10 KB
- 文档页数:5
VB环境下实现PC机与单片机的串行通讯随着科技的不断发展,PC机和单片机的联系日益密切,特别是在嵌入式系统领域中,单片机已经成为了必不可少的重要组成部分。
而如何实现PC机和单片机之间的通讯,是一项必须要掌握的技能。
本篇文章主要介绍如何运用VB环境下的串口编程,实现PC机与单片机的串行通讯。
一、概述通讯技术日新月异,各种新的通讯技术层出不穷。
而在普通家庭却使用最为广泛的通讯技术,还是传统的串口通讯。
使用传统的串口通讯,可以实现PC机与单片机之间的数据交互,可靠性高,兼容性强,使用便捷。
要实现PC机与单片机之间的串行通讯,需要掌握两个技能:单片机串行通讯的编程和VB环境下串口编程。
二、单片机串行通讯的编程单片机串行通讯主要是通过寄存器和中断实现的。
单片机通过一个IO口与电脑之间建立一个简单的通讯接口,PC机通过该接口向单片机发送数据,单片机接收到数据,就可以通过该接口把数据返回给PC机。
单片机串口通讯编程的内容主要包括串口数据位、停止位、校验位、波特率等信息,这些信息需要设置在单片机的寄存器中。
同时,还要设置中断信息,以免程序在不接收数据时死等。
三、VB环境下串口编程VB环境下串口编程的关键是掌握控件的使用。
实际上,VB环境下的串口编程非常简单,只需要使用微软提供的MSComm控件就可以实现。
通过MSComm控件的事件和方法,可以轻松地实现数据的读取、发送、接收等功能。
需要注意的是,MSComm控件的BaudRate属性需要与单片机编写的程序的波特率一致,不然可能会出现通讯故障。
四、如何实现串口通讯首先需要硬件上建立好通讯接口。
通常情况下,USB串口转换器和单片机板子都会配套出售,只需要把两者插在一起即可。
其次需要编写单片机的串口通讯程序。
单片机数字口与串口的通讯,就是把串口接到单片机的数字口中,通过串口向外发送数据。
因此,编写单片机的串口通讯程序,需要设置停止位、数据位、奇偶校验位、波特率等参数。
总成绩个性化教育系列工程设计报告设计题目基于VB的单片机与PC串口通信设计学院电气信息学院专业班级自动化081班学生姓名陈凯学生学号*********说明1.个性化教育周结束后,每个学生都必须认真撰写《工程设计报告》。
通过撰写工程设计报告,系统地回顾和总结工程设计的全过程,将实践性教学的感性认识升华到一定的理论高度,从而提高个性化教育教学效果。
2.工程设计报告应包括:设计题目、设计说明书及总结、参考文献、附件等几部分。
设计说明书及总结是报告的主体,该部分至少应包括:软、硬件设计;性能指标;调试说明;工程设计的收获与体会等几部分。
3.工程设计报告要求条理清晰,内容详尽,数据准确。
字数不少于5000字。
4.工程设计报告的撰写是工程设计的重要组成部分,它是成绩评定的主要依据之一。
学生在工程设计完成后需按指导教师要求提交合格的工程设计报告。
不交工程设计报告者不得参加成绩评定。
5.工程设计报告至少应分:设计期间的工作表现和工程设计报告质量两部分,指导教师应分别按百分制评定成绩。
各设计平台可根据需要添加其它评价内容。
6.工程设计各环节所占比例由各设计平台指导小组自行确定。
7.学生成绩评定表中的总成绩应为各环节分数与所占比例乘积的算术和。
8.封面成绩为五级分制成绩,量化标准按学校有关文件执行。
9.工程设计报告可打印也可下载格式后手写,工程设计报告完成后应按封面,说明,工程设计报告内容的顺序进行装订成册。
10.个性化教育周完成后将工程设计报告交学院教学办公室保存。
学生成绩评定表基于VB的单片机和PC机串口通信设计一、设计目的:1.熟悉并掌握串口标准及通信原理。
2.掌握51单片机的串口编程。
3.熟悉上位机软件VB6.0的编程环境,能够应用其进行程序的编写和调试,掌握MSCOMM组件的设置方法。
二、设计要求:1.对四路模拟量进行AD采集,并将转换结果送1602液晶进行实时显示。
2.将采集结果通过串口发送给PC机,在上位机软件上进行数据的监控显示。
第14卷第4期北京电子科技学院学报2006年12月Vol.14No.4JournalofBeijingElectronicScienceandTechnologyInstituteDec.2006基于VB.NET的PC机和MCS-51单片机之间的串行通信何文才1,2杜鹏1,2刘培鹤1牛晓蕾1,2张媛媛1,2(1.北京电子科技学院通信工程系,北京,100070;2.西安电子科技大学通信工程学院,陕西西安,710071)摘要:本文介绍了基于VisualStudio2005的VisualBasic2005(简称VB.NET)进行串口程序开发的方法,它具有开发周期短、可靠性强等特点。
同时给出了PC机与51单片机串行通信的应用实例,这对快速掌握最新的PC机与单片机串口通信技术有一定的参考价值。
关键词:VisualBasic.NET;Serialport控件;串行通信;单片机中图分类号:TP368.2文献标识码:A文章编号:1672-464X(2006)04-0061-041引言PC机和单片机之间的通信问题一直是业界的热门话题,它广泛应用于工业控制系统、智能检测系统、数据采集系统等。
PC机与单片机之间通常采用两种通信方式:并行通信和串行通信。
并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。
并行通信虽然传输效率高、速度快,但可靠性差,所需硬件设备复杂,不适于长距离通信(通常不超过三十米),所以一般只适用于要求实时性强,传送速率较高的系统中,实用面较窄。
相比之下,串行通信虽然速度较慢、效率较低,但可靠性好,简单易实现,传输距离较长,所以被广泛应用于多种场合,特别适合于计算机与计算机、计算机与外设之间的远距离通信[1]。
串行通信包括同步通信和异步通信。
在同步通信中,数据开始传送前用同步字符来指示,并由时钟信号来实现发送端和接受端同步。
同步通信可以提高传输速率,但硬件实现比较复杂,常用于信息量大,传输速率要求高的场合;而在异步通信中,规定了标准的字符数据传输格式,即每一帧信息由起始位、数据位、奇偶校验位和停止位组成。
关于使用VB 与单片机通信一、电脑和单片机通信(以MCS51 为例),必须进行电平转换,推荐使用单5V 供电的MAX232CPE ,只需简单地外接几个电容就可实现,具体电路可参考《单片机原理及接口技术》(P382 )。
二、使用VB 与单片机通信,可以利用VB 提供的MSCOMM 控件。
1 、如果工具箱中没有MSComm 控件,其外形是一个小电话,则需要添加该控件。
选择“Project ”菜单的Commponent 项,弹出一个对话框,在控件列表中找到Mircosoft Coun confrol 6.0 ,点击左边的方框,确定即可。
2 、MSCOMM 控件的主要属性。
( 1 )CommPort 设置或返回通讯端口号。
格式为:mPort [ =PortNumber] 。
在设计时,PortNumber 可以设置成从1 到16 的任何数(缺省值为1 )。
但是如果用PorOpen 属性打一个并不存在的端口时,就会产生错误。
还需注意的是必须在打一开端口之前设置CommPort 属性。
例如:mPort=2, 即设置当前通信串口为COM2 口。
( 2 )Settings 以字符串形式设置或返回波特率、奇偶校验、数据位和停止位。
格式为:MSComm.Settings[=ParaString] 。
ParaString 是一个包含四部分的字符串。
第一部份为波特率,其可选值为110 ,300 ,600 ,1200 ,2400 ,9600 ,14400 ,19200 ,28800 。
第二部份为奇偶校验,N 表示不校验,E 表示偶校验,O 表示奇校验,S 表示空格检验,M 表示符号校验。
第三部份为数据位位数,其可选值为4 , 5 ,6 ,7 ,8 ,。
第四部份为停止位位数,其可选值1 ,1.5 ,2 。
Settings 属性的缺省值为“9600 ,N ,8 ,1 ”。
(3 )handshaking 设置或返回硬件握手协议,指的是PC 机与Modem 之间为了控制流通而约定的内部协议。
基于VB的PC机与单片机串行通信关键技术实现
冯新宇;王娟;王安华
【期刊名称】《煤炭技术》
【年(卷),期】2006(25)8
【摘要】主要论述了PC机与单片机进行通信时的关键技术,并着重阐述了在VB 环境下实现的主要过程。
【总页数】2页(P108-109)
【关键词】单片机;VB;串行通信
【作者】冯新宇;王娟;王安华
【作者单位】黑龙江科技学院电气与信息工程学院
【正文语种】中文
【中图分类】TN91
【相关文献】
1.基于VB6.0编程实现PC与单片机的串行通信 [J], 孟昕元
2.基于VB的PC机与单片机串行通信系统研究与实现 [J], 马壮;吴铮;王永强
3.基于VB6.0的PC机与多单片机串行通信设计与实现 [J], 孔德刚;肖海荣;安国建;刘文江
4.利用VB8.0实现PC机与多单片机串行通信的方法 [J], 王平根
5.基于VB实现PC机与单片机的串行通信 [J], 王圆妹;许劲;李涛
因版权原因,仅展示原文概要,查看原文内容请购买。
基于VB的PC机与单片机串行通信系统研究与实现
马壮;吴铮;王永强
【期刊名称】《唐山学院学报》
【年(卷),期】2008(21)4
【摘要】串行通信已经成为计算机与其他设备进行数据交换的最广泛的途径之一.文章简要介绍了在VB环境下单片机与PC机之间实现串行通信的硬件组成;软件系统主要有由VB提供的MsComm控件,并由其完成PC机与单片机之间的数据交换.【总页数】3页(P23-24,64)
【作者】马壮;吴铮;王永强
【作者单位】唐山学院信息工程系,河北,唐山063000;唐山学院信息工程系,河北,唐山063000;唐山学院信息工程系,河北,唐山063000
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于的PC机和MCS-51单片机之间的串行通信 [J], 何文才;杜鹏;刘培鹤;牛晓蕾;张媛媛
2.基于VB进行PC机与单片机的串行通信 [J], 周桔蓉;孙旭日
3.基于RS-485总线的PC机与单片机串行通信系统的设计与实现 [J], 彭宏伟;边志远;李翠霞
4.基于RS-485总线的PC机与单片机串行通信系统的设计与实现 [J], 彭宏伟;边
志远;李翠霞
5.基于VB
6.0实现PC机与单片机的串行通讯 [J], 杨佩璐
因版权原因,仅展示原文概要,查看原文内容请购买。
MCS -51单片机与PC 机串行通讯的实现赵迎生(淮阴工学院,江苏淮阴223300)摘要:本文利用VB 程序在PC 机上的强大的编程功能和MCS -51单片机的接口设计简单可靠的特点,介绍了实现PC 机与MCS -51单片机相互间进行通讯的软硬件设计,提供了通讯的VB 程序和MCS -51单片机汇编程序。
关键词:PC 机;单片机;通讯;程序The R ealization of Serial Communication B et w een MCS -51Microcomputer and PCZHAO Y ing 2sheng(Huaiyin Institute of Technology ,Hua i ’an 223001,China )Abstract :Based on the powerful programming function of Visual Basic program on personal computer and the simple and reliable characteristic of interface design of MCS -51series microcomputer ,the design method of software and hardware is introduced to re 2alize the communication between PC and MCS -51series microcomputer ,and VB program and MCS -51assembly language pro 2gram process is offered.K eyw ords :Personal computer ;Microcomputer ;Communication ;Programm0 前言VB 程序的编程功能非常强大,根据实际应用系统的需要,在PC 机上可以迅速设计出应用系统的图文显示控制界面,且具有通用性,易于移植。
3662001嵌入式系统覆单片机国际学术交流会论文集——————————————~————————————————————————~CI-RTI;清TI标志,允许再次发送RE,rEND4.2PC机部分LabVIEW串口通讯程序波特率为9600,禁止软、硬件握手・无奇偶校验.数据位为8位,停止位设置为。
,有1位停止位。
前台面板如图5所示。
方框图如图6所示。
田5前台面板围6串口初始化方框图串El初始化方框图中需要对SerialPortInit.vi的~些参数进行设置。
双击SerialPortlnit.vi可以看到参数设置对话框。
串El读的方框图如图7所示,一方面将串El读出的一帧字符信息显示在前面板,另一方面将所有从串口读出的信息转换为数据,并以二维数组的形式显示在前面板。
5结束语I,abVIEW是一种简单易学的图形化高级语言.利用其开发产品可以大大提高开发效率。
本文详细介绍了运用LabVIEW从MCS-51单片机到PC机的串行通讯。
该程序在本文作者所开发的近红外光谱肌血氧仪中运行良好。
同样运用SerialPortWrite.yi也可以实现从PC机到单片机的串行通讯。
第四篇网络、通信与数据传送367———————————————————————————————————————————————————————————————————————一——————————————————————一圈7串口读的方框图参考文献1运用VisualBasic实现PC与89C51单片机之间的串行通讯.计算机自动测量与控制.1999(2)2VB5.0实现与单片机串行通信的程序设计.微计算机信息,1999(3)3用VisualBasic实现工控机与单片机间的通信.电子产品维修与制作.1999(4)4用vc++5.0实现PS2003与PC机的串口通信.电子技术,1999(7)5李朝青.单片机原理以及接口技术.北京:北京航空航天大学出版社,19946王福瑞,等.单片微机测控系统设计大全.北京:北京航空航天大学出版社,1998SerialCommunicationbetweenMCS-51andPCUsingLabVIEWXiangShaoxiaLiGangCollegeofPrecisionInstrument&Opto-ElectronicEngineering,TianjinUniversityTianjin,300072,P.R.ChinaAbstractLabVIEWisanpopulargraphicallanguagethatiswelcometoengineer.Acquisitiondatausingsystem(MCS-51)withmicrocomputersystemisalsoanpopularmethod.SerialcommunicationmicrocompulerPCusingthefunctionsinLabVlEWsuchasSerialPortInit.vi,SerialPortWrite.viandSerialPortRead・vietc・isintroducedinthispaper.Wordsserialcommunication,subVI,baudrateKey。
基于VB的计算机与单片机间的串行通信
耿新伟;邵伟;裴红星
【期刊名称】《焦作大学学报》
【年(卷),期】2004(018)004
【摘要】介绍了一种利用VB6的通信控件实现计算机与单片机之间的串行通信的方法,并给出了一个计算机与8051串行通信的应用实例.
【总页数】2页(P26-27)
【作者】耿新伟;邵伟;裴红星
【作者单位】河南省国家税务局,河南,郑州,450000;河南省国家税务局,河南,郑州,450000;河南省国家税务局,河南,郑州,450000
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于VB的PLC与计算机间串行通信 [J], 钱华;曹春泉
2.基于VB6.0的计算机与单片机之间的串行通信 [J], 孙颖;沈精虎
3.基于VB6.0的计算机与单片机串行通信 [J], 张修太;胡雪惠
4.基于MSComm控件实现计算机与单片机间的串行通信 [J], 周永刚
5.基于VB的计算机与单片机之间的串行通信 [J], 李纪云;王坤
因版权原因,仅展示原文概要,查看原文内容请购买。
《自动化技术与应用》2007年第26卷第11期94 | T echniques of Automation & Applications 经验交流Technical CommunicationsVB 实现PC 机与单片机(8051)的串行通讯刘艳美, 姜 波(新疆大学电气工程学院 新疆 乌鲁木齐 830008)摘 要:本文主要论述PC机与单片机之间实现异步串行通讯需要解决的问题以及如何利用VB提供的串行通讯控件MSComm来实现PC机与51单片机的通讯。
关键词:MSComm; 串行通讯; 波特率中图分类号:TP368.1 文献标识码:B 文章编号:1003-7241(2007)11-0094-03Implementation of Serial Communication between PC andMicroprocessor by Using VBLIU Yan-mei, JIANG Bo(XinJiang University Electronical Institute,Urumchi 830008 China)Abstract: This paper discusses the asynchronous serial communication between PC and the Microprocessor and the use of VBmodule of MSComm to imdement this serial communication.Key words: MSComm; serial communication; Baud rate收稿日期:2007-03-271 引言PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通讯,是许多测控系统中常用的一种通信解决方案。
本文将论述在VB环境下PC机与单片机之间实现异步串行通讯需要解决的问题并给出其部分通讯程序。
第14卷第4期北京电子科技学院学报2006年12月Vol.14No.4JournalofBeijingElectronicScienceandTechnologyInstituteDec.2006基于VB.NET的PC机和MCS-51单片机之间的串行通信何文才1,2杜鹏1,2刘培鹤1牛晓蕾1,2张媛媛1,2(1.北京电子科技学院通信工程系,北京,100070;2.西安电子科技大学通信工程学院,陕西西安,710071)摘要:本文介绍了基于VisualStudio2005的VisualBasic2005(简称VB.NET)进行串口程序开发的方法,它具有开发周期短、可靠性强等特点。
同时给出了PC机与51单片机串行通信的应用实例,这对快速掌握最新的PC机与单片机串口通信技术有一定的参考价值。
关键词:VisualBasic.NET;Serialport控件;串行通信;单片机中图分类号:TP368.2文献标识码:A文章编号:1672-464X(2006)04-0061-041引言PC机和单片机之间的通信问题一直是业界的热门话题,它广泛应用于工业控制系统、智能检测系统、数据采集系统等。
PC机与单片机之间通常采用两种通信方式:并行通信和串行通信。
并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。
并行通信虽然传输效率高、速度快,但可靠性差,所需硬件设备复杂,不适于长距离通信(通常不超过三十米),所以一般只适用于要求实时性强,传送速率较高的系统中,实用面较窄。
相比之下,串行通信虽然速度较慢、效率较低,但可靠性好,简单易实现,传输距离较长,所以被广泛应用于多种场合,特别适合于计算机与计算机、计算机与外设之间的远距离通信[1]。
串行通信包括同步通信和异步通信。
在同步通信中,数据开始传送前用同步字符来指示,并由时钟信号来实现发送端和接受端同步。
同步通信可以提高传输速率,但硬件实现比较复杂,常用于信息量大,传输速率要求高的场合;而在异步通信中,规定了标准的字符数据传输格式,即每一帧信息由起始位、数据位、奇偶校验位和停止位组成。
异步通信由于有冗余位,所以传送效率不高,常用于信息量不大,传输速率要求较低的场合[1]。
VB.NET是Microsoft最新推出的一种集成开发环境,它既继承了旧版VB的特点,又有新的扩充,具有功能强大、界面友好、32位的真正面向对象、易学易用等特点,受到广大用户的青睐,被广泛运用于各个领域。
2串行通信实现方法常用的串行通信实现方式有两种,一种是直接利用控件,另一种是利用WindowsAPI函数。
在VS2005以前的版本中,串行通信控件是Mscomm,而在VS2005中被升级为Serialport。
利用控件的操作很直观、也很方便。
利用API函数可以完成更强大的功能,适合深度开发。
API函数是控件的抽象,控件是API函数的具体化。
无论利用哪种方式,其本质都是一样的,首先是串口的初始化,包括选择串口、设置波特率、是否校验、选择握手协议、打开串口等;然后通过缓冲区读取上下行数据;最后通过驱动实现数据的处理。
3串行通信在VB.Net平台下的实现基于本文的宗旨,我们利用Serialport控件来编程。
此控件所在的类是MicroSoft最新在Microsft.NetFramework2.0中引进的。
下面介绍此控件的一些主要属性和驱动事件。
BaudRate:设置波特率DateBits:数据位DiscardNull:是否忽略空字节,为Boolean型变量DtrEnable:是否接受就绪,为Boolean型变量GenerateMember:是否生成当前控件的类变量,为Boolean型变量HandShake:握手协议选择,其枚举值为None、XOnXOff、RequestToSend、RequestToSendXOnXOffModifiers:继承属性控制,其枚举值为Public、Protected、ProtectedFriend、Friend、Private收稿日期:2006-05-31北京电子科技学院学报2006年Parity:检验性,其枚举值为None、Odd、Even、Mark、SpaceParityReplace:校验替代字节,其值为字符的ASCII码PortName:串口号,对应Mscomm控件中的CommPortRead:从缓冲区读数据,对应Mscomm控件中的InputReadBufferSize:接收缓冲区的大小,对应Mscomm控件中的InBufferCountReadTimeout:读缓冲区数据最长时间ReceivedBytesThreshold:接收缓冲区中接收到一个字符,就产生一次DataReceived事件,RtsEnable:是否启用请求发送,为Boolean型变量StopBits:停止位Write:向缓冲区写数据,对应Mscomm控件中的OutputWriteBufferSize:发送缓冲区的大小,对应Mscomm控件中的OutBufferCountWriteTimeout:写缓冲区数据最长时间DataReceived事件:该事件对应Mscomm控件中的OnComm事件,可以在此事件中对数据进行处理,是Serialport最主要的事件另外,SerialPort控件还具有ErrorReceived事件和PinChanged事件,分别用来处理发生错误和串口针脚电平发生变化的情况,不再赘述。
掌握了这些属性和事件后,编写程序就很容易了。
下面给出程序中主要事件的代码。
窗体加载事件的代码如下:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadWithSerialPort1.PortName="COM1"选择串口1.BaudRate=9600波特率9600bps.Parity=IO.Ports.Parity.None无校验.DataBits=88位数据位.StopBits=IO.Ports.StopBits.One1位停止位.ParityReplace=0EndWithSerialPort1.Open()打开串口EndSub在此设置了一些必要的属性值,其它属性值采用默认值即可。
向串口发送数据按钮的单击事件代码如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickSerialPort1.RtsEnable=True启用请求发送SerialPort1.DtrEnable=True接受就绪SerialPort1.Write(TextBox1.Text)发送数据至串口TextBox2.Text=s回显收到数据EndSubSerialPort的DataReceived事件代码如下:PrivateSubSerialPort1_DataReceived(ByValsenderAsObject,ByValeAsSystem.IO.Ports.SerialDataReceivedEventArgs)HandlesSerialPort1.DataReceiveds=SerialPort1.ReadExisting接受串口数据EndSub窗体卸载事件代码如下:PrivateSubForm1_FormClosed(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.FormClosedEventArgs)HandlesMe.FormClosedSerialPort1.Close()关闭串口EndSub此程序功能较单一,重在说明SerialPort控件的用法,读者在实际应用中根据具体要求加以扩展即可。
62・・何文才杜鹏刘培鹤牛晓蕾张媛媛:基于VB.NET的PC机和MCS-51单片机之间的串行通信第14卷4单片机程序的编写MCS-51系列单片机自身带有一个可编程全双工串行通信接口UART,发送数据时由TXD端送出,接收数据时由RXD端输入。
同时,还带有两个缓冲器SBUF,一个做发送缓冲器,另一个做接受缓冲器。
UART由串口控制寄存器SCON、发送电路、接受电路等组成,它支持异步数据传输,所以在实际应用中更多的是直接利用该串口来实现异步通信。
UART有四种工作方式,可以通过对SCON寄存器编程来确定具体采用那种方式。
方式0外接同步移位寄存器,主要用于扩展单片机的I/O口;方式1为8位异步通信,每次的发送和接收由1位起始位、8位数据位和1位停止位共同组成,主要用于双机之间或与外设通信;方式2、3均为9位异步通信,每次的发送和接收由1位起始位、8位数据位、1位奇偶校验位和1位停止位共同组成,除具有方式1的功能外,还可用做多机通信,区别在于波特率不同。
单片机采用中断方式收发数据,晶振频率为11.0592MHz,波特率为9600bps,并设置了32字节的队列缓冲区,用于数据的发送和接收。
定时器T1作为波特率发生器,其计数常数为:N=28-2SMOD×fosc波特率×32×32=FDH流程图如图4-1所示。
下面给出单片机和PC机通信的程序代码(来自参考文献[3]的第163页):#include<reg51.h>#defineucharunsignedcharucharxdatar_buf[32];//定义两个队列缓冲区ucharxdatat_buf[32];ucharr_in,r_out,t_in,t_out;//队列指针bitr_full,t_empty,t_done;//缓冲区状态标志codeucharm[]={"Thisisatestprogramfornewer!"};serial()interrupt4using1//中断服务程序{if(RI&& ̄r_full){r_buf[r_in]=SBUF;RI=0;r_in=++r_in&0x1f;if(r_in==r_out)r_full=1;}elseif(TI&& ̄t_empty){SBUF=t_buf[t_out];TI=0;t_out=++t_out&0x1f;if(t_out==t_in)t_empty=1;}elseif(TI){TI=0;t_done=1;}}voidloadmsg(ucharcode*msg){while((*msg!=0)&&((((t_in+1)^t_out)&0x1f)!=0)){//测试缓冲区是否已满t_buf[t_in]=*msg;图4-1单片机程序流程图63・・msg++;t_in=++t_in&0x1f;if(t_done){TI=1;t_empty=t_done=0;}}}voidprocess(ucharch){return;}//用户自定义的函数voidprocessmsg(void){while(((r_out+1)^r_in)!=0){//接收缓冲区非空process(r_buf[r_out]);r_out=++r_out&0x1f;}}main(){TMOD=0x20;//定时器1方式2TH1=0xfd;//9600bps,11.0592MHzTCON=0x40;//启动定时器1SCON=0x50;//方式1异步通信IE=0x90;//允许串口中断t_empty=t_done=1;r_full=0;r_out=t_in=t_out=0;r_in=1;//接收缓冲和发送缓冲置空for(;;){loadmsg(&m);processmsg();}}5结论VisualStudio2005版开发工具相对于以前的版本有了很大的改进,串口通信控件SerialPort较以前的Mscomm有了明显的优化,在实际应用中只要掌握了PC机与单片机的串口通信部分,就可以迅速开发出交互界面友好、功能强大的应用系统。