单片机原理与嵌入式设计 课件 第9、10章 SPI总线技术、单片机外部总线扩展_第1页
单片机原理与嵌入式设计 课件 第9、10章 SPI总线技术、单片机外部总线扩展_第2页
单片机原理与嵌入式设计 课件 第9、10章 SPI总线技术、单片机外部总线扩展_第3页
单片机原理与嵌入式设计 课件 第9、10章 SPI总线技术、单片机外部总线扩展_第4页
单片机原理与嵌入式设计 课件 第9、10章 SPI总线技术、单片机外部总线扩展_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与嵌入式设计SPI总线技术第九章电子设计系列教材01SPI总线技术原理SPI总线技术原理01SPI总线介绍串行外设接口(SerialPeripheralInterface,SPI)是Freescale公司推出的一种串行外设接口,用于单片机和外围扩展芯片之间的串行连接,它是单片机与外围电路通信的重要方式之一。SPI总线为全双工通信总线,数据传输速度总体来说比IIC总线要快很多,速度可达到Mbps级。其信号线少,协议简单,在主机的移位脉冲下,数据按位传输,一般情况下,高位在前,低位在后。SPI总线技术原理01SPI总线介绍SPI一般有4个引脚,分别为SS、MOSI、MISO、SCK(SPICLK),各个引脚的定义如下。从机选择引脚SS(SlaveSelect)。若一个单片机的SPI工作于主机方式,则置SS引脚为高电平。若一个单片机的SPI工作于从机方式,则当SS-0时,表示主机选中了该从机,反之则未选中该从机。通常情况下,单片机作为主机,外围芯片作为从机。对于单主单从(OneMasterandOneSlave)系统,可以采用图9-1所示的接法。对于一个主机带多个从机的系统,SS引脚可以有多个,每一个从机对应一个SS引脚。不工作时,主机的SS引脚输出高电平,需要选择从机时,主机输出对应从机的Ss引脚的低电平。SPI总线技术原理01SPI总线介绍SPI一般有4个引脚,分别为SS、MOSI、MISO、SCK(SPICLK),各个引脚的定义如下。主出从入引脚MOSI(MasterOut/SlaveIn)。主出从入引脚MOSI是主机输出、从机输入数据。此时,单片机被设置为主机方式,主机送向从机的数据从该引脚输出。如果单片机被设置为从机方式,则来自主机的数据从该引脚输入。SPI总线技术原理01SPI总线介绍SPI一般有4个引脚,分别为SS、MOSI、MISO、SCK(SPICLK),各个引脚的定义如下。主入从出引脚MISO(MasterIn/SlaveOut)。从机的数据从该引脚输入主机,如果单片机被设置为从机方式,则送向主机的数据从该引脚输出。SPI总线技术原理01SPI总线介绍SPI一般有4个引脚,分别为SS、MOSI、MISO、SCK(SPICLK),各个引脚的定义如下。SPI串行时钟引脚SCK(SPISerialClock)。SCK用于控制主机与从机之间的数据传输。串行时钟信号只能由主机发出,经主机的SCK引脚输出给从机的SCK引脚,从而控制整个数据传输过程。一般而言,在主机启动一次传送过程中,自动产生8个时钟周期信号从SCK引脚输出,SCK信号的一个跳变进行一位数据的移位传送。SPI总线技术原理01SPI总线介绍不同的厂家对SPI引脚的定义会有些许差异,名字会有变化,如时钟信号命名为SCLK,使能引脚命名为CS;甚至有的芯片的引脚是按照类似SDI、SDO的方式来命名的,这是站在器件的角度根据数据流向来定义的。SDI:串行数据输入。SDO:串行数据输出。SPI总线技术原理01SPI总线介绍在这种情况下,当主机与从机连接时,就应该用一方的SDO连接另一个方的SDI。SPI单主机-单从机连接示意图如图所示。SPI总线技术原理01SPI总线通信时序SPI是在同步时钟信号SCK的控制下完成数据传输的,但在不同的场合下,时钟信号的相位与极性可能要求不一样。根据控制位时钟相位〈CPHA)和时钟极性(CPOL)的不同,数据线和时钟线产生4种可能的时序,如图所示。SPI总线技术原理01SPI总线通信时序其中,时钟极性(CPOL)表示SPI在空闲时,时钟信号是高电平还是低电平。若CPOL设为1,那么该设备在空闲时SCK引脚下的时钟信号为高电平。当CPOL被设为О时则相反。SPI总线技术原理01SPI总线通信时序当CPHA=O、CPOL=0时,MISO引脚上的数据在第一个SCK沿跳变之前就已经上线了,而为了保证正确传输,MOSI引脚的MSB位必须与SCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后同步时钟信号的上升沿,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(下降沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。时钟相位(CPHA)表示SPI设备是在SCK引脚上的时钟信号变为上升沿时触发数据采样,还是在时钟信号变为下降沿时触发数据采样。若CPHA被设为1,则SPI设备在时钟信号变为下降沿时触发数据采样,在上升沿时发送数据。当CPHA被设为0时则相反。主机和从机必须使用同样的时序模式才能正常通信。SPI总线技术原理01SPI总线通信时序当CPHA=1,CPOL=1时,MSO引脚和MOSI引脚上数据的MSB位在SCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后同步时钟信号的下降沿,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。当CPHA=1、CPOL=0时,MISO引脚和MOSI引脚上数据的MSB位必须与SCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后同步时钟信号的下降沿,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。SPI总线技术原理01SPI总线I/O模拟51单片机不带硬件SPI,这时就需要用IO模拟SPI时序进行通信了。前文介绍过SPI的通信时序有4种,下面以时钟极性(CPOL=0)与时钟相位(CPHA=0)为例,设计其通信程序。02SPI总线实现数据存储SPI总线实现数据存储02AT93C46芯片简介AT93C46是1KB的串行EEPROM存储器芯片。每个寄存器都可通过四线制SPI总线串行读出。AT93C46内部有一个指令缓存器储存输入的串行数据,再由指令译码控制逻辑与内部频率产生器,在指定的地址对数据进行读取或写入操作。SPI总线实现数据存储02AT93C46芯片简介引脚说明如下。SK:串行数据时钟输入引脚,在时钟的上升沿,操作码、地址和数据位进入器件或从器件输出。在发送序列时,时钟最好不停止,以防止读写数据的错误。DI:串行数据输入引脚。DO:串行数据输出引脚,用于输出数据;在地址擦/写周期或芯片擦/写周期时,该引脚用于提供忙/闲信息。SPI总线实现数据存储02AT93C46芯片简介AT93C46可采用8脚DIP、8脚SOIC或8脚TSSOP的封装形式。AT93C46的PDIP-8封装与引脚分布如图所示。引脚说明如下。CS:芯片选择引脚,高电平有效,低电平时进入等待模式。在连续的指令之间,CS信号必须持续保持至少250ns的低电平,才能保证芯片正常工作。SPI总线实现数据存储02AT93C46芯片简介引脚说明如下。GND:电源接地引脚。ORG:存储器构造配置引脚,内部的一个1MQ的电阻将ORG拉高到VCC。该引脚接VCC或悬空时,输出为16位;接GND时,输出为8位。NC:串行数据输出引脚。VCC:电源接正引脚,2.7~5.5V,一般接5V。SPI总线实现数据存储02AT93C46电路设计与功能函数AT93C46的应用电路如图所示。AT93C46的应用电路非常简单,除去正常的SPI的CS、SK、DI、DO接口连接到单片机外,ORG引脚接地,表示输出的字节为8位。考虑到电源的去耦与防干扰,在VCC与GND引脚接入一个100nF的电容。SPI总线实现数据存储02AT93C46电路设计与功能函数对于AT93C46这个EEPROM芯片而言,最重要的功能为读写操作,从而方便实现存储与访问功能。AT93C46的存储器写函数如下。SPI总线实现数据存储02AT93C46电路设计与功能函数对于AT93C46这个EEPROM芯片而言,最重要的功能为读写操作,从而方便实现存储与访问功能。AT93C46写使能的函数如下。SPI总线实现数据存储02AT93C46电路设计与功能函数对于AT93C46这个EEPROM芯片而言,最重要的功能为读写操作,从而方便实现存储与访问功能。参照SPI时序,AT93C46写数据的函数如下。SPI总线实现数据存储02AT93C46电路设计与功能函数对于AT93C46这个EEPROM芯片而言,最重要的功能为读写操作,从而方便实现存储与访问功能。AT93C46的存储器读某一地址的函数如下。SPI总线实现数据存储02AT93C46电路设计与功能函数对于AT93C46这个EEPROM芯片而言,最重要的功能为读写操作,从而方便实现存储与访问功能。参照SPI时序,从AT93C46读一字节数据的函数如下。SPI总线实现数据存储02AT93C46操作原理AT93C46内部有一个指令缓存器储存输入的串行数据,再由指令译码控制逻辑与内部频率产生器,在指定的地址将数据作为读取或写入的动作。AT93C46有7个功能指令,如表所示。SPI总线实现数据存储02AT93C46操作原理其中,SB为起始位,OP为操作码。SPI总线实现数据存储02AT93C46操作原理READ:允许数据从指定的地址读出,当接收到有效的输入信号时,数据将会被放在输出缓存器内,随着频率信号上升同步输出,在DO输出数据前会先输出一个“假的位”,这与起始位的功能一样,再由D15一直输出到DO为止。读指令用于从指定的单元中把数据从高位到低位输出至D0,但逻辑“O”位先于数据位输出。值得指出的是,读指令在时钟的上升沿触发,且需经过一段时间方可稳定。为防止出错,建议在读指令结束后,再输出2~3个时钟脉冲。SPI总线实现数据存储02AT93C46操作原理ERASE:擦除指令,将所指定的地址数据位全部用“1”取代,需要在EWEN的状态下才有效。该指令用于强迫指定地址中所有数据位都为“1”。一旦信息在DI上被译码,就需使CS信号至少保持250ns的低电平,然后将CS置为高电平,此时DO会指示“忙”标志。DO为“0”,表示编程正在进行;DO为“1”,表示该指定地址的寄存器单元已擦除完毕,可以执行下一条指令了。SPI总线实现数据存储02AT93C46操作原理EWDS:当完成数据写入后,必须执行此指令使AT93C46变成EWDS的状态,保护数据避免被噪声或短暂的电磁波等因素干扰,否则EWEN的状态会一直延续到电源被移除为止,当再次给电时,AT93C46会自动恢复到EWDS的状态。SPI总线实现数据存储02AT93C46操作原理EWEN:使能指令。当AT93C46接上电源时,会处于EWDS的状态;因此,如果要将数据写入内存,就必须先改变为EWEN的状态,这样一来WRITE、WRAL、ERASE和ERAL才能成为有效的指令。一旦进入EWEN的状态,除非执行EWDS指令或将电源关闭,否则EWEN的状态会一直维持下去。为了保护芯片内的数据,建议在每一个写周期后都执行一次EWDS指令。READ指令的执行与EWEN和WEDS指令无关。SPI总线实现数据存储02AT93C46操作原理WRITE:允许数据写入指定的地址,需要在EWEN的状态下才有效。写指令时,先写地址,然后将16位或8位数据写入到指定的地址中。当DI输出最后一个数据位后,在时钟的下一个上升沿以前,CS必须为低电平,且需至少保持250ns,然后将CS置为高电平。需要说明的是,写周期时,每写一个字节需耗时4ms。03SPI总线实现实时时钟SPI总线实现实时时钟03DS1302是美国Maxim公司推出的一款高性能、低功耗的实时时钟芯片,附加31字节静态RAM。它支持三线的SPI总线,可一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,每个月的天数与闰年的天数可以自动调整。时钟操作可通过AM/PM指示决定采用24小时格式或12小时格式,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302广泛应用于测量系统中实现数据与出现该数据的时间同时记录,其具有标准的8直插引脚PDIP、表面贴片SOIC等封装。DS1302芯片简介SPI总线实现实时时钟03DS1302的PDIP-8封装与引脚分布如图所示。DS1302芯片简介引脚说明如下。VCC2:主电源引脚,2.0~~5.5V。当Vcc2?Vcc1+0.2V时,由VCC2引脚向DS1302供电,当Vcc2<Vcc1时,由VCC1引脚向DS1302供电。X1:时钟信号输入引脚,一般连接32.768kHz石英晶振,当采用外部时钟输入连接到X1时,X2浮空。SPI总线实现实时时钟03DS1302的PDIP-8封装与引脚分布如图所示。DS1302芯片简介引脚说明如下。X2:时钟信号输出引脚,一般连接32.768kz石英晶振。GND:电源接地引脚。RST:复位引脚,内部有40k2电阻下拉到地,读写时必须置高电平,SPI三线接口时的片选。SPI总线实现实时时钟03DS1302的PDIP-8封装与引脚分布如图所示。DS1302芯片简介引脚说明如下。IO:数据输入/输出口,内部有40kQ电阻下拉到地,SPI三线接口时的双向数据线。SCLK:串行时钟输入,内部有40k电阻下拉到地,SPI三线接口时的时钟线。vCC1:备份电源引脚,常用来连接供电备用电池。SPI总线实现实时时钟03DS1302的应用电路如图所示。DS1302电路设计与功能函数电路原理说明:考虑电源的去耦与防干扰,在VCC2与GND引脚接入一个100nF的电容。X1与X之间接入一个32.768kHz的晶振为芯片提供时钟。SPI总线的RST、IO、SCLK接口由于均有内部下拉电阻,因此分别接上拉电阻10k到VCC电源正端。备用电源引脚VCC1外接一个3.6V的电池,从而在VCC电源为0时依然为芯片提供工作电压。SPI总线实现实时时钟03对于DS1302这个时钟芯片而言,最重要的功能为时钟读写操作,从而方便实现对时间的访问与修改功能。DS1302电路设计与功能函数DS1302修改时钟函数如下。SPI总线实现实时时钟03对于DS1302这个时钟芯片而言,最重要的功能为时钟读写操作,从而方便实现对时间的访问与修改功能。DS1302电路设计与功能函数DS1302向寄存器写入时间的函数如下。SPI总线实现实时时钟03对于DS1302这个时钟芯片而言,最重要的功能为时钟读写操作,从而方便实现对时间的访问与修改功能。DS1302电路设计与功能函数DS1302读取时钟函数设计如下。SPI总线实现实时时钟03对于DS1302这个时钟芯片而言,最重要的功能为时钟读写操作,从而方便实现对时间的访问与修改功能。DS1302电路设计与功能函数DS1302写保护设置函数设计如下。SPI总线实现实时时钟03对于DS1302这个时钟芯片而言,最重要的功能为时钟读写操作,从而方便实现对时间的访问与修改功能。DS1302电路设计与功能函数DS1302初始化函数设计如下。SPI总线实现实时时钟03DS1302操作原理DS1302的内部结构如图所示。SPI总线实现实时时钟03DS1302操作原理DS1302有1个控制寄存器、12个日历及时钟寄存器和31个RAM。其控制寄存器如表所示。控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制。bit7:固定为1。bit6:RAM/CK位,置1为片内RAM,置0为日、小时寄存器选择位。A4~A0:地址位,用于选择进行读写的日、小时寄存器或片内RAM。bit0:读写选择,置0为写,置1为读。SPI总线实现实时时钟03DS1302操作原理DS1302的器件时钟地址表如表所示。SPI总线实现实时时钟03DS1302操作原理DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码。因此结合上述内容,DS1302的时钟寄存器操作表如表所示。04SPI总线实现A/D转换SPI总线A/D转换04TLC2543芯片简介TLC2543是TI公司的12位串行A/D转换器芯片,使用开关电容逐次逼近技术完成A/D转换过程。它可以直接与SPI器件进行连接,不需要其他外部逻辑,可在高达4MHz的串行速率下与主机进行通信。TLC2543除具有高速的转换速度外,片内还集成了14路多路开关。其中11路为外部模拟量输入,3路为片内自测电压输入。其采样率为66kbps,线性误差为士1LSBmax。在转换结束后,EOC引脚变为高电平,转换过程中由片内时钟系统提供时钟,无须外部时钟。在A/D转换器空闲期间,可以通过编程方式进入断电模式,此时器件耗电只有25pA,常用于仪器仪表中。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。AINO~AIN10:模拟量输入引脚。输入信号由内部多路器选通。对于4.1MHz的输入/输出CLOCK,驱动源阻抗必须小于或等于50Q,而且用60pF电容来限制模拟输入电压的斜率。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。GND:电源接地引脚。REF-:负基准电压引脚。基准电压的低端,通常接到地端。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。REF+:正基准电压引脚。基准电压的正端(通常为VCC)被加到REF+,最大的输入电压范围由加于本引脚与REF一引脚的电压差决定。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。CS:片选引脚,电平由高变低时,内部计数器复位。电平由低变高时,在设定时间内禁止。DATAOUT:转换结果的三态串行数据输出引脚。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。DAIAIN:串仃数据输入引脚。由4位的串行地址输入来选择模拟量输入通道。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。CLOCK:输入/输出时钟引脚。CLOCK接收串行输入信号并完成以下4个功能。在CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。CLOCK:输入/输出时钟引脚。CLOCK接收串行输入信号并完成以下4个功能。在CLOCK的第4个下降沿,被选通的模拟输入电压开始向电容充电,直到CLOCK的最后一个下降沿为止。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。CLOCK:输入/输出时钟引脚。CLOCK接收串行输入信号并完成以下4个功能。在CLOCK的第4个下降沿,被选通的模拟输入电压开始向电容充电,直到CLOCK的最后一个下降沿为止。·将前一次转换数据的其余11位输出到DATAOUT引脚,在CLOCK的下降沿时数据开始变化。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。CLOCK:输入/输出时钟引脚。CLOCK接收串行输入信号并完成以下4个功能。CLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位。SPI总线A/D转换04TLC2543芯片简介TLC2543的PDIP-20封装与引脚分布如图所示。引脚说明如下。EOC:转换结束引脚。在最后的CLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止。VCC:电源接正引脚。SPI总线A/D转换04TLC2543电路设计与函数功能TLC2543的应用电路如图所示。电路原理说明:TLC2543的应用电路非常简单,除去正常的SPI的CS、DATAOUT、DATAIN、CLOCK接口连接到单片机外,EOC引脚也连接单片机,REF-引脚接地,REF+引脚连接电源,表示模拟输入电压的范围为О到电源电压。此外,考虑到电源的去耦与防干扰,在vCC与GND引脚接入一个100nF的电容。SPI总线A/D转换04TLC2543电路设计与函数功能对于TLC2543而言,最重要的功能为读取A/D转换值操作,从而方便实现后续数据处理功能。TLC2543读取A/D转换值的函数设计如下。SPI总线A/D转换04TLC2543操作原理TLC2543的内部结构如图所示。SPI总线A/D转换04TLC2543操作原理其内部控制寄存器有8位,数据格式如表所示。05SPI总线实现D/A转换SPI总线实现D/A转换05TLC5618芯片简介TLC5618为美国德州仪器公司1999年推出的产品,是具有串行口的D/A转换器芯片,其输出为电压型,最大输出电压是基准电压值的两倍。它带有上电复位功能,即可以将D/A转换器复位至全零,比早期电流型输出的D/A转换器使用方便。它只需要通过3条串行总线就可以完成10位数据的串行输入,易于控制,适用于测试仪表及工业控制场合。它具有标准的8直插引脚PDIP、表面贴片SOIC等封装。SPI总线实现D/A转换05TLC5618芯片简介TLC5618的PDIP-8封装与引脚分布如图所示。引脚说明如下。DIN:串行数据输入引脚。SCLK:串行时钟输入引脚。Cs:片选引脚,低电平有效。OUTA:模拟输出A。AGND:模拟地。REFIN:基准输入引脚。OUTB:模拟输出B。VDD:电源正电压。SPI总线实现D/A转换05TLC5618电路设计与函数功能TLC5618的应用电路如图所示。电路原理说明:TLC5618的应用电路除去正常的SPI的DIN、SCLK、CS接口连接到单片机外,REFIN通过电阻分压接到2V,表示参考电压为2V,芯片最大输出电压为参考电压的2倍,即4V。也可以在REFIN接入电压基准芯片实现高精度的参考电压输入。此外,考虑到电源的去耦与防干扰,在VCC与GND引脚接入一个100nF的电容。SPI总线实现D/A转换05TLC5618电路设计与函数功能对于TLC5618而言,最重要的功能为对D/A转换进行写操作,从而实现输出想要的模拟电压功能。TLC5618进行D/A转换函数如下。SPI总线实现D/A转换05TLC5618操作原理TLC5618的内部结构如图所示。SPI总线实现D/A转换05TLC5618操作原理可以看出,TLC5618的内部16位移位寄存器分为高4位可编程控制位、低12位数据位,数据格式如表所示。SPI总线实现D/A转换05TLC5618操作原理TLC5618的可编程控制位(D15~D12位)的功能如表所示。SPI总线实现D/A转换05TLC5618操作原理TLC5618的工作时序如图所示。可以看出,只有当片选CS为低电平时,串行输入数据才能被移入16位移位寄存器。当CS为低电平时,在每一个SCLK时钟的上升沿将DIN的一位数据移入16位移寄存器。注意,二进制最高有效位被导前移入。接着,在CS的上升沿将16位移位寄存器的10位有效数据锁存于10位D/A转换器中,供D/A电路进行转换;当片选Cs为高电平时,串行输入数据不能被移入16位移位寄存器中。注意,CS的上升沿和下降沿都必须发生在SCLK为低电平期间。06SPI总线实现温度测量SPI总线实现温度测量05TMP122芯片简介TMP122数字化温度传感器是TI公司推出的一款数字温度传感器芯片,该芯片适用于恶劣环境的现场温度测量,测量温度范围为-40~+125℃,在-25~+85℃范围内测量所得温度的精确度在0.5℃以内(最大为1.5℃),TMP122具有50uA的极低工作电流、仅为0.1uA的关断电流,以及2.7~5.5V的电源电压范围等卓越特性,因此是低功耗应用的最佳选择。此外,TMP122还可为报警引脚提供9~12位的可编程精度及可编程设置点。SPI总线实现温度测量05TMP122芯片简介TMP122集温度测量和A/D转换于一体,具有SPI总线结构,而且数字量输出不用标定,可以直接与单片机连接。其体积小巧,非常适合用它组成超小型温度测量装置。它还可以在诸如计算机外设热保护、恒温控制器、电池管理与环境监控等对空间要求严格的低功耗系统构成的测温装置中使用。SPI总线实现温度测量05TMP122芯片简介TMP122的SOT23-6封装与引脚分布如图所示。引脚说明如下。ALERT:温度报警输出引脚。GND:电源接地引脚。V+:电源接正引脚。SCLK:串行时钟线。CS:使能引脚,低电平有效。SO/I:SPI数据输出/输入引脚。SPI总线实现温度测量05TMP122电路设计与功能函数TMP122的应用电路如图所示。电路原理说明:TMP122的应用电路除去正常的SPI的SCLK、CS、SO/I引脚连接到单片机外,ALERT报警输出引脚悬空不引出,此时不使用该功能,如果需要使用,则该引脚应接上拉电阻输出到单片机引脚。此外,考虑到电源的去耦与防干扰,让温度转换稳定,在VCC与GND引脚接入一个100nF的电容。SPI总线实现温度测量05TMP122电路设计与功能函数对于TMP122而言,最重要的功能为进行温度读取操作,从而实现后续的温度监控等功能。TMP122的温度读取函数设计如下。SPI总线实现温度测量05TMP122操作原理TMP122的内部结构如图所示。TMP122功能的实现和工作方式由其内部的5个寄存器确定,这些寄存器分别是指针寄存器、温度寄存器、配置寄存器、温度上限寄存器和温度下限寄存器。SPI总线实现温度测量05TMP122操作原理指针寄存器用于指定数据的读写。指针寄存器使用最低两位来指明所要读写的数据寄存器,表表述了TMP122中的寄存器与指针寄存器的对应关系,bit1/bit0的上电复位值为0/0。SPI总线实现温度测量05TMP122操作原理TMP122的温度寄存器是16位只读寄存器,用于存储输出最新转换值,其数据格式如表所示,前面13位表示温度值,D2是1,D1、D0是高阻态。另外,上电和复位后温度寄存器的值保持为0℃直至第一次转换结束。SPI总线实现温度测量05TMP122操作原理配置寄存器是16位可读写的寄存器,用于存储温度传感器的运行模式控制位,读写操作时先操作MSB(最高有效位)。TMP122的配置寄存器的数据格式如表2所示。上电或复位后除R1/RO为1/1外,配置寄存器的其他位均为0。TMP122的关机模式可以用于关掉除串行口以外的所有设备电路。当写命令的低8位全为1、一次转换完成或电流消耗小于1puA时,可以触发关机模式。为了避免关机模式,可以在发送任何命令时,使它的低8位不全为0。开机默认为主动模式。SPI总线实现温度测量05TMP122操作原理TMP122的恒温模式位(TM1/TMO)指示设备是否处在比较模式、中断模式或中断比较模式。TMP122模式设置如表所示,上电默认处于比较模式。SPI总线实现温度测量05TMP122操作原理TMP122的极性位(POL)用来调整ARLET引脚的输出极性。默认情况下POL=0,此时ALERT引脚将输出低电平报警信号,不同模式下报警信号电平如图所示。SPI总线实现温度测量05TMP122操作原理当测量温度超过设定温度上限或温度下限时,就会产生故障。故障队列(F1/F0)的设置是为了防止由于环境噪声或连续故障测量而触发TMP122的报警功能。TMP122故障设置如表所示。感谢观看,再见!单片机原理与嵌入式设计电子设计系列教材单片机原理与嵌入式设计单片机外部总线扩展第十章电子设计系列教材01单片机外部总线扩展原理单片机外部总线扩展原理01系统总线结构单片机虽然具有一定的片上资源,但终究有限,当本身资源少于实际需求时,就要进行系统扩展。对于单片机而言,它带有内部总线,可以扩展控制对象,其直接寻址能力从0X0000到0XFFFF。总线扩展一般包括存储器、I/O口、A/D和D/A、键盘/显示器等。在总线模式下,不同对象共享总线,独立编址、分时复用总线,单片机通过地址选择访问对象,完成与各对象之间的信息传递。单片机外部总线扩展原理01系统总线结构对于单片机而言,常用单片机的外部连线有地址总线(AB)、数据总线(DB)和控制总线(CB)。其三总线结构如图所示。单片机外部总线扩展原理01系统总线结构地址总线在地址总线上传送的是地址信号,用于存储单元和IO口的选择。地址总线是单向的,地址信号只能由单片机向外送出。地址总线的数目决定可直接访问的存储单元的数目,如n位地址,可以产生2"个连续地址编码,因此可访问2个存储单元,即通常所说的寻址范围为2地址单元。其中P2口用作高8位地址总线,PO口用作地址/数据分时复用口,它通过锁存器用作低8位地址总线。单片机外部总线扩展原理01系统总线结构数据总线数据总线用于在单片机与总线芯片之间或单片机与IO口之间传送数据。单片机系统数据总线的位数与单片机处理数据的字长一致。51单片机是8位字长,所以数据总线的位数也是8位。数据总线是双向的,可以进行两个方向的数据传送。单片机外部总线扩展原理01系统总线结构控制总线控制总线实际上是一组控制信号线,包括单片机发出的,以及从其他芯片传送给单片机的信号线,其方向为单向。PSEN:片外程序存储器访问允许信号,低电平有效。当CPU从外部程序存储器读取指令或常数时,该信号有效,CPU通过数据总线读指令或常数。扩展外部程序存储器时,用该信号作为程序存储器的独处允许信号。在CPU访问外部数据存储器期间,该信号无效。单片机外部总线扩展原理01系统总线结构控制总线控制总线实际上是一组控制信号线,包括单片机发出的,以及从其他芯片传送给单片机的信号线,其方向为单向。WR:片外数据存储器写信号,低电平有效。RD:片选数据存储器读信号,低电平有效。ALE:地址锁存信号。当CPU访问外部器件时,利用ALE信号的脉冲信号锁存出现在PO口的低8位地址,因此把ALE称为地址锁存信号。单片机外部总线扩展原理01系统总线结构单片机三总线时序如图所示。从图中可知,单片机完成一次总线(读、写)操作周期为T,PO口分时复用,在To期间,P0口送出低8位地址,在ALE的下降沿完成数据锁存,送出低8位地址信号。在T期间,PO口作为数据总线使用,送出或读入数据,数据的读写操作在读(RD)、写(WR)控制信号的低电平期间完成。单片机外部总线扩展原理01系统总线具体实现P0口作为地址/数据分时复用口,既作为地址线的低8位口,又作为数据通信口。如果系统功能需求较少,不需要进行16位地址寻址,则单片机的P2口可直接作为高8位地址总线使用,因此在一些简单系统电路中,常使用P2口直接编址驱动。例如,使用P2.7口(A15)直接译码驱动数码管显示,如图所示。单片机外部总线扩展原理01系统总线具体实现图中,读选通信号WR与A15(P2.7)经过或非门74HCO2来提供74HC573的使能信号。当执行外部寻址时,只有当地址A15满足“0”时,写信号才可作为74HC573的高电平使能信号输入,完成数据锁存。单片机外部总线扩展原理01系统总线具体实现P2口为地址线的A8~A15,因此可寻址8位,如实现8个数码管的驱动。使用P2口直接寻址方式的电路简单,但有效地址数太少,不适合复杂系统设计。单片机外部总线扩展原理01系统总线具体实现单片机的16位寻址功能是通过锁存器来实现的。常用的锁存器有74HC373、74HC573(功能与74HC373一致,引脚排布不一样)、74HC374等。通过锁存器可以实现高电平锁存或低电平锁存。锁存器主要用于锁存低8位地址。单片机外部总线扩展原理01总线上的地址译码总线上的地址译码就是选中总线上的电路设备(控制地址),一般外部设备为低电平选择有效。前文已经介绍了基于P2口的直接译码、锁存低8位的16位地址译码。对于更复杂的系统,可以采用外加译码器的方式实现更加灵活的地址译码。以常用的3-8译码器芯片74HC138为例讲解,电路如图所示。其中3-8译码器芯片74HC138的使能端OEi与OE2接地。OE3连接至A15,而对应的控制输入端A、B、C分别连接至A12、A13、A14。单片机外部总线扩展原理01总线上的地址译码从图中可知,地址ADD0~ADD7对应连接到74HC138的输出Y0~T,则ADD0~ADD7对应的控制地址分别如下。ADD0:0X8000~0X8FFF。ADD1:0X9000~0X9FFF。ADD2:0XA000~0XAFFF。ADD3:OXBO00~0XBFFF。ADD4:OXC000~0XCFFF。ADD5:OXD000~0XDFFF。ADD6:OXEO00~0XEFFF。ADD7:OXF000~~OXFFFF。单片机外部总线扩展原理01总线地址读写在图所示的电路中并没有加入WR、RD引脚就实现了对外部地址的选择控制,在实际应用中,更多的设计是加入WR、RD引脚进行读写控制,如图所示。当单片机不执行外部设备读写操作时,WR、RD两个信号均为高电平,与非门74HCO0输出低电平,74HC138不工作,输出高阻,单片机执行读写外部设备时,WR、RD两个信号中必有一个有效(要变为低电平),从而与非门输出高电平,74HC138开始工作,其输出Y0~Y7此时由A13、A14、A15控制。单片机外部总线扩展原理01总线地址读写在功能电路部分加入WR引脚控制,所设计电路如图所示。在74HC373的数据控制端LE采用或非门74HC02控制。当ADD0地址被选中的同时,WR此时也是低电平,两者经过或非门之后变成高电平。74HC373的数据控制端LE有效,74HC373的输出Q1~Q8等于输入D1~D8。而当地址ADDO没有被选中时,ADD0为高电平,即使有别的设备进行写操作,74HC373的数据控制端LE也一直为低电平。74HC373的输出被锁存在已建立的数据电平上,保持不变。单片机外部总线扩展原理01总线地址读写与不加入WR、RD引脚控制的电路相比,采用WR、RD引脚控制的方式节约了地址线,也更符合外部设备读写控制的本意,但增加了门电路译码,提高了外部电路成本。在应用C语言实现对外部地址读写时,使用地址指针XBYTE。它在库文件absacc.h中的定义:指向外部存储器的0000H单元,其宏定义如下。#define

XBYTE

[(unsigned

char

volatile

xdata*)0]因此,XBYTE后面方括号[中的内容是指数组首地址0000H的偏移地址,如XBYTE[OX2000]是访问偏移地址为0X2000的设备。单片机外部总线扩展原理01总线地址读写例如:XBYTE

[0x8000]=OX55;对外部地址0X8000写入0X55。其中高8位80为P2口输出,低8位00为PO口输出。先输出地址,然后送出数据。dat=XBYTE[0X8000];读取外部地址0X8000的值,赋给dat变量。读的过程也是先输出地址,然后再读入数据。02外部总线实现人机接口外部总线实现人机接口02总线扩展电路设计采用74HC573锁存单片机低8位地址总线电路如图所示。外部总线实现人机接口02总线扩展电路设计采用74HC138进行外部地址译码电路如图所示。74HC138的输出对应的控制地址分别如下。CS_LED:0X8000~0X8FFF。CS_KEY_WR:0X9000~0X9FFF。CSKEYRD:0XA000~0XAFFF。CS_AD:0XB000~0XBFFF。外部总线实现人机接口02总线扩展电路设计采用74HC138进行外部地址译码电路如图所示。74HC138的输出对应的控制地址分别如下。CS_DA:0XCO00~0XCFFF。CS_RTC:0XEO00~0XEFFFCS_LCD:0XD000~0XDFFF。CS_DS:0XF000~0XFFFF。外部总线实现人机接口02发光二极管与数码管驱动外部总线驱动发光二极管8路发光二极管的驱动电路如图所示。其中74HC573的LE引脚由地址选通信号CS_LED与WR信号共同控制。74HC573的输出为低电平时发光二极管发光,否则不亮。外部总线实现人机接口02发光二极管与数码管驱动外部总线驱动发光二极管宏定义发光二极管的控制地址:#define

LEDADDR

XBYTE[0X8000]对发光二极管进行控制时,只需对地址赋值即可,例如:LED_ADDR=0X0F;//高4位输出低电平,低4位输出高电平实验现象:D1~~D4不亮,D5~D8发光。LED_ADDR=0X0F;//高4位输出高电平,低4位输出低电平实验现象:D1~D4发光,D5~D8不亮。外部总线实现人机接口02发光二极管与数码管驱动外部总线驱动数码管共阳极数码管的驱动电路如图所示。其中74HC573的LE引脚由地址选通信号CS_Ds与WR信号共同控制。74HC573的输出连接至数码管的各位。74HC573各位输出为低时对应的数码管位发光,否则不亮。外部总线实现人机接口02发光二极管与数码管驱动外部总线驱动数码管宏定义数码管的控制地址:#define

Digital_ADDR

XBYTE[0XF000]共阳极数码管0~F的编码可定义为数组:unsignedcharcodeDigital_table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0×82,0xf8,0×80,0x90,0x88,0×83,0xc6,0xa1,0×86,0x8e};对数码管进行显示控制时,只需对地址赋值即可,例如:Digital_ADDR=Digital_table[0];//显示数字0Digital_ADDR=Digitaltable[10];//显示字符A外部总线实现人机接口02LCD1602驱动LCD1602是一款字符型液晶,是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5×7或5×11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。LCD1602可显示两行,每行16个字符,具有体积小、功耗低、显示内容丰富、超薄轻巧等优点。外部总线实现人机接口02LCD1602驱动LCD1602的外形与引脚分布如图所示。LCD1602引脚功能说明如下。第1脚:VSS为电源地。第2脚:VDD接5V电源正极。外部总线实现人机接口02LCD1602驱动LCD1602引脚功能说明如下。第3脚:VCC为液晶显示器对比度调整引脚,接正电源时对比度最低,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。外部总线实现人机接口02LCD1602驱动LCD1602引脚功能说明如下。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E为使能(Enable)引脚,高电平时读取信息,负跳变时执行指令。第7~14脚:D0~D7为8位双向数据引脚。第15、16脚:空脚或背灯电源。15脚背灯正极,16脚背灯负极。外部总线实现人机接口02LCD1602驱动LCD1602操作说明如表所示。外部总线实现人机接口02LCD1602驱动LCD1602的驱动电路如图所示。其中,E引脚由地址选通信号CS_LCD与WR和RD信号共同控制。三者通过与非门连接至E引脚。根据LCD1602操作说明,当A0为高电平、A1为低电平时,读写信号为低电平,CS_LCD为低电平,此时E引脚为高电平,即可通过D0~D7写入数据。当A0为低电平、A1为低电平时,读写信号为低电平,CS_LCD为低电平,此时E引脚为高电平,即可通过DO~D7写入指令码。外部总线实现人机接口02LCD1602驱动对应电路连接,相关程序定义与函数如下。定义LCD1602操作地址:外部总线实现人机接口02LCD1602驱动发送命令函数:外部总线实现人机接口02LCD1602驱动发送命令函数:外部总线实现人机接口02LCD1602驱动向液晶写入数据函数:外部总线实现人机接口02LCD1602驱动液晶显示位置函数:外部总线实现人机接口02LCD1602驱动液晶显示字符函数:以在第1行第2个位置显示字符A为例,编写如下代码即可实现:外部总线实现人机接口02矩阵键盘驱动矩阵键盘的驱动电路如图所示。其中74HC573的LE引脚由地址选通信号CS_KEY_WR与WR信号共同控制,其引脚Q1~Q4输出按键扫描信号。74HC245的OE引脚由地址选通信号CSKEYRD与RD信号共同控制,从而实现对按键值(所对应的引脚BO~B3)读取。外部总线实现人机接口02矩阵键盘驱动宏定义按键的控制地址:#define

KEY_WR_ADDR

XBYTE[0x9000]

//写地址,实现按键扫描电平输出#define

KEY_RD_ADDR

XBYTE[0XA000]

//读地址,实现按键值读取外部总线实现人机接口02矩阵键盘驱动宏定义按键的控制地址:#define

KEY_WR_ADDR

XBYTE[0x9000]

//写地址,实现按键扫描电平输出#define

KEY_RD_ADDR

XBYTE[0XA000]

//读地址,实现按键值读取按键扫描函数获取按键值之后,可执行对应按键操作,相关操作代码如下。03外部总线实现A/D转换外部总线实现A/D转换03ADC0809是采用CMOS工艺的8通道、8位逐次逼近式A/D转换芯片。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其DIP-28封装与引脚分布如图所示。ADC0809芯片简介各引脚功能说明如下。INO~IN7:模拟量输入通道,表示芯片可分时地分别对8个模拟量进行测量转换。A~C:地址线。通过这三条地址线的不同编码来选择对哪个模拟输入通道进行测量转换。外部总线实现A/D转换03ADC0809是采用CMOS工艺的8通道、8位逐次逼近式A/D转换芯片。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其DIP-28封装与引脚分布如图所示。ADC0809芯片简介各引脚功能说明如下。ALE:地址锁存允许信号。在低电平时向A~C写地址,ALE跳至高电平后A~C上的数据被锁存。START:启动转换信号。它为上升沿后,将内部寄存器清零。当它为下降沿后,开始A/D转换。外部总线实现A/D转换03ADC0809是采用CMOS工艺的8通道、8位逐次逼近式A/D转换芯片。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其DIP-28封装与引脚分布如图所示。ADC0809芯片简介各引脚功能说明如下。D0~D7:数据输出口。转换后的数字数据量输出。OE:输出允许信号,是对D0~D7的输出控制端,OE=0,输出端呈高阻态,OE=1,输出转换得到的数据。外部总线实现A/D转换03ADC0809是采用CMOS工艺的8通道、8位逐次逼近式A/D转换芯片。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其DIP-28封装与引脚分布如图所示。ADC0809芯片简介各引脚功能说明如下。CLOCK:时钟信号。ADCO809内部没有时钟电路,需由外部提供时钟信号。CLOCK端可接入的时钟信号频率是10~1280kHz。EOC:转换结束状态信号。EOC=0,正在进行转换。EOC-1,转换结束,可以进行下一步操作。外部总线实现A/D转换03ADC0809是采用CMOS工艺的8通道、8位逐次逼近式A/D转换芯片。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。其DIP-28封装与引脚分布如图所示。ADC0809芯片简介各引脚功能说明如下。VREF+、VREF-:参考电压正端与负端。参考电压用来与输入的模拟量进行比较,作为测量的基准。VCC:电源引脚。GND:电源接地引脚。外部总线实现A/D转换03由高位地址线A13~A15通过74HC138组成译码电路产生ADC0809的片选信号CS_AD。CS_AD和WR信号共同控制ALE引脚和START引脚,实现启动信号。CS_AD和成RD信号共同控制OE引脚,实现转换数据的读取。地址线A~~C分别连接到A4、A3、A2,实现对各个通道的地址编码。转换结束状态信号EOC连接至P10口,实现对转换结束状态的获取。ADC0809的时钟信号由单片机的ALE引脚经过D触发器进行4分频后提供。如果单片机采用12MHz晶振,则单片机ALE引脚为晶振频率的1/6,经过分频后给ADC0809的频率为500kHz。ADC0809电路设计功能函数外部总线实现A/D转换03ADC0809应用电路如图所示ADC0809电路设计功能函数外部总线实现A/D转换03根据以上电路图定义ADCO809操作地址:ADC0809电路设计功能函数外部总线实现A/D转换03ADCO809的内部结构如图所示。ADC0809操作原理外部总线实现A/D转换03ADCO809的操作时序如图所示。ADC0809操作原理外部总线实现A/D转换03根据操作时序图,ADC0809初始化时,使START和OE信号全为低电平,将要转换的通道地址送到地址线A、B、C上。使ALE为高电平,将地址存入地址锁存器中,此地址经译码选通8路模拟输入之一到比较器。给START正脉冲信号,ADC0809在信号的上升沿将所有内部寄存器清零,下降沿时开始进行A/D转换。A/D转换结束后,EOC输出高电平,将OE设置为高电平,转换结果的数字量即可输出到数据总线上。ADC0809操作原理04外部总线实现D/A转换外部总线D/A转换04DAC0832芯片简介DAC0832是采用CMOS工艺的8位电流型D/A转换芯片,与微处理器完全兼容。它有价格低廉、接口简单、转换控制容易等优点,在单片机系统中应用广泛。其内部由8位输入锁存器、8位D/A转换器、8位D/A转换电路及转换控制电路构成。其DIP-20封装与引脚分布如图所示。外部总线D/A转换04DAC0832芯片简介引脚说明如下。CS:片选信号,与允许锁存信号ILE组合来决定WR1是否起作用。ILE:允许锁存信号。WR1:写信号1,作为第一级锁存信号,将输入资料锁存到输入寄存器中(此时,WR1必须和CS、ILE同时有效)。外部总线D/A转换04DAC0832芯片简介引脚说明如下。WR2:写信号2,将锁存在输入寄存器中的资料送到D/A转换器中进行锁存(此时,传输控制信号XFER必须有效)。XFER:传输控制信号,用来控制WR2。DI7~DIO:8位数据输入引脚。外部总线D/A转换04DAC0832芯片简介引脚说明如下。IOUT1:模拟电流输出引脚1。当D/A转换器中全为1时,输出电流最大,当D/A转换器中全为0时,输出电流为0。IOUT2:模拟电流输出引脚2。IOUT1+IOUT2=常数。外部总线D/A转换04DAC0832芯片简介引脚说明如下。RFB:反馈电阻引出引脚。DAC0832内部已经有反馈电阻,所以RFB引脚可以直接接到外部运算放大器的输出引脚。这相当于将反馈电阻接在运算放大器的输入引脚和输出引脚之间。VREF:参考电压输入引脚。可接电压范围为+10V。外部标准电压通过VREF与T形电阻网络相连。外部总线D/A转换04DAC0832芯片简介引脚说明如下。VREF:参考电压输入引脚。可接电压范围为+10V。外部标准电压通过VREF与T形电阻网络相连。VDD:芯片供电电压引脚。范围为+5~+15V,最佳工作状态是+15V。GND:电源接地引脚。外部总线D/A转换04DAC0832电路设计与功能函数DAC0832的应用电路如图所示。图中DAC0832的片选信号CSDA由74HC138译码器产生。DAC0832的CS、XFER连在一起由CS_DA控制,WRi、WR2同时被WR控制。当对DAC0832地址写入时,DAC0832工作在直通模式,输入总线上的8位数据信号被传入其内部进行转换。外部总线D/A转换04DAC0832电路设计与功能函数对应电路图定义DAC0832操作地址:#define

DAC0832_ADDR

XBYTE[0XC000]//DAC0832转换通道地址DAC0832写数据函数:调用D/A转换器写数据转换函数即可实现D/A转换,得到不同的电压值:DAC0832_set(0X00);//输出最小电压,0VDAC0832_set(0XFF);//输出最大电压,5V外部总线D/A转换04DAC0832操作原理DAC0832的内部结构如图所示。外部总线D/A转换04DAC0832操作原理DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为LE;第二级锁存器称为D/A转换器,它的锁存信号为传输控制信号。因为有两级锁存器,所以DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两级锁存器还可以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。外部总线D/A转换04DAC0832操作原理当ILE为高电平、CS和WR1为低电平时,LE1为高电平,输入寄存器的输出跟随输入的变化而变化;当WR1电平由低变高时,LE1为低电平,数据被锁存到输入寄存器中,这时的输入寄存器的输出不再跟随输入的变化而变化。对于第二级锁存器来说,XFER和WR2同时为低电平时,LE2为高电平,D/A转换器的输出跟随其输入的变化而变化;此后,当WR2由低变高时,LE2变为低电平,将输入寄存器的资料锁存到D/A转换器中。外部总线D/A转换04DAC0832操作原理DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。输入寄存器锁存,D/A转换器直通。具体地说,就是使WR2和XFER都为低电平,D/A转换器的锁存选通信号得不到有效电平而直通;输入寄存器的控制信号ILE处于高电平、CS处于低电平,这样,当WR1送来一个负脉冲时,就可以完成1次转换。输入寄存器直通,D/A转换器锁存。就是使WRi和CS为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号因处于无效状态而直通;当WR2和XFER输入1个负脉冲时,使得D/A转换器工作在锁存状态,提供锁存数据进行转换。外部总线D/A转换04DAC0832操作原理根据上述对DAC0832的输入寄存器和D/A转换器不同的控制方法,DAC0832有如下3种工作方式。单缓冲方式。单缓冲方式是控制输入寄存器和D/A转换器同时接收数据,或者只用输入寄存器而把D/A转换器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。双缓冲方式。双缓冲方式是先使输入寄存器接收数据,再控制输入寄存器输出数据到D/A转换器,即分两次锁存输入数据。此方式适用于多个D/A转换同步输出的情形。直通方式。直通方式是数据不经两级锁存器锁存,即WRi、WR2、XFER、CS均接地,ILE接高电平。此方式适用于连续反馈控制线路。05外部总线实现实时时钟外部总线实现实时时钟05DS12887芯片简介DS12887是采用CMOS工艺的时钟芯片,它把时钟芯片所需的晶振和外部电池等相关电路集于芯片内部。DS12887在地址32H内增加了十几字节。对于少于31天的月份,所有器件的日期能够在月末自动调整,带有闰年补偿。它可配置为24小时或12小时格式,带AMPM指示。精确的温度补偿电路用于监视电源状态。一旦检测到主电源失效,器件就可以自动切换到备用电源。采用DS12887设计的时钟电路不需要任何外围电路并具有良好的微机接口。DS12887具有功耗低、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合。外部总线实现实时时钟05DS12887芯片简介其DIP封装与引脚分布如图所示。部分引脚功能说明如下。VCC:直流电源引脚,默认5V电压。当电压在正常范围内时,数据可读写;低于4.25V时,读写被禁止,计时功能仍继续;当下降到3V以下时,RAM和计时器被切换到内部电池。外部总线实现实时时钟05DS12887芯片简介部分引脚功能说明如下。MOT:模式选择,MOT引脚接到VCC时,选择MOTOROLA时序,当接到GND时,选择INTEL时序。SQw:方波输出,当VCC的电压低于4.25V时没有作用。ADO-AD7:双向地址/数据复用线,作为总线接口。外部总线实现实时时钟05DS12887芯片简介部分引脚功能说明如下。AS:地址选通输入,用于实现信号分离,在ALE的下降沿把地址锁入DS12887。外部总线实现实时时钟05DS12887芯片简介部分引脚功能说明如下。DS:数据选通或读输入,有两种操作模式,取决于MOT引脚的电平。当使用MOTOROLA时序时,DS是正脉冲,出现在总线周期的后段,称为数据选通。在读周期,DS指示DS12887驱动双向总的时刻;在写周期,DS的后沿使DS12887锁存写数据。当使用INTEL时序时,DS称作RD,RD与典型存储器的允许信号(OE)的含义相同。外部总线实现实时时钟05DS12887芯片简介部分引脚功能说明如下。R/W:读写输入,当使用MOTOROLA时序时,R/W指示当前周期是读还是写;当使用INTEL时序时,R/W信号是一低电平信号,称为WR,在此模式下,R/W引脚与通用RAM的写允许信号(WE)的含义相同。CS:片选输入,在访问DS12887的总线周期内,片选信号必须保持低电平。外部总线实现实时时钟05DS12887芯片简介部分引脚功能说明如下。iRQ:中断输出,低电平有效,可作为单片机的中断输入。没有中断条件满足时,RQ处于高阻态。IRQ线是漏极开路的,要求外接上拉电阻。RESET:复位输入。外部总线实现实时时钟05DS12887电路设计与功能函数DS12887的应用电路如图所示。图中DS12887的MOT引脚接地,芯片工作在INTEL时序,与单片机外部总线对应连接。D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论