1、第七章 MCS-51单片机的串行接口 MCS-51系列单片机的串行通信接口可以方便地实现与其他单片机之系列单片机的串行通信接口可以方便地实现与其他单片机之间、与间、与PC机之间的串行通信,也可用通信接口实现键盘输入、机之间的串行通信,也可用通信接口实现键盘输入、LED显示显示及其他的控制。及其他的控制。主要内容:主要内容:1.串行通信概述串行通信概述 2.MCS-51单片机串行通信接口的结构单片机串行通信接口的结构 3.MCS-51单片机串行通信的工作原理及其工作方式单片机串行通信的工作原理及其工作方式 4.MCS-51单片机串行接口应用编程单片机串行接口应用编程重点:重点:MCS-51单片机
2、串行接口的工作原理及工作方式单片机串行接口的工作原理及工作方式 MCS-51单片机串行接口应用程序设计方法单片机串行接口应用程序设计方法第七章 MCS-51单片机的串行接口课本课本137页页第七章 MCS-51单片机的串行接口 第一节第一节 串行通信概述串行通信概述 1.并行通信并行通信传送的数据的各位同时发送,并排传输,同时被接收。传送的数据的各位同时发送,并排传输,同时被接收。优点是传送速度快,缺点是传输线多。优点是传送速度快,缺点是传输线多。通信线路费用较高,并行传送适用于近距离、传送速度高的场合。通信线路费用较高,并行传送适用于近距离、传送速度高的场合。并行传送方式的物理信道为并行内总
3、线或外总线并行传送方式的物理信道为并行内总线或外总线 计算机1 GND 计算机2 GND并行通信2串行通信串行通信传送数据的各位按分时顺序一位一位地传送(即一位传送数据的各位按分时顺序一位一位地传送(即一位一位的发送和接收)。优点是传输线少,传送通道费用低,故适合长距一位的发送和接收)。优点是传输线少,传送通道费用低,故适合长距离数据传送。缺点是传送速度较低。离数据传送。缺点是传送速度较低。串行传送方式的物理信道为串行总线串行传送方式的物理信道为串行总线 计算机1 GND 计算机2 GND发送接收串行通信一一.传送方式传送方式:串行通信与并行通信:串行通信与并行通信八个人站成一排一起通过八个人
4、站成一排一起通过八个人站成一纵队一一通过八个人站成一纵队一一通过第七章 MCS-51单片机的串行接口 1.单工方式单工方式通信双方只有一条单向传输线,只允许数据由一方发送,通信双方只有一条单向传输线,只允许数据由一方发送,另一方接收。另一方接收。2.半双工方式半双工方式通信双方只有一条双向传输线,允许数据双向传送,但通信双方只有一条双向传输线,允许数据双向传送,但每时刻上只能有一方发送,另一方接收,这是一种能够切换传送方向的单每时刻上只能有一方发送,另一方接收,这是一种能够切换传送方向的单工方式工方式3.全双工方式全双工方式通信双方有两条传输线,允许数据同时双向传送,其通通信双方有两条传输线,
5、允许数据同时双向传送,其通信设备应具有完全独立的收发功能。信设备应具有完全独立的收发功能。ABAB发送器接收器接收器接收器发送器发送器数据数据数据AB(a)单工方式(b)半双工方式(c)全双工方式二、串行通信的数据传送方向(串行通信制式)二、串行通信的数据传送方向(串行通信制式)第七章 MCS-51单片机的串行接口 串行方式是将传输数据的每个字符一位一位顺序地传送,串行方式是将传输数据的每个字符一位一位顺序地传送,按位组成字符。按位组成字符。为了发送、接收信息,双方必须协调工作。要保证发送的信号正确被接收为了发送、接收信息,双方必须协调工作。要保证发送的信号正确被接收必须采用同步技术。常用的同
6、步技术从原理上可分成两种:同步串行传输必须采用同步技术。常用的同步技术从原理上可分成两种:同步串行传输(也称同步字符同步方式)和异步串行传输(也称起止同步方式)。(也称同步字符同步方式)和异步串行传输(也称起止同步方式)。1异步通信方式异步通信方式异步传输以字符为单位进行数据传输,每个字符用起始位、停止位包起来。异步传输以字符为单位进行数据传输,每个字符用起始位、停止位包起来。异步方式实现简单,在微型计算机中大量使用异步串行异步方式实现简单,在微型计算机中大量使用异步串行I/O方式,为了避方式,为了避免连续传送过程中的误差积累,每个字符都要独立确定起始和结束免连续传送过程中的误差积累,每个字符
7、都要独立确定起始和结束(即每即每个字符都要重新同步个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间。,字符和字符间还可能有长度不定的空闲时间。有约定的帧格式;有约定的帧格式;发送与接收之间的同发送与接收之间的同步是利用每一帧的起、步是利用每一帧的起、止信号来建立的;止信号来建立的;双方用各自的时钟控双方用各自的时钟控制发送与接收制发送与接收三、三、同步通信和异步通信)同步通信和异步通信)第七章 MCS-51单片机的串行接口2.同步通信方式同步通信方式 同步传输是对数据块进行传输,数据块中包含许多连续的字符,字同步传输是对数据块进行传输,数据块中包含许多连续的字符,字符间没有空闲。符
8、间没有空闲。在同步通信中,在数据或字符开始传送前用同步字符在同步通信中,在数据或字符开始传送前用同步字符(SYNC)来指示来指示(常约定常约定l一一2个个),由时钟来实现发送端和接收端同步,当检测到规定的同,由时钟来实现发送端和接收端同步,当检测到规定的同步字符后,接下来就连续按顺序传送数据。同步字符是一特定的二进制步字符后,接下来就连续按顺序传送数据。同步字符是一特定的二进制序列,在传送的数据中不会出现序列,在传送的数据中不会出现 同步通信方式由于不采用起始和停止位,是在同步字符后可以接较同步通信方式由于不采用起始和停止位,是在同步字符后可以接较大的数据区,同步字符所占部分很小,因此有较高的
9、传送效率。大的数据区,同步字符所占部分很小,因此有较高的传送效率。T T同步数据数据CRC1CRC2.(a)单同步格式.同步数据数据同步CRC2CRC1.(b)双同步格式.第七章 MCS-51单片机的串行接口 四、波特率四、波特率 波特率是通信双方对数据传送速率的约定,表示每秒钟传送二进制波特率是通信双方对数据传送速率的约定,表示每秒钟传送二进制数码的位数,单位是数码的位数,单位是bit/s。假如数据传送的速率是假如数据传送的速率是120个字符秒,每一个字符规定包含个字符秒,每一个字符规定包含10个位个位(一个起始位、一个起始位、8个数据位和个数据位和1个停止位个停止位),则传送的波特率为:,
10、则传送的波特率为:101201200位秒位秒1200波特波特(bps)每一位的传送时间即为波特率的倒数。每一位的传送时间即为波特率的倒数。mSTd833.012001常用的波特率有常用的波特率有:(离散离散)19200/9600/4800/2400/1200/600/300/150/100/50,还有还有10M/100M课本课本147页页第七章 MCS-51单片机的串行接口第二节第二节 MCS-51的串行通信接口的串行通信接口 一、一、MCS-51串行口结构及工作原理串行口结构及工作原理数据串行通信主要解决两方面的技术问题:数据传输;数据转换数据串行通信主要解决两方面的技术问题:数据传输;数据
11、转换数据传输数据传输-解决传送中的标准、帧格式、工作方式等问题。解决传送中的标准、帧格式、工作方式等问题。数据转换数据转换-解决传送数据串、并行的转换问题。解决传送数据串、并行的转换问题。由通用异步接收发送由通用异步接收发送器(器(UARTUART)完成。)完成。MCS-511.基本组成基本组成 两个独立的数据缓冲器两个独立的数据缓冲器SBUF(一个用作接收,一个用作发一个用作接收,一个用作发送送)以及发送控制器、接收控制器、输入移位寄存器和输出控制门等组成。以及发送控制器、接收控制器、输入移位寄存器和输出控制门等组成。2.用户可访问的三个地址单元用户可访问的三个地址单元SBUF:两个两个SB
12、UF共用一个地址共用一个地址99H。发送发送SBUF只写不读,接收只写不读,接收SBUF只读不写只读不写,由所用指令是发送还是接收来决定对哪个,由所用指令是发送还是接收来决定对哪个SBUF进行操作;进行操作;SCON:串行口控制寄存器串行口控制寄存器PCON:电源控制寄存器电源控制寄存器 MCS-51串行接口的结构串行接口的结构课本课本137页页如两个人同名如两个人同名第七章 MCS-51单片机的串行接口发 送SBUF(99H)门发 送 控 制 器接 收 控 制 器1输 入 移 位 寄 存 器串行控制寄存器(98H)定时器1接 收SBUF(99H)888TIRI内 部 总 线TXD(P3.1)
13、RXD(P3.0)串 行 口 中 断串行口的内部结构串行口的内部结构课本课本137页页考虑中断考虑中断IP IEIP IE第七章 MCS-51单片机的串行接口 (1)5l单片机通过串行数据接收引脚RxD(P3.0)和串行数据发送引脚TxD(P3.l)与外界进行通信.图中有两个物理上独立的接收/发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据.发送缓冲器SBUF只能写入/不能读出,CPU写SBUF,一方面修改发送寄存器,同时启动数据串行发送;接收缓冲器SBUF只能读出/不能写入,CPU读SBUF,就是读接收寄存器.(2)波特率发生器 可以有两种选择:1.定时器T1作波特率发生器,
14、改变计数初值就可以改变串行通信的速率,称为可变波特率.(variable)2.以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率.(fixed)第七章 MCS-51单片机的串行接口串行通信的串行通信的传送过程传送过程shiftMOV A,SBUF串行数据串行数据CPUCPU SBUF SBUFshiftMOV SBUF,A并行数据并行数据甲方甲方(发送发送)乙方乙方(接收接收)TIRI返返回回第七章 MCS-51单片机的串行接口 发送和接受过程的叙述发送和接受过程的叙述:甲方发送甲方发送时时,CPU执行指令执行指令MOV SBUF,A,就就启动了发送启动了发送过程过程,数据数
15、据并行并行送入送入SBUF,在在发送时钟发送时钟shift的控制下由的控制下由低位到高位一位一位发送低位到高位一位一位发送;乙方乙方在在接收时钟接收时钟shift的控制下的控制下,由由低位到高位顺序进入移位寄存器低位到高位顺序进入移位寄存器;甲方甲方一帧数据发送完毕一帧数据发送完毕,置位发送中断标志置位发送中断标志TI,该位可作为该位可作为查询标志查询标志(或引起中或引起中断断),CPU可再发送下一帧数据可再发送下一帧数据.乙方一帧乙方一帧数据到齐数据到齐,即接收缓冲器满即接收缓冲器满,置位接收中断标志置位接收中断标志RI,该位可作为该位可作为查询标查询标志志(或引起接收中断或引起接收中断),
16、通过通过MOV A,SBUF,CPU将这帧数据将这帧数据并行读入并行读入.由上述可知由上述可知:1.甲、乙方的甲、乙方的移位时钟频率应相同移位时钟频率应相同,即应具有即应具有相同的波特率相同的波特率,否则会造成数据否则会造成数据丢失丢失.2.发送方是发送方是CPU先发数据再查标志先发数据再查标志,接收方是接收方是先查标志先查标志CPU再收数据再收数据.3.接收接收/发送数据发送数据,无论是否采用中断方式工作无论是否采用中断方式工作,每接收每接收/发送一帧数据都发送一帧数据都必须必须用指令对用指令对RI/TI清清0,以备下一次收以备下一次收/发发(CLR TI,CLR RI)第七章 MCS-51
17、单片机的串行接口D3D2D1D0D4D5D6SCOND7SM0SM1SM2RENTB8RB8TIRI(1)SM0、SM1:串行口工作方式选择位,可选择四种工作方式:串行口工作方式选择位,可选择四种工作方式SM0 SM1工作方式工作方式功功 能能波波 特特 率率 0 0方式方式0同步移位寄存器同步移位寄存器 foc/12 0 1方式方式18位异步收发位异步收发 可可 变变 1 0方式方式29位异步收发位异步收发foc/32或或foc/64 1 1方式方式39位异步收发位异步收发可可 变变二、串行口控制寄存器二、串行口控制寄存器SCON SCON是一个可位寻址的专用寄存器,用来设定串行口的工作方式
18、、控是一个可位寻址的专用寄存器,用来设定串行口的工作方式、控制串行口的接收发送以及状态标志。制串行口的接收发送以及状态标志。SCON的字节地址为的字节地址为98H,位地位地址为址为98H9FH。其格式如下:其格式如下:课本课本138页页第七章 MCS-51单片机的串行接口(2)SM2:为多机通信控制位:为多机通信控制位 在工作方式在工作方式2和方式和方式3中:中:若若SM21:当接收到第:当接收到第9位数据(位数据(RB8)为)为1,才将接收到的前,才将接收到的前8位位 数据装入数据装入SBUF,并置位,并置位RI;否则将接收到的数据丢弃。否则将接收到的数据丢弃。若若SM20:不论第:不论第9
19、位数据(位数据(RB8)是否为)是否为1,都将接收到的前,都将接收到的前8位数位数 据装入据装入SBUF,并置位,并置位RI。在方式在方式1中:若中:若SM21,则只有接收到有效的停止位时,才置位,则只有接收到有效的停止位时,才置位RI。在方式在方式0中:必须使中:必须使SM20 多机通信时,多机通信时,SM2必须置必须置1。双机通信时,通常使。双机通信时,通常使SM20。(3)REN:允许串行接收位。该位由软件置位或清零。允许串行接收位。该位由软件置位或清零。(4)TB8:在工作方式在工作方式2或方式或方式3时,该位为发送的第时,该位为发送的第9位数据,可按需要位数据,可按需要由软件置位或清
20、零。在许多通信协议中,该位常作为奇偶校验位。在由软件置位或清零。在许多通信协议中,该位常作为奇偶校验位。在MCS-5l多机通信中,多机通信中,TB8的状态用来表示发送的是地址帧还是数据帧,的状态用来表示发送的是地址帧还是数据帧,TB80时,为地址帧,时,为地址帧,TB81时,为数据帧。时,为数据帧。第七章 MCS-51单片机的串行接口(5)RB8:在工作方式在工作方式2或方式或方式3时,存放接收到的第时,存放接收到的第9位数据,代表着位数据,代表着接收数据的某种特征。例如,可能是奇偶位,或为多机通信中的地址接收数据的某种特征。例如,可能是奇偶位,或为多机通信中的地址数据标识位。数据标识位。在方
21、式在方式0中,中,RB8未用。未用。在方式在方式1中,若中,若SM20,RB8是已接收到的停止位。是已接收到的停止位。(6)TI:发送中断标志位,发送中断标志位,TI1表示帧发送结束。其状态既可供软件表示帧发送结束。其状态既可供软件查询使用,也可申请中断。查询使用,也可申请中断。TI都必须由软件清都必须由软件清0。(7)RI:接收中断标志,接收中断标志,RI1时,表示帧接收结束。其状态既可供软件时,表示帧接收结束。其状态既可供软件查询使用,也可申请中断。查询使用,也可申请中断。RI也必须靠软件清也必须靠软件清0。注意:不管是否采用中断控制,数据发送前必须用软件将注意:不管是否采用中断控制,数据
22、发送前必须用软件将TI清零;接清零;接收数据后将收数据后将RI清零;清零;单片机复位时,单片机复位时,SCON中的所有位均为中的所有位均为0。第七章 MCS-51单片机的串行接口三、电源控制寄存器三、电源控制寄存器PCON 最高位最高位SMOD位和串行通信有关位和串行通信有关(了解了解)PCON主要字节地址为主要字节地址为87H,不能位寻址。只有最高位不能位寻址。只有最高位SMOD与串行口工与串行口工作有关。作有关。PCON的格式如下:的格式如下:PCOND7D6D5D4D3D2D1D0SMODGF1GF0PDIDL(1)只能只能字节字节寻址寻址,初始化时初始化时SMOD=0.复位时,复位时,
23、SMOD0。(2)SMOD:串行口波特率倍增位串行口波特率倍增位Double baud rate bit.在串行口工作方式在串行口工作方式1/2/3中中,波特率加倍位波特率加倍位 =1时时,波特率加倍波特率加倍 (MOV PCON,#80H 加倍加倍)=0时时,波特率不加倍波特率不加倍.(MOV PCON,#00H 默认是不加倍的默认是不加倍的)(串行通信只用其中的最高位串行通信只用其中的最高位SMOD)课本课本139页页第七章 MCS-51单片机的串行接口GF1,GF0:用户可自行定义使用的用户可自行定义使用的通用标志位通用标志位PD:掉电方式控制位掉电方式控制位.=0:常规工作方式常规工作
24、方式.=1:进入掉电方式进入掉电方式:振荡器停振振荡器停振片内片内RAM和和SRF的值保持不变的值保持不变 P0P3口维持原状口维持原状程序停止程序停止 只有复位能使之退出掉电方式只有复位能使之退出掉电方式.PCOND7D6D5D4D3D2D1D0SMODGF1GF0PDIDLIDL(Idle Mode bit)待机方式待机方式(空闲方式空闲方式)控制位控制位.=0:常规工作方式常规工作方式.=1:进入进入待机方式待机方式:振荡器继续振荡振荡器继续振荡中断、定时器、串口功能继续有效中断、定时器、串口功能继续有效片内片内RAM和和SRF保持不变保持不变CPU状态保持状态保持、P0P3口维持原状口
25、维持原状程序停顿程序停顿.中断和复位能退出待机中断和复位能退出待机,继续后面的程序继续后面的程序.第七章 MCS-51单片机的串行接口 MCS-51单片机的串行口可编程选择四种工作方式,其中方式单片机的串行口可编程选择四种工作方式,其中方式0主要用主要用于扩展并行输入输出口,串行通信时一般使用方式于扩展并行输入输出口,串行通信时一般使用方式1、2或或3。一、方式一、方式0(SM0=0,SM1=0)串行口作为串行口作为同步移位寄存器同步移位寄存器使用使用 数据传输数据传输波特率固定为波特率固定为foc/12。串行数据由串行数据由RXD(P30)端输入输出端输入输出(数据线数据线)同步移位脉冲由同
26、步移位脉冲由TXD(P31)端输出(时钟信号线)端输出(时钟信号线)数据的发送接收以数据的发送接收以8位为一帧,低位在前,无起始位、奇偶位及停止位。位为一帧,低位在前,无起始位、奇偶位及停止位。其帧格式为:其帧格式为:第三节第三节 MCS-51串行通信接口的工作方式串行通信接口的工作方式 RXD TXD A B 74LS164 CLK QA QB QC QD QE QF QG QH执行一条写执行一条写SBUF指令就开始指令就开始发送发送课本课本140页页第七章 MCS-51单片机的串行接口二、方式二、方式1(SM0=0,SM1=1)串行口工作在方式串行口工作在方式1时,是作为时,是作为10位异
27、步通信接口位异步通信接口.由由TXD端发送数据,端发送数据,RXD端接收数据。端接收数据。发送接收的一帧数据包括发送接收的一帧数据包括10位:位:1位起始位,用位起始位,用0来标识,来标识,8位数据位位数据位(低位低位在前在前),1位停止位,用位停止位,用1来标识。其帧格式为:来标识。其帧格式为:1.发送过程发送过程 当当CPU执行任何一条写入执行任何一条写入SBUF的指令后,便启动串行口发送,发送的数的指令后,便启动串行口发送,发送的数据由据由TXD端输出。串行接口能自动地在数据的前后插入一位起始位和一位端输出。串行接口能自动地在数据的前后插入一位起始位和一位停止位,在发送移位脉冲的作用下依
28、次从停止位,在发送移位脉冲的作用下依次从TXD端发送,发送完一帧信息时。端发送,发送完一帧信息时。发送中断标志发送中断标志TI置置1,请求中断。,请求中断。方式方式1下的传送波特率是可变的取决于定时器下的传送波特率是可变的取决于定时器T1的溢出速率,用软件设定。的溢出速率,用软件设定。2.接收过程接收过程 当允许串行输入位当允许串行输入位REN置置1后,后,CPU便以所选波特率的便以所选波特率的16倍速率采样倍速率采样RXD端电平。在没有信号到来之前,端电平。在没有信号到来之前,RXD端的状态为端的状态为1。当在。当在RXD端检测端检测到从到从1到到0的负跳变时,开始接收过程。的负跳变时,开始
29、接收过程。16分频计数器的分频计数器的16个状态把接收每个状态把接收每位信息的时间分成位信息的时间分成16份,在每个位时间的第份,在每个位时间的第7、8、9个计数状态个计数状态,从从RXD端端采样三次,至少两次相同的值才被确认,以确保输入的数据准确无误。采样三次,至少两次相同的值才被确认,以确保输入的数据准确无误。第七章 MCS-51单片机的串行接口当一帧数据接收完毕,以下两个条件同时满足:当一帧数据接收完毕,以下两个条件同时满足:(1)RI0,即上一帧数据接收完成时,即上一帧数据接收完成时,RI1的中断请求已被响应,的中断请求已被响应,SBUF中的数据已被取走;中的数据已被取走;(2)SM2
30、0或接收到停止位为或接收到停止位为1(方式方式1时停止位进入时停止位进入RB8)。)。则这次接收才有效,将则这次接收才有效,将8位数据装入接收缓冲器位数据装入接收缓冲器SBUF,停止位装入停止位装入RB8,并将,并将RI置置1,申请中断。否则数据将丢失。,申请中断。否则数据将丢失。三、方式三、方式2和方式和方式3 串行口工作在方式串行口工作在方式2和方式和方式3时,均为时,均为11位异步通信接口。位异步通信接口。由由TXD发送发送,RXD接收接收。发送接收的一帧信息由发送接收的一帧信息由11位组成;由位组成;由1位起始位位起始位(0),8位数据位位数据位(低位在低位在前前),1位可编程位位可编
31、程位(第第9数据位数据位)和和1位停止位位停止位(1)。发送时,可编程位。发送时,可编程位(TB8)可设置为可设置为0或或1,也可将奇偶位装入,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,可从而进行奇偶校验;接收时,可编程位送入编程位送入SCON中的中的RB8。第七章 MCS-51单片机的串行接口 方式方式2和方式和方式3的工作原理类同。唯一的区别仅在于:的工作原理类同。唯一的区别仅在于:方式方式2的波特率为的波特率为foc32或或foc64,而方式而方式3的波特率是可变的,取的波特率是可变的,取决于定时器决于定时器T1的溢出率。的溢出率。D0D1D2D3D4D5D6D70/1D0D11
32、0/1100第 n 1字 符 帧第 n字 符 帧8位 数 据起始位停止位奇 偶校 验3.方式方式2、方式、方式3时第时第9位数据的用法位数据的用法(1)用第用第9位数据作奇偶校验位位数据作奇偶校验位 方式方式2、方式、方式3也可以像方式也可以像方式1一样用于点对点的异步通信。在数据通信一样用于点对点的异步通信。在数据通信中由于传输距离较远,数据信号在传送过程中会产生畸变,从而引起误中由于传输距离较远,数据信号在传送过程中会产生畸变,从而引起误码。通常可在通信软件上采取纠错措施。码。通常可在通信软件上采取纠错措施。例如将作为第例如将作为第9位数据作奇偶校验位,将其置入位数据作奇偶校验位,将其置入
33、TB8位一同发送。位一同发送。第七章 MCS-51单片机的串行接口MOV A,R0MOV C,PMOV TB8,C 如将作为第如将作为第9位数据作奇偶位数据作奇偶校验位,将其置入校验位,将其置入TB8位一位一同发送。同发送。在接收端的接收程序将数据在接收端的接收程序将数据的奇偶校验值与的奇偶校验值与RB8进行比进行比较较MOV A,SBUFMOV C,P.发送端发送一个数据字节及其奇偶校验位的程序段如下:发送端发送一个数据字节及其奇偶校验位的程序段如下:TT:MOV SCON,80H ;串口方式;串口方式2 MOV A,DATA ;取待发送的数据;取待发送的数据 MOV C,PSW.0 ;奇偶
34、标志位置入;奇偶标志位置入TB8中中 MOV TB8,C MOV SBUF,A ;启动一次发送,数据连同奇;启动一次发送,数据连同奇 ;偶校验位一块被发送;偶校验位一块被发送LOOP:JBC TI,NEXT ;SJMP LOOP NEXT:第七章 MCS-51单片机的串行接口MOV SCONMOV SCON,#90H#90H ;方式;方式2 2允许接收允许接收LOOPLOOP:JBC RIJBC RI,RECN RECN ;等待接收等待接收 SJMP LOOP SJMP LOOP RECNRECN:MOV AMOV A,SBUF SBUF ;读入接收的一帧数据读入接收的一帧数据 JB PSW.
35、0JB PSW.0,ONE ONE ;判断接收到的;判断接收到的A A中中1 1的个数的奇偶值的个数的奇偶值 JB RB8JB RB8,ERR ERR ;判断接收到的奇偶标志位的值判断接收到的奇偶标志位的值 SJMP REXT SJMP REXT ONE ONE:JNB RB8,ERR JNB RB8,ERR REXT:REXT:;接收正确处理接收正确处理 ERR:ERR:;接收有错处理接收有错处理 方式方式2、方式、方式3的发送过程中,将数据和附加在的发送过程中,将数据和附加在TB8中的奇偶校验位一中的奇偶校验位一块发送出。因此,作为接收的一方应设法取出该奇偶位进行核对,相应的块发送出。因此
36、,作为接收的一方应设法取出该奇偶位进行核对,相应的接收程序段应为:接收程序段应为:第七章 MCS-51单片机的串行接口2)用第九位数据作多机通信的联络位用第九位数据作多机通信的联络位 计算机与计算机的通信不仅限于点对点的通信,还会出现一机对多机计算机与计算机的通信不仅限于点对点的通信,还会出现一机对多机间的通信,构成计算机网。例如有一种比较特殊的总线形式主从式的网间的通信,构成计算机网。例如有一种比较特殊的总线形式主从式的网络,即在多台计算机中有一台是主机,其余的为从机,从机要服从主机络,即在多台计算机中有一台是主机,其余的为从机,从机要服从主机的调度、支配。的调度、支配。MCS-51单片机的
37、串行口方式单片机的串行口方式2、方式、方式3就适合于这种主就适合于这种主从式的通信结构。如图所示。从式的通信结构。如图所示。返回返回比如老师监考学生考试,学生之间不许比如老师监考学生考试,学生之间不许交头接耳交头接耳第七章 MCS-51单片机的串行接口 第第9位数据怎样用于多机通信呢位数据怎样用于多机通信呢?关键在于使用关键在于使用SM2位和接收到的第位和接收到的第9个个附加数据位附加数据位(接收后放在接收后放在RB8中中)的配合。的配合。例如,通信各方约定如下:主机向从机发送地址信息,其第例如,通信各方约定如下:主机向从机发送地址信息,其第9位数据必须位数据必须为为1,而向从机发送数据信息包
38、括命令时,其第,而向从机发送数据信息包括命令时,其第9位数据规定为位数据规定为0。从机在建立与主机通信之前,处于对通信线路的监听状态。在监听状从机在建立与主机通信之前,处于对通信线路的监听状态。在监听状态下必须使态下必须使SM21,此时只能收到主机发出的地址信息此时只能收到主机发出的地址信息(第第9位为位为1),非,非地址信息被丢失。地址信息被丢失。从机收到地址后应进行识别,是否主机呼叫本站,如果地址符合,确认从机收到地址后应进行识别,是否主机呼叫本站,如果地址符合,确认呼叫本站,此时从机解除监听状态,使呼叫本站,此时从机解除监听状态,使SM20,同时把本站地址发回主同时把本站地址发回主机作为
39、应答,只有这样才能收到主机发送的有效数据。其它从机由于地机作为应答,只有这样才能收到主机发送的有效数据。其它从机由于地址不符,仍处于监听状态,保持址不符,仍处于监听状态,保持SM21,所以无法接收主机的数据。所以无法接收主机的数据。主机收到从机的应答信号,比较收与发的地址是否相符,如果不符,则主机收到从机的应答信号,比较收与发的地址是否相符,如果不符,则发出复位信号发出复位信号(例如:发任一数据,但例如:发任一数据,但TB81);如果地址相符,则清除如果地址相符,则清除TB8,正式开始发送数据和命令。正式开始发送数据和命令。从机收到复位命令后再次回到监听状态,再置从机收到复位命令后再次回到监听
40、状态,再置SM21,否则正式开始否则正式开始接收数据和命令。接收数据和命令。比如点名比如点名第七章 MCS-51单片机的串行接口总结:串行口四种工作方式(难点)工作工作方式方式0 SM0 SM1=00(常用常用)(记忆记忆)串行口作为串行口作为同步移位寄存器同步移位寄存器使用使用,数据传输波特率固定为数据传输波特率固定为fosc/12,串行数串行数据由据由RxD(P3.0)输入输出输入输出,同步移位脉冲由同步移位脉冲由TxD(P3.1)输出输出,数据的发送和接受以数据的发送和接受以8位为一帧数据位为一帧数据,低位在前低位在前,高位在后高位在后,无起始位、奇偶位和停止位无起始位、奇偶位和停止位.
41、1.发送发送:SBUF中的中的串行数据串行数据由由RxD逐位移出逐位移出;TxD输出移位时钟输出移位时钟,频率频率=fosc/12;每送出每送出8位数据位数据,TI就自动置就自动置1;需要用需要用软件对软件对TI清零清零(CLR TI)2.接收接收:串行串行数据由数据由RxD逐位移入逐位移入SBUF中中;TxD输出移位时钟输出移位时钟,频率频率=fosc/12;每接收每接收8位数据位数据,RI就自动置就自动置1;需要用需要用软件对软件对RI清零清零(CLR RI)第七章 MCS-51单片机的串行接口3.经常配合经常配合“串入并出串入并出的移位寄存器芯片的移位寄存器芯片74LS164/CD409
42、4”“并入串出并入串出的移位寄存器芯片的移位寄存器芯片74LS165/CD4014”一起使用一起使用,达到达到扩展一个扩展一个I/O口口使用的目的使用的目的.4.方式方式0工作时工作时,多用多用查询方式编程查询方式编程:发送发送:MOV SBUF,A 接收接收:JNB RI,$JNB TI,$CLR RI CLR TI MOV A,SBUF返回返回第七章 MCS-51单片机的串行接口5.复位时复位时,SCON=00H 缺省值缺省值:方式方式06.接收前接收前,务必先务必先置位置位REN=1,允许接收数据允许接收数据,因为系统复位后因为系统复位后,SCON.4=0 SM0 SM1 SM2 REN
43、 TB8 RB8 TI R1SCON7.串行口方式0的应用(经常用到),串行口常用工作方式0扩展出并行I/O口,而工作方式1、2、3则常用于串行通信.A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V+5V74LS16474LS16474LS164h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共阳共阳LED LED 数码管数码管VccVccTxDTxDRxDRxD51单片单片机机74LS
44、164是是串入并出串入并出芯片芯片;74LS165是是并入串出并入串出芯片芯片第七章 MCS-51单片机的串行接口介绍介绍:共阳共阳LED数码管数码管公共端公共端(字位字位)接高电平接高电平,笔划笔划(字段字段)置为低电平置为低电平就被点亮了就被点亮了h g f e d c b ah g f e d c b a1 1 1 1 0 0 0 0 0 00 0 0 0 0 00C0H=“0”0C0H=“0”比如要显示比如要显示“0”须令须令a b c d e f 为为“0”电平电平,g h为为“1”电平电平.再再比如要显示比如要显示“3”须令须令a b c d g 为为“0”电平电平,e f h为为
45、“1”电电平平.1 1 0 0 1 1 1 1 0 0 0 00 0 0 00B0H=“3”0B0H=“3”共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h第七章 MCS-51单片机的串行接口例例1:利用串行口利用串行口工作方式工作方式0扩展出扩展出8位并行位并行I/O口口,驱动共阳驱动共阳LED数码管数码管显示显示09.XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63
46、3P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51SRG8RC1/-&1D1324561081112913U274LS164VCCR1910RR2910RR3910RR4910RR5910RR6910RR7910R第七
47、章 MCS-51单片机的串行接口 根据上图编写的通过根据上图编写的通过串行口串行口和和74LS164驱动驱动共阴共阴LED数码管数码管显示显示0-9数字数字的程序的程序(查表查表):ORG 0000HORG 0000HLJMP MAINLJMP MAINORG 0030HORG 0030HMAIN:MOV R0,#00HMAIN:MOV R0,#00H MOV SCON,#00H MOV SCON,#00H CLR ES CLR ESDISPLAY:MOV A,R0DISPLAY:MOV A,R0MOV DPTR,#TABLEMOV DPTR,#TABLE MOVC A,A+DPTRMOVC
48、A,A+DPTR MOV SBUF,A;MOV SBUF,A;发送发送 JNB TI,$JNB TI,$CLR TICLR TILCALL DELAYLCALL DELAYINC R0INC R0 CJNE R0,#0AH,DISPLAYCJNE R0,#0AH,DISPLAYSJMP MAINSJMP MAIN第七章 MCS-51单片机的串行接口TABLE:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH DELAY:MOV R6,#200D1:MOV R5,#200 DJNZ R5,$DJNZ R6,D1 RETEND第七章 MCS-51单片机的串
49、行接口工作工作方式方式1 SM0 SM1=01 方式方式1是是10位位(记忆记忆)为一帧为一帧的异步串行通信方式的异步串行通信方式,包括包括1个起始位个起始位,8个数据个数据位位和和1个停止位个停止位,波特率可变波特率可变,由由TxD端发送数据端发送数据,RxD端接受数据端接受数据.(和方式和方式0不不一样一样)串行口控制寄存器串行口控制寄存器SCON SM0 SM1 SM2 REN TB8 RB8 TI R1SCON 0 1 0 1 0 0 0 0(1)SM0/SM1:串行口工作方式选择位串行口工作方式选择位.0 1:方式方式1,10位位UART(1+8+1位位)(2)SM2:串行口多机通信
50、控制位串行口多机通信控制位,作为方式作为方式2、3的附的附 加控制位加控制位,此处不用此处不用,可写成可写成“0”(3)REN:串行口接收允许位串行口接收允许位.REN=1 允许接收允许接收(4)TB8/RB8/TI/RI等位由运行中间的情况决定等位由运行中间的情况决定,可先写成可先写成“0”第七章 MCS-51单片机的串行接口NOTE:1.常用于串行通讯常用于串行通讯,除发除发/收收8位数据外位数据外,在在D0位前位前有一个有一个起始位起始位“0”;在在D7位后位后有一个有一个停止位停止位“1”.2.方式方式1工作时工作时:发送端发送端自动添加自动添加一个一个起始位起始位和一个和一个停止位停
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。