版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1补课:16周 周六 第五讲东120427 串行总线扩展技术 本章内容简介: (1)I2C总线扩展技术: I2C总线、 I2C总线的数据传输、 I2C总线的寻址、MCS-51单片机模拟I2C总线、 I2C总线的应用。 (2)SPI总线扩展技术:SPI总线、 MCS-51单片机模拟SPI总线及其应用。37 串行总线扩展技术 采用串行总线扩展技术可以使系统的硬件设计简化,系统的体积减小,同时,系统的更改和扩充更为容易。串行扩展总线的应用是单片机目前发展的一种趋势。 常用的串行扩展总线有:I2C(Inter IC BUS)总线、SPI(Serial Peripheral Interface)总线、M
2、icrowire 总线及单总线(1-Wire BUS)。 MCS-51单片机没有串行总线接口,利用其自身的通用并行线可以模拟多种串行总线时序信号,因此可以充分利用各种串行接口芯片资源。 47.1 I2C总线扩展技术 I2C总线是Philips公司开发的一种双向两线串行总线,以实现集成电路之间的有效控制,这种总线也称为Inter IC 总线。目前,Philips及其它半导体厂商提供了大量的含有I2C总线的外围接口芯片,I2C总线已成为广泛应用的工业标准之一。 标准模式下,基本的I2C总线规范的规定的数据传输速率为100kb/s。快速模式下,数据传输速率为400Kb/s。高速模式下,数据传输速率为
3、3.4Mb/s。I2C总线始终和先进技术保持同步,并保持其向下兼容性。 57.1.1 I2C总线 (1)I2C总线采用二线制传输,一根是数据线SDA(Serial Data Line),另一根是时钟线SCL(serial clock line),所有I2C器件都连接在SDA和SCL上,每一个器件具有一个唯一的地址。 (2)I2C总线是一个多主机总线,总线上可以有一个或多个主机(或称主控制器件),总线运行由主机控制。 主机是指启动数据的传送(发起始信号)、发出时主机是指启动数据的传送(发起始信号)、发出时钟信号、发出终止信号的器件。通常,主机由单片机钟信号、发出终止信号的器件。通常,主机由单片机
4、或其它微处理器担任。或其它微处理器担任。 被主机访问的器件叫从机(或称从器件),它可被主机访问的器件叫从机(或称从器件),它可以是其它单片机,或者其他外围芯片,如:以是其它单片机,或者其他外围芯片,如:A/D、D/A、LED或或LCD驱动、串行存储器芯片。驱动、串行存储器芯片。 67.1.1 I2C总线 (3)I2C总线支持多主(multi-mastering)和主从(master-slave)两种工作方式。 多主方式下,多主方式下,I2C总线上可以有多个主机。总线上可以有多个主机。I2C总总线需通过硬件和软件仲裁来确定主机对总线的控制权。线需通过硬件和软件仲裁来确定主机对总线的控制权。 主从
5、工作方式时,系统中只有一个主机,总线上主从工作方式时,系统中只有一个主机,总线上的其它器件均为从机(具有的其它器件均为从机(具有I2C总线接口),只有主机总线接口),只有主机能对从机进行读写访问,因此,不存在总线的竞争等能对从机进行读写访问,因此,不存在总线的竞争等问题。在主从方式下,问题。在主从方式下,I2C总线的时序可以模拟总线的时序可以模拟 ,I2C总线的使用不受主机是否具有总线的使用不受主机是否具有I2C总线接口的制约。总线接口的制约。 MCS-51系列单片机本身不具有系列单片机本身不具有I2C总线接口,可总线接口,可以用其以用其I/O口线模拟口线模拟I2C总线总线 77.1.1 I2
6、C总线图7.1 单主机系统I2C总线扩展示意图 87.1.1 I2C总线 采用I2C总线设计系统的优点:(1)功能框图中的功能模块与实际的外围器件对应,可以使系统设计直接由功能框图快速地过渡到系统样机。 (2)外围器件直接“挂在”I2C总线上,不需设计总线接口;增加和删减系统中的外围器件,不会影响总线和其他器件的工作,便于系统功能的改进和升级。(3)集成在器件中的寻址和数据传输协议可以使系统完全由软件来定义。 97.1.2 I2C总线的数据传输 图10.2 标准模式和快速模式下器件连接到I2C总线的形式 双向510k负载能力为400pf 107.1.2 I2C总线的数据传输(一)数据位的传送I
7、2C总线上主机与从机之间一次传送的数据称为一帧。由启动信号、若干个数据字节、应答位和停止信号组成。数据传送的基本单元为一位数据。 时钟线SCL的一个时钟周期只能传输一位数据。在SCL时钟线为高电平期间内,数据线SDA上的数据必须稳定。当SCL时钟线变为低电平时,数据线SDA的状态才能改变。 117.1.2 I2C总线的数据传输(二)启始和停止状态 起始(START)状态:I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA出现高电平到低电平跳变时,标志I2C总线传输数据开始。 停止(STOP)状态:I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA出现低电平到高电平跳变时,标
8、志着I2C总线传输数据结束。起始和停止状态是由主机发出 127.1.2 I2C总线的数据传输(三)传输数据 传输到数据线SDA上的每个字节必须为8位 每次传输的字节数不受限制。每个字节后必须跟一个应答(acknowledge)位。数据传输时,首先传送最高位,如果从机暂时不能接收下一个字节数据,如从机响应内部中断,那么,可以使时钟线SCL保持为低电平,迫使主机处于等待状态;当从机准备就绪后,再释放时钟线SCL,使数据传输继续进行。 137.1.2 I2C总线的数据传输(四)应答I2C协议规定,在每个字节传送完毕后,必须有一个应答位。应答位的时钟脉冲由主机产生。在应答时钟有效期间,发送设备把数据线
9、SDA置为高电平;接收设备必须把数据线SDA置为低电平,并且在此期间保持低电平状态,以便产生有效的应答信号。147.1.2 I2C总线的数据传输(五)数据传输格式 在起始状态S之后,先发送一个7位从机地址,接着第8位是数据方向位, 0表示发送(写), 1表示请求数据(读)。一次数据传输总是由主机产生停止状态P而结束。但是,如果主机还希望在总线上传输数据,那么,它可以产生另一个起始状态和寻址另一个从机,不需要先产生一个停止状态。在这种传输方式中,就可能有读写方式的组合。 WR/WR/157.1.2 I2C总线的数据传输 在I2C总线启动或应答信号后的第18个时钟脉冲,对应一个字节的8位数据传送。
10、高电平期间,数据串行传送;低电平期间为数据准备,允许总线上数据电平变化。一旦I2C总线启动,传送的字节数没有限制,只要求每传送一个字节后,对方回应一个应答位。发送时,最先发送的是数据的最高位。每次传送开始有起始信号,结束时有停止信号。传送完一个字节,可以通过对时钟线的控制使传送暂停。(五)数据传输格式167.1.2 I2C总线的数据传输在I2C总线上,传输数据可能的数据格式:(五)数据传输格式(1 1)主机发送器发送到从机接收器。数据传输的方向)主机发送器发送到从机接收器。数据传输的方向不变化。不变化。 177.1.2 I2C总线的数据传输(2 2)在第一个字节后主机立即读从机。)在第一个字节
11、后主机立即读从机。 在I2C总线上,传输数据可能的数据格式:(五)数据传输格式187.1.2 I2C总线的数据传输(3 3)组合格式)组合格式 在I2C总线上,传输数据可能的数据格式:(五)数据传输格式197.1.3 I2C总线的寻址 每个连接在I2C总线的器件,都具有一个唯一确定的地址。在任何时刻,I2C总线上只能有一个主机对总线实行控制权,分时地实现点对点的数据传送。器件(从机)的地址由7位组成,它与1位方向位构成了I2C总线数据传输时起始状态S之后第1个字节。 A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0WR/ 从机地址由固定位和可编程位组成。固定位由器件出厂时给定,用户
12、不能自行设置,它是器件的标识码。207.1.3 I2C总线的寻址WR/WR/当主机发送了第1个字节后,系统中的每个从机(器件)都在起始状态S之后把高7位与本机的地址比较,如果与本机地址一样,则该从机被主机选中,是接收数据还是发送数据由 确定。 从机地址由固定位和可编程位组成。固定位由器件出厂时给定,用户不能自行设置,它是器件的标识码。当系统中使用了多个相同器件时,从机地址中的可编程位,可使这些器件具有不同的地址;这些可编程位也规定了I2C总线上同类芯片的最大个数。 217.1.3 I2C总线的寻址表7.1常见I2C器件的标识码类别型号A6A3静态RAMPCF8570/711010PCF8570
13、C1011E2PROMPCF85821010AT24C021010AT24C041010AT24C081010AT24C161010I/O口PCF85740100PCF8574A0111LED/LCD驱动控制器SAA10640111PCF85760111PCF8578/790111ADC/DACPCF89511001日历时钟PCF85831010227.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟I2C总线方式,并且只能用于主从系统。虚拟I2C总线接口利用MCS-51单片机的I/O口线作为数据线SDA和时钟线SCL,通过软件延时实现I2C总线传输数
14、据的时序要求。(1 1)起始信号()起始信号(S S) 四种典型信号的时序 (2 2) 停止信号(停止信号(P P) 23(3 3)应答信号()应答信号( )A (4 4)无应答信号()无应答信号(A A) 7.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟I2C总线方式,并且只能用于主从系统。虚拟I2C总线接口利用MCS-51单片机的I/O口线作为数据线SDA和时钟线SCL,通过软件延时实现I2C总线传输数据的时序要求。四种典型信号的时序 247.1.5 I2C总线应用 (一) I2C总线扩展I/O口 PCF8574是一个带有中断输出的8位准双向I
15、/O口的I2C总线扩展I/O口芯片。 PCF8574VDDSDASCLP7INTP6P5P4VSSA1A2P0P2P1P3A012345678161514131211109A2A0:地址引脚;P0P7:8位准双向I/O口;SDA、SCL: I2C总线接口; :中断请求输出,低电平有效,漏极开路输出。输入端P0P7电平状态改变时,中断请求输出端出现低电平。对PCF8574进行一次读/写操作后,撤销中断请求,复位为高电平 。 VDD:电源,+5V;VSS:地INT257.1.5 I2C总线应用(一) I2C总线扩展I/O口 PCF8574数据输入/输出操作格式 (1)输出操作AASSLAWI/O
16、DATAP输出时,R/ =0,SLAW为0100(A2A1A0)0。W(2)输入操作AAPSSLARI/O DATAP输入时,R/ =1,SLAW为0100(A2A1A0)1。W267.1.5 I2C总线应用例:采用PCF8574扩展的4个按键、4个LED应用电路,其中P0P3作为按键输入端,P4P7作为LED控制信号的输出端。按键K1控制L1,依此类推,当键按后,相应LED被点亮 。(一) I2C总线扩展I/O口 277.1.5 I2C总线应用AT24CXX系列串行E2PROM是Atme1公司生产的I2C总线接口功能的串行E2PROM器件,具有掉电保护功能 ,AT24C02容量为256字节。
17、AT24CXX系列的写入时间一般需要510ms。(二)I2C总线扩展E2PROM VCCSDASCLGNDA1A2A0WPAT240C212346578SDA、SCL: I2C总线接口;A2A0:地址引脚;WP:写保护。当接低电平时,可进行正常读/写操作;接高电平时,只能读取数据。 287.1.5 I2C总线应用数据读/写操作格式 (二)I2C总线扩展E2PROM (1)输出操作(SADR为AT24C02片内地址) SSLAWASADRAData1Adata2AdataNAPSLAW为1010(A2A1A0)0 (2)输入操作SSLARASADRAPSSLARAdata1Adata2Adata
18、NPSLAW为1010(A2A1A0)1 297.1.5 I2C总线应用MCS-51单片机与AT24C02 的连接电路 (二)I2C总线扩展E2PROM AT24C02与80C51接口 例1:把单片机内部RAM 10H单元开始的8个字节数据写入AT24C02的50H57H单元中。例2 把AT24C02的50H57H中的8个数据读出,存入单片机内部的RAM的20H27H。 307.2 SPI总线扩展技术 SPI(Serial Peripheral Interface)总线是Motorola公司提出的一种同步串行外设接口, 它可以使微控制器(MCU)与各种外围设备以串行方式进行通信以交换信息。外围
19、设备包括FLASHRAM、网络控制器、LCD显示驱动器、A/ D 转换器和微控制器等。 SPI总线使用同步协议传送数据,接收或发送数据时由主机产生的时钟信号控制。SPI接口可以连接多个SPI芯片或装置,主机通过选择它们的片选来分时访问不同的芯片。 317.2.1 SPI总线 (一)SPI总线构成MOSI(Master Out Slave In):主机发送从机接收。 MISO(Master In Slave Out):主机接收从机发送 SCLK或SCK(Serial Clock):串行时钟 CSSS (Chip Select for the peripheral):外围器件的片选。有的微控制器设
20、有专用的SPI接口的片选,称为从机选择( )。 MOSI (SI或SDI)信号由主机产生,接收者为从机;ISO (SO或SDO)信号由从机发出;CLK或SCK由主机发出,用来同步数据传送;片选信号也由主机产生,用来选择从机芯片或装置。 327.2.1 SPI总线(二)SPI总线信号线基本连接关系: SPI 总线系统有以下几种形式:1个主机和多个从机、多个从机相互连接构成多主机系统(分布式系统) 、1个主机与1个或几个I/ O设备构成的系统等。337.2.1 SPI总线(三)主从方式SPI总线接口系统的典型结构(1)在大多数应用场合,可使用1个微控制器作为主控机来控制数据传送,并向1个或几个外围
21、器件传送数据。从机只有在主机发命令时才能接收或发送数据 。 (2)当一个主机通过SPI与多个芯片相连时,必须使用每个芯片的片选,这可通过MCU的I/O端口输出线来实现。 MCUIC1IC2IC3SCKSISOCSCSCSSCKMOSIMISOSCKSISOSCKSISOIO1IO2IO3347.2.2 SPI总线键盘显示器芯片HD 7279A 一 HD7279A功能RESETRCCLKODIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0DPSASBVDDVDDNCVSSNCCSCLKDATASGKEYSFSESDSC12345678910111213142827262524232
22、221201918171615HD7279A是一种管理键盘和LED显示器的专用智能控制芯片。能对8位共阴极LED显示器或64个LED发光管进行管理和驱动,同时能对多达88的键盘矩阵的按键情况进行监视,具有自动消除键抖动和识别按键代码的功能。357.2.2 SPI总线键盘显示器芯片HD 7279A(1)工作电源VDD(引脚1、2)+5V电源VSS(引脚4)电源地(2)片选及控制CS(引脚6)片选信号输入端。低电平时,可向HD7279A发送指令及读取键盘数据。CLK(引脚7)数据串行传送的同步时钟输入端。向HD7279A发送数据和读取键盘数据时,CLK时钟的上升沿表示数据有效。 一 HD7279A
23、功能367.2.2 SPI总线键盘显示器芯片HD 7279ADATA(引脚8)为串行数据输入/输出端,当HD7279A接收命令时,DATA为输入;当读取键盘数据时,DATA引脚在“读”命令的最后一个时钟的下降沿变为输出。当向HD7279A发送数据时,DATA为输入端;RESET(引脚28)复位端。低电平有效。由低电平变成高电平并保持25ms即可实现HD7279A的复位。 KEY(引脚9)按键有效输出端,在无键按下时为高电平;当有键按下时,变为低电平并且一直保持到键释放为止。 一 HD7279A功能377.2.2 SPI总线键盘显示器芯片HD 7279A(3)键盘和LED数码管连接引脚 DIG0
24、DIG7(引脚1825)LED数码管显示位置驱动控制端,与LED数码管的公共端相接,也作为键盘的列扫描线。 SASG(引脚1016)LED数码管的A段G段的驱动输出端。 DP(引脚17)LED数码管的小数点的驱动输出端。 SASG和DP可以作为键盘的行扫描线。HD7279A的芯片内具有驱动电路,可以直接驱动1英吋及以下的LED数码管。DIG0DIG7和SASG及DP还可作为键盘的列扫描线和行扫描线,完成对键盘的监视、译码和键码的识别。 一 HD7279A功能387.2.2 SPI总线键盘显示器芯片HD 7279A(4)RC振荡器振荡输入和输出RC(引脚27)RC电路的输入端,连接HD7279A
25、的外接振荡元件,其典型值为R=1.5k, C=15pF。CLKO(引脚26)振荡电路的输出端。另外,引脚3和引脚5没有定义,应用时必须悬空。 一 HD7279A功能397.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令HD7279A有6条不带数据的命令、7条带数据命令和1条读键盘命令。(一)不带数据的命令(1) 复位命令复位命令的代码为0A4H。当HD7279A接收到该命令后,把所有的显示清除,包括字符消隐属性和闪烁属性,芯片的状态与系统上电后的状态相同。(2) 测试命令测试命令的代码为0BFH。当HD7279A接收到该命 令后,把所有的LED点亮并闪烁,主要用于
26、测试和自检。407.2.2 SPI总线键盘显示器芯片HD 7279A(3) 左移命令左移命令的代码为0A1H。当HD7279A接收到该命令后,把所有的显示左移1位,移位后,最右位空(无显示),该命令不改变各位所设置的消隐和闪烁属性。(4) 右移命令右移命令的代码为0A0H,右移命令功能与左移指令相似,只是方向相反。当HD7279A接收到该命令后,把所有的显示右移1位,移位后,最左位空(无显示),该命令不改变消隐和闪烁属性。二 HD7279A的控制命令417.2.2 SPI总线键盘显示器芯片HD 7279A(5) 循环左移命令循环左移命令的代码为0A3H。当HD7279A接收到该命令后,把所有的
27、显示循环左移1位。移位后,最左位LD7内容移至最右位LD1,如图10.23所示。该命令不改变各个显示位的消隐和闪烁属性。(6) 循环右移命令循环右移命令的代码为0A2H。循环右移命令的功能与循环左移命令相似,只是方向相反。二 HD7279A的控制命令427.2.2 SPI总线键盘显示器芯片HD 7279A(二) 带数据命令(1) 按方式0译码的下载命令 二 HD7279A的控制命令D710000a2a1a0DPd3d2d1d0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0a2、a1、a0用来指出显示位,显示位LD7为最高位。第2字节为显示内容,其中DP为小数点控制位,当DP1,显
28、示小数点;当DP0,不显示小数点。d3d2d1d0用来指出显示数据。 LD2LD3LD0LD1LD6LD7LD4LD543表 10.3 数据 d3d2d1d0 的方式 0 译码真值表 d3 d2 d1 d0 十六进制 七段数码管显示 0 0 0 0 00H 0 0 0 1 01H 0 0 1 0 02H 0 0 1 1 03H 0 1 0 0 04H 0 1 0 1 05H 0 1 1 0 06H 0 1 1 1 07H 1 0 0 0 08H 1 0 0 1 09H 1 0 1 0 0AH 1 0 1 1 0BH 1 1 0 0 0CH 1 1 0 1 0DH 1 1 1 0 0EH 0 1
29、 1 1 0FH 空(不显示) 447.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(2)按方式1译码的下载命令 D711001a2a1a0DPd3d2d1d0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0该命令和按方式0译码下载命令的含义基本相同。 HD7279A收到该命令后,把d3d2d1d0按方式1译码并显示。 45表 10.4 数据 d3d2d1d0 的方式 1 译码真值表 d3 d2 d1 d0 十六进制 七段数码管显示 0 0 0 0 00H 0 0 0 1 01H 0 0 1 0 02H 0 0 1 1 03H 0
30、1 0 0 04H 0 1 0 1 05H 0 1 1 0 06H 0 1 1 1 07H 1 0 0 0 08H 1 0 0 1 09H 1 0 1 0 0AH 1 0 1 1 0BH 1 1 0 0 0CH 1 1 0 1 0DH 1 1 1 0 0EH 0 1 1 1 0FH 467.2.2 SPI总线键盘显示器芯片HD 7279A(二) 带数据命令(3)不译码的下载命令 二 HD7279A的控制命令a2 a1 a0用来指出显示位,第2字节为显示内容,其中dp和ag分别代表小数点和LED数码管显示器的7个显示段,数据位为1时,该段点亮;若数据位为0时,该段不显示。 D710010a2a1
31、a0dpabcdefgD6D5D4D3D2D1D0D7D6D5D4D3D2D1D0477.2.2 SPI总线键盘显示器芯片HD 7279A(二) 带数据命令(4)闪烁控制命令 二 HD7279A的控制命令D710001000D7D6D5D4D3D2D1D0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0闪烁控制命令规定了每个数码管的闪烁属性。D0D7别对应LD0LD7数码管。如果Di=1,则数码管闪烁,如果Di=0 ,则数码管不闪烁。系统上电后,缺省状态为所有数码管均不闪烁。 487.2.2 SPI总线键盘显示器芯片HD 7279A消隐控制命令控制各个数码管的消隐属性,D7D0分别
32、对应数码管LD7LD0, Di=0 ,则数码管被消隐,如果Di=1 ,则数码管显示。当某一位被赋予消隐属性后,HD7279A在扫描时将跳过该位。 (二) 带数据命令(5)消隐控制命令 二 HD7279A的控制命令D710011000D7D6D5D4D3D2D1D0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0497.2.2 SPI总线键盘显示器芯片HD 7279A段点亮命令的功能是点亮数码管中的某一指定的段、或LED发光管矩阵中的某一指定的LED。命令中D5D0为数码管显示段的编号,范围为:00H3FH。 (二) 带数据命令(6) 显示段点亮命令 二 HD7279A的控制命令D7
33、11100000D5D4D3D2D1D0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D050表 10.5 显示段编号与显示段的对应关系。 g f e d c b a dp LD0 00 01 02 03 04 05 06 07 LD1 08 09 0A 0B 0C 0D 0E 0F LD2 10 11 12 13 14 15 16 17 LD3 18 19 1A 1B 1C 1D 1E 1F LD4 20 21 22 23 24 25 26 27 LD5 28 29 2A 2B 2C 2D 2E 2F LD6 33 31 32 33 34 35 36 37 LD7 38 39 3A
34、 3B 3C 3D 3E 3F 段 编号 数码管 517.2.2 SPI总线键盘显示器芯片HD 7279A显示段关闭命令的作用是关闭(熄灭)某个数码管中的某一段。 (二) 带数据命令(7) 显示段关闭命令 二 HD7279A的控制命令D711000000D5D4D3D2D1D0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0527.2.2 SPI总线键盘显示器芯片HD 7279A读取键盘命令的作用是读取当前的键盘代码。与其他带数据的指令不同,该命令的第一个字节00010101是单片机传送到HD7279A的命令,而第二个字节D7D0是HD7279A返回的按键代码。HD7279A的DI
35、G0DIG7作为键盘的行扫描,SASA和DP作为列扫描线,可以构成一个88的矩阵键盘。当有键按下时其范围是00H3FH;而无键按下时代码是FFH。 (三)读取键盘数据命令 二 HD7279A的控制命令D700010101D7D6D5D4D3D2D1D0D6D5D4D3D2D1D0D7D6D5D4D3D2D1D053表 10.6 按键代码的定义 547.2.2 SPI总线键盘显示器芯片HD 7279A三 HD7279A的时序 HD7279A采用串行方式与微处理器通信,串行数据从DATA引脚送入芯片,由CLK引脚输入的同步时钟同步。在DATA引脚上的数据在CLK的上升沿被写入HD7279A的缓冲加
36、寄存器。不带数据的命令的宽度为8个位,即微处理器需要发送8个CLK脉冲;带数据的命令的宽度为16个位,即需要发送8个CLK脉冲;读取键盘数据命令的宽度为16个位,前8个位为微处理器发送到HD7279A的命令,后8个位是HD7279A返回的键盘代码数据。在HD7279A执行读取键盘数据命令时,DATA引脚在第9个CLK脉冲的上升沿时变为输出状态,在第16个CLK脉冲的下降沿恢复为输入状态,等待接收下一条命令。 55(2)带数据的命令时序(1)不带数据的命令时序56(3)读取键盘数据命令577.2.2 SPI总线键盘显示器芯片HD 7279ALD2LD3LD0LD1LD6LD4LD5CLKODIG
37、7DIG6DIG5DIG4DIG3DIG2DIG1DIG0DPSASBVDDVDDCSCLKDATAKEYSGSFSESDSCRESETRC3F3E3D3C3B3A393837363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A09080706050403020100LD7dpabgfedc+5V+5VVSSMCURCRP1RP21.5k15pF200100k88RP210k8 HD7279AHD7279A的典型应用电路的典型应用电路 四 HD7279A与MCS-51
38、单片机的接口587.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口TLC2543为12位开关电容逐次逼近的CMOS A/D转换器,它是TI公司生产的一种串行A/D转换器,它具有输入通道多,精度高,速度高,使用灵活和体积小的优点。597.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口 由通道选择器、数据(地址和命令字)输入寄由通道选择器、数据(地址和命令字)输入寄存器、采样存器、采样/ /保持电路、保持电路、1212位的模位的模/ /数转换器,输出数转换器,输出寄存器、并行寄存器、并行/ /串行转换器以及控制逻辑电路等部分串行转换器以及控制逻辑电路等部分组成。
39、通道选择器根据输入地址寄存器中存放的模组成。通道选择器根据输入地址寄存器中存放的模拟输入通道地址,选择输入通道,并将该输入通道拟输入通道地址,选择输入通道,并将该输入通道中的模拟信号送到采样中的模拟信号送到采样/ /保持电路中;然后,在保持电路中;然后,在1212位位模模/ /数转换器中,把采样的模拟量进行量化编码,转数转换器中,把采样的模拟量进行量化编码,转换成数字量并存放到输出寄存器中。转换结果经过换成数字量并存放到输出寄存器中。转换结果经过并行并行/ /串行转换器转换成串行数据,从串行转换器转换成串行数据,从DOUTDOUT引脚输引脚输出。出。 607.2.3 SPI总线多通道串行输出A
40、/D芯片 TLC2543及接口TLC2543VCCEOCI/O CLOCKDINDOUTREF+REF+AIN7AIN1AIN2AIN3AIN5AIN4AIN6AIN0AIN8GNDAIN10AIN9CS6578123491011151614132019181712(一) TLC2543的引脚功能 (1)AIN0AIN10(引脚19,引脚11、引脚12):输入,模拟量输入通道,在使用4.1MHz的I/O时钟时,外部输入设备的输出阻抗应小于或等于30。(2) (引脚15):输入,片选。引脚出现一个从高到低的变化可以使芯片内部寄存器复位,同时使能DIN DOUT和I/O时钟输入。当引脚出现一个从低
41、到高的变化时,数据输入、数据输出和I/O时钟输入无效。 CS617.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(3)DIN(引脚17):输入,串行数据输入端。最先输入的4位用来选择模拟量输入通道。数据传送时最高位在前,每一个I/O时钟的上升沿送入一位数据,最先4位数据输入到地址寄存器后,接下来的4位用来设置TLC2543的工作方式。 (4)DOUT(引脚16):输出,串行数据输出端,输出的数据有3种长度可供选择:8位、12位和16位,数据输出的顺序可以在TLC2543的工作方式中设定。数据输出引脚DOUT在为高时呈高阻状态,在为低电平时,DOUT引脚输出有效。 (一) T
42、LC2543的引脚功能 627.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(5)EOC(引脚19):输出,A/D转换结束信号,在命令的最后一个I/O时钟的下降沿变低,A/D转换结束后,由EOC由低电平变为高电平。(6)I/O CLOCK(引脚18):输入,输入/输出同步时钟,它有4种功能:1 1)在)在I/O CLOCKI/O CLOCK的前的前8 8个上升沿,把命令字输入到的数据输入个上升沿,把命令字输入到的数据输入寄存器,其中前寄存器,其中前4 4个是输入通道地址选择。个是输入通道地址选择。2 2)在)在I/O CLOCKI/O CLOCK的第的第4 4个个I/OI/
43、O时钟的下降沿,选中通道的模拟信时钟的下降沿,选中通道的模拟信号对芯片中电容阵列进行充电,直到最后一个号对芯片中电容阵列进行充电,直到最后一个I/OI/O时钟结束。时钟结束。3 3)I/OI/O时钟把上次转换结果输出,在最后一个数据输出完后,时钟把上次转换结果输出,在最后一个数据输出完后,开始下一次转换。开始下一次转换。4 4)在最后一个)在最后一个I/OI/O时钟的下降沿,把时钟的下降沿,把EOCEOC变为低电平。变为低电平。(一) TLC2543的引脚功能 637.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(7)参考电源REF 引脚14,正参考电压。REF 引脚13,
44、负参考电压。最大的输入电压取决于正参考电压与负参考电压的差值。(8)芯片工作电源Vcc引脚20,电源正极,5V。GND引脚10,电源地。 (一) TLC2543的引脚功能 647.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(二) TLC2543的时序图10.31 使用片选信号高位在前的时序CS657.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(二) TLC2543的时序图10.32 不使用片选信号高位在前的时序CS667.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口TCL2543的每次转换都必须给其写入命令字,以便确定下一次转换用
45、哪个通道,下次转换结果用多少位输出,转换结果输出是低位在前还是高位在前。 (三) TCL2543的命令字 D7D6D5D4D3D2D1D0其中,高4位D7D6D5D4用于选择模拟量输入通道,D3D2用于选择输出数据的位数,D1用于设定输出数据的位输出顺序是高位在前还是低位在前,最低位D0用于选择输出数据的极性。 677.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(1)高4位(D7D4)设置,可以实现从11个模拟量输入通道中选择1个通道进行转换;或从3个内部自测电压中选择一个,以对转换器进行校准;或者选择软件掉电方式。 (三) TCL2543的命令字 表 10.7 命令字高
46、 4 位设置 模拟量通道选择 D7 D6 D5 D4 模拟量通道 0 0 0 0 AIN0 0 0 0 1 AIN1 0 0 1 0 AIN2 0 0 1 1 AIN3 0 1 0 0 AIN4 0 1 0 1 AIN5 0 1 1 0 AIN6 0 1 1 1 AIN7 1 0 0 0 AIN8 1 0 0 1 AIN9 1 0 1 0 AIN10 校准电压选择 1 0 1 1 2/ )(REFREFVV 1 1 0 0 REFV 1 1 0 1 REFV 软件掉电选择 1 1 1 0 软件掉电 687.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(2)D3D2位选择A/
47、D转换结果的数据输出位数。 转换器的分辨率为12位,内部转换结果总是12位长,选择l2位数据长度时,所有的位都被输出。选择8位数据长度时,低4位被截去。选择l6位时,在转换结果的低位增加了4个被置为0的填充位。 (三) TCL2543的命令字 表 10.8 A/D 转换结果输出位数的设置 D3 D2 输出数据位数 0 12 位 0 1 8 位 1 1 16 位 697.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(3)D1位选择输出数据的传送方式,即下一个I/O周期,A/D转换结果的数据以低位在前或高位在前的方式串行输出。当D1位为0时,A/D转换结果以高位在前的方式从DO
48、UT脚输出;当D1位为1时,则以低位在前的方式从DOUT脚输出。(4)D0位是设置A/D转换结果是以单极性还是双极性二进制数补码表示。当D0位为0时,A/D转换结果以二进制数形式表示;当D0位为1时,则以二进制数补码形式表示 (三) TCL2543的命令字 707.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(四)TLC2543 与MCS-51单片机的接口程序设计 CSIO CLKDINDOUTP1.3P1.0P1.1P1.2MCS-51TLC2543717.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口TLC2543 的8位A/D转换及数据传送程序(结果
49、在R2中)TLC_8AD: MOV R4,#04H ;命令字,AIN0,8位数据,高位在前MOV A,R4 ;(A)中为命令字 CLR P1.3 ;片选有效,选中TLC2543MSB: MOV R5,#08H ;发送命令字,接收8位结果LOOP: MOV P1,#04H ;置P1.2为输入 MOV C,P1.2 ;读P1.2,把DOUT位数据读入 RLC A ;结果移入(A),同时写命令字 MOV P1.1,C ;将命令字的一位经DIN移入 SETB P1.0 ;产生一个时钟脉冲 NOP CLR P1.0 DJNZ R5,LOOP MOV R2,A ;A/D转换的数据存于R2中 RET727.
50、2.4串行输入D/A芯片TLC5615接口技术 TLC5615是具有SPI串行接口的数模(D/A)转换器,其输出为电压型,最大输出电压是基准电压值的2倍。TLC5615有以下特点:(1)10位CMOS电压输出;(2)单一5V直流电源供电;(3)与CPU三线串行接口; (4)最大输出电压可达基准电压的2倍;(5)输出电压具有和基准电压相同极性;(6)建立时间12.5s;(7)内部上电复位,可以把DAC寄存器复位至全零状态。(8)低功耗,最大仅1.75mW。737.2.4串行输入D/A芯片TLC5615接口技术(一)TLC5615的片内结构和引脚功能747.2.4串行输入D/A芯片TLC5615接
51、口技术(一)TLC5615的片内结构和引脚功能VDDAGNDREFINDOUTSCLKDINOUTTLC5615CS12346578CS(1)DIN(引脚1):输入,串行数据输入; (2)SCLK(引脚2):输入,串行时钟输入;(3) (引脚3):输入,芯片选择,低电平有效;(4)DOUT(引脚4):输出,用于多个芯片级联时的串行数据输出;(5)AGND(引脚5):模拟地; (6)REFIN(引脚6):参考电压输入; (7)OUT(引脚7):输出,模拟电压输出;(8)VDD(引脚8):电源。757.2.4串行输入D/A芯片TLC5615接口技术(二)TLC5615的时序 767.2.4串行输入
52、D/A芯片TLC5615接口技术(三)TLC5615与MCS-51单片机的接口及程序设计 DINSCLKDOUTAGNDREFIN80C51+5Vk2P3.2P3.1P3.0TLC5615CSVDD2.5VRDOUT777.2.4串行输入D/A芯片TLC5615接口技术 把待转换的12位数据存放在寄存器R6和R7中,R6存放高4位,R7存放低8位 TLC_DA: CLR P3.0 ;片选有效MOV R2,#04 ;前4位数据位数 MOV A, R6;(R6)为0000XXXXSWAP A ; LCALL WRdata;由DIN输入前4位MOV R2,#08 ;送入的后8位MOV A, R7 ;
53、取低8位数据LCALL WRdata ;由DIN输入低8位CLR P3.1 ;时钟SCLK为低电平 SETB P3.0 ;片选高电平,输入的12位数据有效 RET 单片机发送数据到TLC5615的子程序如下:WRdata: NOP LOOP:CLR P3.1 ;SCLK为低电平RLC A;数据送入进位Cy MOV P3.2,C ;数据移入TLC5615的DIN SETB P3.1; SCLK为高电平 DJNZ R2, LOOP RET 787.2.5 SPI串行编程E2PROMX5045 X5045是Xicor公司生产的具有SPI总线接口的E2PROM芯片,它是早期产品X25045的替代品。X
54、5045把集成了4种功能:上电复位控制、看门狗定时器、电源监督以及具有块保护功能的串行E2PROM存储器。另一款芯片X5043与X5045功能相同,二者区别仅在于输出的复位信号的电平不同,前者为低电平,后者为高电平。 797.2.5 SPI串行编程E2PROMX5045(一)X5045的内部结构和引脚包括上电复位和低电压检测及控制电路、看门狗定时器、数据寄存器、命令解码与控制逻辑电路、E2PROM存储器阵列、块保护逻辑电路、电源阈值复位逻辑电路等部分组成。 807.2.5 SPI串行编程E2PROMX5045(一)X5045的内部结构和引脚VCCSISCKVSSSORESETX5045WP12
55、346578/WDICS(1)CS/WDI(引脚1):输入,芯片选择/看门狗输入。当为高电平时,芯片未选中,此时,引脚SO为高阻态。在高电平时,X5045处于标准的功耗模式时,写周期开始把拉为低电平,将使X5045处于选中状态,器件将工作于工作功耗状态。在上电后,任何操作之前必须要有一个高电平变低电平的过程。作为看门狗输入时,在看门狗定时器超时并产生复位之前,在WDI引脚上的高电平到低电平的跳变,将复位看门狗定时器。817.2.5 SPI串行编程E2PROMX5045(2)SO(引脚2):输出,串行数据输出。SO是一个推/拉串行数据输出引脚,在读数据时,数据在SCK脉冲的下降沿,由SO引脚送出
56、。 (一)X5045的内部结构和引脚(3)WP(引脚3): 输入,写保护。当引脚为低电平时,向X5045中写的操作被禁止,但是其它的功能正常。当引脚是高电平时,所有操作正常,包括写操作。如果在CS是低电平时,WP变为低电平,则会中止向X5045的写操作。但是如果内部写周期已经初始化,WP变为低电平时对写操作无任何影响。 827.2.5 SPI串行编程E2PROMX5045(4)VSS(引脚4):地。(5) SI(引脚5):输入,串行数据输入。SI是串行数据的输入,命令码、地址、数据都是通过SI引脚输入的。数据输入在SCK的上升沿进行,传送时高位在前。(6)SCK(引脚6):输入,串行时钟。在串
57、行时钟SCK的上升沿,通过SI引脚进行数据的输入;在SCK下降沿,通过SO引脚进行数据的输出。(一)X5045的内部结构和引脚837.2.5 SPI串行编程E2PROMX5045(7)RESET(引脚7):输出,复位输出。只要电源Vcc电压下降到小于Vcc最小值时,RESET变为高电平。RESET会一直保持高电平,直到电压值上升到超过Vcc最小值的时间大于200ms时,RESET才会变为低电平。另外,RESET也受看门狗定时器的控制。(8)VCC(引脚8),电源。(一)X5045的内部结构和引脚847.2.5 SPI串行编程E2PROMX5045(1)X5045的命令集表 10.10 X504
58、5 命令及其功能 命令名称 命令格式 操作 WREN 0000 0110 允许写操作,置写允许锁存器 WRDI 0000 0100 禁止写操作,复位写允许锁存器 RSDR 0000 0101 读状态寄存器 WRSR 0000 0001 写状态寄存器(看门狗和块所 BlockLock) READ 0000 A8011 由给定的单元地址开始从存储器中读数据 WRITE 0000 A8010 由给定的单元地址开始向存储器中写数据(116 个字节) (二)X5045的命令集和状态寄存器 857.2.5 SPI串行编程E2PROMX5045(2)X5045的状态寄存器(二)X5045的命令集和状态寄存器 状态寄存器由4个断电不丢失的控制位和2个断电消失的状态位组成,用于设置看门狗定时器的溢出时间和存储器区锁定(BlockLock)保护。 D700WD1WD0BL1BL0WELWIPD6D5D4D3D2D1D0X5045状态寄存器的缺省值为00H867.2.5 SPI串行编程E2PROMX5045WIP(Write-In-Progress)是一个断电消失的只读状态位,用来指示是否X5045正在处于内部写操作的忙状态。WIP可用RDSR指令读出。当读出的状态为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论