1、AT89C51 串口编程前言本文档是为单片机初学者写的有关串口通讯编程的说明文档。使用的单片机硬件是最通用的 AT89C51 单片机,编程语言为 c 语言。本文档不是系统的介绍单片机知识的教程,而是为了使您尽快掌握串口编程方法的技术说明。本文档前几部分大量内容摘自平凡老师的单片机教程,此教程是单片机入门的良好教材,但由于那本教程是由汇编语言描述的,对于时间不充足的同学来说,学习汇编会浪费一些时间,所以我还是整理了我们要了解的内容写到了本文档中。对于时间比较充分,也有兴趣学习汇编语言的同学可以先阅读平凡老师的“单片机教程” ,然后从本文档第六部分看起。该教程网址:http:/ 、RAM(数据存储
2、) 、ROM(程序存储) 、输入/输出设备(例如:串行口、并行输出口等) 。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如 A/D,D/A 等。 天!电脑中的 CPU 一块就要卖上千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。 不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40 脚封装,当然功能多一些单片机也有引脚比较多的,如 68 引脚,功能少的只有 10 多个或 20 多个引脚,有的甚至只
3、 8 只引脚。为什么会这样呢? 功能有强弱,另外这种芯片的生产量很大,技术也很成熟,51 系列的单片机已经做了十几年,所以价格就低了。 既然如此,单片机的功能肯定不强,干吗要学它呢? 话不能这样说,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用 P4?应用的关键是看是否够用,是否有很好的性能价格比。实现一个发光二极管的闪烁体会对单片机的 c 语言编程买回来一块 c51 单片机,要想使用它 首先要做必要的连线。我们实验室通常会给我们提供已经接好线的板子,所以我们不必自己去连线,这里需要说明的一点是,一块单片机要工作起来首先需要复位,所谓复位就是在
4、单片机的 RST 引脚持续的加上两个机器周期的高电平,使单片机回到工作的状态。 (机器周期在串口波特率的计算中介绍)我做实验时使用的板子是一块较复杂的板子的一部分,那块板子的复位方式是其他器件的程序给单片机复位,可是我做实验时那个器件不需要工作,所以,单片机一直不能复位。如果你遇到这种情况,请按任何一本书上介绍的加电复位选择合适的电容和电阻,按书上的连线图焊接好,如果你用的是我以前用过的板子,这块板子已经接好了复位电路,无须多考虑。请打开一本单片机的书,找到单片机的引脚图。我们用的板子在 p1.0 脚接有一个发光二极管,当 p1.0 为高电压时,二极管点亮,为低电压时,二极管熄灭。我们现在想让
5、小灯每隔 0.5s闪烁一次,实际上就是要灯亮 0.5s,再灭 0.5s,也就是说要 P10 不断地输出高和低电平。怎样实现这个要求呢?我们首先给出程序,然后对照程序分析。实验 1/程序开始#includec51 单片机编程特有的头文件#define uint unsigned int#define uchar unsigned charsbit P10=P10; /sbit 是单片机 c 程序新的关键字,用于定义位变量void Delay(uint i)/延时程序,i 是时间参数 uint j;for(;i0;i-)for(j=0;j头文件#define uint unsigned intsb
6、it P10=P10;定义 P10 为位变量 P10void main(void)uint k=0;定义用于软件计数的变量 k 并赋初值TMOD=0x20;使用定时器 1 的方式 2TR1=1;启动定时器 1P10=0;给 P10 赋初值,关闭小灯TH1=0X00;TL1=0X00;装载计数初值while(1)不停的循环while(!TF1);检查是否定时器溢出,如溢出则向下执行TF1=0;溢出 标志位清 0while(+k=2000)当定时器 1 溢出 2000 次时进入循环体P10=!P10;使 P10 电位反向,控制小灯明暗k=0;软件计数标志清零,准备下一次计数由以上的程序我们可以看出
7、使用计数定时器的一般步骤为:1、 确定 T/C 的工作方式编程 TMOD 寄存器2、 计算 T/C 中的计数初值,并装载到 TH 和 TL3、 T/C 在中断方式工作时,须开 CPU 中断源 编程 IE 寄存器(下节讲)4、 启动定时计数器编程 TCON 中的 TR1 和 TR0 位。上面第三条中提到中断,休息一会,我们来看单片机中另一个重要的内部资源中断。五、 中断介绍1、有关中断的概念什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断
8、了。仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。第一、什么可经引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了.等等诸如此类的事件,我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的事件,89c51 中一共有 5 个:两个外部中断,两个计数/定时器中断,一个串行口中断。第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等
9、人上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机
10、中也是采用的这种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应可以分为以下几个步骤:1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。2、寻找中断入口,根据 5 个不同的中断源所产生的中断,查找 5 个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这 5 个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。3、执行中断处理程序。4 、中断返回:执行完中断指
11、令后,就从中断处返回到主程序,继续执行。MCS-51 中断系统的结构:如图(抱歉,本图请找本 51 书看一下)所示,由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括 5 个中断请求源,4个用于中断控制的寄存器 IE、IP、ECON 和 SCON 来控制中断。1、中断请求源:(1) 外部中断请求源:即外中断 0 和 1,经由外部引脚引入的,在单片机上有两个引脚,名称为 INT0、INT1 ,也就是 P3.2、P3.3 这两个引脚。在内部的 TCON 中有四位是与外中断有关的。IT0:INT0 触发方式控制位,可由软件进和置位和复位,IT0=0,INT0 为低电平触发方式,IT
12、0=1 ,INT0 为负跳变触发方式。这两种方式的差异可暂不考虑。IE0:INT0 中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在 CPU 响应中断后,由硬件将 IE0 清 0。IT1、IE1 的用途和 IT0、IE0 相同。(2) 内部中断请求源TF0:定时器 T0 的溢出中断标记,当 T0 计数产生溢出时,由硬件置位 TF0。当 CPU 响应中断后,再由软件将 TF0 清 0。TF1:与 TF0 类似。TI、RI:串行口发送、接收中断,在串口中再仔细讲解。2、中断允许寄存器 IE在 MCS51 中断系统中,中断的允许或禁止是由片内可进行位寻址的 8 位中断允许寄存
13、器 IE 来控制的。见下表EA ES ET1 EX1 ET0 EX0中断允许寄存器 IE 示意表其中 EA 是总开关,如果它等于 0,则所有中断都不允许。ES串行口中断允许 : ES1 ,串口允许中断;ES0,串口不允许中断。ET1定时器 1 中断允许 (以下的含义和 ES 的解释相同) EX1外中断 1 中断允许。ET0定时器 0 中断允许EX0外中断 0 中断允许。如果我们要设置允许外中断 1,定时器 1 中断允许,其它不允许,则 IE 可以是EA ES ET1 EX1 ET0 EX01 0 0 0 1 1 0 0用 c 语句 IE0x8c;即可完成上述对 IE 的编程。当然也可以分别对每
14、一位编程:EA1; ET11 ;EX11;3、五个中断源的自然优先级外中断 0定时器 0外中断 1定时器 1串口优先级:单片机采用了自然优先级和人工设置高、低优先级的策略,即可以由程序员设定那些中断是高优先级、哪些中断是低优先级,由于只有两级,必有一些中断处于同一级别,处于同一级别的,就由自然优先级确定。开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置。看下表。PS PT1 PX1 PT0 PX0中断优先级寄存器 IP 示意表中断优先级中由中断优先级寄存器 IP 来设置的,IP 中某位设为 1,相应的中断就是高优先级,否则就是低优先级。例:设有如下要求,将 T0、外中断 1 设为
15、高优先级,其它为低优先级,求 IP的值。IP 的首 3 位没用,可任意取值,设为 000,后面根据要求写就可以了PS PT1 PX1 PT0 PX00 0 0 0 0 1 1 0因此,最终,IP 的值就是十六进制数 0x06。.本串口通讯实验中,因为只用到了串口中断,所以没必要设优先级寄存器IP,本段内容可以只作一般了解。4、MCS51 的中断响应过程:1、中断响应的条件:讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51 工作时,在每个机器周期中都会去查询一
16、下各个中断标记,看他们是否是“1“ ,如果是 1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU 将封锁对中断的响应:A、CPU 正在处理一个同级或更高级别的中断请求。B、现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令
17、都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。C、正在执行的指令是返回批令(RETI)或访问 IP、IE 寄存器的指令,则CPU 至少再执行一条指令才应中断。这些都是与中断有关的,如果正访问IP、IE 则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才可以响应中断。后两条理解不太直观,没关系,最重要的是第一条。2、中断响应过程用 c 语言编程时,我们不用中断具体怎样响应,我们只要在程序中预先设置好了有关中断的寄存器,那么一但出现了中断请求, 单片机硬件会自动跳出主函数去执行中断函数。中断函数的格式为
18、:返回值 函数名 interrupt n n 对硬中断源的编号。比如,我们要设置一个串口的中断程序:void chuankou(void) interrupt 4。注意,当程序中有两个以上中断源时,要涉及到寄存器组切换的问题,此时中断函数要写成 void chuankou(void) interrupt 4 using 1。由于本串口通讯实验只用一个中断源,所以用不到寄存器组的切换,故不再讲述。你可以在做完实验以后查阅单片机 c 语言的书籍。同样,讲述完了中断,我们用中断来做个程序,程序的功能仍然是使小灯每隔 0.5s 闪烁一次,只不过这次用中断来做。我们用定时器 1 的中断来做,由于前面提到
19、的原因,定时间隔太小小灯闪烁不明显,要用到“软件计数器”,本例中同样要遇到这种情况。请看程序:实验三#include/头文件#define uint unsigned int uint i =0 ; sbit P10=P10;/ 定义 P10 为位变量 P10void timer1(void) interrupt 3/用定时器 1 的中断,此中断的编号是 3TF1=0;/清除定时器 1 的中断标志While(+i=1800)/当中断 1800(每隔 0.5s 左右)次时进入循环体P10=!P10;/P10 电平取反,控制小灯闪烁i=0;/软件计数标志清零void main (void)TMOD
20、=0x20;/设置定时器 1 的工作方式 2TH1=0x00;TL1=0x00;/预置计数初值IE=0x88;/打开定时器 1 的中断, 开总中断TR1=1;/定时器 1 开始工作While(1)/无限循环,实际工作中此处可加其他功能的代码 (注 1);这是用中断来实现的对小灯闪烁的控制,没有中断发生时,程序一直在主函数的空循环里空转圈,当定时器 1 溢出,TF1 置一时(由硬件完成) ,硬件自动向 cpu 提出中断的请求, cpu 自动的跳出主函数去执行中断函数中的代码,执行完中断以后又回到主函数。请注意,此处的中断函数和一般的子函数不同,一般的子函数须要主函数来调用,而中断函数是一但有中断
21、发生,硬件自动执行中断中的代码,这个过程是硬件自动实现的,无须人工调用。以上这个程序和前面的程序所不同的是,程序不只是可以控制小灯, 还可以在注 1 出的 while 空循环处加入具有其他功能的代码。 到现在,串口通讯的前期准备工作基本完成,你可以有很多地方不理解,没关系,只要你感觉对单片机的 c 编程有了一个基本的认识,基本上掌握了大致的思路,那么,请接着看下一部分:串口通讯概念和基本实验。如果你感觉还是对单片机很模糊,建议你直接去看平凡老师的教程和北航的“单片机的 c 语言程序设计 ”教程。 (教研室有这本书)串口通讯概念和基本实验1、串行接口的一般概念单片机与外界进行信息交换称之为通讯。
22、 89c51 单片机的通讯方式有两种:A、并行通讯:数据的各位同时发送或接收。本文档不涉及并行通讯,只将串行通讯。B、串行通讯:数据一位一位顺序发送或接收。串行通讯的方式:异步通讯:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位 0,然后是 8 个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略) ,最后是停止位 1。用这种格式表示字符,则字符可以一个接一个地传送。在异步通讯中,CPU 与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种 0 和 1 的串理解成同一种意义。原则上字符格式可以由通讯的双
23、方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用 ASCII 标准。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是 120 字符/s,而每个字符如上述规定包含 10 数位,则传送波特率为 1200 波特。同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。本文档不讨论同步通讯。289c51 单片机的串行接口结构89c51 单片机通过引脚 RX
24、D(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF 是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被 CPU 读出数据,一个只能被 CPU 写入数据。所以,语句 SBUF=SBUF;是有意义的。它并不是将本身的值赋给了本身,而是将一个寄存器的值赋给了另一个寄存器,并且单片机不会搞错哪个是发送的,哪个是接受的。3、串行口的控制与状态寄存器 串行口控制寄存器 SCON 它用于定义串行口的工作方式及实施接收和发送控制。其各位定义如下表:串口控制寄存器 SCON 示意表各位的说明如下SM0.SM1:
25、工作方式控制位(其中 fosc 为晶振频率)SM0 SM1 工作方式 说 明 波特率SM0 SM1 SM2 REN TB8 RB8 TI RI0 0 0 同步移位寄存器 Fosc/120 1 1 10 位异歩收发 由定时器控制1 0 2 11 位异步收发 Fosc/32 或 Fosc/641 1 3 11 位异步收发 由定时器控制注意,由于实验条件本文档只有方式 1 和方式 3 的例程。SM2:多机通讯控制位。本文档不使用,编程时置 0 即可。REN:接收允许控制位。由软件置位以允许接收,又由软件清 0 来禁止接收。TB8: 是要发送数据的第 9 位。在方式 2 或方式 3 中,要发送的第 9
26、 位数据,根据需要由软件置 1 或清 0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。RB8:接收到的数据的第 9 位。在方式 0 中不使用 RB8。在方式 1 中,若(SM2)=0,RB8 为接收到的停止位。在方式 2 或方式 3 中,RB8 为接收到的第 9 位数据。TI: 发送中断标志。在方式 0 中,第 8 位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI 置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI 必须用软件清 0。RI: 接收中断标志位。在
27、方式 0,当接收完第 8 位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于 SM2 的说明) 。RI 置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI 也必须用软件清 0。 电源控制寄存器 PCON:SMOD此寄存器只有第一位 SMOD 和本文档有关。SMOD:串行口波特率加倍位1方式 1,3 波特率定时器 1 溢出率/16;方式 2 波特率为Fosc/32。0方式 1,3 波特率定时器 1 溢出率/32;方式 2 波特率为Fosc/648051 单片机的全双工串行口可编程为 4 种工作方式,现分述如下:方式 0 为移位寄存器输入/输出
28、方式。本文档不用,故不叙述,有兴趣的话可以看教程。方式 1 为波特率可变的 10 位异步通讯接口方式。发送或接收一帧信息,包括 1 个起始位 0,8 个数据位和 1 个停止位 1。输出: 当 CPU 执行一条指令将数据写入发送缓冲 SBUF 时,就启动发送。串行数据从 TXD 引脚输出,发送完一帧数据后,就由硬件置位 TI。输入: 在(REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开始位 0,就开始接收一帧数据。只有当(RI)=0 且停止位为 1或者(SM2)=0 时,停止位才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI;否则信息丢
29、失。所以在方式 1 接收时,应先用软件清零 RI 和 SM2 标志。方式 2方式 2 为固定波特率的 11 位异步通讯接口方式。它比方式 1 增加了一位可程控为 1 或 0 的第 9 位数据。输出: 发送的串行数据由 TXD 端输出一帧信息为 11 位,附加的第 9 位来自 SCON 寄存器的 TB8 位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当 CPU 执行一条数据写入 SUBF 的指令时,就启动发送器发送。发送一帧信息后,置位中断标志 TI。 输入: 在( REN)=1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开
30、始位 0,就开始接收一帧数据。在接收到附加的第 9 位数据后,当(RI ) =0 或者(SM2 )=0 时,第 9 位数据才进入 RB8,8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI;否则信息丢失。且不置位 RI。再过一位时间后,不管上述条件时否满足,接收电路即行复位,并重新检测 RXD上从 1 到 0 的跳变。工作方式 3方式 3 为波特率可变的 11 位异步通讯接口方式。除波特率外,其余与方式2 相同。4、波特率的选择如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在 89C51 串行口的四种工作方式中,方式 0 和 2 的波特率是固定的,而方式 1 和
31、3 的波特率是可变的,由定时器 T1 的溢出率控制。以下讨论中,FOSC 是晶振的频率。A、方式 0方式 0 的波特率固定为晶振频率的 1/12。B、方式 2方式 2 的波特率由 PCON 中的选择位 SMOD 来决定,可由下式表示:波特率=2 的 SMOD 次方除以 64 再乘一个 fosc,也就是当 SMOD=1 时,波特率为 1/32fosc,当 SMOD=0 时,波特率为 1/64foscC、方式 1 和方式 3定时器 T1 作为波特率发生器,其公式如下:波特率=定时器 T1 溢出率乘 2 的 SMOD 次方除以 32波特率(2SMOD)*(定时器 1 的溢出率)/32 T1 溢出率=
32、 T1 计数率/产生溢出所需的周期数式中 T1 计数率的含义是:一秒钟计数的次数。它取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1 计数率为 fosc/12(即一个机器周期);当工作于计数器状态时,T1 计数率为外部输入频率,此频率应小于 fosc/24。产生溢出所需周期与定时器 T1 的工作方式、T1 的预置值有关。定时器 T1 工作于方式 0:溢出所需周期数=8192-x (X 为预置数)定时器 T1 工作于方式 1:溢出所需周期数=65536-x定时器 T1 工作于方式 2:溢出所需周期数=256-x因为方式 2 为自动重装入初值的 8 位定时器/计数器模式,所以用它
33、来做波特率发生器最恰当。当时钟频率选用 11.0592MHZ 时,容易获得标准的波特率,所以很多单片机系统选用这个频率的晶振。好了,先面我们给出串口初始化的过程,前面讲的几个寄存器会在下面用到。串口初始化的歩骤:a) 确定定时器 1 的工作方式 编程 TMOD 寄存器;b)计算定时器 1 的初值 装载 TH1,TL1;c) 启动定时器 1编程 TCON 中的 TR1 位;d)确定串行口的工作方式编程 SCON;e) 串行口在中断方式工作时,须开 CPU 和源中断 编程 IE 寄存器。为了说明以上的基本过程,请看串口通讯的第一个实验。本实验的目的很简单,就是从 pc 机向单片机发送数据,然后单片
34、机紧接着把 pc 发送的数据送回 pc 在显示器上显示出来。我们目前所要做的工作只是给单片机编程,让单片机能够接收到 pc 发送的数据,并且接收到 pc 发送的数据以后在送给pc,至于 pc 怎样发送,接受,由串口调试助手来完成。串口调试助手要陪伴我们整个实验过程,让我们先认识一下吧.从上图我们可以看见,左上角第一个设置是串口的选择, 计算机上有两个串口, 我也分不清那个是 COM1 那个是 COM2,你可以试一下。波特率的设置必须和你已经写到单片机里的程序设置的波特率一致!校验位也要和单片机程序一至,数据位是八位,停止位是一位。一切设置好后,在助手的下面的文本区填入要发送的数据,点击发送后如果上面的大文本框内能够正确的显示出来的话,实验就成功了。以后我们描述调试助手的设置用下面的格式:(波特率,校验位,数据位,停止位)比如上图的设置描述为(9600,n,8,1)其中,n 为无校验。