|
我的系统基于8051单片机,外扩了32K SRAM,其地址空间为0x0000-0x7FFF,因此只要15根地址线就够了,我把A15(P2_7)作为片选信号,扩展了2路IO(驱动继电器,带隔离了)和其它的一些用途的输出。也就是说,若要去操作继电器的话,就要用到最高位的地址线A15,否则若只是使用32K SRAM,则A0-A14就够了,因此A15应该一直是低电平。
在实际应用的过程中,遇到了问题。程序运行起来之后,在不操作继电器的情况下,使用示波器测量A15,主要为高电平,偶尔被拉低成方波信号(每次低电平的持续时间大约有600ns)。另外,就是继电器会无规则地吸合和断开(根本没有去操作继电器),经过几十秒之后,最后结果有2种情况:
1,导致外扩的32K SRAM采用动态方法分配失败,但程序仍在运行(我在程序中设置,动态内存分配失败,则通过串口不断打印某字符,程序停在此处)。测量A15为高电平,信号有较小的干扰。
2,程序完全死掉。测量A15为高电平,信号有较小的干扰。
我的疑惑是,没有去操作继电器,就不会用到A15,它应该一直为低电平,怎么反而是高电平了?再就是继电器怎么会无规则地吸合和断开了?
请各位高手指点!
另外,谁若有外扩RAM的电路,能否给我一份?(在回复中贴个图了),最好除了扩展RAM之外,还通过A15扩展IO和其它一些信号的电路。谢了先!
若需要其它的测试信息,请在回复中提出!
|
|