lynnlase110 发表于 2012-5-28 13:23:48

SST39VF040 为何无法擦除。读取正常,写也有点问题。

管脚定义如下。用的STC11F16XE
P0 接地址低8位 同时P0 也接数据口。

P2口接的地址高8位。
sfr DataOut=0x80;       //定义P0口接SST39VF040的数据线
sfr Address7_0=0x80;    //定义P0口接SST39VF040的地址线 A0…A7
sfr Address15_8=0xa0;   //定义P2口接SST39VF040的地址线A8…A15
sbit Address16=P1^0;    //定义P3.2接SST39VF040的地址线A16
sbit Address17=P1^1;    //定义P3.3接SST39VF040的地址线A17
sbit Address18=P1^2;    //定义P3.4接SST39VF040的地址线A18
sbit Sst39vf040_Ce=P3^5;      //定义P3.5接SST39VF040的片选线线CE
sbit Sst39vf040_We=P3^6;      //定义P3.6接SST39VF040的写使能线WE
sbit Sst39vf040_Oe=P3^7;      //定义P3.7接SST39VF040的读使能线OE
sbit ALE =P4^5;


void Chip_Erase(void)
{
      Sst39vf040_Ce=1;
      Sst39vf040_Oe=0;
      Sst39vf040_We=1;
      Address18=0;
      Address17=0;
      Address16=0;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Sst39vf040_Ce=0;
      Sst39vf040_Oe=1;
      Sst39vf040_We=0;
      DataOut=0xaa;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0xaa;
                        ALE=0;
      Address15_8=0x2a;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x55;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x80;
      Delay1us(20);
      Sst39vf040_We=1;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0xaa;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0xaa;
                        ALE=0;
      Address15_8=0x2a;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x55;
      Delay1us(20);
      Sst39vf040_We=1;
                        ALE=1;
      Address7_0=0x55;
                        ALE=0;
      Address15_8=0x55;
      Delay1us(20);
      Sst39vf040_We=0;
      DataOut=0x10;
      Delay1us(20);
      Sst39vf040_We=1;
      while(!Wait_Data_Pulling());
}

这个擦除程序有问题么?为何擦除不了。。。

lynnlase110 发表于 2012-5-28 14:06:32

没有人知道啊 自己顶下

qinxg 发表于 2012-5-28 14:32:39

晕. 哪有这样编的.
启动XDATA, 用外部RAM模式来操作SST39XXX. 除非PCB画的有问题.
页: [1]
查看完整版本: SST39VF040 为何无法擦除。读取正常,写也有点问题。