• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

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

SingleYork 2016-10-21 浏览量:3317
本帖最后由 SingleYork 于 2016-10-22 19:00 编辑

[postbg]bg7.png[/postbg]如题:

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

温馨提示:

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


答案出处:

I51开发板活动原帖及例程详解汇总
//www.icxbk.com/community/forum.php?mod=viewthread&tid=65414

(出处: ICKEY BBS)

2 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
其他答案 数量:5
  • 本帖最后由 汉云 于 2016-10-21 16:09 编辑

    答案出外://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。







    • 发布于2016-10-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 方式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
    • 举报
    • 评论 0
    • 0
    • 0

  • 出处:
    I51开发板第二十六讲 STC15F2K60S2串行口通信相关寄存器_单片机讨论_技术论坛_云汉电子社区
    //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一起指定串行通信的工作方式
    • 发布于2016-10-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

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