⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.txt

📁 AD7705SPI读写原代码
💻 TXT
字号:
void main(void)
{  

    int i;   AD_RST=1;
    AD_RST=0;
    delay();
    AD_RST=1;
   
    //for(i=0;i<5000;i++){}//
    writeword(0xff);
    writeword(0xff);//防止借口迷失,使通信积存器回到等待状态
        
    
    writeword(0x20);//发送写命令序列 clock register
    writeword(0x0c);//设置更新频率
    writeword(0x10);//set up register
    writeword(0x78);// 
  
    
    while(1)
    {// writeword(0xaa);
    //for(i=0;i<200;i++);
    
    buffer[i]=readdata();
    
    if(i<10)i=i+1;
    else i=0;
    }   
    
    
}
void writeword(unsigned int byteword)
    {  unsigned int AD16bit,Token;
       unsigned char i ;
       AD_CLK=1; 
       AD_CS=0;//开始
       delay();
       Token=0x80;
       AD16bit=byteword;
     for(i=0;i<8;i++)
        { 
           if(AD16bit&Token)AD_IN=1;//输入数据位
           else AD_IN=0;
           
           AD_CLK=1;
           delay();
           AD_CLK=0;
           delay();
           AD_CLK=1;
           delay();
           Token=Token>>1;
          }
       AD_CLK=1;
       AD_IN=1;//结束
       AD_CS=1;
  
     }
unsigned int readdata()
   {     
      unsigned int AD16bit;
      unsigned char i;
      writeword(0x38); //设置读当前通道数据
     
     while(AD_REDY==1){;}  //等待数据准备好
     
     AD_CLK=1;
     AD_CS=0;
     delay();
     AD16bit=0x00;
    for(i=0;i<16;i++)
      {
        AD16bit=AD16bit<<1;
        AD_CLK=0;
        delay();
        if(AD_OUT==1)AD16bit=AD16bit|0x01;//读取数据位
        AD_CLK=1;  
        delay(); 
       }
        AD_CLK=1;
        AD_IN=1;
        delay();
        
       while(AD_REDY==0){;}
       AD_CS=1;
        
       return(AD16bit);
     }
   void delay()
    { 
      unsigned int j;
      for(j=0;j<8;j++);
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -