这里没有用过W29C040并且成功的呀?[原创]
void flash1_r(void)
{
CE1=0;
switch(count_sec) //选择flash存储的段
{
case 0: P3 &=0xf8; break; /* 29c040 a18a17a16= 000 00000-0ffff */
case 1: P3 &=0xf9;P3 |=0x01; break; /* 29c040 a18a17a16= 001 10000-1ffff */
case 2: P3 &=0xfa;P3 |=0x02; break; /* 29c040 a18a17a16= 010 20000-2ffff */
case 3: P3 &=0xfb;P3 |=0x03;break; /* 29c040 a18a17a16= 011 30000-3ffff */
case 4: P3 &=0xfc;P3 |=0x04; break; /* 29c040 a18a17a16= 100 40000-4ffff */
case 5: P3 &=0xfd;P3 |=0x05; break; /* 29c040 a18a17a16= 101 50000-5ffff */
case 6: P3 &=0xfe;P3 |=0x06; break; /* 29c040 a18a17a16= 110 60000-6ffff */
case 7: P3 |=0x07;break; /* 29c040 a18a17a16= 111 70000-7ffff */
}
P2=count_page; //A8-A15高地址
PRT1CF=0x0ff; //允许D为输出
P1=addl_flash; //A0-A7低地址
LE=1;
LE=0; //锁存地址
PRT1CF=0x00;//允许D为输入
P1=0x0ff;
OE=0; //读选通
//_nop_();
tempf=P1;
OE=1;
CE1=1;
}
我的读程序读到的数就是P1锁存的地址A0-A7,即0000H-00FFH单元对应的数为00H-FFH,不知何故?请指点一二!
发表时间:2005年7月5日23:14:09