方式 2 和方式 3 的发送起始于任何一条“写 SBUF”指令。当第 9 位数据(TB8)输出之后,置位 TI。
方式 2 和方式 3 的前提条件也是 REN 为 1。在第 9 位数据接收到后,如果下列条件同时满足:
1)RI=0;
2)SM2=0 或接收到的第 9 位为 1
则将已接收的数据装入 SBUF 和 RB8,并置位 RI;如果条件不满足,则接收无效。
51 系列单片机串行口的不同寻常的特征是包括第九位方式。这允许在串行口通信增加的第九位用于
标志特殊字节的接收。对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。
用这种方法,发送器可以广播一个字节让第九位为高作为“每个人请注意”字节。字节可以为节点地址,地
址相同的节点可以打开接收接下来的字符。所接续字节(第九位为低)不能引起其它单片机中断,因为未送
它们的地址。用这种方式。一个单片机可以和大量的其它单片机对话而不打扰不寻址的单片机。这种系
统必须工作在严格的主从方式,由软件进行取舍安排。
2.通信波特率设置
在异步通信中,收、发双方各用自己的的时钟源,要保证捕捉到的信号正确,最好采用较高频率的
时钟,一般选择时钟频率比波特率 16 倍或 64 倍,若时钟频率等于波特率,则频率稍有偏差便会产生接
收错误。各方式波特率的取值方法如下:
⑴ 方式 0 状态: 当软件设置 SCON 的 SM0、SM1 为“00”时串行通信则以方式 0 工作,串行通信工
作在同步移位寄存器方式下。其波特率固定为(1/12)×fosc。
⑵ 方式 1 状态:当软件设置 SCON 的 SM0、SM1 为“01”时串行通信则以方式 1 工作,串行通信的
波特率由定时器 T1 的溢出率获得:
串行通信方式 1 波特率= ×(定时器/计数器 1 的溢出率)
定时器/计数器 1 的溢出率定义为:单位时间(秒)内定时器/计数器回 0 溢出的次数,即定时器/计
数器 1 的溢出率=定时器/计数器 1 的溢出次数/秒。
定时器/计数器 1 的溢出率= (次/秒)
当 T1 工作于方式 2 其初始值为:
初值 N=256-