《串行口方式1应用编程课件》由会员分享,可在线阅读,更多相关《串行口方式1应用编程课件(102页珍藏版)》请在金锄头文库上搜索。
1、之单片机原理单片机原理第七章第七章AT89S51AT89S51单片机的串行口单片机的串行口第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 2 - 7.17.1串行口的结构串行口的结构7.27.2串行口的串行口的4 4种工作方式种工作方式7.37.3多机通信多机通信7.47.4波特率的制定方法波特率的制定方法7.57.5串行口的应用串行口的应用本章主要内容本章主要内容第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 3 - 内容概要内容概要内容概要内容概要p串行口的基本工作原理串行口的基本工作原理p与串行口有关的特殊功能寄存器与串行口有关
2、的特殊功能寄存器p串行口的串行口的4 4种工作方式种工作方式p串行口多机通信的工作原理串行口多机通信的工作原理p双机串行通信的软件编程双机串行通信的软件编程串行口为串行口为全双工全双工的的通用异步收发通用异步收发(UARTUART)。全)。全双工就是两个单片机之间串行数据可同时双向传双工就是两个单片机之间串行数据可同时双向传输。异步通信,就是收、发双方使用各自的时钟输。异步通信,就是收、发双方使用各自的时钟控制发送和接收过程,这样控制发送和接收过程,这样可省去收、发双方的可省去收、发双方的一条同步时钟信号线一条同步时钟信号线,连接简单且易实现。,连接简单且易实现。第第7 7章章-AT89S51
3、-AT89S51单片机的串行口单片机的串行口- 4 - 7.1 7.1 串行口串行口的结构的结构 第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 5 - 7.1 7.1 串行口串行口的结构的结构 v有有两个物理上独立两个物理上独立的接收、发送缓冲器的接收、发送缓冲器SBUFSBUF(属(属于特殊功能寄存器),可于特殊功能寄存器),可同时同时发送、接收数据。发送、接收数据。v 发送缓冲器发送缓冲器只能写入只能写入不能读出不能读出v 接收缓冲器接收缓冲器只能读出只能读出不能写入不能写入v 两个缓冲器两个缓冲器共用一个字节地址共用一个字节地址(99H99H)。)。v 控
4、制寄存器共有两个:特殊功能寄存器控制寄存器共有两个:特殊功能寄存器SCONSCON和和PCONPCON。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 6 - 7.1.1 7.1.1 7.1.1 7.1.1 串行口控制寄存器串行口控制寄存器SCONSCON6 字节地址字节地址98H98H,可位寻址,可位寻址,位地址位地址为为98H-9FH98H-9FH。格式如图格式如图7-27-2所示。所示。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 7 - SCONSCON中各位的功能中各位的功能(1 1)SM0SM0、SM1SM1 串行口串行
5、口4 4种工作方式选择位种工作方式选择位第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 8 - SCONSCON中各位的功能中各位的功能(2 2)SM2SM2多机通信控制位多机通信控制位 多机通信是在方式多机通信是在方式2 2和和3 3下进行。下进行。 串口以串口以方式方式2 2或方式或方式3 3接收时接收时 如果如果SM2=1SM2=1:则:则只有只有当接收到的第当接收到的第9 9位数据位数据(RB8RB8)为)为“1 1”时,才使时,才使RIRI置置“1 1”,产生中断请求,产生中断请求,并将接收到的前并将接收到的前8 8位数据送入位数据送入SBUFSBUF。
6、如果接收到的第。如果接收到的第9 9位数据(位数据(RB8RB8)为)为“0 0”时,则将接收到的前时,则将接收到的前8 8位数位数据丢弃。据丢弃。 如果如果SM2=0SM2=0:则不论第:则不论第9 9位数据是位数据是1 1还是还是0 0,都将,都将前前8 8位数据送入位数据送入SBUFSBUF中,并使中,并使RIRI置置1 1,产生中断请求。,产生中断请求。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 9 - SCONSCON中各位的功能中各位的功能(2 2)SM2SM2多机通信控制位多机通信控制位 在在方式方式1 1时,如果时,如果SM2=1SM2=1,则
7、只有收到有效的停止,则只有收到有效的停止位时才会激活位时才会激活RIRI。 在在方式方式0 0时,时,SM2SM2必须为必须为0 0。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 10 - SCONSCON中各位的功能中各位的功能(3 3)RENREN 允许串行接收位允许串行接收位 由软件置由软件置“1 1”或清或清“0 0”。 REN=1 REN=1,允许允许串行口接收数据。串行口接收数据。 REN=0 REN=0,禁止禁止串行口接收数据。串行口接收数据。(4 4)TB8TB8 发送的发送的第第9 9位位数据数据 方式方式2 2和方式和方式3 3,TB8TB8
8、是要发送的第是要发送的第9 9位数据,其位数据,其值由软件置值由软件置“1 1”或清或清“0 0”。在。在双机串行通信双机串行通信时,时,一般作为一般作为奇偶校验位奇偶校验位使用;在使用;在多机串行通信多机串行通信中用来中用来表示主机发送的是地址帧还是数据帧,表示主机发送的是地址帧还是数据帧,TB8=1TB8=1为地址为地址帧,帧,TB8=0TB8=0为数据帧。为数据帧。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 11 - SCONSCON中各位的功能中各位的功能(5 5)RB8RB8 接收的第接收的第9 9位数据位数据 方式方式2 2和方式和方式3 3,RB
9、8RB8存放接收到的存放接收到的第第9 9位位数据;数据;在在方式方式1 1,如,如SM2=0SM2=0,RB8RB8是接收到的停止位;在是接收到的停止位;在方式方式0 0,不使用,不使用RB8RB8。(6 6)TITI 发送中断标志位发送中断标志位 方式方式0 0,串行发送的,串行发送的第第8 8位数据结束时位数据结束时TITI由硬件由硬件置置“1 1”;在;在其他方式其他方式中,串行口中,串行口发送停止位的开始发送停止位的开始时时置置TI TI 为为“1 1”。 TI=1TI=1,表示,表示一帧数据发送结束一帧数据发送结束。CPUCPU响应中断后,响应中断后,在中断服务程序中向在中断服务程
10、序中向SBUFSBUF写入要发送的下一帧数据。写入要发送的下一帧数据。TITI必须由软件清必须由软件清“0 0”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 12 - SCONSCON中各位的功能中各位的功能(7 7)RIRI 接收中断标志位接收中断标志位 方式方式0 0时,时,接收完第接收完第8 8位数据位数据时,时,RIRI由硬件置由硬件置“1 1”;在;在其他工作方式其他工作方式中,串行中,串行接收到停止位时接收到停止位时,该位置该位置“1 1”。 RI=1 RI=1,表示一帧数据接收完毕,并申请中断,表示一帧数据接收完毕,并申请中断,要求要求CPUCP
11、U从接收从接收SBUFSBUF取走数据。该位的状态也可供软取走数据。该位的状态也可供软件查询。件查询。RIRI必须由软件清必须由软件清“0 0”。 SCON SCON的所有位都可进行位操作清的所有位都可进行位操作清“0 0”或置或置“1 1”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 13 - 7.1.2 7.1.2 7.1.2 7.1.2 特殊特殊特殊特殊寄能寄存器寄能寄存器PCONPCON 字节地址为字节地址为87H87H,不能不能位寻址。位寻址。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 14 - PCONPCON中各
12、位的功能中各位的功能 仅仅最高位最高位SMODSMOD与串口有关,其他各位的功能已与串口有关,其他各位的功能已在第在第2 2章的节电工作方式一节中作过介绍。章的节电工作方式一节中作过介绍。 SMODSMOD:波特率选择位。波特率选择位。 例如,方式例如,方式1 1的波特率计算公式为的波特率计算公式为 方式方式1 1波特率波特率= = 定时器定时器T1T1的溢出率的溢出率 当当SMOD=1SMOD=1时,要比时,要比SMOD=0SMOD=0时的波特率加倍,所时的波特率加倍,所以也称以也称SMODSMOD位为位为波特率倍增位波特率倍增位。第第7 7章章-AT89S51-AT89S51单片机的串行口
13、单片机的串行口- 15 - 7.2 7.2 串行口串行口的的4 4种工作方式种工作方式v 方式方式0 0v 方式方式1 1v 方式方式2 2v 方式方式3 3 4 4种工作方式由特殊功能寄存器种工作方式由特殊功能寄存器SCONSCON中中SM0SM0、SM1SM1位位定义。定义。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 16 - 7.2.1 7.2.1 7.2.1 7.2.1 方式方式方式方式0 0 0 0 方式方式0 0为为同步移位寄存器输入同步移位寄存器输入/ /输出方式输出方式。该方。该方式并不用于两个式并不用于两个AT89S51AT89S51单片机之
14、间的异步串行通信,单片机之间的异步串行通信,而是用于串行口外接移位寄存器,而是用于串行口外接移位寄存器,扩展并行扩展并行I/OI/O口口。 8 8位数据为一帧,位数据为一帧,无起始位和停止位无起始位和停止位,先发送或,先发送或接收最低位。波特率固定,为接收最低位。波特率固定,为f foscosc/12/12。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 17 - 1 1 1 1、方式、方式、方式、方式0 0 0 0发送发送发送发送(1 1)方式)方式0 0发送过程发送过程 当当CPUCPU执行一条将数据执行一条将数据写入发送缓冲器写入发送缓冲器SBUFSBUF的
15、指的指令令时,产生一个正脉冲,串行口开始把时,产生一个正脉冲,串行口开始把SBUFSBUF中的中的8 8位位数据以数据以f foscosc/12/12的固定波特率从的固定波特率从RXDRXD引脚串行输出,低引脚串行输出,低位在先,位在先,TXDTXD引脚引脚输出同步移位脉冲输出同步移位脉冲,发送完,发送完8 8位数位数据,中断标志位据,中断标志位TITI置置“1 1”。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 18 - 1 1 1 1、方式、方式、方式、方式0 0 0 0发送发送发送发送(2 2)方式)方式0 0发送应用举例发送应用举例外接外接串入并出移位寄
16、存器串入并出移位寄存器74LS16474LS164扩展的并行输出口扩展的并行输出口第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 19 - 1 1 1 1、方式、方式、方式、方式0 0 0 0发送发送发送发送(2 2)方式)方式0 0发送应用举例发送应用举例 通过串行口外接通过串行口外接8 8位串行输入并行输出移位寄存位串行输入并行输出移位寄存器器74LS16474LS164,扩展两个,扩展两个8 8位并行输出口。位并行输出口。 方式方式0 0发送时,发送时,串行数据串行数据由由P3.0P3.0(RXDRXD端)送出端)送出,移位脉冲移位脉冲由由P3.1P3.1(TXDTXD端)送出端)送出。 在移位脉冲的作用下,串行口发送缓冲器的数在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从据逐位地从P3.0P3.0串行移入串行移入74LS16474LS164中。中。第第7 7章章-AT89S51-AT89S51单片机的串行口单片机的串行口- 20 - 2 2 2 2、方式、方式、方式、方式0 0 0 0接收接收接收接收(1 1)方式)方式0 0接收过程接收过程