1、第8章 串行口通信单片机原理及应用系统设计8.1 8.1 串行通信基础串行通信基础 第八章第八章 串行口通信串行口通信 常用串行口通信方式有两种:常用串行口通信方式有两种:并行通信和串行通信并行通信和串行通信。并行通信是通过多条数据线同时传送数据的每一位,如图并行通信是通过多条数据线同时传送数据的每一位,如图8-18-1所示。其所示。其特点是:传送速度快,但所需数据线多,适用于近距离通信。特点是:传送速度快,但所需数据线多,适用于近距离通信。串行通信是通过单条数据线一位一位按顺序传送数据,如图串行通信是通过单条数据线一位一位按顺序传送数据,如图8-28-2所示。所示。其特点是:传送速度慢,但仅
2、需一条数据线,故适用于远距离通信。其特点是:传送速度慢,但仅需一条数据线,故适用于远距离通信。串行通信有两种方式:串行通信有两种方式:异步串行通信和同步串行通信异步串行通信和同步串行通信。第八章第八章 串行口通信串行口通信1 1串行通信的分类串行通信的分类(1 1)同步通信)同步通信 同步通信传送信息的位数几乎不受限制,一次通信传输的数同步通信传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率高,但在通信中必须始终据有几十到几千个字节,通信效率高,但在通信中必须始终保持精确的同步时钟,即收发双方要严格的同步(常用的做保持精确的同步时钟,即收发双方要严格的同步(常用的做法
3、是两个设备使用同一个时钟源)。法是两个设备使用同一个时钟源)。同步通信的字符帧结构由同步字符、数据字符和校验字符三同步通信的字符帧结构由同步字符、数据字符和校验字符三部分组成。部分组成。其中,同步字符采用统一的标准格式,也可以由用户约定。其中,同步字符采用统一的标准格式,也可以由用户约定。用于同一电路板内各元件之间数据传送的用于同一电路板内各元件之间数据传送的SPISPI接口就是典型接口就是典型的同步通信接口。的同步通信接口。(2 2)异步通信)异步通信 异步通信是异步通信是以字符为单位组成字符帧进行数据传输的以字符为单位组成字符帧进行数据传输的,字符,字符之间没有固定的时间间隔要求,而每个字
4、符中的各位则以固之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。定的时间传送。收发双方可以由各自的时钟来控制数据的发送和接收。这两收发双方可以由各自的时钟来控制数据的发送和接收。这两个时钟源彼此独立,互不同步,但要求传送速率一致。个时钟源彼此独立,互不同步,但要求传送速率一致。收发双方依靠字符帧格式来协调数据的发送和接收。具体来收发双方依靠字符帧格式来协调数据的发送和接收。具体来说就是,在一个有效字符正式发送之前,发送方先发送一个说就是,在一个有效字符正式发送之前,发送方先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停起始位,然后发送有效字符位,在字符结束时再发
5、送一个停止位,起始位至停止位构成一帧。止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平起始位为低电平(逻辑值为(逻辑值为0 0),),停止位和空闲位都是高电停止位和空闲位都是高电平平(逻辑值为(逻辑值为1 1),这样就保证了起始位开始处一定会有一),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始。而根据个下跳沿,由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易得实现了字符的界定和同步。起始位和停止位也就很容易得实现了字符的界定和同步。图8-3 异步通信数
6、据格式 起始位起始位:必须是持续一个比特时间的逻辑:必须是持续一个比特时间的逻辑0 0电平,标志传输一个字符开电平,标志传输一个字符开始,接收方可用起始位使自己的接收时钟与发送方数据同步。始,接收方可用起始位使自己的接收时钟与发送方数据同步。数据位数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是的位数可以由通信双方共同约定,一般可以是5 5位、位、7 7位或位或8 8位,标准的位,标准的ASCIIASCII码是码是01270127(7 7位),扩展的位),扩展的ASCIIASCII码是
7、码是02550255(8 8位)。传输数据时位)。传输数据时先传送字符的低位,后传送字符的高位。先传送字符的低位,后传送字符的高位。奇偶校验位奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。停止位停止位:停止位可以是是:停止位可以是是1 1位、位、1.51.5位或位或2 2位,可以
8、由软件设定。它一定是位,可以由软件设定。它一定是逻辑逻辑1 1电平,标志着传输一个字符的结束。电平,标志着传输一个字符的结束。空闲位空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。始,表示线路处于空闲状态,必须由高电平来填充。2.2.串行通信的传输方式串行通信的传输方式 串行通信根据数据传输的方向及时间关系可分为:单工、串行通信根据数据传输的方向及时间关系可分为:单工、半双工和全双工。半双工和全双工。单工单工是指数据仅能沿着一个方向传输,不能实现反向传输,是指数据仅能沿着一个方向
9、传输,不能实现反向传输,如图如图8-4(1)8-4(1)所示。所示。半双工半双工是指数据可以沿两个方向传输,但需要分时进行,是指数据可以沿两个方向传输,但需要分时进行,如图如图8-4(2)8-4(2)所示。所示。全双工全双工是指数据可以同时进行双向传输,如图是指数据可以同时进行双向传输,如图8-4(3)8-4(3)所示。所示。(1)单工 (2)半双工 (3)全双工 图8-4 串行通信的三种传输方式3.3.传输速率与传输距离传输速率与传输距离 (1 1)传输速率传输速率 传输速率常用波特率描述传输速率常用波特率描述,定义为每秒钟传送二进制数码的,定义为每秒钟传送二进制数码的位数。单位是:位位数。
10、单位是:位/秒秒(bps)(bps)。波特率越高,数据传输速度越快。串口典型的传输波特率波特率越高,数据传输速度越快。串口典型的传输波特率600bps600bps,1200bps1200bps,2400bps2400bps,4800bps4800bps,9600bps9600bps,19200bps19200bps,38400bps38400bps。(2 2)传输距离与传输速率的关系传输距离与传输速率的关系 传输距离与波特率及传输线的电气特性有关。通常传输距离传输距离与波特率及传输线的电气特性有关。通常传输距离随波特率的增加而减小。随波特率的增加而减小。如使用非屏蔽双绞线如使用非屏蔽双绞线(5
11、0pF/0.3m)(50pF/0.3m)时,波特率时,波特率9600bps9600bps时最大时最大传输距离为传输距离为76m76m,若再提高波特率,传输距离将大大减小。,若再提高波特率,传输距离将大大减小。8.2 IAP15W4K58S48.2 IAP15W4K58S4单片机的串行口单片机的串行口1 1 IAP15W4K58S4IAP15W4K58S4单片机集成有单片机集成有4 4个可编程的全双工串行通信接个可编程的全双工串行通信接口,具有口,具有UARTUART全部功能。全部功能。每个串行口由每个串行口由2 2个数据缓冲器个数据缓冲器SBUFSBUF、一个移位寄存器一个移位寄存器、一个一个
12、串行控制寄存器串行控制寄存器和和一个波特率发生器一个波特率发生器组成。组成。每个串行口的数据缓冲器每个串行口的数据缓冲器SBUFSBUF由由2 2个互相独立的接收、发送个互相独立的接收、发送缓冲器构成,可同时发送接收数据。缓冲器构成,可同时发送接收数据。发送缓冲器发送缓冲器SBUFSBUF只能写入不能读出,接收缓冲器只能写入不能读出,接收缓冲器SBUFSBUF只能只能读出不能写入,因而两个缓冲器可共用一个地址码。读出不能写入,因而两个缓冲器可共用一个地址码。8.2 IAP15W4K58S48.2 IAP15W4K58S4单片机的串行口单片机的串行口1 1 串行口串行口1 1内部简化结构如图内部
13、简化结构如图8-58-5所示。所示。图图8-5 8-5 串行口简化结构串行口简化结构8.2.1 8.2.1 串行口串行口1 1的控制寄存器的控制寄存器1.1.串行口串行口1 1的控制寄存器的控制寄存器SCONSCON和和PCONPCON 串行口串行口1 1设有两个控制寄存器:串行控制寄存器设有两个控制寄存器:串行控制寄存器SCONSCON和波和波特率选择特殊功能寄存器特率选择特殊功能寄存器PCONPCON。串行控制寄存器串行控制寄存器SCONSCON用于选择串行通信的工作方式和某些用于选择串行通信的工作方式和某些控制功能。控制功能。其其地址为地址为98H98H,可位寻址,格式如表,可位寻址,格
14、式如表8-18-1所示:所示:B7B6B5B4B3B2B1B0SM0/FE SM1SM2RENTB8RB8TIRI 表8-1 SCON寄存器8.2.1 8.2.1 串行口串行口1 1的控制寄存器的控制寄存器SM0 SM1 工作方式工作方式功能说明功能说明波特率波特率00方式0移位寄存器方式SYSclk/12或SYSclk/201方式18位UART可变,取决于T1或T2的溢出率10方式29位UART(2SMOD/64)x SYSclk系统工作时钟频率11方式39位UART可变,取决于T1或T2的溢出率 表8-2 串行口工作方式(位数注意核对)SM0/FE SM0/FE:当:当PCONPCON寄存
15、器中的寄存器中的SMOD0/PCON.6SMOD0/PCON.6位为位为1 1时,时,该位用于帧错误检测。当检测到一个无效停止位时,通过该位用于帧错误检测。当检测到一个无效停止位时,通过UARTUART接收器设置该位。它必须由软件清零。接收器设置该位。它必须由软件清零。当当PCONPCON寄存器中的寄存器中的SMOD0/PCON.6SMOD0/PCON.6位为位为0 0时,该位和时,该位和SM1SM1一起指定串行通信的工作方式,如下表一起指定串行通信的工作方式,如下表8-28-2所示。所示。SM0SM0、SM1SM1:串行口工作方式选择位,可选择串行口工作方式选择位,可选择4 4种工作方种工作
16、方式,如表式,如表8-28-2所示。所示。SM2SM2:允许方式:允许方式2 2或方式或方式3 3多机通信控制位。多机通信控制位。RENREN:允许:允许/禁止串行接收控制位。由软件置位禁止串行接收控制位。由软件置位RENREN,即,即REN=1REN=1为允许串行接收状态,可启动串行接收器为允许串行接收状态,可启动串行接收器RxDRxD,开始,开始接收信息。软件复位接收信息。软件复位RENREN,即,即REN=0REN=0,则禁止接收。,则禁止接收。TB8TB8:在方式:在方式2 2或方式或方式3 3,它为要发送的第,它为要发送的第9 9位数据,按需要由位数据,按需要由软件置位或清软件置位或
17、清0 0。RB8RB8:在方式在方式2 2或方式或方式3 3,是接收到的第,是接收到的第9 9位数据,作为奇偶位数据,作为奇偶校验位或地址帧校验位或地址帧/数据帧的标志位。方式数据帧的标志位。方式0 0中不用中不用RB8RB8(置置SM2=0SM2=0)。方式。方式1 1中也不用中也不用RB8(RB8(置置SM2=0SM2=0,RB8RB8是接收到的停止是接收到的停止位位)。8.2.1 8.2.1 串行口串行口1 1的控制寄存器的控制寄存器 TITI:发送中断请求标志位:发送中断请求标志位。在方式。在方式0 0,当串行发送数据第,当串行发送数据第8 8位位结束时,由内部硬件自动置位,结束时,由
18、内部硬件自动置位,即即TI=1TI=1,向主机请求中断,向主机请求中断,响应中断后响应中断后TITI必须用软件清零,即必须用软件清零,即TI=0TI=0。在其他。在其他方式中,方式中,则在停止位开始发送时由内部硬件置位,即则在停止位开始发送时由内部硬件置位,即TI=1,TI=1,响应中断响应中断后后TITI必须用软必须用软件清零。件清零。RIRI:接收中断请求标志位接收中断请求标志位。在方式。在方式0 0,当串行接收到第,当串行接收到第8 8位位结束时由内部硬件自动置位结束时由内部硬件自动置位RI=1RI=1,向主机请求中断,响应向主机请求中断,响应中断后中断后RIRI必须用软件清零,即必须用
19、软件清零,即RI=0RI=0。在其他方式中,串行。在其他方式中,串行接收到停止位的中间时刻由内部硬件置位,即接收到停止位的中间时刻由内部硬件置位,即RI=1RI=1,向向CPUCPU发中断申请,响应中断后发中断申请,响应中断后RIRI必须由软件清零。必须由软件清零。8.2.1 8.2.1 串行口串行口1 1的控制寄存器的控制寄存器2.2.串行口串行口1 1的电源控制寄存器的电源控制寄存器PCON PCON 电源控制寄存器电源控制寄存器PCONPCON中的中的SMOD/PCON.7SMOD/PCON.7用于设置用于设置方式方式1 1、方式、方式2 2、方式、方式3 3的波特率是否加倍。的波特率是
20、否加倍。其其地址为地址为87H87H,不可位寻址,格式如表,不可位寻址,格式如表8-38-3所示:所示:表表8-3 PCON寄存器寄存器B7B6B5B4B3B2B1B0SMOD SMOD0 LVDFPOFGF1GF0PDIDLSMODSMOD:波特率选择位。当用软件置位:波特率选择位。当用软件置位SMODSMOD,即,即SMOD=1SMOD=1,则使串行通信方式则使串行通信方式1 1、2 2、3 3的波特率加倍;的波特率加倍;SMOD=0SMOD=0,则,则各工作方式的波特率不加倍。复位时各工作方式的波特率不加倍。复位时SMOD=0SMOD=0。SMOD0SMOD0:帧错误检测有效控制位。当:
21、帧错误检测有效控制位。当SMOD0=1SMOD0=1,SCONSCON寄寄存器中的存器中的SM0/FESM0/FE位用于位用于FE(FE(帧错误检测帧错误检测)功能;当功能;当SMOD0=0SMOD0=0,SCONSCON寄存器中的寄存器中的SM0/FESM0/FE位用于位用于SM0SM0功能功能,和和SM1SM1一起指定串行口的工作方式。复位时一起指定串行口的工作方式。复位时SMOD0=0SMOD0=0。PCONPCON中的其他位都与串行口中的其他位都与串行口1 1无关无关 8.2.2 8.2.2 串口串口1 1的工作方式的工作方式IAP15W4K58S4IAP15W4K58S4系列单片机的
22、串行口系列单片机的串行口1 1有有4 4种工作方式,可通过种工作方式,可通过软件编程对软件编程对SCONSCON中的中的SM0SM0、SM1SM1的设置进行选择。的设置进行选择。1.1.方式方式0 0 在方式在方式0 0下,串行口下,串行口1 1工作在同步移位寄存器模式,主要用于工作在同步移位寄存器模式,主要用于扩展并行输入或输出口。串行口数据由扩展并行输入或输出口。串行口数据由RxD/P3.0RxD/P3.0端输入,同端输入,同步移位脉冲(步移位脉冲(SHIFTCLOCKSHIFTCLOCK)由)由TxD/P3.1TxD/P3.1输出,发送、接输出,发送、接收的是收的是8 8位数据,低位在先
23、。位数据,低位在先。(1)(1)发送:执行发送:执行“写入写入SBUF”SBUF”指令后,启动发送过程。指令后,启动发送过程。(2)(2)接收:复位接收中断请求标志接收:复位接收中断请求标志RIRI,即,即RIRI0 0,置位允许接,置位允许接收控制位收控制位REN=1REN=1时启动方式时启动方式0 0接收过程。接收过程。8.2.2 8.2.2 串口串口1 1的工作方式的工作方式2 2方式方式1 1 当软件设置当软件设置SCONSCON的的SM0SM0、SM1SM1为为“01”“01”时,串行口时,串行口1 1则以则以模式模式1 1工作。此模式为工作。此模式为8 8位位UARTUART格式,
24、一帧信息为格式,一帧信息为1010位:位:1 1位起始位,位起始位,8 8位数据位位数据位(低位在先低位在先)和和1 1位停止位。位停止位。(1)(1)发送:当主机执行一条写发送:当主机执行一条写“SBUF“SBUF“的指令就启动串行通的指令就启动串行通信的发送,写信的发送,写“SBUF”“SBUF”信号还把信号还把“1”“1”装入发送移位寄存装入发送移位寄存器的第器的第9 9位,并通知位,并通知TXTX控制单元开始发送。控制单元开始发送。(2)2)接收:接收:当软件置位接收允许标志位当软件置位接收允许标志位RENREN,即,即REN=1REN=1时,时,接收器便以选定波特率的接收器便以选定波
25、特率的1616分频的速率采样串行接收端口分频的速率采样串行接收端口RxDRxD,当检测到,当检测到RxDRxD引脚输入电平发生负跳变时,则说明引脚输入电平发生负跳变时,则说明起始位有效,将其移入移位寄存器,并开始接收这一帧信起始位有效,将其移入移位寄存器,并开始接收这一帧信息的其余位。息的其余位。8.2.2 8.2.2 串口串口1 1的工作方式的工作方式3.3.方式方式2 2和方式和方式3 3 串行口串行口1 1工作在方式工作在方式2 2和方式和方式3 3时,其一帧的信息由时,其一帧的信息由1111位组成:位组成:1 1位起始位,位起始位,8 8位数据位位数据位(低位在先低位在先),1 1位可
26、编程位位可编程位(第第9 9位数据位数据)和和1 1位停止位。位停止位。(1)(1)发送:发送时数据由发送:发送时数据由TXDTXD端输出,可编程位端输出,可编程位(第第9 9位数据位数据)由由SCONSCON中的中的TB8TB8提供,提供,CPUCPU执行一条写入执行一条写入SBUFSBUF的指令后,的指令后,便立即启动发送,送完一帧信息时,置便立即启动发送,送完一帧信息时,置TI=1TI=1中断标志。中断标志。(2)(2)接收:与方式接收:与方式1 1类似。当类似。当REN=1REN=1时,时,CPUCPU便以选定波特便以选定波特率的率的1616分频的速率不断采样串行接收端口分频的速率不断
27、采样串行接收端口RxDRxD,当检测到,当检测到RxDRxD引脚输入电平发生负跳变时,说明起始位有效,将其移引脚输入电平发生负跳变时,说明起始位有效,将其移入移位寄存器,开始接收这一帧数据。入移位寄存器,开始接收这一帧数据。8.2.2 8.2.2 串口串口1 1的工作方式的工作方式8.2.3 8.2.3 串行口串行口1 1的波特率设置的波特率设置 方式方式0 0和方式和方式2 2的波特率是固定的,计算公式为:的波特率是固定的,计算公式为:方式方式0 0波特率波特率=SYSclk/12=SYSclk/12 方式方式2 2波特率波特率=2=2SMODSMOD/64/64(SYSclk(SYSclk
28、系统工作时钟频率系统工作时钟频率)其中,其中,SMODSMOD为特殊功能寄存器为特殊功能寄存器PCONPCON中的第中的第8 8位特征位。位特征位。方式方式1 1和方式和方式3 3的波特率可变,与定时器的溢出率有关。用的波特率可变,与定时器的溢出率有关。用T1T1作为波特率发生器时,典型的用法是使得作为波特率发生器时,典型的用法是使得T1T1工作在定时工作在定时方式方式2 2,此时溢出率取决于,此时溢出率取决于TH1TH1中的初值:中的初值:T1T1溢出率溢出率=SYSclk/(256-TH1)=SYSclk/(256-TH1)由此得方式和方式由此得方式和方式3 3波特率的计算公式为:波特率的
29、计算公式为:波特率波特率=(2SMOD/32)=(2SMOD/32)(T1T1溢出率)溢出率)8.2.3 8.2.3 串行口串行口1 1的波特率设置的波特率设置 表表8-3 8-3 给出各种常用波特率与定时器给出各种常用波特率与定时器/计数器计数器1 1各参数之间的关系各参数之间的关系波特率波特率/(b/s)/(b/s)SYSclk/MHzSYSclk/MHzSMODSMOD定时器定时器T1T1C/C/模式模式定时常数定时常数625006250012121 10 02 2FFHFFH192001920011.059211.05921 10 02 2FDHFDH9600960011.059211
30、.05920 00 02 2FDHFDH4800480011.059211.05920 00 02 2FAHFAH2400240011.059211.05920 00 02 2F4HF4H1200120011.059211.05920 00 02 2F8HF8H8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 21.1.串行口串行口2 2的控制寄存器的控制寄存器S2CONS2CON 串行口串行口2 2控制寄存器控制寄存器S2CONS2CON用于确定串行口用于确定串行口2 2的工作方式和的工作方式和某些控制功能。某些控制功能。其地址为其地址为9AH9
31、AH,不可位寻址,格式如表所示:,不可位寻址,格式如表所示:B7B6B5B4B3B2B1B0S2SM0-S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 2S2SM0S2SM0:指定串行口:指定串行口2 2的工作方式,如下表所示。的工作方式,如下表所示。S2SM0 工作方式工作方式功能说明功能说明波特率波特率0方式08位UART,波特率可变(定时器T2的溢出率)/41方式19位UART,波特率可变(定时器T2的溢出率)/4当AUXR.2/T2x12=1时,定时器T2的溢出率=SYSc
32、lk/(65536-RL_TH2,RL_TL2)当AUXR.2/T2x12=0时,定时器T2的溢出率=SYSclk/12/(65536-RL_TH2,RL_TL2)式中RL_TH2是T2H的重装载寄存器,RL_TL2是T2L的重装载寄存器。8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 2S2SM2S2SM2:允许方式允许方式1 1多机通信控制位。多机通信控制位。S2RENS2REN:允许允许/禁止串行口禁止串行口2 2接收控制位。接收控制位。S2TB8S2TB8:在方式在方式1 1,S2TB8S2TB8为要发送的第为要发送的第9 9位数据,按需
33、要由位数据,按需要由软件置位或清软件置位或清0 0。S2RB8S2RB8:在方式在方式1 1,S2RB8S2RB8是接收到的第是接收到的第9 9位数据,作为奇偶位数据,作为奇偶校验位或地址帧校验位或地址帧/数据帧的标志位。数据帧的标志位。S2TIS2TI:发送中断请求标志位。发送中断请求标志位。S2RIS2RI:接收中断请求标志位。接收中断请求标志位。2.2.串行口串行口2 2的数据缓冲寄存器的数据缓冲寄存器S2BUFS2BUF 串行口串行口2 2数据缓冲寄存器数据缓冲寄存器(S2BUF)(S2BUF)的地址是的地址是9BH9BH,实际是,实际是2 2个个缓冲器,写缓冲器,写S2BUFS2BU
34、F的操作完成待发送数据的加载,读的操作完成待发送数据的加载,读S2BUFS2BUF的操作可获得已接收到的数据。两个操作分别对应两个不的操作可获得已接收到的数据。两个操作分别对应两个不同的寄存器,同的寄存器,1 1个是只写寄存器,个是只写寄存器,1 1个是只读寄存器。个是只读寄存器。串行通道内设有数据寄存器。在所有的串行通信方式中,串行通道内设有数据寄存器。在所有的串行通信方式中,在写入在写入S2BUFS2BUF信号(信号(MOVS2BUF,A MOVS2BUF,A)的控制下,把数据装)的控制下,把数据装入相同的入相同的9 9位移位寄存器,前面位移位寄存器,前面8 8位为数据字节,其最低位位为数
35、据字节,其最低位为移位寄存器的输出位。根据不同的工作方式会自动将为移位寄存器的输出位。根据不同的工作方式会自动将“1”“1”或或S2TB8S2TB8的值装入移位寄存器的第的值装入移位寄存器的第9 9位位,并进行发送。并进行发送。8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 2 串行通道的接收寄存器是一个输入移位寄存器。在方式串行通道的接收寄存器是一个输入移位寄存器。在方式0 0和和方式方式1 1 时均为时均为9 9位。当一帧接收完毕,移位寄存器中的数据位。当一帧接收完毕,移位寄存器中的数据字节装入串行数据缓冲器字节装入串行数据缓冲器S2BUFS
36、2BUF中中,其第其第9 9位则装入位则装入S2CONS2CON寄寄存器中的存器中的S2RB8S2RB8位。如果由于位。如果由于S2SM2S2SM2使得已接收到的数据无使得已接收到的数据无效时效时,S2RB8,S2RB8和和S2BUFS2BUF中内容不变。中内容不变。由于接收通道内设有输入移位寄存器和由于接收通道内设有输入移位寄存器和S2BUFS2BUF缓冲器,从缓冲器,从而能使一帧接收完将数据由移位寄存器装入而能使一帧接收完将数据由移位寄存器装入S2BUFS2BUF后,可后,可立即开始接收下一帧信息,主机应在该帧接收结束前从立即开始接收下一帧信息,主机应在该帧接收结束前从S2BUFS2BUF
37、缓冲器中将数据取走,否则前一帧数据将丢失。缓冲器中将数据取走,否则前一帧数据将丢失。S2BUFS2BUF以并行方式送往内部数据总线。以并行方式送往内部数据总线。8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 23.3.与串行口与串行口2 2中断相关的寄存器中断相关的寄存器 串行口串行口2 2中断允许位中断允许位ES2ES2位于中断允许寄存器位于中断允许寄存器IE2IE2中中 中断允许寄存器中断允许寄存器IE2IE2地址为地址为AFHAFH,不可位寻址不可位寻址,格式,格式如下如下所示所示:B7B6B5B4B3B2B1B0-ESPIES2 ES2:
38、ES2:串行口串行口2 2中断允许位,中断允许位,ES2=1ES2=1,允许串行口,允许串行口2 2中断,中断,ESES2=02=0,禁止串行口,禁止串行口2 2中断。中断。中断允许寄存器中断允许寄存器IEIE地址为地址为A8H,A8H,可位寻址,其格式如下所示:可位寻址,其格式如下所示:B7B6B5B4B3B2B1B0EAELVDEADCESET1EX1ET0EX08.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 2 EA:CPUEA:CPU的总中断允许控制位,的总中断允许控制位,EA=1EA=1,CPUCPU开放中断,开放中断,EA=0EA=0
39、,CPUCPU屏蔽所有中断申请。屏蔽所有中断申请。EAEA的作用是使中断形成多级控制,即各中断源先的作用是使中断形成多级控制,即各中断源先受受EAEA控制,其次还受各中断源自己中断允许控制位控制。控制,其次还受各中断源自己中断允许控制位控制。串行口串行口2 2中断优先级控制位中断优先级控制位PS2PS2位于中断优先级控制寄存器位于中断优先级控制寄存器IPIP中,中断中,中断优先级控制寄存器的地址为优先级控制寄存器的地址为B5H,B5H,不可位寻址,其格式如下所示:不可位寻址,其格式如下所示:B7B6B5B4B3B2B1B0-PSPI PS2PS2:PS2:串行口串行口2 2中断优先级控制位。中
40、断优先级控制位。当当PS2=0PS2=0时,串行口时,串行口2 2中断为最低优先级中断中断为最低优先级中断(优先级优先级0)0)当当PS2=1PS2=1时,串行口时,串行口2 2中断为最高优先级中断中断为最高优先级中断(优先级优先级1)1)8.3 IAP15W4K58S48.3 IAP15W4K58S4单片机的串行口单片机的串行口2 28.4 IAP15W4K58S48.4 IAP15W4K58S4单片机的串行口单片机的串行口3 3 (1 1)STC15W4K32S4STC15W4K32S4系列单片机串行口系列单片机串行口3 3对应的硬件部对应的硬件部 分是分是 TxD3 TxD3和和RxD3
41、RxD3。(2 2)串行口)串行口3 3可以在可以在2 2组管脚之间进行切换。组管脚之间进行切换。(3 3)通过设置特殊功能寄存器)通过设置特殊功能寄存器P_SW2P_SW2中的位中的位S3_S/P_SW2.1S3_S/P_SW2.1,可以将串行口可以将串行口3 3从从RxD3/P0.0,TxD3/P0.1RxD3/P0.0,TxD3/P0.1切换到切换到 RxD3_2/P5.0,TxD3_2/P5.1 RxD3_2/P5.0,TxD3_2/P5.1。8.4.8.4.1.1.串行口串行口3 3的控制寄存器的控制寄存器S3CONS3CON串行口串行口3 3控制寄存器控制寄存器S3CONS3CON
42、用于确定串行口用于确定串行口3 3的工作方式和某些控制功能。其地的工作方式和某些控制功能。其地址为址为ACHACH,不可位寻址,格式如表,不可位寻址,格式如表8-98-9所示:所示:表表8-9 S3CON8-9 S3CON寄存器寄存器B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0S3SM0S3SM0S3ST3S3ST3 S3SM2S3SM2S3RENS3RENS3TB8S3TB8S3RB8S3RB8S3TIS3TIS3RIS3RIS3SM0S3SM0工作方式工作方式功能说明功能说明波特率波特率0 0方式方式0 08 8位位UART UART,波特率,波特率可变可变(定时器定时
43、器T2 T2 的溢出率的溢出率)/4)/4 或或或或 (定时定时器器T3 T3 的溢出率的溢出率)/4)/4 1 1方式方式1 19 9位位UART UART,波特率,波特率可变可变S3SM0S3SM0:指定串行口:指定串行口3 3的工作方式,如下表的工作方式,如下表8-108-10所示所示。表表8-10 8-10 串行口串行口2 2工作方式选择:工作方式选择:8.4.1.串行口串行口3的控制寄存器的控制寄存器S3CON S3CONS3CON的所有位可通过整机复位信号复位为全的所有位可通过整机复位信号复位为全“0”“0”。S3CON S3CON 的字节地址为的字节地址为ACH ACH,不可位寻
44、址。,不可位寻址。串行通信的中断请求:当一帧发送完成,内部硬件自动置位串行通信的中断请求:当一帧发送完成,内部硬件自动置位S3TIS3TI,即,即S3TI=1S3TI=1,请求中断处理;当接收完一帧信息时,内,请求中断处理;当接收完一帧信息时,内部硬件自动置位部硬件自动置位S3RIS3RI,即,即S3RI=1S3RI=1,请求中断处理。,请求中断处理。8.4.1.串行口串行口3的控制寄存器的控制寄存器S3CON 由于由于S3TIS3TI和和S3RI S3RI 以以“或逻辑或逻辑”关系向主机请求中断,所以关系向主机请求中断,所以主机响应中断时事先关系向主机请求中断。主机响应中断时事先关系向主机请
45、求中断。所以主机响应中断时事先并不知道是所以主机响应中断时事先并不知道是S3TIS3TI还是还是S3RIS3RI请求的请求的中断,必须在中断服务程序中查询中断,必须在中断服务程序中查询S3TIS3TI和和S3RIS3RI进行判别,进行判别,然后分别处理。然后分别处理。因此,两个中断请求标志位均不能由硬件自动置位,必须因此,两个中断请求标志位均不能由硬件自动置位,必须通过软件清通过软件清0 0,否则将出现一次请求多次响应的错误。,否则将出现一次请求多次响应的错误。8.4.2 8.4.2 串行口串行口3 3的数据缓冲寄存器的数据缓冲寄存器S3BUFS3BUF(1 1)串行口)串行口3 3数据缓冲寄
46、存器数据缓冲寄存器(S3BUF)(S3BUF)的地址是的地址是ADHADH,实际是,实际是2 2个缓冲器,写个缓冲器,写S3BUFS3BUF的操作完成待发送数据的加载,读的操作完成待发送数据的加载,读S3BUFS3BUF的的操作可获得已接收到的数据。两个操作分别对应两个不同的寄操作可获得已接收到的数据。两个操作分别对应两个不同的寄存器,存器,1 1个是只写寄存器,个是只写寄存器,1 1个是只读寄存器。个是只读寄存器。(2 2)串行通道内设有数据寄存器。串行通道内设有数据寄存器。在所有的串行通信方式中,在写入在所有的串行通信方式中,在写入S3BUFS3BUF信号(信号(MOV MOV S3BUF
47、,AS3BUF,A)的控制下,把数据装入相同的)的控制下,把数据装入相同的9 9位移位寄存器,前位移位寄存器,前面面8 8位为数据字节,其最低位为移位寄存器的输出位。位为数据字节,其最低位为移位寄存器的输出位。根据不同的工作方式会自动将根据不同的工作方式会自动将“1”“1”或或S3TB8S3TB8的值装入移位寄的值装入移位寄存器的第存器的第9 9 位位,并进行发送并进行发送。8.4.2 8.4.2 串行口串行口3 3的数据缓冲寄存器的数据缓冲寄存器S3BUFS3BUF 8.4.2 8.4.2 串行口串行口3 3的数据缓冲寄存器的数据缓冲寄存器S3BUFS3BUF(3 3)串行通道的接收寄存器是
48、一个输入移位寄存器。)串行通道的接收寄存器是一个输入移位寄存器。在方式在方式0 0和方式和方式1 1时均为时均为9 9位。当一帧接收完毕,移位寄存器位。当一帧接收完毕,移位寄存器中的数据字节装入串行数据缓冲器中的数据字节装入串行数据缓冲器S3BUF S3BUF 中,其第中,其第9 9位则装位则装入入S3CONS3CON寄存器中的寄存器中的S3RB8S3RB8位。位。如果由于如果由于S3SM2S3SM2使得已接收到的数据无效时使得已接收到的数据无效时,S3RB8,S3RB8和和S3BUFS3BUF中内容不变。中内容不变。8.4.2 8.4.2 串行口串行口3 3的数据缓冲寄存器的数据缓冲寄存器S
49、3BUFS3BUF(4)由于接收通道内设有输入移位寄存器和S3BUF缓冲器,从而能使一帧接收完将数据由移位寄存器装入S3BUF后,可立即开始接收下一帧信息,主机应在该帧接收结束前从S3BUF缓冲器中将数据取走,否则前一帧数据将丢失。S3BUF 以并行方式送往内部数据总线。8.4.3 与串行口3中断相关的寄存器IE2串行口串行口3 3中断允许位中断允许位ES3ES3位于中断允许寄存器位于中断允许寄存器IE2IE2中,中断允许寄存器中,中断允许寄存器IE2IE2地址为地址为AFH,AFH,不可位寻址,其格式如表不可位寻址,其格式如表8-118-11所示:所示:表表8-11 8-11 中断允许寄存器
50、中断允许寄存器IE2IE2B7B6B5B4B3B2B1B0-ET4ET3ES4ES3ET2ESPIES2中断允许寄存器中断允许寄存器IEIE地址为地址为A8H,A8H,可位寻址,其格式如表可位寻址,其格式如表8-128-12所示:所示:表表8-12 8-12 中断允许寄存器中断允许寄存器IEIEB7B6B5B4B3B2B1B0EAELVDEADCESET1EX1ET0EX08.5 IAP15W4K58S48.5 IAP15W4K58S4单片机的串行口单片机的串行口4 4STC15W4K32S4STC15W4K32S4系列单片机串行口系列单片机串行口4 4对应的硬件部分是对应的硬件部分是TxD4