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

  • SingleYork
  • LV5工程师
  • |      2016-10-21 12:21:39
  • 浏览量 1256
  • 回复:6
本帖最后由 SingleYork 于 2016-10-22 19:00 编辑 bg7.png如题: 简述STC15F2K60S2单片机串行口的工作方式。 温馨提示:

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

答案出处: I51开发板活动原帖及例程详解汇总 https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=65414 (出处: ICKEY BBS)
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
kk118a 2016-10-21
方式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。
0   回复
举报
发布
汉云 2016-10-21
本帖最后由 汉云 于 2016-10-21 16:09 编辑 答案出外:https://bbs.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。

0   回复
举报
发布
SingleYork 回复 2016-10-22
这是准备把我的整个帖子都复制过来的节奏啊……:L
0   回复
举报
荣丰宇 回复 2016-10-24
出处: I51开发板第二十六讲 STC15F2K60S2串行口通信相关寄存器_单片机讨论_技术论坛_云汉电子社区 https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=69151 STC15F2K60S2单片机的串行口有4种工作方式,有的工作方式的波特率是可变的。用户用软件编程的方法在串行口控制寄存器中写入相应的控制字节,即可改变串行口的波特率和工作方式。 SCON(地址为98H,复位值为00H)用于确定串行口1的工作方式和控制串行口1的某些功能,也可用于发送和接收第9个数据位(TB8、RB8),并设有接收和发送中断标志(RI和TI)位。SCON中的SM0与SM1一起指定串行通信的工作方式
0   回复
举报
x
收藏成功!点击 我的收藏 查看收藏的全部帖子