资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,冶金工业出版社,第7、8章 MCS-51单片机的RAM与I/O扩展技术,1. 存储器概述,2. 存储器与I/O并行扩展的基本知识,3. 存储器 的扩展,4. I/O的扩展,5. 串行扩展技术,.,第7、8章 MCS-51单片机的RAM与I/O扩展技术,1,由于单片机内部资源有限,在实际应用系统中, 常在片外连接相应的外围芯片来扩展的资源,满足应用系统需求。51 系列单片机的系统扩展主要有程序存储器(ROM)的扩展、数据存储器(RAM)的扩展、I/O口的扩展、中断系统扩展以及其它特殊功能接口的扩展等。扩展方法既可以并行扩展,也可以串行扩展,且扩展方法较典型、规范。,并行扩展是指利用单片机三组总线(AB,、,BD,、,CB)进行的扩展,早年的应用系统基本上都是这种并行扩展,。,串行扩展是通过串行信号线进行的扩展,串行扩展总线有单总线(1-Wire总线),、,双总线(I,2,C总线),、,三总线(SPI总线)三种结构,是近年来主要发展的方向,。,.,由于单片机内部资源有限,在实际应用系统中, 常在片外,2,一、存储器和I/O口并行扩展的基本知识,1、51单片机机的系统总线,系统并行扩展的重点是掌握单片机的系统总线,如图8-1所示,三总线即地址总线(AB)数据总线(DB)和控制总线(CB)。具有总线的外部芯片都通过这三组总线进行扩展,。,(1)地址总线(AB),由P0口提供 低8位,地址A0A7 。由P2,口提供高8位地址A8,A15。,(2)数据总线(DB),数据总线由P0口提供,,用D0 D7表示。,51系列单片微机的三总线结构,.,一、存储器和I/O口并行扩展的基本知识 1、51单片机机的系,3,地址低8位总线和数据总线都是由P0口提供,通过分时实现传输功能。并且地址总线总是在ALE信号的下降沿有效,因此可通过ALE信号把低8位地址信号锁存在外接的锁存器上。下图为地址、数据、及ALE信号的时序图:,.,地址低8位总线和数据总线都是由P0口提供,通过分时实,4,根据上图的时序,不难用TTL的锁存芯片从P0口的复合信号中分离出低8位的地址信号,。,D0,D1,D2,D3,D4,D5,D6,D7,G,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,OE,2,5,6,9,12,15,16,19,1,74LS373引脚图,G,OE,Q,N,0,1,=D,N,0,1,=D,N,0,0,保持,1,X,高阻,74LS373真值表,3,4,7,8,13,14,17,18,11,P0口,ALE,8051,74LS373,D0,D7,Q0,Q7,OE,G,A0A7,A8A15,P2口,.,D0Q0274LS373引脚图GOE QN 0 1 =D,5,数据线总是在PSEN、WR、RD三个信号之一为低电平时有效,外围芯片就是通过这三个信号之一来控制数据信号的传输。,当有多个外围芯片并连到的数据线上时,同一时间里只能够有一个是有效的数据传送通道,此时则由地址线译码出片选信号来选择指定芯片数据通道进行数据传送,。,(3)控制总线(CB),控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE、PSEN、WR、RD。,ALE:用于锁存P0口输出的低8位地址的控制线。通常,ALE在P0口输出地址期间出现低电平,用这个低电平信号的上升沿控制锁存器来锁存地址数据。,.,数据线总是在PSEN、WR、RD三个信号之一为低电,6,PSEN,:输出,用于读片外程序存储器(EPROM)中的数据,。,“读”取EPROM中数据(指令)时,不能用“ RD ”信号,而只用PSEN信号。,EA:,输入,用于选择片内或片外程序存储器。,当 EA 0,时,只访问外部程序存储器。当 EA1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。,WR、RD:,输出,用于片外数据存储器(RAM)的读、写控制。,当执行片外数据存储器操作指令MOVX时,自动生 成 、 控制信号,并在数据线有效时输出。,.,PSEN:输出,用于读片外程序存储器(EPROM)中的数据,7,在单片微机应用系统中,为了对唯一地选择片外某一存储单元或I/O端口进行操作,需要进行选址。,一是必须先找到该存储单元或I/O端口所在的芯片,一般称为“片选” 。,二是通过对芯片本身所具有的地址线进行译码。这,样才能确定唯一的存储单元或I/O端口。,片选常用有“线选”、“地址译码”,2种方法,。,2.片选控制,.,在单片微机应用系统中,为了对唯一地选择片外,8,(1)线选法:,I/O接口芯片的“片选” 控制线。线选法常一般是利用单片微机的最高几位空余的地址线中一根(如P2.7) 作为某一片存储器芯片或用于应用系统中扩展芯片的片选,适用于芯片较少的场合。下图是扩展3片存储器“线选”方按图:,A10,.,.,.,A0,CE,A10,.,.,.,A0,CE,A10,.,.,.,A0,CE,A10A0,A10A0,A10A0,A13,A12,A11,I,II,III,.,(1)线选法:I/O接口芯片的“片选” 控制线。线选法常一,9,三个芯片地址分配如下:,线选方式的电路连接简单,不必专门设计逻辑电路,其缺点是占用地址资源较多,地址重叠区多,芯片的地址空间可能不连续,不能充分利用微处理器的内存空间,因此这种方法只能在存储器容量较小的场合。,.,三个芯片地址分配如下:线选方式的电路连接简单,不必专,10,(2)译码法,:用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选” 控制线。常用的译码器有3/8译码器74LS138、双2/4译码器74LS139、4/16译码器74LS154等。如下图;,C,B,A,G1,/G2A,/G2B,/Y0,/Y1,/Y2,/Y3,/Y4,/Y5,/Y6,/Y7,74LS138,A10,.,.,.,A0,CE,A10,.,.,.,A0,CE,A10,.,.,.,A0,CE,A10A0,III,II,I,A13,A12,A11,A15,A14,A,15,A,14,A,13,A,12,A,11,A,10,A,0,十六进制地址,芯片 I 1 0 0 0 0 0 0 8000H, 1 0 0 0 0 1 1 87FFH,芯片 II1 1 0 0 0 1 0 0 8800H, 1 0 0 0 1 1 1 8FFFH,芯片III 1 1 0 0 1 0 0 0 9000H, 1 0 0 1 0 1 1 97FFH,.,(2)译码法:用译码器对空余的高位地址线进行译码,而译,11,3.总线驱动器,在外围扩展芯片扩展较多的情况下,单片机总线驱动不足,这时要考虑在单片机的总线上加总线驱动器.,常用驱动器芯片有74LS244和74LS245,其内部电路如下:,单向驱动器74LS244,双向驱动器74LS245,利用这些芯片不难开展单片机的驱动能力.如下图:,.,3.总线驱动器单向驱动器74LS244双向驱动器74LS24,12,.,.,13,二、外部存储器的并行扩展,1. 程序存储器的操作时序,CPU读取指令有两种情况:一种是不访问外部数据存储器的指令;二是访问外部数据存储器的指令。CPU在执行这两种指令时,其时序是不同的。,a,不访问外部RAM的指令时序,.,二、外部存储器的并行扩展 1. 程序存储器的操作时序a,不,14,b,访问外部RAM的指令时序,从图中可知:低8位地址总是在ALE为低时有效;指令数据总是在PSEN或RD/WR为低电平时出现。根据此原则,就可以设计RAM和ROM的扩展电路。,.,b,访问外部RAM的指令时序 从图中可知:低8位地址,15,2扩展片外程序存储器的硬件电路,例:扩展16K *8位片外程序存储器,EPROM的扩展电路,.,2扩展片外程序存储器的硬件电路 EPROM的扩展电路,16,用译码方法扩展4片27128的EPROM电路原理图,.,用译码方法扩展4片27128的EPROM电路原理图.,17,在图中,图中用2片8K的RAM来扩展。采线选法寻址。用一口线P2.7来寻址。,当P2. 7=0时,访问片(0) ,地址范围为6000H 7FFFH,当P2.7=l时,访问片(1),地址范围为E000H FFFFH,图811 16K片外数据存储器扩展电路,3外数据存储器的扩展,.,在图中,图中用2片8K的RAM来扩展。采线选法寻址。,18,P0.0P0.7,D0D7,A0A7,A8A10,P2.0P2.2,P2.7,WR,RD,PSEN,CE,WE,OE,ALE,D0D7,Q0Q7,8051,74LS373,2817,3,8,8,8,LE,G,2817与8051的接口电路,4扩展片外EEPROM的硬件电路,EEPROM存储器既可断电保护数据,又可在线写入数据,具有SRAM和EPROM两者的优点,且引脚和读写方式与EPROM相近,只是写入时间较长,写入次数有限,适宜于断电后需要数据保护,数据变换不太频繁的场合,。,.,P0.0P0.7D0D7A0A7A8A10P2.0,19,5. FLASH存储器的扩展,FLASH存储器是Intel公司于20世纪80年代后期推出的新型存储器,其主要的性能特点有:,(1)快速整片电擦除,典型时间为1秒钟。,(2)采用快速脉冲编程算法进行高速编程。,(3)可擦/写10万次。,(4)写入和擦除电压为12V5。,(5)最大的存取时间为135ns。,(6)先进的CMOS工艺,最大工作电流为30mA,备用状态下的最大电流为100A。,(7)命令寄存器的结构与微处理器/微控制器写入接口兼容,抗噪声能力强,允许5%的电源噪声波动。,(8)片内地址和数据锁存FLASH MEMORY的一个主要的确定就是只能进行整片或者分块擦除,不能按存储单元进行字节擦除,此外,FLASH存储器的写入速度比SRAM慢12个数量级。,.,5. FLASH存储器的扩展 FLASH存储器,20,FLASH存储器的操作,单片机对存储器的操作可以分为两种情况,一种是VPP引脚不加高压的情况,另一种是VPP引脚加高压的情况。,当VPP引脚不加高压时,FLASH存储器相当于一个只读存储器EPROM,在这种情况下,可以通过控制线对FLASH进行的操作有读操作,备用状态,禁止输出和对Intel标识符进行操作。,当在VPP引脚上施加12V5的高压时,单片机还可以对FLASH存储器进行擦除和编程操作。,.,FLASH存储器的操作.,21,FLASH存储器的扩展举例:,用一片28F256 (32KB)FLASH存储器对8031单片机系统进行扩展作为外部数据存储器的电路连接图如图所示。,.,FLASH存储器的扩展举例:.,22,三、 I/O口的并行扩展,单片机没有专门的I/O输入输出指令,扩展的I/O与外部RAM是统一编址,也就是说并行扩展的I/O口要占用外部RAM的地址空间,对扩展I/O口的访问,像对待外部RAM一样,CPU用MOVX指令与I/O口进行数据交流,。,1.用TTL芯片进行I/O口的扩展,由于I/O输出是用:,MOVX DPYR, A 或 MOVX Ri, A,指令进行,指令通过P0口数据总线输出所需要的数据,此时的P0口并没有锁存功能,为了有稳定的输出,可以用简单的TTL或CMOS的锁存芯片把数据锁存输出,。,如下图:,.,三、 I/O口的并行扩展.,23,例:将一个数据字节从74LS377输出,则执行下面程序段:,MOVDPTR,#7FFFH,;地址指针指向,74LS377,MOVA, #DATA;将输出数据送A,MOVX DPTR, A; 输出数据,对于输入,由于也是通过数据总线进行,输入时一定要加三态芯片,以免平时对数据总线的影响,。,CK为时钟输入端,G为锁存允许,.,例:将一个数据字节从74LS377输出,则执行下面程序段:C,24,对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图8-13是用74LS244通过P0口扩展的8位并行输入口,图中,三态门由P2.6和RD相或控制,其端口地址为BFFFH。,例:数据输入,MOV DPTR,#0BFFFH ;指向74LS244口地址 A14=0,MOVX A, DPTR ;读入数据,74LS244是双4位三态输入缓冲器,D,RD,P2,1G、2G为,输出控制端,.,对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图,25,2.用8155芯片进行I/O口的扩展,(1) 8155的主要功能:内部有2个8位,1个6位的并行I/O口,还带有256字节的RAM,一个14位的定时/计数器,。,与8255相类似,I/O口和定时器的工作方式通过控制字来设定,。,其地址安排如下:,CE,IO/M,A2,A1,A0,选通端口,CE,IO/M,A2,A1,A0,选通端口,0,1,0,0,0,控制口,0,1,1,0,0,计数器低8,0,1,0,0,1,A口,0,1,1,0,1,计数器高8,0,1,0,1,0,B口,0,0,X,X,X,RAN单元,0,1,0,1,1,C口,.,2.用8155芯片进行I/O口的扩展(1) 8155的主要功,26,(2)8155的命令和状态字,.,(2)8155的命令和状态字.,27,(3)8155与单片机的接口电路,P0.0P0.7,RST,P2.1,P2.7,ALE,RD,WR,8051,AD0AD7,RST,IO/M,CE,ALE,RD,WR,PA,PB,PC,8155,由右图可得各口地址为:,控制口: 7F00H,A口 : 7F01H,B口 : 7F02H,C口 : 7F03H,定时/计数器低8位,:,7F04H,定时/计数器高8位,:,7F05H,RAM地址范围:,7E00H7EFFH,例:设AB为输出,C口为输入,则控制字为03H,初始化编程为:,MOV DPTR,#7F00H,MOV A,#03H,MOVX DPTR,A,.,(3)8155与单片机的接口电路 P0.0P0.78,28,四、串行扩展介绍,单片机的外部串行扩展主要包括1-WIRE 、 I,2,C 和 SPI三种总线的扩展。,1.1-WIRE总线结构,1-WIRE总线结构在一根单总线上可以悬挂多个器件的总线,总线由主机控制,数据可双向传输。 1-Wire 单总线器件的硬件结构如右图所示。为了在单条传输线上能够双向传输地址、数据、控制信号,,序列号,接收,发射,电源,单总线,电源,地,实现并行传输同样的功能,总线只能采用特殊的接口协议,每次通信都要按规定的次序来传输地址、数据和控制信息。同时为了解决接收双方的同步,规定了信号双方传输时的时序和握手方式。,.,四、串行扩展介绍1.1-WIRE总线结构序列号接收发射电源单,29,对器件的地址和产品的识别,每个器件产品上都刻录了电子识别码即产品的序列号。此序列号(ID)采用64 位的二进制 ROM 代码,将个产品分开。具体的格式是: 第一个字节 是器件的家族代码;接着的 6 个字节 是每个器件唯一的序列号;最后一个字节是前 56 位的 CRC 校验码。,此外一般的产品还含有接收控制、发射控制和电源存储电路,可以直接从信号线上获取电源,而无须再接电源引脚。1-WIRE总线具有结构简单、成,本低,廉、节省 I/O资源、便于总线扩展和维护等优点。,单总线端口为漏极开路,要求外接一个约 5k 的上拉电阻以确保单总线的闲置状态为高电平,并要求主机或从机通过一个漏极开路或三态端口连接至该单总线,使到设备在不发送数据时释放单总线,以便总线被其他设备使用。,.,对器件的地址和产品的识别,每个器件产品上都刻录了电子识,30,单总线的数据传输通常以16.3kbit/s 的速率通信,超速模式下,可设定传输速率为 100kbit/s 左右,一般用于对速度要求不高的应用系统中。单总线技术的作用距离一般达到 200,并允许挂上百个器件。,2. 1-Wire 单总线器件的软件操作,为了识别单总线上的不同器件,在软件的程序设计中,一般有 以下步骤:,(1)初始化命令,(复位),;,(2)传送 ROM 命令(寻找匹配器件和器件内寻址;,(3)传送 RAM 命令(读写口地址或单元内容)。,除了搜索 ROM 命令和报警搜索命令例外,每次访问单总线器件必须严格遵守这 3 个步骤,如果出现序列混乱则单总线器件不会响应主机要求,在执行两者中任何一条命令之后,主机不能执行其后的功能命令时必须返回至第一步。,.,单总线的数据传输通常以16.3kbit/s 的速率通,31,上述三种命令可分解位总线上的三种操作:,(1)初始化(复位),(2)写,、1,;,(3)读、1。,每种操作都有自己时序的要求,软件设计中应保证按规定的时序要求进行编程,。,以下是三种操作的时序:,主机发出低电平,主机发复位脉冲,480-960us,等待,15-60us,器件发响应脉冲,60-240us,电阻上拉,激发低电平,VCC,GND,1线总线,图: 复位时序,.,上述三种命令可分解位总线上的三种操作:主机发出低电平,32,写时隙时序图,主机 写数据时,应先将数据线拉低1微秒以上,再写入数据(写“1”高,写“0”为低)。待主机写入的数据变化1560微秒后,总线上的器件将对数据线采样。要求主机写入数据 的时间保持 在60120微秒之间。两次写数据操作之间的间隙应大于1微秒。,复位信号要求主机将数据线拉低并保持480960微秒,再释放数据线,由上拉电阻拉高1560微秒。然后再由被复位的器件发出低电平60240微秒,就完成了复位操作。,.,写时隙时序图 主机 写数据时,应先将数据线拉低,33,读时隙时序图,读数据之前,主机应先将数据线拉低,再释放。总线上被读期间在数据线从高电平跳低后15微秒内将数据送到数据线上。主机在15微秒后读取数据线。,.,读时隙时序图 读数据之前,主机应先将数据线拉低,再释放,34,以18B20测温芯片为例,下图是它的内部框图:,64,位,ROM,和,一,线,端,口,存储和控制,逻辑,高速暂存器,8位CRC,生成器,温度传,感器,高温,触发器TH,低温,触发器TL,配置寄存器,供电方式,选择,.,以18B20测温芯片为例,下图是它的内部框图:存储和控制,35,跟一般的1-WIRE器件一样,有ROM和RAM操作命令.,1.ROM的主要操作命令:,读序列号命令 (33H):,读总线上 DS18B20 的序列号,器件匹配命令 (55H):,对总线上 DS18B20 寻址,搜索ROM命令 (F0H):,识别总线上多个器件的ROM 编码,跳过ROM (CCH):,命令执行后,将省去每次与ROM 有关的操作,报警检测命令 (ECH):,搜索有报警的器件,2.RAM的主要操作命令,写入命令 (4EH):,写 上 、 下 限 值 到DS18B20 中,读出命令 (BEH):,从 DS18B20 读出 9 字节数据(其中有温度,值,报警值等),开始转换 (44H):,启动温度变换 无读存储器命令,,读电源标志 (B4H):,检测 DS18B20 的供电方式,.,跟一般的1-WIRE器件一样,有ROM和RAM操作命令.,36,2、 I,2,C总线结构及其扩展方法,(1)总线系统结构,SDA SCL,SDA SCL,SDA SCL,VCC,主机,从机1,从机2,SCL,SDA,I,2,C总线用两跟,双向传输线SDA和SCL进行全双工数据传送,可以并行扩展多个外围器件,。,总线采用了器件地址硬件设置,无须用外围器件片选信号方式的寻址方法,。,总线平时通过上拉电阻接到电源,在空闲情况下,2根线都处于高电平。,.,2、 I2C总线结构及其扩展方法SDA SCLSDA,37,(2)总线的四种状态和数据传输时序,总线状态,SCL,SDA,总线不忙,高电平,高电平,开始传送数据,高电平,停止传送数据,高电平,数据传送,SCL低电平时更改数据,用SCL的上升沿读取数据,在SCL高电平时数据不能变动,I,2,C数据传送时序,.,(2)总线的四种状态和数据传输时序 总线状态 SCL,38,(3) 数据传输格式,由于数据和地址信号都用一根数据线SDA来传输,何时传输地址?什么时候是主器件读?什么时候是主器件写?如何保证传输的正确?必须有一个共同接受的规定:,.主控器件写操作,主器件向被控器件发送n个数据的数据格式如下:,起始信号,S,送7位地址和一位(为”0”)传送方向,SLAW,应答信号A,发送数据,DATA1,应答信号A,发送数据,DATAn-1,应答信号A,发送数据,DATAn,非应答信号,A/A,停止信号 P,主控器件读操作,主器件向被控器件读n个数据的数据格式如下:,起始信号,S,送7位地址和一位(为”1”)传送方向,SLAR,应答信号A,接收数据,DATA1,应答信号A,接收数据,DATAn-1,应答信号A,接收数据,DATAn,非应答信号,A/A,停止信号 P,.,(3) 数据传输格式起始信号送7位地址和一位(为”0”)传送,39,主控器读写操作,主控器读写操作是指主控期间在一次数据过程中需要改变数据传送方向的操作,。,原则上此过程中的,读写操作分别与上述方法一样,只是在数据传送方向改变后,必须由主控器件发出从新启动信号,。,(4)串行EEPROM的扩展技术,串行EEPROM主要的型号如下表:,型号,容量,AT24C01,128X8,AT24C02,256X8,AT24C04,512X8,AT24C08,1024X8,AT24C016,2048X8,SDA VCC,SCL A0,TEST A1,VSS A2,5,6,7,4,8,1,2,3,NC NC,SDA VCC,SCL TEST,NC NC,VSS A0,NC A1,NC A2,1,9,10,4,6,7,8,14,13,12,11,2,3,5,1)引脚排列,AT24系列芯片有8脚和14脚2种,其中:,SDA:数据线,SCL:时钟线,TEST:测试线,平时接地.,.,主控器读写操作 型号 容量AT24C01128X8AT2,40,2)地址选择,AT24CX系列存储芯片有多个型号,容量从128字节到2K字节,若单靠I,2,C的寻址字节(SLAW/R),不能全部解决所有空间的寻址,为此它规定在访问其单元时,在程序中增加一个字节寻找片内单元;而SLAW/R提供的寻址用于片间的选择,该字节中高4位作识别位,最低位为读写方向位,其余3位与地址引脚相对应,提供作片选,因此用AT24CX系列扩展,最多可扩展到2K字节,用24C02,则最多可扩展8片,若是24C16,则只能扩展一片,。,下面是用4片24C02扩展的2K电路:,对于只用单片芯片,可用书中表7-17方法连接。,.,2)地址选择 对于只用单片芯片,可用书中表7-17方法连接。,41,3)AT24CX系列芯片的写操作,a,字节写,格式如下:,起始信号,S,寻址字节,SLAW,应答,信号,A,写单元,地址,WORDADR,应答,信号,A,写数,据,DATA,应答,信号,A,停止,信号,P,b,页写,页写是在指定地址开始连续写入若干字节,提高写入的速度.一次最大字节数对01/02/04/08/16型号分别为4/8/16/16/16个,格式如下:,起始信号,S,寻址字节,SLAW,应答,信号,A,写单 元地,址,WORDADR,应答,信号,A,写,数,据,DATA1,应答,信号,A,写,数,据,DATA2,应答,信号,A,写,数,据,DATAn,应答,信号,A,停止,信号,P,.,3)AT24CX系列芯片的写操作起始信号寻址字节应答 写,42,24CX芯片内部有页地址,对01/02/04/08/16型号,对应的页地址有2/3/4/4/4位,页写入时有规定,对同一页面进行页写时,低位数据必须写入到低位地址,否则会出现”翻卷”现象,。,4)AT24CX系列芯片的读操作,24CX芯片的读也有三种格式:,a,当前地址读:,b,指定地址读:,c,序列读:,S,SLAR,A,DATA,A,P,S,SLAW,A,WORDATA,A,S,SLAR,A,DATA,A,P,S,SLAR,A,DATA1,A,DATA2,A,DATAn,A,P,.,24CX芯片内部有页地址,对01/02/04/08/,43,5)AT24CX的接口电路及编程,SDA VCC,SCL A0,TEST A1,VSS A2,5,6,7,4,8,1,2,3,P1.7,P1.6,8051,VCC,R=5.1K,AT24C02,启动子程序:要求在时钟为高电平期间数据线由高变低,。,STA: SETBP1.7 ;SDA=1,SETBP1.6 ;SCL=1,NOP,NOP,CLRP1.7 ;SDA=0,NOP,NOP,CLRP1.6 ;SCL=0,RET,停止子程序:要求在时钟为高电平期间数据线由低变高,。,STOP: CLRP1.7 ;SDA=0,SETBP1.6 ;SCL=1,NOP,NOP,SETBP1.7 ;SDA=1,NOP,NOP,CLRP1.6 ;SCL=0,RET,SDA,SCL,SDA,SCL,.,5)AT24CX的接口电路及编程SDA VCC5,44,发送应答位”0”子程序:要求在SCL高电平期间主控器件向被控器件 发送”0”应答信号,。,SACK:CLRP1.7,SETBP1.6,NOP,NOP,CLRP1.6,SETBP1.7,RET,SDA,SCL,发送非应答位”1”子程序:要求在SCL高电平期间主控器件向被控器 件发送”1”应答信号,。,SDA,SCL,SNACK:SETB P1.7,SETB P1.6,NOP,NOP,CLRP1.6,CLRP1.7,RET,.,发送应答位”0”子程序:要求在SCL高电平期间主控器件向被控,45,应答位检查子程序:用于检查一字节数据传送后,主控器件在 第9位是否发回”0”的应答,若是,程序置F0标志为0,否则置F0标志为1,。,ACK_CHK: SETB P1.7 ;设P1.7为输入,由接收端发回低电平,SETBP1.6 ;输出时钟,CLRF0,JNB ACC.7,EXIT ;查由接收端是否,发回低电平?,SETBF0 ;不是,则置F0=1,EXIT: CLRP1.6 ;结束时钟,NOP,RET,SDA,SCL 9,正常应答信号,.,应答位检查子程序:用于检查一字节数据传送后,主控器件在,46,作业:,1.用8031单片机,并采用一片2716(2KB)和一片6116(2KB)组成一个既有程序存储器又有数据存储器的扩展系统,请:,(1)画出逻辑电路图,(2)说明其存储空间,2.请利用74HC138设计一个译码电路,分别选中4片2764,且列出各芯片所占的地址范围:,Y0芯片地址范围0000H-1FFFH,Y1芯片地址范围2000H-3FFFH,Y2芯片地址范围4000H-5FFFH,Y3芯片地址范围6000H-7FFFH.,3.利用TTL芯片,设计扩展一个8位并行输入口和一个8位并行输出口,输入口接8个开关,输出口接8个发光二极管,并编程用8个开关的状态控制8个二极管的亮灭.,.,作业:.,47,
展开阅读全文