导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[hx821]28SF040读写搞不定,请高手们指点,



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数值是正确的,只是也出现和上面一样的问 ......

>>返回讨论的主题


  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:35毫秒 最大:7276毫秒 查询6次