完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题:
简述STC15F2K60S2单片机串行口的工作方式。 温馨提示: 请从以下链接中的帖子学习相关内容并进行回答,根据原帖内容,给出总结并能有自己独特的见解的答案将更有可能被选为最佳答案!七天之内答案不可见,答题的童鞋有七天时间修改答案,每周结贴一次,选择最佳答案。获得最佳答案的童鞋将会获得相应的专家积分,专家积分排行榜有丰厚的奖励哦!每周只有5个悬赏问答,机会有限,请认真回答! 答案出处: I51开发板活动原帖及例程详解汇总 http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=65414 (出处: ICKEY BBS) |
|
相关推荐
5个回答
|
|
云汉达人
本帖最后由 汉云 于 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。 |
|
|
|
文章出处:I51开发板第二十五讲 串行通信基础 http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69150&extra=page%3D1 |
|
|
|
云汉达人
方式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。 |
|
|
|
云汉达人
汉云 发表于 2016-10-21 15:23 这是准备把我的整个帖子都复制过来的节奏啊……:L |
|
|
|
出处:
I51开发板第二十六讲 STC15F2K60S2串行口通信相关寄存器_单片机讨论_技术论坛_云汉电子社区 http://www.icxbk.com/community/http://www.icxbk.com/community/forum.php?mod=viewthread&tid=69151 STC15F2K60S2单片机的串行口有4种工作方式,有的工作方式的波特率是可变的。用户用软件编程的方法在串行口控制寄存器中写入相应的控制字节,即可改变串行口的波特率和工作方式。 SCON(地址为98H,复位值为00H)用于确定串行口1的工作方式和控制串行口1的某些功能,也可用于发送和接收第9个数据位(TB8、RB8),并设有接收和发送中断标志(RI和TI)位。SCON中的SM0与SM1一起指定串行通信的工作方式 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:25 , Processed in 1.153671 second(s), Total 89, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号