单片机的串行口通信ppt课件.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串行口 通信 ppt 课件
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,7,章,80C51,单片机的串行口通信,1,第,7,章 目录,7.1,串行通信基础知识,7.1.1,并行通信与串行通信,7.1.2,串行通信的通信方式,7.1.3,串行通信的数据传送方向,7.1.4,通信中的误码问题,7.2 80C51,系列单片机的串行接口,7.2.1,串行接口的结构,7.2.2,串行接口的控制寄存器,7.2.3,串口通信的波特率设计,7.3,串行口工作模式,7.3.1,模式,0,7.3.2,模式,1,7.3.3,模式,2,7.3.4,模式,3,2,第,7,章 目录,7.4,串行通信应用举例,7.4.1,串行口模式,0,的应用,7.4.2,串行口模式,1,的应用,7.4.3,串行口模式,2,的应用,7.4.4,串行口模式,3,的应用,7.5,串行通信实用技术,7.5.1,双机串行通信的硬件连接,7.5.2 80C51,单片机的多机通信,7.5.3,双机串行通信软件编程,7.5.4 PC,机与单片机的点对点串行通信接口设计,7.5.5 PC,机与多个单片机的串行通信接口设计,3,7.1,串行通信基础知识,7.1.1,并行通信与串行通信,1,、并行通信,并行通信是指将数据字节的各位用多条数据线同时进行传送。每一位数据都需要一条传输线,,8,位数据总线的通信系统,一次传送,8,位数据,(1,个字节,),,将需要,8,条数据线。,并行通信的特点,:,是传送速度快、,需要的数据传输线较多。因此当,距离较远、位数又多时导致了通,信线路复杂且成本高。一般适合,于短距离的数据传输。,(,a,)并行通信,4,7.1,串行通信基础知识,7.1.1,并行通信与串行通信,2,、串行通信,串行通信是指所传送的数据按顺序一位接一位地进行传送。因为一次只能传送一位,所以对于一个字节的数据,至少要分,8,位才能传送完毕。,串行通信的特点是需要的数据传输线较少,通信线路简单、成本低,适用于数据的远距离通信。,但传输速度慢。只要一对传输线:,即发送线和接收线就可以实现通信。,缺点是传送速度慢,假设并行传送,n,位数据所需的时间为,t,,那么串行,传送的时间至少为,nt,,而实际上总,是大于,nt,。,(,b,),串,行通信,5,7.1,串行通信基础知识,7.1.2,串行通信的通信方式,根据通信协议的不同,串行通信可分为同步通信和异步通信两种基本方式。,1,、同步通信,同步通信是一种连续串行传输数据的通信方式,传送的数据可以是多个字符组成的数据块,每次传送的一帧数据由同步字符、数据字符和校验字符三部分组成。传输一帧数据的开头采用同步字符使收发双方实现严格同步,期间不允许出现空隙,没有起始位和停止位,提高了传输速度。无数据传送时,发送同步字符。同步通信方式发送的数据量大、速度快,常用于传输速度要求高的场合,但较复杂。,6,7.1,串行通信基础知识,7.1.2,串行通信的通信方式,1,、同步通信,同步通信方式帧格式,如图,7-2,所示。,图,7-2,字符帧的同步串行通信格式,7,7.1,串行通信基础知识,7.1.2,串行通信的通信方式,2,、异步通信,异步通信不需要同步字符,也不需要发送设备保持数据块的连续性。发送的每一字符,都必须先按照通信双方约定好的格式进行格式化,在其前、后分别加上起始位和停止位,用以指示每一字符的开始和结束。一帧信息传送完毕后,可传送不定长度的空闲位,“,1,”,,作为帧与相邻帧之间的间隔,也可以没有空闲位间隔。,80C51,单片机一般采用异步通信方式,一个字符帧的异步串行通信格式如图,7-3,所示。,8,7.1,串行通信基础知识,7.1.2,串行通信的通信方式,2,、异步通信,图,7-3,字符帧的异步串行通信格式,9,7.1,串行通信基础知识,7.1.3,串行通信的数据传送方向,数据通信系统一般由数据发送方、数据接收方及数据通路组成的。串行通信的数据是在两个站之间传送的,按照数据的传送方向,串行通信有三种数据通路连接方式。,1,、单工方式,在单工方式下,通信线的一端,接发送器,另一端接接收器,,形成单向连接。若,A,为发送端,,B,为接收端,数据仅能从,A,端发,至,B,端,如广播、无线寻呼等,,如,7-4,中(,a,)图所示。,(,a,)单工方式,10,7.1,串行通信基础知识,7.1.3,串行通信的数据传送方向,2,、半双工方式,在半双工方式下,系统中的每个通信设备都由一个发送器和一个接收器组成,通过收、发开关接到通信线上。数据既可从,A,端发送到,B,端,也可以由,B,端发送到,A,端,不过在同一时间只能作一个方向的数据传送,如使用同一载波频率的对讲机,如,7-4,中(,b,)图所示。,3,、全双工方式,在全双工方式下,在同一时间两端既可同时发送,也可同时接收,如普通电话、手机等,,80C51,单片机使用全双工方式,如,7-4,(,c,)图所示。,(,b,)半双工方式,(,c,)全双工方式,11,7.1,串行通信基础知识,7.1.3,串行通信的数据传送方向,数据通信系统一般由数据发送方、数据接收方及数据通路组成的。串行通信的数据是在两个站之间传送的,按照数据的传送方向,串行通信有三种数据通路连接方式。,1,、单工方式,在单工方式下,通信线的一端,接发送器,另一端接接收器,,形成单向连接。若,A,为发送端,,B,为接收端,数据仅能从,A,端发,至,B,端,如广播、无线寻呼等,,如,7-4,中(,a,)图所示。,(,a,)单工方式,12,7.1,串行通信基础知识,7.1.4,通信中的误码问题,数据在串行传输过程中,由于干扰可能使传输的数据发生错误,这种情况称为出现了,“,误码,”,,错误的数据位数与所有传输数据总位数的比率叫做,“,误码率,”,,发现传输中的错误叫做,“,检错,”,,发现错误后消除错误叫做,“,纠错,”,。,为了使系统能够可靠、稳定地通信,在编程时应当设计通信协议,并应考虑数据的纠错,一般在通信时采取数据校验的办法,可有效保证数据传输的可靠性,目前较为流行的方法有奇偶校验、累加和校验、据环冗余码校验几种:,13,7.1,串行通信基础知识,7.1.4,通信中的误码问题,1,、奇偶校验,最简单的检错方法是,“,奇偶校验,”,,在传送字符的各位之外,再传送,1,位奇,/,偶校验位。,奇校验:数据中,1,的个数与校验位,1,的个数之和应为奇数,偶校验:数据中,1,的个数与校验位,1,的个数之和应为偶数,在接收字符时,对,1,的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。奇偶校验无法实现自动纠错,发现错误后只能要求重发,但由于其实现简单,仍得到了广泛使用。,14,7.1,串行通信基础知识,7.1.4,通信中的误码问题,2,、累加和校验,累加和校验是指发送方将发送的数据块求和,并将,“,校验和,”,附加到数据块末尾,接收方接收数据时也是先对数据块求和,将所得结果与发送方的,“,校验和,”,进行比较,相符则无差错,否则即出现了差错。校验和能够检测到比奇偶校验更多的错误,但当字节顺序颠倒时,校验和不能发现,因为其不能发现次序错误。,3,、据环冗余码校验,据环冗余码校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。,15,7.2 80C51,系列单片机的串行接口,80C51,系列单片机有一个全双工的串行口,这个口除可以实现串行异步通信,还可以作为同步移位寄存器使用。,7.2.1,串行接口的结构,80C51,系列单片机串行口主要由发送数据缓冲器、发送控制器、接收数据缓冲器、接收控制器、输出控制门、输入移位寄存器等组成。,由于串行口对外有两条独立的收、发信号线,RXD,(,P3.0,)、,TXD,(,P3.1,),因此可以同时发送、接收数据,实现全双工通信。,16,7.2 80C51,系列单片机的串行接口,7.2.1,串行接口的结构,串行口结构框图如图,7-5,所示:,图,7-5,串行口结构框图,17,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,对串行口的访问和设置是通过访问相关的特殊功能寄存器完成的,与串行口相关的特殊功能寄存器共有,3,个,如表,7-1,所示。,寄存器,地址,名称,7,6,5,4,3,2,1,0,SCON,98H,串行口控制,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,PCON,87H,电源控制,SMOD,-,-,-,GF1,GF0,PD,IDL,SBUF,99H,串行口缓存,-,-,-,-,-,-,-,-,表,7-1,串口控制寄存器,18,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,1,、串行数据缓冲器,SBUF,80C51,单片机串行数据缓冲器,SBUF,是两个,8,位的特殊功能寄存器,其在功能和物理空间上均独立,但两者共用,SBUF,这个符号,并且字节地址均为,99H,。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两者均只能进行字节寻址。,SBUF,具有接收缓冲功能,接收器是双缓冲结构,在第一个字节从寄存器读出之前,可以开始接收第二个字节,但是如果第二个字节接收完毕时,第一个字节仍未读出,其第一个字节将会丢失。发送器为单缓冲器,因为发送时,CPU,是主动的。,19,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,1,、串行数据缓冲器,SBUF,(1).,串行口的数据发送,单片机启动发送的方法是:在,TI=0,的条件下,,CPU,通过执行一条写,SBUF,指令。如:执行,MOV SBUF,,,A,指令向输出缓冲器,SBUF,。,写入数据,从而启动数据串行发送。在波特率发生器产生的发送时钟控制下,按照预先设置的帧格式由低位到高位逐位由,TXD,端输出发送数据,发送结束,TI,1,。,20,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,1,、串行数据缓冲器,SBUF,(2).,串行口的数据接收,单片机启动接收的首要条件是,REN=1,。串行口通过对,RXD,引脚信号的采样来确认串行数据,若检测到发送数据的起始位,(,一般为低电平,),,则其后对,RXD,引脚每间隔一定时间进行采样,采样到的数据在接收时钟控制下以移位方式存入输入移位寄存器,当数据接收完成或检测到停止位时,,CPU,将自动把接收到输入移位寄存器的内容送入接收缓冲器,SBUF,,并置接收完成标志位,RI=1,,编程人员可通过中断方式或查询方式得知这一消息,随后编写读取指令如:,MOV A,,,SBUF,指令将接收到的数据取出。,21,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,1,、串行数据缓冲器,SBUF,(2).,串行口的数据接收,例如:甲机发送数据给乙机。,图,7-6,串行通信甲机发送机接收,22,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,甲机作为发送机,执行,MOV SBUF,,,A,指令后,CPU,向,SBUF,写入数据,启动发送过程,,A,中的,8,位数据并行送入,SBUF,,在发送控制器的作用下,按照编程人员设定的发送速率,(,发送波特率,),,每传来一个时钟脉冲,数据移出一位,从,TXD,端由低位到高位一位一位地发送到通信线路上,移出的数据经过线路直达乙机。,乙机作为接收机,按照与发送速率相同的接收速率(接收波特率),将数据按照移位脉冲的频率由低位到高位一位一位地移入到,SBUF,。,很显然,只有双方的传送速度一致,才能完成数据的正确传送,不一致,势必会造成数据位的丢失。同样,如果数据传输率一致,帧格式不一致同样会导致数据传输混乱,。,23,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,2,、串行口控制寄存器,SCON,串行口控制寄存器,SCON,的作用是控制串行通信的工作方式、在数据发送和接收的过程中设置中断标志。,SCON,的字节地址为,98H,,可进行位寻址,位地址从高位到低位分别为,9FH,98H,,寄存器的位定义如下:,D7 D6 D5 D4 D3 D2 D1 D0,SM0,SM1,SM2,REN,TB8,RB8,TI,RI,24,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,SM0,SM1,工作方式,功能,波特率,0,0,方式,0,8,位同步移位寄存器方式,fosc/12,0,1,方式,1,10,位通用异步接收器,/,发送器,可变(由定时器控制),1,0,方式,2,11,位通用异步接收器,/,发送器,fosc/32,或,fosc/64,1,1,方式,3,11,位通用异步接收器,/,发送器,可变(由定时器控制),(,1,),SM0,、,SM1,:定义串口工作方式选择位,。,SM0,和,SM1,定义串行口,4,种工作方式,如表,7-2,所示。,表,7-2,串行口工作方式(,fosc,为系统晶振频率),25,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,(,2,),SM2,:多机通信控制位。,SM2,主要用于方式,2,和方式,3,。当接收机的,SM2=1,时,可以利用收到的,RB8,来控制是否激活,RI(RB8=0,时不激活,RI,,收到的信息丢弃;,RB8=1,时收到的数据进入,SBUF,,并激活,RI,,进而在中断服务程序中将数据从,SBUF,读走,),。当,SM2=0,时,不论收到的,RB8,是,0,还是,1,,均可以使收到的数据进入,SBUF,,并激活,RI(,即此时,RB8,不具有控制,RI,激活的功能,),。通过控制,SM2,,可以实现多机通信。在方式,0,时,,SM2,必须是,0,。在方式,1,时,若,SM2=1,,则只有接收到有效停止位时,,RI,才置,1,。,(,3,),REN,,允许接收控制位。,该位由软件置,1,或清,0,,,REN,1,时,允许串行口接收数据;,REN=0,时,禁止串行口接收数据。,26,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,(,4,),TB8,:方式,2,或,3,中发送数据的第,9,位。,该位按由软件置,1,或清,0,,在方式,2,或方式,3,时存放要发送数据的第,9,位。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧和数据帧的标志位。一般,TB8,0,时,表示发送的是数据信息;,TB8,1,时,表示发送的是地址信息。方式,0,和方式,1,该位未用。,(,5,),RB8,:方式,2,或,3,中接收数据的第,9,位。,在方式,2,或方式,3,下存放接收数据的第,9,位。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧和数据帧的标志位。一般约定数据信息为,0,,地址信息为,1,。在方式,1,中,若,SM2=0,,则,RB8,是接收到的停止位。在方式,0,中,,RB8,未用。,27,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,(,6,),TI,:发送中断标志位。,该位用来指示一帧数据是否发送完,在方式,0,中,发送完第,8,位数据,由硬件置,1,。其他方式中,在发送停止位时,由硬件置,1,。值得注意的是,在任何方式下,,TI,虽然都是由硬件自动置位,但都必须由软件来清零。,(,7,),RI,:接收中断标志位。,该位用来指示一帧数据是否接收完,在方式,0,中,接收完第,8,位数据,由硬件置,1,。其他方式中,在接收停止位时,由硬件置,1,。,RI,必须由软件清零。,注意:发送中断标志,TI,和接收中断标志,RI,共用一个中断入口地址(中断向量)。,28,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,3,、电源管理寄存器,PCON,电源管理寄存器在特殊功能寄存器中,字节地址为,87H,,不能位寻址,其各位的定义如下:,D7 D6 D5 D4 D3 D2 D1 D0,(,1,),SMOD:,该位与串口通信波特率有关。,SMOD=0,:串口方式,1,,,2,,,3,时,波特率正常。,SMOD=1,:串口方式,1,,,2,,,3,时,波特率加倍。,(,3,),(SMOD0),(LVDF),(POF):,这三位是,STC,单片机特有的功能,请查看相关手册,其他单片机保留未使用。,(,4,),GFl,,,GF0:,两个通用工作标志位,用户可以自由使用,SMOD,(,SMOD0,),(LVDF),(POF),GF1,GF0,PD,IDL,29,7.2 80C51,系列单片机的串行接口,7.2.2,串行接口的控制寄存器,3,、电源管理寄存器,PCON,(,5,),PD:,掉电模式设定位。,PD=0,:单片机处于正常工作状态。,PD=1,:单片机进入掉电,(Power Down),模式,可由外部中断低电平触发或由下降沿触发或者硬件复位模式换醒,进入掉电模式后,外部晶振停振,,CPU,、定时器、串行口全部停止工作,只有外部中断继续工作。,(,6,),IDL:,空闲模式设定位。,IDL=0,:单片机处于正常工作状态。,IDL=1,:单片机进入空闲,(Idle),模式,除,CPU,不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒。,30,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,1,、什么是波特率,波特率是指每秒传送二进制数据的位数,单位是,bps(,位,/,秒,),,即,1,波特,=1,位,/,秒。,单片机或计算机在串口通信时的速率用波特率表示。,如果单片机与计算机之间每秒钟传送,360,个字符,而每个字符格式包含,10,位,(1,个起始位、,1,个停止位、,8,个数据位,),,这时的波特率为,10,位,360,个,/,秒,=3600 bps,。,31,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,2,、,80C51,单片机串行口的波特率设计,串行通信的波特率随串行口工作方式的不同而不同,串行口的,4,种工作方式对应着,3,种波特率。,影响波特率的因素主要有以下几个:,系统的振荡频率,fosc,。,电源控制寄存器,PCON,中的波特率倍增位,SMOD,。,定时器,/,计数器,T1,的溢出率设置。,32,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,接下来讨论在各种工作方式下的波特率设置方法。,(1).,模式,0,的波特率,在模式,0,时,每个机器周期产生一个移位时钟,发送或接收一位数据。所以,波特率固定为振荡频率的,1,12,,且不受,SMOD,的影响。即:,模式,0,的波特率,=,33,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,2,模式,2,的波特率,模式,2,波特率的产生与模式,0,不同,模式,2,的波特率由系统的振荡频率,fosc,和,PCON,的最高位,SMOD,确定,当,SMOD=0,时,波特率为,fosc/64,;若,SMOD=l,,波特率为,fosc/32,,即:,模式,2,的波特率,=,34,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,3,模式,1,和模式,3,的波特率,模式,1,和模式,3,的移位时钟脉冲由定时器,T1,的溢出率决定,故波特率由定时器,T1,的溢出率与,SMOD,值共同决定,即:,模式,1,和模式,3,的波特率,=,T1,的溢出率,当,T1,做波特率发生器使用时,最典型的用法是使,T1,工作在模式,2(,初值自动加载,),定时方式,若计数初值为,X,,则每过,“,256,X,”,个机器周期。定时器,T1,就会产生一次溢出。为了避免因溢出而引起中断,此时应禁止中断。,这时,溢出周期为,35,溢出率为溢出周期的倒数,所以:,波特率,=,此时,定时器,T1,工作在模式,2,时的初值为:,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,3,模式,1,和模式,3,的波特率,36,7.2 80C51,系列单片机的串行接口,7.2.3,串口通信的波特率设计,【,例,7-1】,设晶振频率,fosc=6MHz,,,SMOD=1,,设定时器,T1,工作在方式,2,,,fosc,为,6MHz,时,波特率为,2400 bit/s,,计算定时初值,X,,并初始化,T1,和串行口。,解,:,X=256-6106(1+1)/(24003212)=242.98243=0F3H,则定时器,T1,和串行口的初始化程序如下:,MOV TMOD,,,#20H,;设,T1,为方式,2,定时,MOV TH1,,,#0F3H,;置时间常数,MOV TL1,,,#0F3H,SETB TR1,;启动,T1,ORL PCON,,,#80H,;,SMOD=1,MOV SCON,,,#50H,;串行口方式,1,37,7.3,串行口工作模式,7.3.1,模式,0,模式,0,时,80C51,单片机串行口工作在同步移位寄存器状态,有输入输出方式,一般应用于扩展,I,O,口。,8,位串行数据的输入或输出都是通过,RXD,端,而,TXD,端用于送出同步移位脉冲,作为外接器件的同步移位信号。波特率固定为,fsoc,12,。,模式,0,以,8,位为一帧数据,没有起始位和停止位,传送数据时,低位在前、高位在后,其帧格式为:,D0,D1,D2,D3,D4,D5,D6,D7,38,7.3,串行口工作模式,7.3.1,模式,0,模式,0,的发送是在,TI=0,的情况下,由一条写发送缓冲器的指令开始。例如:,MOV SBUF,,,A,。,CPU,执行完该指令,串行口即将,8,位数据从,RXD,端送出,(,低位在前,),,同时在,TXD,端发出同步移位脉冲。,8,位数据发送完毕后,由硬件置位,TI=1,,可通过查询,TI,位来确定是否发送完一帧数据,,TI=1,表示发送缓冲器已空;,TI=1,也可作为中断请求信号,申请串行口发送中断。当要发送下一组数据时,需用软件使,TI,清零,然后才可发送下一组数据。,(,a,),串行口方式,0,发送时序,39,7.3,串行口工作模式,7.3.1,模式,0,(,b,)串行口方式,0,接收时序,模式,0,的接收是在,RI=0,的条件下,执行指令使得,REN=1,,启动串行口接收。接收数据由,RXD,端输入,(,低位在前,),,,TXD,端仍发出同步移位脉冲。接收到,8,位数据以后,由硬件使,RI=1,。可通过查询,RI,位来确定是否接收到一组数据,,RI=1,表示接收数据已装入接收缓冲器,可以用指令读取其内容,常用的指令如:,MOV A,,,SBUF,;,RI=1,也可作为中断请求信号,申请串行口接收中断。无论是中断方式还是查询方式,当,CPU,读取数据后,需用软件使,RI,清零,以准备接收下一组数据。,在模式,0,中,,SCON,寄存器中的,SM2,、,RB8,、,TB8,都不起作用,一般设它们为零即可。,40,7.3,串行口工作模式,7.3.1,模式,0,串行口定义为模式,1,时,是串行异步通信方式。模式,1,一帧数据由,10,位组成,包括,1,位起始位、,8,位数据位、,1,位停止位,其帧格式为:,起始,DO,D1,D2,D3,D4,D5,D6,D7,停止,41,7.3,串行口工作模式,7.3.1,模式,0,模式,1,的发送也是在,TI=0,时由一条写发送缓冲器,SBUF,的指令开始。启动发送后,串行口自动插入一位起始位,(,逻辑,0),,接着是,8,位数据,(,低位在前,),,然后插入一位停止位,(,逻辑,1),,在发送移位脉冲作用下,依次由,TXD,端发出。一帧信息发完后,自动维持,TXD,端信号为,1,。在,8,位数据发完之后,也就是在插入停止位时,使,TI,置,1,,用以通知,CPU,可以发送下一帧数据。,(,a,)串行口方式,1,发送时序,42,7.3,串行口工作模式,7.3.3 模式2,模式2也是串行异步通信方式。一帧数据由11位组成,包括1位起始位、8位数据位、1位可编程位、1位停止位,其帧格式为:,模式2的波特率是固定的,且有两种:,一种是:,另一种是:,起始,DO,D1,D2,D3,D4,D5,D6,D7,0/1,停止,43,7.3,串行口工作模式,7.3.3 模式2,模式2的发送包括9位有效数据,在启动发送之前,要把发送的第9位数值装入SCON寄存器中的TB8位,准备好TB8的值以后,在TI=0的条件下,就可以执行一条写发送缓冲器SBUF的指令来启动发送。串行口能自动把TB8取出,并装入到第9位数据的位置,逐一发送出去。发送完毕,使TI置1。,(,a,)串行接口方式,2,发送时序,44,7.3,串行口工作模式,7.3.3 模式2,(,b,)串行接口方式,2,接收时序,模式,2,的接收与模式,1,基本相似。不同之处是要接收,9,位有效数据。在模式,1,时是把停止位当作第,9,位数据来处理,而在模式,2(,或模式,3),中存在着真正的第,9,位数据。因此,接收数据真正有效的条件为:,(1)RI=0,;,(2)SM2=0,或收到的第,9,位数据为,1,。,若上述两个条件成立,接收的前,8,位数据进入,SBUF,以准备让,CPU,读取,接收的第,9,位数据进入,RB8,,同时置位,RI,。若以上条件不成立,则这次接收无效,放弃接收数据,即,8,位数据不装入,SBUF,,也不置位,RI,。,45,7.3,串行口工作模式,7.3.4 模式3,模式3同样是串行异步通信方式,其一帧数据格式,接收、发送过程与模式2完全相同,所不同的仅在于波特率。模式2的波特率只有固定的两种,而模式3的波特率由定时器 T1的溢出率及SMOD决定,这一点与模式1相同。,46,7.4串行通信应用举例,7.4.1串行口模式0的应用,1,、扩展并行输出口,80C51单片机的串行口在方式0时外接一个串入并出的移位寄存器如CD4094(或是74LS164等),可以扩展一个8位并行输出口。如图7-10所示,移位寄存器CD4094的STB端为并行输出允许控制端,STB=0时,移位寄存器串行接收,STB=1时打开并行输出控制门,实现并行输出点亮发光二极管。,图,7-10,串转并原理图,47,7.4串行通信应用举例,7.4.1串行口模式0的应用,1,、扩展并行输出口,【例7-2】,用某51单片机串行口外接CD4094扩展8位并行输出口,8位并行口的各位都接一个发光二极管,假设发光二极管为共阴极型,电路连接如图7-10所示,要求编程实现:发光二极管呈流水灯状态(从左向右以一定延迟依次点亮,并反复循环)。,解:本例数据的串行发送采用查询方式,显示的延迟由延时程序DELAY实现。程序如下:,ORG 2000H,START:MOV SCON,#00H ;置串行口工作方式0,且 TI=0,CLR ES ;禁止串行中断,MOV A,#80H;拟先点亮最左边一位,OUT0:CLR P1.0;关闭并行输出,MOV SBUF,A;启动串行输出,48,7.4串行通信应用举例,7.4.1串行口模式0的应用,OUT1:JNB TI,OUT1;输出完否,CLR TI;完了,清TI标志,以备下次发送,SETB P1.0;打开并行口输出,ACALL DELAY ;延时一段时间,RR A ;循环右移,CLR P1.0;关闭并行输出,JMP OUT0;循环,RET,DELAY:ORG 2400H ;延时50ms,DEL:MOV R7,#125 ;执行时需1个机器周期,DEL1:MOV R6,#200 ;,DEL2:DJNZ R6,DEL2 ;2002=400s(内循环时间),DJNZ R7,DEL1 ;0.4ms125=50ms(外循环时间),RET,49,7.4串行通信应用举例,7.4.1串行口模式0的应用,2,、扩展并行输入口,80C51单片机的串行口在方式0时外接一个并入串出的移位寄存器如CD4014(或是74LS165等),如图7-11所示,可以扩展一个8位并行输入口。并入串出移位寄存器必须带有一个预置/移位的控制端,CD4014的预置/移位控制端是P/S,当P/S=1时,8位数据并行置入移位寄存器;P/S=0时,移位寄存器中的8位数据串行移位输出。,图,7-11,扩展并行输入口,50,7.4串行通信应用举例,7.4.1串行口模式0的应用,2,、扩展并行输入口,【例7-3】,某51单片机串行口外接CD4014扩展8位并行输入口,输入数据由8个开关提供,另有一个开关S提供联络信号,电路连接如图7-12所示。当S=0时,要求编程实现连续从RXD输入到单片机8位开关量。,图,7-12,扩展并行输入口接口电路,51,7.4串行通信应用举例,7.4.1串行口模式0的应用,2,、扩展并行输入口,解:本例用串行口模式0接收数据,初始化时应使REN为1启动接收,采用查询方式输入数据,程序如下:,ORG 0300H,BJS0:JB P1.0,LP2;开关K未闭合,转返回,CLR ES ;采用查询方式,因此禁止串行中断,MOV SCON,#10H;设模式0,RI清0,REN=1启动接收,LP:SETB P1.1 ;P/S=1,并行置入开关数据,CLR P1.1 ;P/S=0,开始串行输出,LP1:JNB RI,LP1 ;查询RI,RI=0未接收完等待,CLR RI ;接收完,清RI,准备接收下一个,MOV A,SBUF ;读取数据送入累加器,MOV 40H,A ;送内部RAM区,LP2:RET ;接收完,子程序返回,52,7.4串行通信应用举例,7.4.1串行口模式0的应用,2,、扩展并行输入口,解:本例用串行口模式0接收数据,初始化时应使REN为1启动接收,采用查询方式输入数据,程序如下:,ORG 0300H,BJS0:JB P1.0,LP2;开关K未闭合,转返回,CLR ES ;采用查询方式,因此禁止串行中断,MOV SCON,#10H;设模式0,RI清0,REN=1启动接收,LP:SETB P1.1 ;P/S=1,并行置入开关数据,CLR P1.1 ;P/S=0,开始串行输出,LP1:JNB RI,LP1 ;查询RI,RI=0未接收完等待,CLR RI ;接收完,清RI,准备接收下一个,MOV A,SBUF ;读取数据送入累加器,MOV 40H,A ;送内部RAM区,LP2:RET ;接收完,子程序返回,53,7.4串行通信应用举例,7.4.2串行口模式1的应用,【例7-4】,设计一个发送程序,发送片内RAM40H4FH中的数据。串行口设定为工作方式1,波特率为1200b/s,fosc=11.0592MHz。(设T1工作在方式2,SMOD=0。),解:工作方式1的波特率取决于定时器T1的溢出率,波特率为1200,则T1的计数初值X=256-(20/32)11059200/(121200)=232=0E8H,程序如下:,MOV TMOD,#20H ;定时器T1为工作方式2,MOV TH1,#0E8H ;初始化计数器,MOV TL1,#0E8H,CLR ET1 ;禁止T1中断,SETB TR1 ;启动T1,MOV SCON,#40H ;设定串口工作在模式1,禁止接收数据,54,7.4串行通信应用举例,7.4.2串行口模式1的应用,MOV PCON,#00H ;SMOD=0,CLR ES ;禁止串行中断,MOV R0,#40H ;置发送数据首地址,MOV R7,#16 ;置发送数据长度,LOOP:MOV A,R0 ;读取第一个数据A,MOV SBUF,A ;数据SBUF,启动发送,JNB TI,$;等待一帧数据发送完毕,CLR TI ;TI清0,INC R0 ;指向下一字节单元,DJNZ R7,LOOP,SJMP$,END,55,7.4串行通信应用举例,7.4.3串行口模式2的应用,【例7-5】,设计一个发送程序,发送片内RAM 50H5FH中的数据。串行口设定为方式2,TB8用作奇偶校验位。,解:在数据写入发送缓冲器之前,先将数据的奇偶性P写入TB8,这时TB8做奇偶校验用,程序如下:,MOV SCON,#80H ;设定为工作方式2,MOV PCON,#80H ;SMOD=1,波特率为fosc/32,MOV R0,#50H ;置发送数据首地址,MOV R7,#16 ;置发送数据长度,LOOP:MOV A,R0 ;取第一个数据A,MOV C,P ;P随A变,PCTB8,MOV TB8,C,MOV SBUF,A ;数据SBUF,启动发送,JNB TI,$;等待一帧数据发送完毕,CLR TI ;TI清0,INC R0 ;指向下一字节单元,DJNZ R7,LOOP,SJMP$,END,56,7.4串行通信应用举例,7.4.4串行口模式3的应用,【例7-6】,设计一个接收程序,将接收的16个字节数据送入片内RAM 50H5FH单元中。串行口设定为工作方式3,波特率为1200b/s,fosc=6MHz。,解:工作方式3的波特率是由T1产生的,波特率为1200,T1的计数初值为0F3H(SMOD=0),程序如下:,MOV TMOD,#20H ;定时器T1为工作方式2,MOV TH1,#0F3H ;初始化计数器,MOV TL1,#0F3H,SETB TR1 ;启动T1,MOV SCON,#0D0H ;设定为工作方式3,可以接收数据,MOV R0,#50H ;置接收数据首地址,MOV R7,#16 ;置接收数据长度,57,7.4串行通信应用举例,7.4.4串行口模式3的应用,COUNT:JBC RI,PRI ;等待接收,RI=1则结束等待并将RI清0,SJMP COUNT,PRI:MOV A,SBUF ;从串行口中读取数据,JNB P,PNP ;P=0,转PNP,JNB RB8,PER ;P=1,RB8=0,出错转PER,RIGHT:MOV R0,A ;P=1,RB8=1,存接收数据,INC R0,DJNZ R7,COUNT,CLR PSW.1 ;正确接收完16个字节数据,标志位F1清0,SJMP$,PER:SETB PSW.1 ;奇偶错置位F1,SJMP$,PNP:JB RB8,PER ;P=0,RB8=1,奇偶错转PER,SJMP RIGHT ;P=0,RB8=0,转RIGHT,END,58,7.5串行通信实用技术,7.5.1双机串行通信的硬件连接,1,、TTL电平通信接口,如果两个80C51单片机相距在1.5m之内,它们的串行口可直接相连,接口电路如图7-13所示。甲机的RXD与乙机的TXD端相连,乙机的RXD与甲机的TXD端相连,从而直接用TTL电平传输方法来实现双机通信。,图,7-13 TTL,电平传输的连接方式,59,7.5串行通信实用技术,7.5.1双机串行通信的硬件连接,2,、RS-232C双机通信接口,如果双机通信距离在1.515 m之间时,可利用RS-232C标准接口实现点对点的双机通信,接口电路如图7-14所示。,图,7-14 RS-232C,双机通信接口电路,图,7-14,中的芯片,MAX232A,是美国,MAXIM(,美信,),公司生产的,RS-232C,双工发送器,/,接收器电路芯片。,60,7.5串行通信实用技术,7.5.1双机串行通信的硬件连接,3,、RS-422A双机通信接口,RS-422A与RS-232C的主要区别是:收发双方的信号地不再共地,RS-422A采用了平衡驱动和差分接收的方法。,RS-422A能在长距离、高速率下传输数据。它的最大传输率为10 Mbit/s,在此速率下,电缆允许长度为12m,如果采用较低传输速率时,最大传输距离可达1219m。,61,7.5串行通信实用技术,7.5.1双机串行通信的硬件连接,为了增加通信距离,可以在通信线路上采用光电隔离方法,利用RS-422A标准进行双机通信的接口电路如图7-15所示。,图,7-15 RS-422A,双机通信接口展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




单片机的串行口通信ppt课件.ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12676406.html