- 6
- 0
- 约1.16万字
- 约 46页
- 2017-01-01 发布于重庆
- 举报
第7章 串行通讯口 7.1 概述 7.2 51单片机串行口的控制及工作方式 7.3 波特率的制定方法 (2)方式1(波特率可变) SM0、SM1=01 方式1一帧数据为10位,1个起始位(0),8个数据位,1个停止位(1),先发送或接收最低位。帧格式如下: (4) 方式3 (波特率可变) 与方式2相同的是异步接收发送一帧数据是11位,但波特率与方式2不同,与方式1相同。 注:所有方式当发送或接收一帧数据置位TI和RI标志后,必须软件清0,以备下一帧数据的发送或接收。 7.2.4 用SCON中的SM2实现多机通讯 复习要点 串行通讯 同步通讯 异步通讯 并行通讯 串行通讯数据传送方向 单工 半双工 全双工 SCON PCON 波特率计算和设置 串口通讯初始化 多机通讯(方式2或方式3) 7.3.3 方式1和方式3 B = T1溢出率×2SMOD/32 溢出率--定时器每秒溢出的次数。 由于定时器工作在不同的工作方式时,具有不同的计数器位数,(13位、16位、8位),装入不同的初始常数,因此溢出率也不同。溢出率=1/溢出周期, 溢出周期: T = TC + TI 式中:TC 为定时时间,TC = ( 2n - X)× 机器周期 TI 为本次溢出到再次启动定时之间的时间间隔 具体: a:转入中断入口硬件子程序所需的3个机器周期; b:重装时间常数后中断返回所需的6个机器周期。 说明:上述公式是对定时器方式0和1而言; 定时器方式2由于可自动重装时间常数而省去了转入中断 服务重装时间常数所需的9个机器周期,即TI = 0 。 因此,定时器方式2时溢出率为: 合计大约共需要9个机器周期时间 T=( 2n - X+9)× 机器周期(12/f) 综上分析,串行口方式1和方式3的波特率计算公式为: (1)T1工作于方式0和方式1时:? (2)T1工作于方式2时 : 由式 可知: 当f = 6M ,T1方式0,当SMOD = 0、 X = 0时, 所获得的波特率为最小值: B = 1.905≈2波特 当SMOD = 1,X= 1FFFH时, 所获得的波特率为最大值: B = 3125波特 同理:T1方式1时:波特率范围为 0.24 ~ 3125波特 由式 T1方式2时,波特率范围为61 ~ 31250 波特 例:编一程序,设置8051串行口可发送、接收一帧数据为11位,其波特率选定125波特,设晶振频率为6MHZ。 分析:(1)串口方式2和方式3可发送接收11位数据。 若选方式2:B = f×2SMOD/64 = 6×10 6×2SMOD/64 当SMOD = 0时 B = 93750波特 当SMOD = 1时 B = 187500波特 均不满足125波特,因此,串行口只能选方式3 SCON: 1 1 0 1 0 0 0 0 ? 方式3 允许接收 D0H (2)设置计算波特率 定时器T1选方式2,其波特率范围为 61~ 31250 波特可满足125波特。 T1工作于方式2时 ?选SMOD = 1 则: 解之得 X = 6 程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP BTL ORG 1000H MAIN: MOV SP , # 30H MOV SCON , # 0D0H ;串行口方式3,允许接收
原创力文档

文档评论(0)