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

📄 ads1211.c

📁 此程序为基于ADS1210A/D摸数转换器的驱动程序
💻 C
字号:


#include "reg935.h"      
#include <intrins.h>
#include "ADS1211.h"
      
typedef       unsigned char uchar;                              
typedef       unsigned int	uint;
typedef       unsigned char byte;
uchar idata	ad1,ad2,ad3,ad4;           
sbit DRDY     = P2^6;
sbit SCLK     = P2^4;
sbit DOUT     = P2^3;
sbit DIN      = P2^2;
sbit CS2      = P2^5;

void Delay1 (INT16U numb)                            //延时函数
{
   INT16U i,j;
   for(j=0;j<numb;j++){
      for (i = 0;i <10;i++){  
         _nop_();                             
      }
         
   }       
} 
void Write_1211(uchar da)                    //写ADS1211
{
     unsigned char  i;	  
	    _nop_();    
        for (i=0;i<8;i++){                           
           SCLK=1;
           _nop_();           
		       _nop_();
	         DIN =(bit)(da&0x80);
			     da<<=1;
			     _nop_();		 
           SCLK=0;         
        }
		  
		  DIN=1;
		  DOUT=1;       
}
 
unsigned char Read_1211(void)              //读ADS1211
{
     unsigned char i;
     unsigned char adr;   
     for (i=0;i<8;i++){        
 		    SCLK=1;
		    _nop_();	
		    adr<<=1;	
          if(DOUT){
             adr|=0x01;
          }
		    SCLK=0;
        _nop_();

     }
     DIN=1;
     DOUT=1;	 
     return adr;
}
void Ads1211Ini(void)                            //初始化ADS1211
{    
  //     uchar da;	   
	   while(DRDY==0);                          //等待空闲
	       CS2=0;
	     //  da=0x64;
		     Write_1211(COMMAND1);
		     _nop_();
		     _nop_();
		   //_nop_();
 	     //  da=0x12;
	       Write_1211(COMMAND2);
	       _nop_();
	    //   da=0x20;
	       Write_1211(COMMAND3);
	       _nop_();
	    //   da=0x01;
	       Write_1211(COMMAND4);
	       _nop_();
	    //   da=0x86;//da=0x46;
         Write_1211(COMMAND5);               
 	       _nop_();
//		   SS=1;			 
} 
unsigned long  Adout(void){                  //A/D转换
      unsigned long  adc;
      uchar da; 
      da=0xC0;      
	  while(DRDY==0);                       //等待空闲
	      CS2=0;
	      _nop_();
        _nop_();
        write_1211(da);
     	  _nop_();
        _nop_();
		    _nop_();
        _nop_();
		    _nop_();
        _nop_();
        ad1=read_1211();
        ad2=read_1211();
		    ad3=read_1211();      
        adc=ad1;
        adc<<=8;
        adc+=ad2;
		    adc<<=8;
		    adc+=ad3;
		   // adc<<=1;
//		  SS=1;
		    DRDY=1;		 
          return(adc);
} 
          
/*  
void IOIni(){
       CS2=1;              
			 Delay1 ();
			 CS2=0;
     //P1M1=0x00;			    //设置P1端口
//	   P1M2=0x00;	
	     P2M1=0x00;			    //设置P2端口
	     P2M2=0x80;              //
       Ads1211Ini();
			 CS2=1;
} 
*/

 

⌨️ 快捷键说明

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