单片机C语言程序设计 教学课件 作者 侯殿有4.14.ppt

单片机C语言程序设计 教学课件 作者 侯殿有4.14.ppt

  1. 1、本文档共126页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四章 MCS-51与其他常用芯片接口 14.1 MCS-51单片机与C总线芯片接口 单片机应用系统中,带有C总线接口的电路使用越来越多,采用C总线接口的器件连接线和引脚数目少,成本低。与单片机连接简单,结构紧凑,在总线上增加器件不影响系统的正常工作,系统修改和可扩展性好,即使工作时钟不同的器件也可以直接连接到总线上,使用起来很方便,但软件程序稍复杂,速度受系统主频和连接器件的多少影响。 14.1.1 总线简介 1.C总线的主要特点 C总线是由PHILIPS公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上器件之间传送信息。这种总线的主要特点有: (1) 总线只有两根线,即串行时钟线(SCL)和串行数据线 (SDA),这在设计中大大减少了硬件接口。 (2) 每个连接到总线上的器件都有一个用于识别的器件地址,器件地址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立了简单的主从关系,每个器件既可以作为发送器,又可以作为接收器。 (3) 同步时钟允许器件用不同的波特率进行通信。 (4) 同步时钟可以作为停止或重新启动串行口发送的握手信号。 (5) 串行数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。 2.C总线的基本结构 C总线是由数据线SAD和时钟线SCL构成的串行总线,可发送和接收数据。各种采用C总线标准的器件均并联在总线上,每个器件内部都有C接口电路,用于实现与C总线的连接,结构形式如图14.1所示。 每个器件都有唯一的地址,器件两两之间都可以进行信息传送。当某个器件向总线上发送信息时,他就是发送器(也叫主控制器),而当其从总线上接受信息时,它又称为接收器(又叫从控制器)。在信息的传输过程中,主控制器发送的信号分为器件地址码、器件单元地址和数据3部分,其中器件地址码用来选择从控制器,确定操作的类型(是发送信息还是接受信息);器件单元地址用于选择器件内部的单元;数据是在各器件间传递的信息。处理过程就像打电话一样,只有拨通号码才能进行信息交流。各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 3.C总线信息传送 C总线没有进行信息传送时,数据线SDA和时钟线SCL都为高电平。当主控制器向某个器件传送信息时,首先应向总线传送开始信号,开始信号和结束信号规定如下: 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 开始信号和结束信号之间传送的是信息,信息的字节没有限制但是每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间,因为SCL为高电平的期间SDA状态的改变已经被用来表示开始信号和结束信号。 每个字节后面必须接收一个应答信号ACK,ACK是从控制器在接收到8 位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据,主控制器接收到应答信号ACK后,可根据实际情况作出是否继续传递信号的判断。若未收到ACK,则判断为从控制器出现故障,具体情况如图14.2所示。 主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下: 4.C总线读、写操作时序 (1)指定单元读 该操作从所选器件指定地址读,读的字节数不限,格式如下,见图14.3: 图14-3中,只给出读一个字节SDA的时序,当SCL为高,SDA也为高时,C向总线写第一个字节数据,1010是器件的类型,是EPROM,LSB=0是写命令,接到ACK应答后,再发一字节数据,这个数据是EPROM内的单元地址;再接到ACK后,发一个读命令,此命令LSB=1,然后收到ACK后就可以从SDA线上串行读出数据,收到一个完整字节后不用等ACK,直接发低电平结束本次操作,注意,读操作完后没有ACK。 (2)指定单元写 该操作从所选器件当前地址写,写的字节数不限,格式如下,见图14.4: 图14-4中,只给出写一个字节SDA的时序,当SCL为高,SDA也为高时,C向总线写第一个字节数据,1010是器件的类型,是EPROM,LSB=0是写命令,接到ACK应答后,再发一字节数据,这个数据是EPROM内的单元地址;再接到ACK后,发一个字节数据,将数据写入EPROM内的单元地址。发完一个完整字节后等ACK,收到ACK后发低电平结束本次写操作。 14.1.2 C总线与MCS-51单片机接口 这里通过串行EEPROM电路CAT24WCXX与MCS-51单片机接口来介绍C总线的使用。 1.串行EEPROM电路CAT

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档