资源描述
,第二级,第三级,第四级,第五级,第,6,章 单片机总线与存储器的扩展,第6章 单片机总线与存储器的扩展,单片机原理及应用,内 容 提 要,单片机系统总线和系统扩展方法,程序存储器的扩展,数据存储器的扩展,*,新型存储器扩展,MCS51,系列单片机的特点就是体积小,功能全,系统结构紧凑,硬件设计灵活。对于简单的应用,最小系统即能满足要求。,所谓,最小系统,是指在最少的外部电路条件下,形成一个可独立工作的单片机应用系统。一片,89C51,,或者一片,8031,外接一片,EPROM,就构成了一个单片机最小系统。,在很多复杂的应用情况下,单片机内的,RAM,,,ROM,和,I/O,接口数量有限,不够使用,这种情况下就需要进行扩展。因此,单片机的系统扩 展主要是指外接数据存贮器、程序存贮器或,I/O,接口等,以满足应用系统的需要。,6.1,单片机系统总线和系统扩展方法,单片机是通过地址总线、数据总线和控制总线与外部交换信息的。,MCS-51,单片机的总线接口信号见图,由图可见:,1,),由于,Po,分时传送地址,/,数据信息,在接口电路中,通常配置地址锁存器,有,ALE,信号锁存低,8,位地址,AoA,7,,,以分离地址和数据信息。,2,),P2,口传送高,8,位地址,A,8,A,15,。,3),PSEN,为程序存储器的控制信号,是在取指令,码时或执行,MOVC,指令时变为有效。,RD,、,WR,为 数据存储器和,I/O,口的读、写控制,信号。是执行,MOVX,指令时变为有效。,系统的扩展的连线原则,系统的扩展归结为三总线的连接,连接的方法很简单,连线时应遵守下列原则:,1.,连接的双方 数据线连数据线,地址线连地址线,,控制线连控制线。要特别注意的是:,程序存储器接,PSEN;,数据存储器接,RD,和,WR,2.,控制线相同的地址线不能相同,,地址线相同的控制线不能相同。,3.,片选信号有效的芯片才选中工作,当一类芯片仅一片时片选端可接地,当同类芯片多片时片选端可通过线译码、部分译码、全译码接地址线(通常是高位地址线),在单片机中多采用线选法。,6.2,程序存储器的扩展,6.2.1 EPROM,的扩展,程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中分析,ALE,、,PSEN,、,Po,和,P2,怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。,单片机一直处于不断的取指令码执行取指令码执行的工作过程中,在取指令码时和执行,MOVC,指令时,PSEN,会变为有效,和其它信号配合完成从,程序存储器读取数据。,根据以上取指时序的要求,,8XX51,单片机扩展程序存储器,2732,的电路图见图,图中,,74LS373,为,8D,锁存器,其主要特点在于:控制端为高电平时,输出,QoQ7,复现输入,DoD7,的状态;,G,为下跳沿时,DoD7,的状态被锁存在,QoQ7,上。当把,ALE,与,G,相连后,,ALE,的下跳沿正好把,Po,端口上此时出现的,PC,寄存器指示的低,8,位指令地址,AoA7,锁存在,74LS373,的,QoQ7,上,,PC,的高,4,位地址,A8A11,则直接由,P2.0P2.3,提供。,由于只扩展了一片,2732EPROM,,,因此,2732,的片选端接地。,PSEN,与,2732,的输出允许型号,OE,相连,,PSEN,的上升沿使,OE,有效,打开,2732,中由,A0A11,指定的地址单元,该单元中的指令码从,2732,的,O,0,O,7,输出,被正好处于读入状态的,Po,端口输入到单片机内,经译码执行。这就是从外存指定地址单元中取出,1,字节指令并加以执行的整个过程。,单片机扩展,2761,,,2764,,,27128,等,EPROM,的,方法与图,9-3,相同,差别仅在于不同的芯片的存储,容量的大小不同,因而使用高,8,位地址的,P2,端口线,的根数不同。,扩展,2716,(,2KB,),需使用,A8A10,三条高位地址线,扩展,2764,(,8KB,)需要,A8A12,五条高位地址线。,扩展,27128,(,16KB),时 需要,A8A13,六条高位地址线。,这是因为,存储器其容量,=2,N,N,为地址线的根数,注意,:,2764,和,27128,的,PGM,引脚应接,Vcc,。,6.2.2 EEPROM,的扩展,1.,电可擦除只读存储器,EEPROM,的性能,电可擦除只读存储器,EEPROM,即可像,EPROM,那样长期非易失地保存信息,又可像,RAM,那样随时用电改写,近年来出现了快擦下,FLASH EEPROM,,,它门被广泛用作单片机的程序存储器和数据存储器。,目前,常用的,EEPROM,如表,9-1,,它们有如下共同特点:,*单,+5V,供电,电可擦除可改写。,*使用次数为,1,万次,信息保存时间为,10,年。,*读出时间为,ns,级,写入时间为,ms,级。,*芯片因角信号与相应的,RAM,和,EPROM,芯片兼容,见表,9-1,。,型 号,引 脚 数,容量,/,字节,引脚兼容的存储器,2816,2817,2864,28C256,28F512,28F010,28F020,28F040,24,28,28,32,32,32,32,32,2KB,2KB,8KB,32KB,64KB,128KB,256KB,512KB,2716,,,6116,2764,,,6264,27C256,27C512,27C010,27C020,27C040,EEPROM,的使用非常简单方便。不用紫外线擦除,在单一的,+5V,电压下写入的新数据即覆盖了旧数据。下面以,2864,为例说明,EEPROM,和单片机的连接方法。,2864,为,8KB EEPROM,维持电流为,60mA,,,典型读出时间为,200350ns,,,字节编程写入时间为,1020,s,,,芯片内有电压提升电路,编程时不必增高压,单一,+5V,供电。引脚和,6264,,,2764,兼容,引脚配置见右图。,8XX51,扩展,2864,硬件电路如下图所示。图中,2864,即可作为数据存储器,有又可作为程序存储器。由于只扩展了一片,片选端接地。,6.3,数据存储器的扩展,MCS-51,单片机内只有,128,字节的数据,RAM,,,当应用中需要更多的,RAM,时,只能在片外扩展。可扩展的最大容量为,64KB,图,9-6,是单片机对片外,RAM,进行读操作的时序。,当执行指令,MOVX A,,,Ri,或,MOVXA,,,DPTR,时进入外部数据,RAM,是的读周期。,1.,外部数据,RAM,的读周期时序,在,ALE,的上升沿,把外部程序存储器的指令读入后就开始了对片外,RAM,的读过程。,ALE,高电平期间,在,P0,处于高阻三态后,根据指令,间址提供的地址,,P2,口输出外部,RAM,的高,8,位地址,A15A8,,,P0,端口输出低,8,位地址,A7A0,;在,ALE,下跳沿,,P0,输出的低,8,位地址被锁存在锁存器中,随后,P0,又进入高阻三态,,RD,信号有效后,被选中的,RAM,的数据出现在数据总线上,,P0,处于输入状态,,CPU,从,P0,读入外部,RAM,的数据。,2.,外部数据,RAM,的写周期,当执行,MOVX ,Ri,,,A,或,MOVX DPTR,,,A,指令时进入外部数据存储器的写周期,其写周期时序如下:,写外部,RAM,的操作时序与读外部,RAM,的时序差别在于:其一,,WR,有效代替,RD,有效,以表明这是写数据,RAM,的操作;其二,在,P0,输出低,8,位地址,A0A7,后,,P0,立即处于输出状态,提供要写入外部,RAM,的数据供外部,RAM,取走。,由以上时序分析可见,访问外部数据,RAM,的操作与从外部程序存储器取指令的过程基本相同,只是前者有读有写,而后者只有读而无写;前者用,RD,或,WR,选通,而后者用,PSEN,选通;前者一个机器周期中,ALE,两次有效,后者则只有一次有效。因此,不难得出,51,单片机和外部,RAM,的连接方法。,8XX51,单片机扩展,8KB,静态,RAM 6264,的电路见下,图。,由图,9-8,可见,,ALE,把,P0,端口输出的低,8,位地址,A0A7,锁存在,74LS373,,,P2,口的,P2.0P2.4,直接输出高,5,位地址,A8A12,,,由于单片机的,RD,和,WR,分别与,6264,的输出允许,OE,和写信号,WE,相连,执行读操作指令时,,RD,使,OE,有效,,6262 RAM,中指定地址单元的数据经,D0D7,由,P0,口读入;执行写指令时,,WR,使,WE,有效,由,P0,口提供的要写入,RAM,的数据经,DoD7,写入,6264,的指定地址单元中。,单片机,8XX51,读写外部数据,RAM,的操作使用,MOVX,指令,用,Ri,间址或用,DPTR,间址。,要把,A,累加器中内容写入外部数据,RAM1050H,地址单元,其程序可为:,MOV P2,,,#10H,MOV R1,,,#50H,MOVX R1,,,A,或,MOV DPTR,,,#1050H,MOVX DPTR,,,A,例如,将外部数据,RAM1050H,地址单元中的内容读入,A,累加器,可有如下两种程序。,第一种,MOV P2,,,#10H,;,端口提供高,8,位地址,MOV R1,,,#50H,;,Ri,提供低,8,位地址,MOVX A,,,R1,第二种,MOV DPTR,,,#1050H,MOVX A,,,DPTR,;,DPTR,提供,16,位地址,MCS-51,系列单片机中的数据存储器和程序存储器在逻辑上是严格分开的,在实际设计和开发单片机系统时,程序若放在,RAM,,,可方便调试和修改,为此需将程序存储器和数据存储器混合使用。,在硬件上将,RD,信号和,PSEN,相“与”后连到,RAM,的读选通端,OE,即可以实现,见图,9-9,。,程序存储器和数据存储器混合使用,当执行,MOVX,指令时产生,RD,读选通信号使,OE,有效,当执行该,RAM,中的程序时,由,PSEN,信号也使,OE,有效,选通,RAM,,,读出其中的机器码。,WR,信号依然连接,RAM,的,WE,端。,图,9-9,补充例,1,编写程序将片外数据存储器中,5000H,50FFH,单元全部清零,。,方法,1,:,用,DPTR,作为数据区地址指针,同时使用字节计数器。,MOV DPTR,,,#5000H,;,设置数据块指针的初值,MOV R7,,,#00H,;设置块长度计数器初值,CLR A,LOOP,:,MOVX DPTR,,,A,;把某一单元,清零,INC DPTR,;地址指针加,1,DJNZ R7,,,LOOP,;数据块长度减,1,,若不为,0,则继续清零,HERE,:,SJMP HERE,;执行完毕,原地踏步,方法,2,:,用,DPTR,作为数据区地址指针,但不使用字节计数器,而是比较特征地址。,MOV DPTR,,,#5000H,CLR A,LOOP,:,MOVX DPTR,,,A,INC DPTR,MOV R7,,,DPL,CJNE R7,,,#0,,,LOOP,;与末地址,+1,比较,HERE,:,SJMP HERE,补充例,2,将程序存储器中以,TAB,为首址的,32,个单元的内容依次传送到外部,RAM,以,7000H,为首地址的区域去。,DPTR,指向标号,TAB,的首地址。,R0,既指示外部,RAM,的地址,又表示数据标号,TAB,的位移量。本程序的循环次数为,32,,,R0,的值:,0,31,,,R0,的值达到,32,就结束循环。程序如下:,MOVP2,#70,MOVDPTR,#TAB,MOVR0,#0,AGIN:,MOVA,R0,MOVCA,A+DPTR,MOVXR0,A,INCR0,CJNER0,#32,AGIN,HERE:,SJMPHERE,TAB:,DB,
展开阅读全文