第8章单片机小系统及片外扩展.ppt

  1. 1、本文档共165页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 单片机小系统及片外扩展 89C51单片机芯片内集成了计算机的基本功能部件,已具备了很强的功能。一块芯片就是一个完整的最小微机系统,但片内存储器的容量、并行I/O端口、定时器等内部资源都还是有限的。根据实际需要,89C51单片机可以很方便地进行功能扩展。 扩展应尽量采用串行扩展方案。通过SPI或I2C总线扩展E2PROM、A/D、D/A、显示器、看门狗、时钟等芯片,占用MCU的I/O口线少,编程也方便。 8.1 串行扩展总线接口技术 89C51除芯片自身具有UART可用于串行扩展I/O口线以外,还可利用89C51的3~4根I/O口线进行SPI或I2C的外设芯片扩展,以及单总线的扩展。 8.1.1 SPI串行外设接口总线 SPI(Serial Peripheral Interface——串行外设接口)总线是Motorola公司推出的一种同步串行外设接口,它用于MCU与各种外围设备以串行方式进行通信(8位数据同时同步地被发送和接收),系统可配置为主或从操作模式。外围设备包括简单的TTL移位寄存器(用作并行输入或输出口)至复杂的LCD显示驱动器或A/D转换器等。 SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,它只需4条线: 串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS(SS)。 在SPI接口中,数据的传输只需要1个时钟信号和2条数据线。 由于SPI系统总线只需3~4位数据线和控制线即可扩展具有SPI的各种I/O器件,而并行总线扩展方法需8根数据线、8~16位地址线、2~3位控制线,因而SPI总线的使用可以简化电路设计,省掉了很多常规电路中的接口器件,提高了设计的可靠性。 1. SPI总线系统的组成 图8-1是SPI总线系统典型结构示意图。 单片机与外围扩展器件在时钟线SCK、数据线MOSI和MISO上都是同名端相连。带SPI接口的外围器件都有片选端CS。 在扩展多个SPI外围器件(如图8-1所示)时,单片机应分别通过I/O口线来分时选通外围器件。 当SPI接口上有多个SPI接口的单片机时,应区别其主从地位,在某一时刻只能由一个单片机为主器件。 图8-1中MCU(主)为主器件,MCU(从)为从器件。 SPI有较高的数据传送速度,主机方式最高速率可达1.05 Mb/s,目前不少外围器件都带有SPI接口。 在大多数应用场合中,使用1个MCU作为主机,控制数据向1个或多个从外围器件的传送。 从器件只能在主机发命令时,才能接收或向主机传送数据。 其数据的传输格式是高位(MSB)在前,低位(LSB)在后。 当SPI工作时,在移位寄存器中的数据逐位从输出引脚(MOSI)输出(高位在前),同时从输入引脚(MISO)接收的数据逐位移到移位寄存器(高位在前)。 发送一字节后,从另一个外围器件接收的字节数据进入移位寄存器中。 主SPI的时钟信号(SCK)使传输同步。 SPI总线有以下主要特性: 全双工、3线同步传输;主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。其典型时序图如图8-2所示。 2. 89C51单片机串行扩展SPI外设接口的方法 1) 用一般I/O口线模拟SPI操作 对于没有SPI接口的89C51来说,可使用软件来模拟SPI的操作,包括串行时钟、数据输入和输出。 对于不同的串行接口外围芯片,它们的时钟时序是不同的。 对于在SCK的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应取图8-3中的串行时钟输出P1.1的初始状态为1;在允许接口芯片后,置P1.1为0。 因此,MCU输出1位SCK时钟,同时,使接口芯片串行左移,从而输出1位数据至89C51的P1.3(模拟MCU的MISO线);再置P1.1为1,使89C51从P1.0输出1位数据(先为高位)至串行接口芯片。至此,模拟1位数据输入/输出完成。 以后再置P1.1为0,模拟下一位的输入/输出……依次循环8次,可完成1次通过SPI传输1字节的操作。 对于在SCK的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为0,在接口芯片允许时,先置P1.1为1,此时,外围接口芯片输出1位数据(MCU接收1位数据);再置时钟为0,外围接口芯片接收1位数据(MCU发送1位数据),可完成1位数据的传送。 图8-3为89C51(MCU)与MCM2814(E2PROM)的硬件连接图。 图8-3中,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。 下面介绍用89C51汇编语言模拟SPI串行输入、串行输出和串行输入/

文档评论(0)

企业资源 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档