码迷,mamicode.com
首页 > 其他好文 > 详细

串行接口的基本特点

时间:2015-01-27 18:35:01      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:通信   单片机   串口   

MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。 

串行端口有两个控制寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率[每秒传送的位数]以及作为中断标志等。

串行端口有一个数据寄存器SBUF在特殊功能寄存器中的字节地址为99H,该寄存器为发送和接收所共用。

串行端口的波特率可以用程序来控制。在不同工作方式中,由时钟振荡频率分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。


串口控制寄存器

  输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。只有当8位数据接收完,并检测到高电平停止位后,只有满足①(R1)=0;②(SM2)=0或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。

1. 方式2

  方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。

输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令且TI=0时,就启动发送器发送。发送一帧信息后,置位中断标志TI。

输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第9位数据后,当满足①(RI):0;②(SM2)=0或接收到的第9位数据为1时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志Ri;否则信息丢失。且不置位RI。

2. 工作方式3

方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。
波特率的选择
     如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

1> 方式1

方式1的波特率固定为主振频率  的1/12。

2> 方式2

方式2的波特率由PCON中的选择位SMOD来决定,可表示为:波特率=2sMoD×fosc/64也就是当SMOD=1时,波特率为1/32×fosc,当SMOD=0时,波特率为1/64×fosc。

3> 方式1和方式3

 定时器T1作为波特率发生器,其公式如下:

波特率=2SMOD/32×定时器T1溢出率

 T1溢出率=T1计数率/产生溢出所需的周期

 式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为Fosc/2:当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于Fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。

 定时器T1工作于方式O:溢出所需周期数=8192-X

 定时器T1工作于方式1:溢出所需周期数=65536-X

 定时器T1工作于方式2:溢出所需周期数=256-X

 因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。这种方式下,T1的溢出率[次/秒]计算式可以表示为:

T1溢出率=Fsoc/12[256-X]



串行接口的基本特点

标签:通信   单片机   串口   

原文地址:http://blog.csdn.net/u011046042/article/details/43196313

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!