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

📄 ad7791.c

📁 这是ad7791的驱动程序,AD7791是24位的高精度AD
💻 C
字号:
#include <at89x52.h>
#include <stdio.h>

/***********************************AD7791*************************************************/
sbit DIN = P0^0; 
sbit DOUT_RDY = P0^1;
sbit SCLK = P0^2;
sbit CS = P0^3;
/*******************************************************************************************/
//function Inituart();
/*******************************************************************************************/
void delay ( unsigned int i )
{ 
	while ( --i ) ;
}
void Inituart(void)
{
	SCON = 0x50 ;
	TMOD = 0x20 ;
	TCON = 0x40 ;
	TH1  = 0xFD ;
	TL1  = 0xFD ; //11.0592MHz :9600
	TI = 1;
	TR1 = 1;
}
/*******************************************************************************************/
//function spi_write();
//communications register
//0x4c  , continuous read 24bit data
/*******************************************************************************************/
spi_write( unsigned char sw )
{
   unsigned char i;
   CS=0;
   SCLK=1;

   for (i=0;i<8;i++)
    {
	   SCLK = 0 ;				  
	   DIN = (bit)(sw&0x80);	   
	   sw<<=1;					   
	   SCLK	= 1 ;				   
	   
	}
   CS=1;
   SCLK=0;
}
/*******************************************************************************************/
//function ad7791();
/*******************************************************************************************/
unsigned long spi_read ( void )
{
   unsigned long addata = 0 ;
   unsigned char i ;
   CS=0;
   SCLK=1;
   for (i=0;i<24;i++)
    { 
      SCLK=0;					
      addata*=2;				
      if(DOUT_RDY) addata++;	
      SCLK=1; 					
    }
    CS=1;
	return(addata);	
/*******************************************************************************************/
}
void main(void)
{	
	unsigned long ad;
	Inituart();					// initialize 232 uart

		
		spi_write( 0x20 ) ;
		delay(100);
		spi_write( 0x37 ) ;	
		delay(100);
		spi_write( 0x3c ) ;

	while(1)				
	{	
	    
		//CS = 0 ;				

	    //spi_write( 0x82 ) ; 

		delay ( 50000 ) ;
		
		if(DOUT_RDY)
		   ad = spi_read(); 
		//CS = 1 ;
		//P2_5 = ~P2_5 ;
		printf ( "%ld\n\r" , ad ) ;

			

	}	
}

⌨️ 快捷键说明

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