导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→AT24C256用C51写的Write子程序可以,,但是Re

* 29306: AT24C256用C51写的Write子程序可以,,但是Read 读子程序不可以?

   chinashenguo 
chinashenguo发表的帖子 

 AT24C256用C51写的Write子程序可以,,但是Read 读子程序不可以?
AT24C256求教!! 想不通帮我研究一下!! 

//--------------------write-------------------                                           
              AT24C256_SCL=0;                                
    AT24C256_SDA=1;                                              
    AT24C256_SCL=1;                                              
    AT24C256_SDA=0;                                              
        Write8Bit(0xa0);           
        Write8Bit(0x00);           
        Write8Bit(0x10);           
        Write8Bit(0xaa);           
                                           
            AT24C256_SCL=0;                              
    AT24C256_SDA=0;                                               
    AT24C256_SCL=1;                                              
    AT24C256_SDA=1;                                                                                   
        Delay_xMs(100);            
//-------------------read---------------------                        
          AT24C256_SCL=0;                                       
    AT24C256_SDA=1;                                             
    AT24C256_SCL=1;                                             
    AT24C256_SDA=0;                                             
        Write8Bit(0xa0);           
        Write8Bit(0x00);           
        Write8Bit(0x10);           
           AT24C256_SCL=0;                                                   
    AT24C256_SDA=1;                                               
    AT24C256_SCL=1;                                              
    AT24C256_SDA=0;                                             
        Write8Bit(0xa1);           
        temp=Read8Bit();           
            AT24C256_SCL=0;                    
    AT24C256_SDA=0;                                            
    AT24C256_SCL=1;                                             
    AT24C256_SDA=1;                    
           
;---------------------------------------------
/***************************************************************************/
bit Write8Bit(unsigned char input) {
    unsigned char i;
    for(i=0;i  <8;i++) {
        input  <  <=1;
        AT24C256_SCL=0;
        AT24C256_SDA=CY;
        AT24C256_SCL=1;
    }
    AT24C256_SCL=0;_nop_();
    AT24C256_SDA=1;_nop_();
    AT24C256_SCL=1;_nop_();
    CY=AT24C256_SDA;
    return(1);
}

/***************************************************************************/
unsigned char Read8Bit() {
    unsigned char temp,rbyte=0;
    for(temp=8;temp!=0;temp--) {
            rbyte=rbyte  <  <1;
        AT24C256_SCL=0;
        AT24C256_SCL=1;
                 rbyte=rbyte|((unsigned char)(AT24C256_SDA));
    }
    AT24C256_SCL=0;
    AT24C256_SDA=0;
    AT24C256_SCL=1;
    AT24C256_SCL=0;
    AT24C256_SDA=0;
    return(rbyte); 
}      


上面的程序我用仿真器仿可以将24C256的地址0010处写入aa正常而用下面的读程序读出0010的内容为FF不正确.
因为我用上面的程序写后再用汇编编的程序读出来的数值是对的aa
我不知上面的C51程序读程序错在哪里?求教!      

 
 


发表时间:2003年5月9日16:39:53

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  29349.[详细]在读的程序里加一个循环程序
摘要:......(无内容)
- [maxbar][1061次] 2003年5月9日

  75437.[详细]unsigned char Read8Bit() { &n..
摘要:unsigned char Read8Bit() {     unsigned char temp,rbyte=0;  ......(709字)
- [zhonghuahun212][896次] 2005年3月18日

[上一篇帖子]:yes 你没有性别歧视吧! 呵呵 好吧 再约了 我干活
[下一篇帖子]:是这样的我从源程序中的变量计数 data的开销与编译后告诉我的尺寸不符,编译大了