预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共35页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

6.1串行通信基础知识6.2AT89C51单片机的串行接口6.3AT89C51单片机串行通信举例6.4串行通信总线标准及RS-232C接口实训七:单片机间的双机通信小结习题与思考题6.1串行通信基础知识6.1.2串行通信的制式根据同一时刻数据流的方向分为三种基本的数据传送方式:单工半双工、全双工。单工方式:指甲乙双方通信时只能单向传送数据,发送方和接收方固定。半双工方式:指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送。全双工方式:指通信双方都具有发送器和接收器,既可发送也可接收,而且能同时发送和接收。6.1.3串行通信的分类串行通信的数据是逐位传送的,发送方发送的每一位都具有固定的时间间隔,接收方也要按照发送方同样的时间间隔来接收每一位。按数据格式的不同,串行通信可分为同步串行通信和异步串行通信两种类型。(1)同步串行通信同步串行通信的信息帧均由同步字符、数据字符和校验字符(CRC)组成。其中,同步字符位于帧开头,有1个或2个,用于确认数据字符的开始。数据字符在同步字符之后,没有个数的限制,由所需传输的数据块长度来决定。校验字符有1到2个,用于接收端对接收到的字符序列进行正确性校验。优点:传输速度较快。缺点:要求发送时钟和接收时钟保持严格的同步,对硬件要求较高。适用于成批数据传送。(2)异步串行通信异步串行通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。有两个比较重要的指标:字符帧格式和波特率。①字符帧的帧格式字符帧由四部分组成:起始位、数据位、奇偶校验位和停止位。起始位:位于字符帧的开头,只占一位,始终为逻辑低电平。数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。奇偶校验位:占一位,用于对字符传送作正确性检查,有三种可能,即奇校验、偶校验和无校验,由用户根据需要选定。停止位:位于字符帧的末尾,为逻辑“1”高电平,可取1、1.5、2位。②波特率每秒钟传送二进制代码的位数称之为波特率。每秒传送一个格式位就是1波特,即:1波特=1b/s(位/秒)。时钟频率高,则波特率也高,通信速度就快;反之,时钟频率低,则波特率也低,通信速度就慢。6.2AT89C51单片机的串行接口(1)串行数据缓冲器(SBUF)SBUF是串行数据缓冲寄存器,包括发送寄存器和接收寄存器,以便能以全双工方式进行通信。串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的。当向SBUF发“写”命令时(执行“MOVSBUF,A”指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。在满足串行口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN(SCON.4)=1就会接收一帧数据进入输入移位寄存器,并装载到接收SBUF中,同时使RI=1。当发“读”SBUF命令时(执行“MOVA,SBUF”命令),便由接收缓冲器(SBUF)取出信息通过89C51内部总线送CPU。(2)串行控制寄存器(SCON)串行控制寄存器是用来定义串行口的工作方式及实施接收和发送控制的。它的字节地址为98H,位地址为98H~9FH。其各位定义如表6-2所示。④TB8:要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。⑤RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。⑥TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式中,发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是串行发送中断申请信号。TI必须用软件清0。⑦RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI也必须用软件清0。(3)电源控制寄存器(PCON)电源控制寄存器有一位对波特率会产生影响,即波特率倍增控制。电源控制寄存器PCON,其地址为87H,只能进行字节寻址,不能按位寻址。PCON的最高位D7位SMOD,是串行口波特率的增倍控制位。当SMOD=1时,波特率加倍。系统复位时,SMOD位为0。6.2.2串行接口的工作方式MCS-51系列单片机的全双工串行口可编程为4种工作方式,由串行控制器(SCON)中的SM0、SM1决定。(1)方式0在方式0下,串行口作为同步移位寄存器使用。8位串行数据都是从RXD输入或输出,TXD用来输出同步脉冲。输出串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧