嵌入式学习小组
直播中

邹媛媛

7年用户 223经验值
私信 关注

请问STC15F2K60S2单片机串行口的工作方式是什么?

如题:

简述STC15F2K60S2单片机串行口的工作方式。

温馨提示:


请从以下链接中的帖子学习相关内容并进行回答,根据原帖内容,给出总结并能有自己独特的见解的答案将更有可能被选为最佳答案!七天之内答案不可见,答题的童鞋有七天时间修改答案,每周结贴一次,选择最佳答案。获得最佳答案的童鞋将会获得相应的专家积分,专家积分排行榜有丰厚的奖励哦!每周只有5个悬赏问答,机会有限,请认真回答!

答案出处:

I51开发板活动原帖及例程详解汇总
http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=65414
(出处: ICKEY BBS)

回帖(5)

庞书娟

2020-4-28 09:11:15
云汉达人
  本帖最后由 汉云 于 2016-10-21 16:09 编辑

答案出外:http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69162




1、 方式0:同步移位寄存器
方式0为半双工方式,又称为同步移位寄存器输出方式。在这种方式下,TxD引脚输出同步移位时钟,RxD用于发送和接收串行数据。串行口输出端可直接与移位寄存器相连,也可以用作扩展I/O口或外接同步输入输出设备。该方式下的数据帧为8位,低位在先,高位在后,没有起始位和停止位。串行口1方式0的功能结构及时序图如下图所示:


2、 UART方式
1) 方式1:8位可变波特率方式
方式1提供异步全双工通信,适合于点到点的通信。每个数据帧长度为10位:1个起始位(低电平)、8个数据位和1个停止位(高电平)。传输的数据首先是起始位,然后是8位数据(低位在前),最后一位是停止位。起始位和停止位是在发送时自动插入的。接收时,停止位进入SCON的RB8位。TxD为发送数据引脚,RxD为接收数据引脚。工作方式1的功能结构及接收/发送时序图如下图所示:







2) 串行口方式2:9位固定波特率方式


方式2提供异步全双工通信,适合于固定波特率的多机通信。每个数据字节长度为11位,1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。与方式1相比,没帧增加了一个第9位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。
串行通信方式2的功能结构图及其接收/发送时序图如下所示:







3)串行口方式3:9位可变波特率方式
该方式也适合与多机通信。方式3的每个数据字节长度为11位:1个起始位、8个数据位(低位在前)、1个可编程的第9位(TB8/RB8)和1个停止位。发送时,第9位数据由TB8提供,可以置位也可以清0。TB8既可以作为多机通信中的地址数据标志位,也可以作为奇偶校验位(将PSW寄存器中的奇偶校验位P的值装入TB8)。接收时,第9位进入RB8位。TxD/P3.1为发送端口,RxD/P3.0为接收端口。

方式3和方式1一样,其波特率可通过软件对定时器/计数器1或定时器2的设置进行波特率的选择,是可变的。方式3的波特率计算方法与方式1的方法相同,在此就不再赘述。
串行口工作方式3的功能结构及其数据接收/发送时序图如下图所示:




下面给出串行口1工作方式一览表:





从上表可以看出,方式1与方式2、3的区别如下
1方式1中,数据字是8位异步通信接口,串行口发送/接收共10位信息,第0位为起始位,1-8位是数据位,最后是停止位;方式2、3中,数据字为9位的异步通信接口,1位起始位,8位数据位,第9位是可程控位1或0,最后是停止位,共有11位信息。
2方式1、3的波特率是可变的,其波特率取决于定时器1的溢出率或定时器T2的溢出率和特殊功能寄存器PCON中的SMOD位的值,PCON寄存器中的SMOD是1还是0决定波特率是否加倍。
此外,方式2和方式3中还可以通过控制TB8位的方法,使其传送中附加的第9位数据可以作为多机通信中的地址/数据标志位,或作为数据的奇偶校验位。若以TB8作为奇偶校验位,在数据写入SBUF之前,先将数据的奇偶位写入TB8。
编写接收程序时,均应使REN=1,允许串行接收。只有在最后的移位脉冲产生并同时满足下列条件时,接收数据才会装入SBUF和RB8并置位RI:
1对于方式1:SM2=0或接收到的停止位=1;
2对于方式2、3:SM2=0或接收到的第9个数据=1。
举报

邢党铿

2020-4-28 09:24:55

文章出处:I51开发板第二十五讲 串行通信基础
http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69150&extra=page%3D1
举报

陈静

2020-4-28 09:34:07
云汉达人
方式1与方式2、3的区别如下:
1方式1中,数据字是8位异步通信接口,串行口发送/接收共10位信息,第0位为起始位,1-8位是数据位,最后是停止位;方式2、3中,数据字为9位的异步通信接口,1位起始位,8位数据位,第9位是可程控位1或0,最后是停止位,共有11位信息。
2方式1、3的波特率是可变的,其波特率取决于定时器1的溢出率或定时器T2的溢出率和特殊功能寄存器PCON中的SMOD位的值,PCON寄存器中的SMOD是1还是0决定波特率是否加倍。
此外,方式2和方式3中还可以通过控制TB8位的方法,使其传送中附加的第9位数据可以作为多机通信中的地址/数据标志位,或作为数据的奇偶校验位。若以TB8作为奇偶校验位,在数据写入SBUF之前,先将数据的奇偶位写入TB8。
编写接收程序时,均应使REN=1,允许串行接收。只有在最后的移位脉冲产生并同时满足下列条件时,接收数据才会装入SBUF和RB8并置位RI:
1对于方式1:SM2=0或接收到的停止位=1;
2对于方式2、3:SM2=0或接收到的第9个数据=1。
举报

陈红

2020-4-28 09:41:05
云汉达人

汉云 发表于 2016-10-21 15:23
答案出外:http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69162



这是准备把我的整个帖子都复制过来的节奏啊……:L
举报

更多回帖

发帖
×
20
完善资料,
赚取积分