单片机外部RAM扩展单片机外部RAM扩展模块MCS-51系列单片机外部RAM为64K,在一些特殊场合下,远不能满足需要,本文就AT89C51讨论MCS-51系列单片机大容量RAM的扩首先介绍128K随机读取RAMHM628128。HM628128是32脚双列直插式128K静态随机读取RAM,它具有容量大、功耗低、价格便宜、集成度高、速度快、设计和使用方便等特点。如若在系统中加入掉电保护电路,保护数据有很高的可靠性,可以和EEPROM相媲美。技术特性:(1)最大存取时间为120ns;(2)典型选通功耗75mW;典型未选通功耗10uW;(3)使用单一5V电源供电;(4)全静态存储器,不需要时钟及时序选通信号;(5)周期时间与存取时间相等;(6)采用三态输出电路,数据输入和输出端公用;图6HM628128外部引脚(7)所有输入和输出引脚均与TTL电平直接兼容;(8)有两个片选端,适合于低功耗使用,即为了保存信息,用电池作为后备电源。保存信息的最低电源电压Vcc=2V。引脚安排及功能表:图6是HM628128的外部引脚排列图,各引脚名称及功用分别如下:A0~A16是17条地址线;I/O0~I/O7是8条双向数据线;CS1是片选1,低电平有效,CS2是片选2,高电平有效;WR是写控制线,当CS1为低电平,CS2为高电平时,WR的上升沿将I/O0~I/O7上的数据写到A0~A16选中的存储单元中;OE是读出允许端,低电平有效。HM628128的功能表如表3所示。其中,H表示高电平,L表示低电平,X表示任意状态由于AT89C51直接外部RAM容量为64K,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE锁存信号来锁存低8位地址。又由于AT89C51的外部数据和外设地址通用,若扩展外设必然占用数据地址。因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,选择外部数据;P2.7(A15)口为低电平时,则为外设。因此,直接外部数据容量和外设数量都为32K,可用地址线为15条。本系统外部扩展RAM为256K,地址线18条。要达到18条地址线,则必须扩展。理论上可行方法很多,如以P1口的某几位作为最高位地址输出、外加锁存器锁存高位地址等。本系统采用后者,以保留P1口,况且外设空间充裕。扩展电路如图7所示:图7RAM地址扩展电路当读写外部数据时,首先应往高位地址锁存器中送入高位地址,然后再以DPTR为间接地址访问外部数据,注意最高位地址应为1,即数据区最低地址为8000H。以下程序段演示了外部数据的读写。……MOVDPTR,#0020H;0020H为高位地址锁存器的地址MOVA,#00H;00H表示第一个32K空间MOVX@DPTR,A;写入地址数据MOVDPTR,#8000H;8000H为每个32K的第一个字节地址MOVXA,@DPTR;从地址单元读取数据……若最后一句换为:MOVX@DPTR,A则为向RAM中写数据。同时作者还利用HM628128的数据保持特性为其加入了掉电保护电路。当主电源关闭时,备用电源发挥作用,这样RAM内的数据就不会丢失。其特性如表4所示。译码器地址总线CS10V图8CS2控制数据保持时序根据表4和图8可知,只要在系统上电或断电期间保证使HM628128的CS2立即变为低电平(CS2≤0.2V)或WR立即变为高电平就可使其中的数据维持不变,图9可实现这一功能。图9掉电保护电路其原理如下:当系统正常时,电流通过D1向HM628128供电,同时向电池BT充电,当系统电源切断时,将由电池供电。上电时,系统电源对C1充电,在此期间CS2是输入要经过一定的延时后才能变为高电平,同时,由于U1、U2的电源是由系统电源对C2充电来建立的,这就保证了在上电时HM628128处于写静止状态。在系统掉电瞬间,由于U1、U2由Vs供电,仍处于工作状态,电源掉电致使U1的输入立即变低,WR端变为低电平,从而禁止对HM628128的写入。同时C1也通过D2和R2放电,从而使CS2变为低电平。因此在掉电瞬间和掉电后,HM628128也处于写禁止状态。经实践证明,本电路工作可靠,RAM中数据保存完整。