导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→哦?酱紫,那请大家看看我的程序。

* 44691: 弱弱的问个问题,关于EEPROM

   hatereg 
hatereg发表的帖子 

 哦?酱紫,那请大家看看我的程序。
这是个读数据程序
谢谢!

sbit SCL=P1^0;
sbit SDA=P1^1;

        
PUBLIC void start(void)
{
 SDA=1;
 SCL=1;
 TIMING_STABLE();
 SDA=0;
 DELAY_WAIT();
 SCL=0;
 TIMING_STABLE();
}

PUBLIC void stop(void)
{
 SDA=0;
 SCL=1;
 TIMING_STABLE();
 SDA=1;
 TIMING_STABLE();
 SCL=0;
 TIMING_STABLE();
}

PUBLIC void write_da(u8 send_byte)   //写数据
{
 XDATA u8 j=8;
 for(;j>  0;j--)
 {
         send_byte  <  <=1;
  SDA=CY;
  DELAY_WAIT();
  SCL=1;
  TIMING_STABLE();
  SCL=0;
  TIMING_STABLE();
 }
        SDA=1;  
}

PUBLIC void re_ack(void)    //读ACK
{
       XDATA u8 i=128;
       
       do
       {
         CY=SDA;
         i--;
       }while(CY!=0 && i>  0);         
        
        SCL=1;        
        TIMING_STABLE();
 SCL=0;
 TIMING_STABLE();
    
               
PUBLIC u8 read_da(void)       //读数据
{
 XDATA u8 receivebyte=0;
 XDATA u8 i=8;
 while(i--)
 {
  receivebyte=(receivebyte  <  <1)|SDA;
                DELAY_WAIT();
  SCL=1;
  TIMING_STABLE();
  
  SCL=0;
  TIMING_STABLE();
 }
 return(receivebyte);
}

PUBLIC void TIMING_STABLE(void)   //延时
{
 XDATA u8 i=1;
 XDATA u8 j;
 for(;i>  0;i--)
 {
                j=1;
  for(;j>  0;j--)
  {
   _nop_();
  }
 }
}

PUBLIC void DELAY_WAIT(void)  //延时
{        
        XDATA u8 j=1;
       for(;j>  0;j--)
       {
            _nop_();
       }
}
 
 
PUBLIC void read_from(u8 address,u8 *re_address)    //读数据主程序段
{    
              
  start();
 write_da(0xa0);
        re_ack();
        write_da(address);
        
        re_ack();
        start();
 write_da(0xa1);
        
 re_ack();
 *re_address=read_da();
 stop();
        DELAY_WAIT();
}



发表时间:2003年11月13日17:24:43

  
回复该帖

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

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

  44735.[详细]伪写不需要等应答
摘要:伪写不需要等应答......(16字)
- [guest][985次] 2003年11月14日

  44755.[详细]要的呀,atmel的官方资料上说要的
摘要:......(无内容)
- [hatereg][953次] 2003年11月14日

  44703.[详细]哪个大虾指导一下,错在哪了?
摘要:......(无内容)
- [hatereg][902次] 2003年11月13日

[上一篇帖子]:晕!在仿真时怎么不能单步执行,全速执行就立刻回到开始?请各位给点建议
[下一篇帖子]:不要紧,atmel停了,还有很多厂家