LJY_第7章MCS-51的串行口剖析.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LJY_第7章MCS-51的串行口剖析

43/* (2)在主机先将从机地址(即准备接收数据的从机)发送给各从机,接着才传送数据或命令,主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0。当主机向各从机发送地址时,各从机的串行口接收到的第9位信息RB8为1,且由于SM2=1,则置“1”中断标志位RI,各从机8031响应中断,执行中断服务程序。在中断服务子程序中,判断主机送来的地址是否和本机地址相符合,若为本机地址,则该从机清“0”SM2位,准备接收主机的数据或命令;若地址不相符,则保持SM2=1状态。 主机:SM2=0,TB8=1 SBUF:通讯从机地址 从机: SM2=1 所有从机均可以接收 43/* (3)接着主机发送数据帧,此时各从机串行口接收到 的RB8=0,只有与前面地址相符合的从机系统(即 已清“0”SM2位的从机)才能激活中断标志位RI, 从而进入中断服务程序,在中断服务程序中接收 主机的数据(或命令); 其它的从机因SM2保持为1,又RB8=0不激活中断标志RI,不能进入中断,所接收的数据丢失不作处理,从而保证主机和从机间通讯的正确性。 主机:SM2=0,②TB8=0 符合地址从机:②SM2=0 可以接收主机数据 不符合地址从机: SM2=1 所有从机均不能接收 前图所示的多机系统是主从式,由主机控制多机之间 的通讯,从机和从机的通讯只能经主机才能实现。 43/* 7.4 波特率的制定方法 方式0和方式2的波特率是固定的;方式1和方式3波特 率可由定时器T1的溢出率来确定。 7.4.1 波特率的定义 定义:串行口每秒钟发送(或接收)的位数称为波特率。 对于定时器的不同工作方式,得到的波特率的范围不一样,因为,计数位数的不同。 43/* 7.4 波特率的制定方法 7.4.2 定时器T1产生波特率的计算 (1)方式0,波特率固定为时钟频率fosc的1/12,且不受SMOD位的值的影响。若fosc=12MHz,波特率为fosc/12即1Mb/s。 (2)方式2,波特率与SMOD位的值有关。 方式2波特率= (2SMOD/64)×fosc 若fosc=12MHz: SMOD=0 波特率=187.5kb/s; SMOD=1 波特率=375kb/s 43/* (3)串行口工作在方式1或方式3时,常用定时器T1作为波特率发生器,其波特率为: 波特率= (2SMOD/32)×T1的溢出率 实际设定波特率时,T1常设置为方式2定时(自动装初值)这种方式不仅操作方便,也可避免因软件重装初值而带来的定时误差。 实际使用时,经常根据已知波特率和时钟频率来计算T1的初值X。 公式: 为避免烦杂的初值计算,常用的波特率和初值X间的关系列成表7-2(P148),以供查用。 43/* 表7-2有两点需要注意: (1) 时钟振荡频率为12MHz或6MHz时,表中初值X和相应的波特率之间有一定误差。例如,FDH的对应的理论值是10416波特。 (时钟6MHz),与9600波特相差816波特,消除误差可以调整时钟振荡频率fosc实现。例如采用的时钟振荡频率为11.0592MHz(推荐使用)。 (2) 如果串行通讯选用很低的波特率,例如,波特率选为55,可将定时器T1设置为方式1定时。但在这种情况下,T1溢出时,需用在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。(选择高一点的波特率) 43/* 例7-3 若8031单片机的时钟振荡频率为11.0592MHz,选用T1为方式2定时作为波特率发生器,波特率为2400b/s,求初值。 X=244=F4H 这里时钟振荡频率选为11.0592 MHz,就可使初值为整数,从而产生精确的波特率。 43/* 7.5 串行口的编程和应用 7.5.1 串行口方式1应用编程(双机通讯) 是采用查询还是中断方式? 发送程序的设计 接收程序的设计 7.5.2 串行口方式2应用编程 方式2的使用和方式3基本一样(方式3的波特率要由用户决定),所以具体使用方法可以参照方式3。 7.5.3 串行口方式3应用编程(双机通讯) 43/* 43/* 若SM2=1,表示置多机通讯功能位,这时出现两种可能情况: (1)接收到的第9位数据为1时,数据才装入SBUF,并置中断标志RI=1向CPU发出中断请求; (2)接收到的第9位数据为0时,则不产生中断标志,信息将抛弃。 43/* 43/* 43/* 第7章 MCS-51的串行口 7.1串行口的

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档