No.83018 作者:hx821 邮件:hx821@163.com ID:40037 登陆:2次 文章数:1篇 最后登陆IP:222.65.192.31 最后登陆:2005/9/1 19:14:30 注册:2005/8/30 20:52:40 财富:106 发帖时间:2005/9/1 17:27:04 发贴者IP:222.65.192.31 标题:hx821:28SF040读写搞不定,请高手们指点,谢谢! 摘要:No.8301828SF040读写搞不定,请高手们指点,谢谢! 大家好,我用28sf040碰到一些问题,请指教。 我用的是89c51单片机,用28sf040扩展存储,P2的5-7口接38译码器后,片选Y4口进 28sf040,P0的0-7口接锁存器接到28sf040的A0-7,P2的0-4口接到28sf040的A8-12,P1的0-5 接到28sf040的A13-18。 现在遇到两个问题,如下的两个程序读出来的28sf040的0000h和0001h的数值不一样: 第一个: #include <reg51.h> main() { char id1,id2; int xdata *temp; P1=0; /*使P1口的0-5为0*/ temp=0x8002; /*选通28sf040芯片*/ *temp=0xff; /*reset芯片*/ *temp=0x90; /*读ID*/ temp=0x8000; id1=*temp; temp=0x8001; id2=*temp; } 这个程序读出来的数值和说明书里的数值正好相反,而且我发现读出所有偶数地址的数值 都和0000H的一样,为04H,所有奇数地址的数值都和0001H一样,为BFH. 还有我置P1为0,是为了能读出0000H和0001H地址,不知道这样做,正确与否? 第二个: #include <reg51.h> #include <absacc.h> #define W1 XBYTE[0x8000] #define W2 XBYTE[0x8001] main() { char id1; char id2; W1=0xff; /*reset芯片*/ W1=0x90; /*读ID*/ P1=0; /*使P1的0-5为0*/ id1=W1; id2=W2; } 这个程序读出来的ID数值是正确的,只是也出现和上面一样的问 ......
>>返回讨论的主题
|
老古网执行:35毫秒 最大:7276毫秒 查询6次
|
|