单片机原理与应用-8.ppt

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

第8章 单片机小系统及片外扩展;8.1 串行扩展总线接口技术;8.1.1 SPI串行外设接口总线;SPI系统可直接与各个厂家生产的多种标准外围器件直接接口,它只需4条线: 串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线CS(SS)。 在SPI接口中,数据的传输只需要1个时钟信号和2条数据线。 ;由于SPI系统总线只需3~4位数据线和控制线即可扩展具有SPI的各种I/O器件,而并行总线扩展方法需8根数据线、8~16位地址线、2~3位控制线,因而SPI总线的使用可以简化电路设计,省掉了很多常规电路中的接口器件,提高了设计的可靠性。;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外设接口的方法;因此,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串行输入、串行输出和串行输入/输出3个子程序。 这些子程序也适用于在串行时钟的上升沿输入和下降沿输出的各种串行外围接口芯片,如8位或10位A/D芯片,74LS系列输出芯片等。 对于下降沿输入、上升沿输出的各种串行外围接口芯片,只须改变P1.1的输出顺序,即输出0,再输入1;再输出0……则这些子程序也同样适用。;(1) MCU串行输入子程序SPIIN;(2) MCU串行输出子程序SPIOUT;(3) MCU串行输入/输出子程序SPIIO;2) 利用89C51串行口实现SPI操作;(1) 串行时钟芯片;HT1380是一个8脚的日历时钟芯片,它可以通过串行口与单片机交换信息,如图8-4所示。 在该芯片中,X1、X2接晶振,SCLK作为时钟输入端,I/O端为串行数据输入、输出端口,RST是复位引脚。由于该芯片只有当RST为高时才能对时钟芯片进行读/写操作,因此可以利用单片机的I/O口线对它进行控制(类似于芯片选择信号)。当RST为低时,I/O引脚对外是高阻状态,因此它允许多个串行芯片同时挂靠在串行端口上。CPU对它的输入/输出操作可以按串行的方式0(即扩展I/O方式)进行。;图8-4 HT1380与单片机接口电路;(2) 串行LED显示接口MAX7219;图8-5MAX7219与单片机接口电路;(3) 串行模拟量输入芯片MAX1458;它既可把转换好的数据通过串口送到CPU,同时也可将转换前的模拟信号输出到显示仪表。 当CS为高电平时,可对MAX1458进行读/写,单片机对它的读/写也是以串口方式0进行的; 当CS为低

文档评论(0)

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

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

1亿VIP精品文档

相关文档