首页 理论教育 单片机串行通信工作方式及波特率设定

单片机串行通信工作方式及波特率设定

时间:2023-11-18 理论教育 版权反馈
【摘要】:串行通信有4种工作方式。波特率设定:方式1的波特率是可变的,其波特率由定时器1的计数溢出率和SMOD共同决定,即其中,SMOD是PCON最高位的值,SMOD=1表示波特率加倍定时器工作在方式2。方式3是11位异步串行通信,1个起始位,9个数据位和1个停止位,但波特率不固定其他与方式2相仿。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

单片机串行通信工作方式及波特率设定

串行通信有4种工作方式

1)方式0。方式0是同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率定位fose/12,SM2必为0。

2)方式1。方式1是10位数据的异步通信。TXD为数据发送引脚,RXD为数据接收引脚。其中1位是起始位,8位数据位,1位停止位。

数据发送和接收时使用方式1是由一条写发送寄存器(SBUF)指令开始。随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,而后在移位脉冲的作用下由TXD端口串行输出一帧字符发送完以后TXD输出维持在1的状态下,并将SCON寄存器TI置1让CPU可以发送下一个字符。接收数据时SCON的REN位处于允许接收状态(REN=1),串行口接收数据RXD端监测到从1到0跳变,判定起始位接收,将接收到的数据装载到接收缓冲器SBUF中,直到停止位到来,将停止位送入RB8中并置位中断标志位RI通知CPU从SBUF中取走接收到的字符。

波特率设定:方式1的波特率是可变的,其波特率由定时器1的计数溢出率和SMOD共同决定,即

其中,SMOD是PCON最高位的值,SMOD=1表示波特率加倍定时器工作在方式2。

3)方式2。方式2是固定波特率的11位的异步通信。1个起始位,9个数据位和1个停止位。发送时编程位TB8可以赋值0或1,接收时可编程位进入SCON的RB8。

波特率则是固定的,波特率=2SMOD×fosc/64。波特率与PCON寄存器中SMOD位的值有关。

使用方式2程序初始化单片机外接晶振fosc=11.0592MHz

SCON=0x80;

TMOD=0x01;

PCON=0x00;(www.xing528.com)

TH1=0xFD;

TL1=0xFD;

EA=1;

EX0=1;

ES=1;

TR1=1;

4)方式3。方式3是11位异步串行通信,1个起始位,9个数据位和1个停止位,但波特率不固定其他与方式2相仿。

波特率是由定时/计数器T1的溢出率和SMOD共同决定的。

波特率=2SMOD×(定时器1溢出率)/32;

式中,T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈