凌宏江-单片微型计算机原理9教学幻灯片.pptVIP

  • 0
  • 0
  • 约8.04千字
  • 约 61页
  • 2018-10-17 发布于天津
  • 举报

凌宏江-单片微型计算机原理9教学幻灯片.ppt

凌宏江-单片微型计算机原理9教学幻灯片.ppt

材料学院 单片微型计算机原理与应用 (3) 接着主机发送数据(或命令)帧,数据帧的第9位为0。此时各从机接收到的RB8=0。只有与前面地址相符合的从机(即SM2位已清“0”的从机)才能激活中断标志位RI,从而进入中断服务程序,接收主机发来的数据(或命令);与主机发来的地址不相符的从机,由于SM2保持为1,又RB8=0,因此不能激活中断标志RI,就不能接受主机发来的数据帧。从而保证主机与从机间通信的正确性。此时主机与建立联系的从机已经设置为单机通信模式,即在整个通信中,通信的双方都要保持发送数据的第9位(即TB8位)为0,防止其他的从机误接收数据。 (4)结束数据通信并为下一次的多机通信做好准备。在多机系统,每个从机都被赋予唯一的地址。例如,图7-16三个从机的地址可设为:01H、02H、03H。 还要预留1~2个“广播地址”,它是所有从机共有的地址,例如将“广播地址”设为00H。当主机与从机的数据通信结束后,一定要将从机再设置为多机通信模式,以便进行下一次的多机通信。 这时要求与主机正在进行数据传输的从机必须随时注意,一旦接收的数据第9位(RB8)为“1”,说明主机传送的不再是数据,而是地址,这个地址就有可能是“广播地址”。当收到“广播地址”后,便将从机的通信模式再设置成多机模式,为下一次的多机通信做好准备。 9.4 波特率的制定方法 异步串行通信,收、发双方的波特率必须一致。4种工作方式中: 方式0和方式2的波特率是固定的; 方式1和方式3的波特率是可变的,由T1溢出率确定。 9.4.1 波特率的定义 波特率的定义:串行口每秒发送(或接收)的位数。设发送一位所需要的时间为T,则波特率为1/T。 定时器的不同工作方式,得到的波特率的范围不一样,这是由T1在不同工作方式下计数位数的不同所决定。 9.4.2 定时器T1产生波特率的计算 (1) 方式0时,波特率固定为时钟频率fosc的1/12,不受SMOD位值的影响。若fosc?=?12 MHz,波特率为1Mbit/s。 (2) 方式2时,波特率仅与SMOD位的值有关。 方式2波特率= ? ? ??fosc 若fosc?=12MHz,SMOD?=?0,波特率?=?187.5 kbit/s;SMOD?=?1,波特率为375 kbit/s。 (3) 方式1或方式3定时,常用T1作为波特率发生器,其关系式为: 波特率?= ? ???定时器T1的溢出率 由式见,T1溢出率和SMOD的值共同决定波特率。 在实际设定波特率时,T1常设置为方式2定时(自动装初值),即TL1作为8位计数器,TH1存放备重装值。这种方式操作方便,也避免因软件重装初值带来的定时误差。 设定时器T1方式2的初值为X,则有: 定时器T1的溢出率?=? 波特率?=? 由此可见,波特率随fosc、SMOD和初值X而变化。实际使用时,经常根据已知波特率和时钟频率fosc来计算T1的初值X。为避免繁杂的初值计算,常用的波特率和初值X间的关系常列成表的形式,以供查用。 用定时器T1的方式2产生的常用波特率 波 特 率 fosc SMOD位 方式 初值X 62.5kbit/s 12 MHz 1 2 FFH 19.2kbit/s 11.0592 MHz 1 2 FDH 9.6kbit/s 11.0592 MHz 0 2 FDH 4.8kbit/s 11.0592 MHz 0 2 FAH 2.4kbit/s 11.0592 MHz 0 2 F4H 1.2kbit/s 11.0592 MHz 0 2 E8H 有两点需要注意: (1) 在使用时钟振荡频率fosc为12MHz或6MHz时,将初值X 和 fosc 带入公式中计算出的波特率有一定误差。消除误差可采用时钟频率11.0592MHz。 (2) 如果选用很低的波特率,如波特率选为55,可将定时器T1设置为方式1定时。但在这种情况下,T1溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。 【例】 若时钟频率为11.0592MHz,选用T1的方式2定时作为波特率发生器,波特率为2400bps,求初值。 设T1为方式2定时,选SMOD?=?0。 波特率?=? ?=?2400 从中解得X?=?244?=?F4H。 只要把F4H装入TH1和TL1,则T1产生的波特率为2400bps。 这里时钟振荡频率选为11.0592MHz,就可使初

文档评论(0)

1亿VIP精品文档

相关文档