单片机系统的扩展及接口技术.ppt

上传人:小飞机 文档编号:6449707 上传时间:2023-11-01 格式:PPT 页数:121 大小:7.97MB
返回 下载 相关 举报
单片机系统的扩展及接口技术.ppt_第1页
第1页 / 共121页
单片机系统的扩展及接口技术.ppt_第2页
第2页 / 共121页
单片机系统的扩展及接口技术.ppt_第3页
第3页 / 共121页
单片机系统的扩展及接口技术.ppt_第4页
第4页 / 共121页
单片机系统的扩展及接口技术.ppt_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《单片机系统的扩展及接口技术.ppt》由会员分享,可在线阅读,更多相关《单片机系统的扩展及接口技术.ppt(121页珍藏版)》请在三一办公上搜索。

1、第五章 单片机系统的扩展及接口技术,5.0 系统扩展概述5.1 串行扩展总线接口技术5.2 并行扩展三总线的产生5.3 存储器扩展5.4 I/O口的扩展5.5 键盘与显示器接口技术5.6 数/模与模/数转换接口技术,最小应用系统 单片机所具有的各种功能能满足应用系统的要求,不需要进行扩展的单片机应用系统。,第五章 单片机系统的扩展及接口技术,如:8051 8751 89C51 外接了EPROM的8031 单片机应用系统。,5.0 系统扩展概述,2.系统扩展 当单片机最小系统不能满足系统功能要求时,需要扩展ROM、RAM、I/O口及其它所需的外围芯片。,输入/输出接口扩展 简单的I/O接口(中小

2、规模集成电路)适用于较简单的扩展系统 可编程I/O接口(8155/8255/8253/8250/8251),系统扩展一般有下列几方面内容:,外部程序存储器 E2PROM/EPROM 的扩展,外部数据存储器 RAM 的扩展,E2PROM既可以扩展为片外EPROM,也可以扩展为片外RAM.,扩展应尽量采用串行扩展方案。通过SPI或I2C总线扩展E2PROM、A/D、D/A、显示器、看门狗、时钟等芯片,占用MCU的I/O口线少,编程也方便。,5.1 串行扩展总线接口技术,一、SPI(串行外设接口)总线,SPI(Serial Peripheral Interface)总线 一种同步串行外设接口,用于M

3、CU与各种外围设备以串行方式进行通信(8位数据同时同步地被发送和接收),系统可配置为主或从操作模式。SPI总线定义:串行时钟线(SCK,同步脉冲)主机输入/从机输出数据线(MISO,高位在前)主机输出/从机输入数据线(MOSI,高位在前)从机选择线CS(SS),89C51除自身具有UART可用于串行扩展I/O口(方式0)以外,还可利用它的34根I/O口线进行SPI或I2C的外设芯片扩展、以及单总线的扩展。,SPI系统可直接与多种标准外围器件直接接口。外围设备包括:简单的移位寄存器(用作并行输入或输出口)至复杂的LCD显示驱动器或A/D转换器等。,与并行总线相比,SPI总线的使用可以简化电路设计

4、,省掉了很多常规电路中的接口器件,提高了设计的可靠性。,1.SPI总线系统的组成,SPI总线系统典型结构示意图。,注:有多个SPI接口的单片机时,应为一主多从,在某一时刻只能由一个单片机为主器件;在扩展多个SPI外围器件时,单片机应分别通过I/O口线来分时选通外围器件。,SPI主机方式最高数据传输率可达1.05 Mb/s。数据的传输格式是高位(MSB)在前,低位(LSB)在后。输入输出可同时进行。从器件只能在主机发命令时,才能接收或向主机传送数据。主SPI的时钟信号(SCK)使传输同步。,SPI总线有以下主要特性:全双工、3线同步传输;主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲

5、突保护;总线竞争保护等。典型时序图如下所示(在一个CLK中,下降沿输出,上升沿输入。或反之)。,图8-2 SPI串行总线典型时序图,2.89C51单片机串行扩展SPI外设接口的方法,(1)用一般I/O口线模拟SPI操作 对于不同的串行接口外围芯片,它们的时钟时序是不同的。,对于在时钟上升沿输入数据和在下降沿输出数据的器件,一般取时钟输出P1.1的初态为1;在允许接口芯片后,置P1.1为0。,图8-3为89C51与MCM2814(E2PROM)的硬件连接图。,P1.0模拟MCU的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入

6、端(MISO)。,用于89C51模拟SPI串行输入、串行输出和串行输入/输出的3个子程序如下。它们适用于在串行时钟的下降沿输出和上升沿输入的各种串行外围接口芯片,如A/D芯片,74系列输出芯片等。,单片机模拟1位数据输入/输出的过程:,例1.MCU串行输入子程序SPIIN 从2814的SPISO线上接收1字节数据并放入寄存器R0中。,SPIIN:SETB P1.1;使P1.1(时钟)输出为1CLRP1.2;选择从机MOVR1,#08H;置循环次数SPIN1:CLRP1.1;使P1.1(时钟)输出为0(有效)NOP;延时NOPMOVC,P1.3;从机输出SPISO送进位CRLCA;左移至累加器A

7、CCSETBP1.1;使P1.1(时钟)输出为1DJNZR1,SPIN1;判断是否循环8次(1个字节数据)MOVR0,A;1个字节数据送R0RET;返回,例2.MCU串行输出子程序SPIOUT 将89C51中R0寄存器的内容传送到2814的SPISI线上。,SPIOUT:SETBP1.1;使P1.1(时钟)输出为1CLRP1.2;选择从机MOVR1,#08H;置循环次数MOVA,R0;1个字节数据送累加器ACCSPIOT1:CLRP1.1;使P1.1(时钟)输出为0NOP;延时NOPRLCA;左移累加器ACC最高位至CMOVP1.0,C;进位C送从机输入SPISI线上SETBP1.1;使P1.

8、1(时钟)输出为1(有效)DJNZR1,SPIOT1;判断是否循环8次(1个字节数据)RET;返回,例3.MCU串行输入/输出子程序SPIIO 将89C51中R0的内容传送到2814的SPISI线上,同时从2814的SPISO接收1字节数据存入R0中。,SPIIO:SETBP1.1;使P1.1(时钟)输出为1CLRP1,2;选择从机MOVR1,#08H;置循环次数MOVA,R0;1字节数据送累加器ACCSPIO1:CLR P1.1;使P1.1(时钟)输出为0(输入有效)NOP;延时NOPMOVC,P1.3;从机输出SPISO送进位CRLCA;左移ACC最高位至C,C至ACCMOVP1.0,C;

9、进位C送从机输入SETBP1.1;使P1.1(时钟)输出为1(输出有效)DJNZR1,SPIO1;判断是否循环8次MOVR0,ARET;返回,(2)利用89C51串行口方式0实现SPI操作 常用于开关量I/O、A/D、D/A、时钟、显示及打印功能等。,串行时钟芯片 在对绝对时钟要求较高的场合使用外部时钟芯片,串行日历时钟芯片HT1380就是一个典型的器件。,图8-4 HT1380与单片机接口电路,I/O端:串行输入输出端口 RST:复位PIN,RST 为高时可以对其进行读/写操作(类似于芯片选择信号)。为低时,I/O引脚对外是高阻状态,因此它允许多个串行芯片同时挂接在串行端口上。,串行LED显

10、示接口MAX7219 MAX7219可驱动8个LED显示器,89C51与它的接口如图:,图8-5 MAX7219与单片机接口电路,单片机通过串行口以方式0与MAX7219交换信息:,TXD作为移位时钟 RXD作为串行数据I/O端 Load为芯片选择端,当Load低电平时,对7219进行读/写操作;当Load为高电平时,DIN处于高阻状态。,7219同样允许多个串行接口芯片共同使用89C51的串行口。,串行接口芯片的一般接口规律 单片机通过串行接口可以与 E2PROM、A/D、D/A芯片等连接。串行接口方式遵循:通过单片机的开关量I/O口线进行芯片选择;当芯片未选中时,数据端口处于高阻状态;与单

11、片机交换信息时,要求单片机串行口以方式0进行;传输数据时的帧格式要求先传送命令/地址,再传送数据;具有图8-7所示的时序波形。,图8-7 串行接口信号的一般时序图,扩展多个串行接口芯片时典型控制器的结构 同时扩展多个串行接口芯片的控制电路如图:,图8-8 基于串行接口控制器的电路结构图,由于单片机无并行总线扩展,节余的资源可以作为打印机输出控制、功能键、中断逻辑等电路。串行接口的使用扩展了系统的功能,并极大地利用了系统资源,且接口简单,控制器体积减小,可靠性提高。系统的软件设计与常规的单片机扩展系统类似,只是在芯片选择方面不是通过地址线完成,而是通过I/O口线来实现。,二、I2C总线,I2C总

12、线是PHILIPS公司推出的同步串行数据传输总线。在很多器件上都配备有I2C总线接口,使用时一般需要通过I2C总线进行控制。,1.I2C总线的概念,是一种具有自动寻址、高低速设备同步和仲裁等功能的高性能串行总线,能够实现完善的全双工数据传输,是总线中使用信号线数量较少的。I2C总线只有两根信号线:数据线SDA和时钟线SCL。总线传输速率 100 kb/s(改进后的规范为400 kb/s),总线驱动能力为400pF。进入I2C总线系统中的设备都带有I2C总线接口,符合I2C总线的电气规范,I2C总线上所有节点的串行数据线SDA和时钟线SCL分别与总线的SDA和SCL相连。各节点供电可以不同,但需

13、共地,SDA和SCL需分别接上拉电阻。,图8-9 I2C总线典型系统示意图,当执行数据传送时主器件:启动数据发送并产生时钟信号的器件;从器件:被寻址的任何器件;发送器:发送数据到总线上的器件;接收器:从总线上接收数据的器件。,I2C总线是多主机总线,总线上可以有两个或更多的能够控制总线的器件(多个单片机);同时I2C总线还具有仲裁功能,当一个以上的主器件同时试图控制总线时,只允许一个有效,从而保证数据不被破坏。,I2C总线的寻址采用纯软件的寻址方法。,主控发送器、主控接收器、被控发送器、被控接收器,主机先发送启动信号(和时钟),随后发送寻址字节来寻址被控器件,并规定数据传送方向。寻址字节由7位

14、从机地址(D7D1)和1位方向位(D0,读0/写1)组成。当主机发送寻址字节时,总线上所有器件都将其中的高7位地址与自己的比较,若相同,则该器件根据读/写位确定是从发送器还是从接收器。,若为从接收器,在寻址字节之后,主控发送器通过SDA线向从接收器发送信息,信息发送完毕后发送终止信号,以结束传送过程。若为从发送器,寻址字节之后,主控接收器通过SDA线接收被控发送器的发送信息。,注意:不论主控器是向被控器发送还是读取信息,被传信息的起始和终止信号以及时钟信号都是由主控器发送的。,数据传送时,图8-10 I2C总线外围扩展示意图,2.I2C总线的应用,I2C总线外围扩展示意图如图:,常用的I2C总

15、线外围通用器件、外围设备模块、接口有:SRAM、E2PROM、ADC/DAC、RTC、I/O口和DTMF等;LED、LCD驱动控制器构成的显示器等;键盘、码盘、打印机接口和LCD接口等。,I2C总线上支持多主和主从两种工作方式,在主从方式中:从器件的地址由器件编号地址和引脚地址构成 器件编号地址由I2C总线委员会分配 引脚地址决定于引脚外接电平的高低 当器件内部有连续的子地址空间时,对这些空间进行N个字节的连续读/写,子地址会自动加1。,在多主方式中,通过硬件和软件的仲裁,主控制器取得总线控制权。多数情况下系统中只有一个主器件,即单主节点,其他器件都是从器件,这时的I2C总线就工作在主从工作方

16、式。,在主从方式的I2C总线系统中,只须考虑主方式的I2C总线操作。,3.I2C总线基本知识,(1)I2C总线的接口电路结构,I2C总线中一个节点的每个电路器件都具有如图8-11所示的一个接口电路,用于与I2C总线的SDA和SCL线挂接。,SDA和SCL都是双向的,平时均处于高电平备用状态,只有当需要关闭I2C总线时,SCL线才会箝位在低电平。,图8-11 I2C总线的器件连接,图8-12 I2C总线信号的时序,(2)I2C总线信号定义,SCL=0时,SDA上的数据信号无效。即,只有当SCL=0时,SDA线上的电平状态才允许发生变化。SDA上传送的数据以起始信号START开始,停止信号STOP

17、结束,不传送数据时SCL线保持为1。当SCL=1时:SDA上发生一个由高到低的变化过程(下降沿)为起始信号;发生一个由低到高的变化过程,为停止信号。,SCL=1时,SDA上的数据才会有效(高电平为1,低电平为0);,起始信号和停止信号均由主控器(如单片机)发出,由挂接在I2C总线上的被控器(I2C总线接口的器件)检测。对不具备I2C总线接口的单片机,为了能准确检测到这些信号,必须保证在总线的一个时钟周期内对SDA进行至少两次采样。,4.I2C总线的数据传送,I2C总线上数据的传送时序如图8-13所示。,图8-13 I2C总线的数据传送字节格式,每传输一位数据都有一个时钟脉冲相对应。时钟脉冲不必

18、是周期性的,它的时钟间隔可以不同。总线备用时(“非忙”状态),SDA和SCL都为“1”;关闭I2C总线时使SCL箝位在低电平。只有当总线处于“非忙”状态时,数据传输才能被初始化。,I2C总线上传输的数据和地址字节均为8位,且高位在前,低位在后。I2C总线以起始信号为启动信号,接着传输的是地址和数据字节,数据字节是没有限制的,但每个字节后必须跟随一个应答位(0),全部数据传输完毕后,以终止信号结尾。,SCL的”线与”特性:SCL为低电平时,SDA上数据就被停止传送 当接收器接收到一个字节后无法立即接收下一个字节时,便向SCL线输出低电平而箝住SCL(SCL=0),迫使SDA线处于等待状态,直到接

19、收器准备好接收新的字节时,再释放时钟线SCL(SCL=1),使SDA上的数据传输得以继续进行。如:图中的A处,当接收器在A点接收完主控器发来的一个字节时,需要处理接收中断而无法继续接收,则被控器便可箝住SCL线为低电平,使主控发送器处于等待状态,直到被控器处理完接收中断后,再释放SCL线。,数据传输时,发送器每发完一个字节,都要求接收方发回一个应答信号(0)。应答信号的时钟仍由主控器在SCL上产生。主控发送器必须在被控接收器发送应答信号前,预先释放对SDA线的控制(SDA1),以便主控器对SDA线上应答信号的检测。,主控器发送时,被控器接收完每个字节需发回应答信号,主控器据此进行下一字节的发送

20、。如果被控器由于某种原因无法继续接收SDA上数据时,可向SDA输出一个非应答信号(1),主控器据此便产生一个Stop来终止SDA线上的数据传输。,主控器接收时,也应给被控器发应答信号。当主控器接收被控器送来的最后一个数据时,必须给被控器发一个非应答信号(1),令被控器释放SDA线,以便主控器可以发送Stop信号来结束数据的传输。,应答信号,5.I2C总线数据传输协议,(1)总线节点的寻址字节 挂接到总线上的所有器件、外设接口都是总线上的节点。在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,分时实现点对点的数据传送。,高7位为从机地址,最后位决定了报文的方向

21、:0 主机写信息到从机;1 主机读从机中的信息。,每个节点都有一个固定的节点地址。主机产生起始条件后,发送的第一个字节为寻址字节SLA。格式如下:,从机地址 7位地址由一个4位固定和一个可编程的部分(低3位)构成,同一总线上共可以连接8个相同的器件。固定的4位地址由I2C总线委员会分配。例如,I2C总线E2PROM AT24C的器件地址为1010,4位LED驱动器SAA1064的器件地址为0111。,可编程的3位(A2、A1和A0)由I2C总线外围器件地址端口A2、A1和A0接不同的电平信号来决定。,P206 表8-1列出了一些常用外围器件的节点地址和寻址字节。,表8-1 常用I2C接口通用器

22、件的种类、型号和寻址字节,(2)I2C总线数据传输的格式I2C总线传输数据时必须遵循规定的数据传输格式,图815 I2C总线一次完整的数据传输格式,地址字节后面是被控器发出的应答位ACK。之后是数据字节、应答位。数据字节全部传送完后,被控接收器发回一个非应答信号(1),主控器据此发送停止信号(STOP),以结束这次数据的传输。如果主机仍希望在总线上通信,可以再次产生起始信号(Sr)并寻址另一个从机,而不是首先产生一个停止信号。,以起始信号表明一次数据传送的开始;之后为被控器的地址字节,高位在前,低位在后。,总线上数据传输的多种组合方式:,主控器写数据主机向被寻址的从机写入n个数据字节,主控器读

23、数据主机从被寻址的从机读出n个数据字节,主控器读/写数据主机在一段时间内为读操作,在另一段时间内为写操作。,在一次数据传输过程中需要改变数据的传送方向。由于读/写方向有变化,起始信号和寻址字节都会重复一次,但读/写方向(R/W)相反。格式如下:,Sr为重复起始信号;data 1data n为主控器的读数据;DATA 1DATA n为主控器的写数据。,例:单片机主机读取存储器从机中某存储单元的内容。主机先向从机写入该存储单元的地址,再发一个启动位,进行读操作。,图8-16 模拟I2C总线,6.51单片机与I2C总线的接口,(1)单片机与I2C总线的硬件连接 51单片机不带I2C接口,若需控制I2

24、C总线时,可选择两个I/O口线,在软件中分别定义成SCL和SDA,连接接口如图8-16所示。,(2)51单片机对I2C总线的控制程序,原则:根据I2C总线对SDA和SCL在各个时段的时序要求,写出起始、停止、送应答位、送非应答位、检查应答位、发送一字节、接收一字节、发送N字节数据、接收N字节数据的子程序。,7.I2C总线数据传送软件包,单主系统89C51软件模拟I2C总线时序:主发送和主接收,选用图8-16所示,P1.6和P1.7作为SCL和SDA,晶振6 MHz。软件包包括:启动(STA)、停止(STOP)、发送应答位(MACK)、发送非应答位(MNACK)、应答位检查(CACK)、发送一字

25、节数据(WRBYT)、接收一字节数据(RDBYT)、发送N字节数据(WRNBYT)和接收N字节数据(RDNBYT)9个子程序。,(1)典型信号时序及信号模拟子程序,设单片机的时钟为6 MHz,相应的单周期指令的周期为2s。结合指令周期考虑时序的配合,则起始(STA)、终止(STOP)、发送应答位(MACK)、发送非应答位(MNACK)的4个模拟子程序如下:,启动I2C总线子程序STASETBSDASETBSCL;起始条件建立时间大于4.7sNOPNOPCLRSDANOP;起始条件锁定时间大于4sNOPCLRSCL;箝住总线,准备发送数据RET,停止I2C总线子程序STOP CLRSDASETB

26、SCL;发送停止条件的时钟信号NOP;停止总线时间大于4sNOPSETBSDA;停止总线NOPNOPCLRSDACLRSCLRET,发送应答位信号子程序MACKCLRSDASETBSCLNOP;保持数据时间,即SCL为高大于4sNOPCLRSCLSETBSDARET,发送非应答位信号子程序MNACK SETBSDASETBSCLNOP;保持数据时间,即SCL为高大于4.0 sNOPCLRSCLCLRSDARET,注:如果单片机的主时钟不是6 MHz,应调整NOP指令个数,以满足时序要求。,(2)I2C总线数据传送的模拟子程序,包括:应答位检查(CACK)、发送一字节(WRBYT)、接收一字节(

27、RBYT)、发送N字节(WRNBYT)和接收N字节(RDNBYT)5个子程序。,应答位检查子程序CACK(用F0作标志位,当检查到正常应答位后,F0=0;否则F0=1)CACK:SETB SDA;置SDA为输入方式 SETB SCL;使SDA上数据有效 CLR F0;预设F0=0 MOV C,SDA;输入SDA引脚状态 JNC CEND;检查SDA,为0转CEND,且F0=0 SETB F0;无正常应答,F0=1CEND:CLR SCL;子程序结束,使SCL=0 RET,发送一字节数据子程序WRBYT(将累加器A中数据发送。占用资源:R0,C),接收一字节数据子程序RDBYT(从SDA上读取一

28、字节存放在R2或A中。占用资源:R0、R2和C),WRBYT:MOVR0,#08H;8 位数据长度送R0中WLP:RLCA;数据左移,使发送位入CJCWR1;判断发送1还是0AJMPWR0;发送0转WR0WLP1:DJNZR0,WLP;8位是否发送完RET;8位发送完结束WR1:SETBSDA;发送1程序段SETBSCLNOPNOPCLRSCLCLR SDAAJMPWLP1WR0:CLRSDA;发送0程序段SETBSCLNOPNOPCLRSCLAJMPWLP1,RDBYT:MOVR0,#08H;8位数据长度送R0中RLP:SETBSDA;置SDA为输入方式SETBSCL;使SDA上数据有效MO

29、VC,SDA;读入SDA引脚状态MOVA,R2;读入bit由C拼装入R2中RLCAMOVR2,ACLRSCL;可继续接收数据位DJNZR0,RLP;8位未读完转RLPRET,发送N字节数据子程序WRNBYT从主控器向I2C总线上连续发送N个数据字节时,其数据操作格式如下:,SLAW外围器件寻址字节(写),WRNBYT:MOVR3,NUMBYT;发送字节数存放单元LCALLSTA;启动I2C总线MOVA,SLA;发送SLAW字节LCALLWRBYTLCALLCACK;检查应答位JBF0,WRNBYT;非应答位则重发MOVR1,#MTD;发送数据缓冲区首址WRDA:MOVA,R1LCALLWRBY

30、TLCALLCACK;检查应答位JBF0,WRDA;非应答位则重发INCR1DJNZR3,WRDALCALLSTOPRET,调用本子程序后,N字节数据从片内MTD区依次传送到外围器件内部相应的地址单元中。,接收N字节数据子程序RDNBYT 主控器按接收方式从外围器件中读出N字节数据,其数据操作格式如下:,主节点在接收完N字节后,必须发送一个非应答位;SLAR:外围器件寻址字节(读),RDNBYT:MOVR3,NUMBYTLCALL STA;发送启动位MOVA,SLA;发送寻址字节(读)LCALL WRBYTLCALL CACK;检查应答位JB F0,RDNBYT;非正常应答时重新开始RDN:M

31、OVR1,#MRD;接收区首址MRD入R1RDN1:LCALL RDBYT;读入一字节MOVR1,ADJNZR3,ACK;N字节未读完转ACKLCALL MNACK;N字节读完发送非应答位LCALL STOP;发送停止信号RET;子程序结束ACK:LCALL MACK;发送应答位INCR1;指向下一个缓冲单元SJMPRDN1;转读入下一个字节数据,(3)主程序,SDABITP1.7SCLBITP1.6MTDEQU30H;MTD:发送数据缓冲区首址MRDEQU40H;MRD:接收数据缓冲区首址SLAEQU60H;SLA:寻址字节SLAR/W的存放单元NUMBYTEQU61H;NUMBYT:传送字

32、节数存放单元,必须考虑相关的约定,三、单总线,单总线(1Wire)是Dallas公司推出的外围串行扩展总线。单总线只有一根数据输入/输出线,可由单片机或PC机的1根I/O口线作为数据输入/输出线,所有的器件都挂在这根线上。,Dallas公司为单总线的寻址及数据传送提供了严格的时序规范。,一个由单总线构成的分布式温度监测系统。单片机对每个DS18S20通过总线DQ寻址。DQ为漏极开路,须加上拉电阻RP。,1.DS18S20单总线测温系统,用DS18S20构成多点温度巡回检测系统,将温度信号转换成串行数字信号供单片机处理。每片DS18S20都含有惟一的产品号。从理论上来说,在一条总线上可以挂接任意

33、多个DS18S20芯片(距离在20 m以内挂接10片)。,(1)DS18S20的特性及引脚,DS18S20采用3脚PR35封装(或8脚SOIC封装),DQ为数据输入/输出脚,VDD为电源电压。,单线接口,与MCU相连无需外围元件;由数据线提供电源(寄生供电);9位温度读数;测温范围-55125,精度0.5(-1085);温度转换时间最长为750 ms;可设定温度报警上下限,值是非易失性的;报警搜索命令可识别哪片DS18S20超温度界限。,(2)DS18S20的内部结构,内部结构如图所示。,包括:寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、用于存

34、储用户设定的温度上下限值TH和TL的触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器 共8部分。DS18S20既可以采用寄生供电,也可以采用外部5V电源供电。寄生供电时,DS18S20从高电平总线上获得能量并储存在内部电容上。当总线上是低电平时,由电容向DS18S20供电。,测温原理:计数器对一个受温度影响的振荡器计数。温度表示值应为9位,高位为符号位,因符号位扩展成高8位,故以16位补码形式读出,温度与数字量的关系如表8-2所列。,(3)温度巡回检测系统电路,采用寄生电源供电方式:VDD必须接地。为保证在有效的DS18S20周期内提供足够的电流,用一个MOSFET管和一个I/O口线

35、(P1.0)来完成总线的上拉。采用P1.1口作发送Tx,P1.2口作接收Rx,读写分开。这种方法可接数十片DS18S20,距离可达50 m;,(4)工作过程,89C51首先发复位DS18S20的负脉冲;接收DS18S20的回应脉冲;89C51再发ROM命令(33H);最后发存储和控制命令。,程序框图如图所示。,总线上仅有一个DS18S20时:,总线上有多个DS18S20时:,分别挂接DS18S20,依次读出序列号;或用搜索命令识别各器件的序列号。,此命令后允许跟64位序列号,只有序列号相符的器件才能对后续的RAM操作响应。,DS18S20 ROM命令,主机操作ROM的命令有5种:,64位激光R

36、OM的结构如下:,产品类型编号,每个器件惟一序号,前56位的CRC校验码,DS18S20存储控制命令,DS18S20存储控制命令共有6种,存储器由便笺式RAM和非易失性电擦写EEROM组成,后者用于存储TH和TL值。数据先写入RAM,经校验后再传给EEROM。RAM占9字节,包括温度信息(第1、2字节)、TH、TL值(第3、4字节)、计数寄存器(第7、8字节)、CRC(第9字节)等,第5、6字节不用。,DS18S20的执行序列,初始化(发一个不少于480s的低脉冲);执行ROM命令,主要用于定位;执行存储控制命令,用于转换和读数据;DS18S20的I/O信号有复位脉冲、回应脉冲、写0、读0、写

37、1和读1等。除回应脉冲由DS18S20发出外,其余都由主机发出。,程序框图如图所示:,此命令后允许跟64位序列号,只有序列号相符的器件才能对后续的RAM操作响应。,分别挂接DS18S20,依次读出序列号;或用搜索命令识别各器件的序列号。,2.1线(1-Wire)热电偶测高温,热电偶技术,普遍用于工业测量的热电偶金属组合有:K型和E型两种。E型热电偶组合是镍铬康铜,短期工作温度为800,长期工作温度为60。它是热电势最大的一种热电偶,测量准确度较高,但极易氧化。,热电偶是温度测量中应用最广泛的温度器件,主要特点是测温范围宽,性能比较稳定,结构简单,动态响应好,能够远传420mA电流信号,便于自动

38、控制和集中控制。热电偶的测温原理是基于热电效应。,热电偶的材料一般都比较贵重,当用补偿导线把热电偶的冷端(自由端)延伸到温度比较稳定的控制室内,连接到仪表端子上,冷端会有一个测量误差。大多数现代仪器通过电路方法来修正这个冷端误差 先测量出冷端处的温度,再将处于这一温度下的热电偶产生的电压偏差从实际读数中减去。,热电偶的电信号需要一种特殊的导线来进行传递,称为补偿导线。不同的热电偶需要不同的补偿导线,主要作用就是与热电偶连接。,热电偶冷端的温度补偿,输入/输出接口扩展 简单的I/O接口(中小规模集成电路)适用于较简单的扩展系统 根据微机系统与总线相连应符合“输出锁存、输入三态”的原则,选用锁存器

39、(373、273)作为输出口,三态门(244、245)作输入口。也可以选用D触发器、RS触发器 作为外设与CPU间通信的应答联络控制电路。可编程I/O接口(8155/8255/8253/8250/8251),系统扩展一般有下列几方面内容:,外部程序存储器 E2PROM/EPROM 的扩展 E2PROM:2816(2K8),2864(8K8)EPROM:2716(2K8),2732(4K8),2764(8K8),外部数据存储器 RAM 的扩展 静态RAM:6116(2K8),6264(8K8),E2PROM既可以扩展为片外EPROM,也可以扩展为片外RAM.,为了使单片机能方便地与各种扩展芯片连

40、接,应将单片机的外部连线变为一般的微型机3总线形式:,5.2 并行扩展三总线的产生,89C51单片机有4个口,共32条口线,但由于系统扩展的需要,真正能作为数据使用的,只剩下P1口和P3口的部分口线了。系统扩展时,程序存储器尽量不采用外扩的方案。因为89系列单片机内有432 KB的不同型号产品可供选择。如果需要功能更强的MCU,可选择其它种类芯片。,一、扩展程序存贮器(ROM),5.3 存储器扩展,其中:扩展接线图,扩展后,地址范围的确定见图中CPU P0P2口与芯片的地址线连接.,2764:0000H1FFFH 27128:0000H3FFFH,访问ROM时,使用指令 MOVC A,A+PC

41、 MOVC A,A+DPTR,89C51内RAM有128个字节,片外还可扩展64K字节。,二、扩展数据存贮器,89C51扩展6116 扩展接线图见 右图.,89C51外扩32KB EPROM和32KB RAM的连接如下:,扩展E2PROM(既用作程序M,又可用作数据M)E2PROM的优点:在线擦除和改写;具有ROM的非易失性,RAM的随机读写性,每个单元可改写1万次.,常用芯片:2816 2816A 2K82817 2817A 2K8 不带A的用21V 擦写2864A 8K8 带A的用5V 擦写,2864A的工作方式:维持方式:=1,2864A进入低耗能维持方式,输出高阻。读方式:=0=0,=

42、1,可读出数据。写方式:=0=1,=0,可写入数据。,2817A、2864A有RDY/BUSY引脚,便于与CPU联络。读出时间为200250ns,与同容量的EPROM速度相当。写入时间为10ms,时间长。在线改写(当RAM用)时要注意。,写入时有:字节写入写一个字节。页写入连续对16个字节单元(1页)进行写入操作.无论哪种写入,写操作都由页装载和页存贮两步完成:第一步:由CPU向2864A中的页缓冲器写入数据页装载。第二步:在最后一个字节(第16个字节)写入到页缓冲器后 20ns开始,把页缓冲器中的内容写到E2PROM阵列中 的对应地址单元中页存贮。,数据查询方式(查询写周期是否完成)2864

43、在页装载时,将最后一个字节的最高位取反。如:最后一个字节原为11110000,写入页缓冲器变为01110000,到页存贮完毕(写周期完成)后,再还原为11110000。要检查写周期是否完成,CPU可不断查询 I/O 7,将其与写入数据的最后一个字节的最高位相比较,当两者相等时,说明本次写周期已结束。,89C51外扩2864A系统。由图可见:此片2864A既可作为片外ROM,又可作为片外RAM。地址:0000H1FFFH,写入16个字节到E2PROM的程序为:MOV R1,10H;16字节WR1:MOVX A,DPTR;取原数据MOV R4,A;暂存,以备查询MOVX R0,A;写入2864页缓

44、冲区(P2R0组成地址)INC DPTRINC R0;增址,CJNE R0,#00,NEXT;用R0寻址,范围00FFH。INC P2;超过00HFFH,高位指针加1。NEXT:DJNZ R1,WR1;未完再写 DEC R0;写完16个字节CHECK:MOVX A,R0;查最后一个字节是否存贮 XRL A,R4;到E2PROM阵列。JB ACC.7,CHECK;ACC.7为1,最高位不同,再查。RET;最高位相同,1页写完。,1.64KB以内的RAM、EPROM扩展 用多片RAM、EPROM构成大容量RAM、EPROM时,可用译码法对CPU高位地址译码,其译码输出选通相应的存贮器芯片,将地址空

45、间划为若干连续的地址空间块。常用译码器有:74LS138、74LS139。,三、扩展大容量存贮器,例:见 右图。图示为51单片机通过74LS139译码器扩展存储器的一个方案。P2.7输出为0时,选中 74LS139。P2.6和P2.5两根地址线组成的四种状态,可以选中位于不同地址空间的芯片。,各芯片对应的存储空间为:IC0:程序存储器0000H1FFFH(Y0)IC1:程序存储器2000H3FFFH(Y1)IC2:数据存储器0000H1FFFH(Y0)IC3:数据存储器4000H5FFFH(Y2)Y3 的寻址范围是6000H7FFFH,未被使用。,2.超过64KB RAM的扩展 例:如下图 8

46、 KB EPROM 1片,32KB RAM 7片扩展成224K字RAM。,扩展RAM 64K,可使用P1口的线.如:P1.0 A16 P1.1 A17 P1.2 A18 将它们接38译码器,其输出接各芯片的片选端。,此例中:1片EPROM始终选通。32KRAM的15根地址线接P0口及P2.0P2.6;CPU余地址线P2.7及P1.0和P1.1接74LS138,其输出可接8片62256。本系统只需7片,余1根片选信号可以给I/O用。,注:当数据操作需换段时(一段64K),必须在P1口的P1.0 P1.1位先输出相应的代码(段选).,1.I/O口的直接输入/输出(不扩展)对51单片机来说:P0P3

47、 输入有缓冲、输出有锁存、有一定的负载能力。因此,在有些场合下,可以直接接外部设备。如开关、LED发光二极管、BCD码拨盘和打印机等。,LOOP:MOV A,#0FH ORL P1,A MOV A,P1 SWAP A MOV P1,A AJM LOOP,例:见右图,5.4 I/O口的扩展,一、简单的I/O口扩展,2.简单的I/O口扩展(常用中规模集成电路),LOOP:MOV DPTR,#0FEFFH MOVX A,DPTR MOVX DPTR,A SJMP LOOP,用74LS273作锁存器 用373(带三态功能 的锁存器)用244/245作输入缓冲,例:按下任意键,对应的LED发光。244和

48、273的端口都用P2.0做片选,地址都是FEFFH。,注:51系列单片机每个外扩的接口相当于一个外部RAM单元,访问它就像访问外部RAM一样,用MOVX指令,并产生RD、WR信号。可用RD、WR作输入/输出控制信号。,当需扩展多个输入(244)/输出(273)口时,可用P2口线分别选通它们,称为线选法,也可用译码法。电路如下:,扩展多个接口时,有两个问题要注意:口地址的扩展:或用线选法,或用译码法。负载能力的解决:当负载多时,加总线驱动器。,在单片机应用系统中,有时需用单片机的输出去控制各种各样的开关电路器件(继电器,无触点开关)或大功率负载(电阻加热炉、马达等)。显然,不能用单片机的I/O口

49、线来直接驱动,而必须施加各种驱动电路和开关电路。此外,为了隔离和抗干扰,有时需加接光电耦合器。,单片机与电磁继电器的接口 P266 通常,单片机的位线经TTL电路与J相连。,1.开关电路接口 单片机用于输出控制时,用得最多的开关器件是继电器和可控硅及大功率场效应晶体管。,二、开关电路及驱动电路接口,P1.0为“0”时,J中线圈无电流,输出级开关断开,负载上电源接不通(如灯)。P1.1为“1”时,J中线圈有电流,开关闭合,负载接通电源。,也可用继电器做现场开关量的输入接口,如图:,(a)现场开关信号经光耦隔离并输入 现场开关闭合时,R2上输出高电平,开入电平为“0”现场开关断开时,开入电平为“1

50、”。(b)现场开关隔离电路采用了微型继电器 现场开关闭合时,J闭合,开入电平为“0”现场开关断开时,J断开,开入电平为“1”。,单片机与固态继电器接口 固态继电器是无触点电子继电器,其输入端仅要求输入很小的电流。与TTL、HTL、CMOS等集成电路具有较好的兼容性。,P1.0为“0”时,SSR输出相当于开路;P1.0为“1”时,SSR输出相当于通路,电源给负载加电,从而实现开关量控制(如电阻加热炉)。在SSR中,带光电隔离器的SSR又分为过零型、调相型等。,输入、输出之间用光电耦合器隔离;输出端用可控硅作为开关控制触点的接通与断开。,单片机与大功率场效应管的接口 大功率场效应管通常用于大功率开

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号