ad.c

来自「12位11通道AD转换芯片tlv2553,12位双通道DA转换芯片tlv5638」· C语言 代码 · 共 86 行

C
86
字号
#include"group.h"

/*********************************
         地址数据传输   
*********************************/
extern void AD_send(unsigned char ch)
{
   unsigned char i;
   while(!AD_EOC);
   for(i=0;i<8;i++)
   {
      AD_CLK=0;
      if((ch&0x80)==0x80)
         AD_ADD=1;
      else
	     AD_ADD=0;
	  AD_CLK=1;
	  ch<<=1;
   }
   for(i=0;i<4;i++)
   {
      AD_CLK=0;
      i=i;
	  i=i;
      AD_CLK=1;
   }
   AD_CLK=0;
}

extern void AD_IN(unsigned char ch)
{  // while(!AD_EOC);
   AD_CS=0;
   AD_send(ch);
   AD_CS=1;
}
/**********************************
          模拟量转换
**********************************/
extern unsigned int AD_GET(unsigned char ch)
{
    unsigned char i;
    unsigned int ad;
    AD_IN(ch);
    i=20;
	while(i--);
	AD_CS=0;
	for (i=0;i<12;i++)
    { 
       AD_OUT=0;
	   AD_CLK=1;
	   if(AD_OUT==1){ad|=1;}
	   if(AD_OUT==0){ad|=0;}
	   AD_CLK=0;
	   ad<<=1;
	}
	AD_CS=1;
    ad>>=1;
	return(ad);
}

//------------------------------
extern void AD_main(void)
{  
   unsigned long ad1,ad2,ad3;
   
        ad1=AD_GET(0x20);
	    ad1=ad1*100;
	    display_char(1,0,ad1/81900+'0');
		display_char(2,0,ad1%81900/8190+'0');
		display_char(3,0,ad1%81900%8190/819+'0');
		display_char(4,0,ad1%81900%8190%819/81.9+'0');

	    ad2=AD_GET(0x40);
	    ad2=ad2*100;
	    display_char(6,0,ad2/81900+'0');
		display_char(7,0,ad2%81900/8190+'0');
		display_char(8,0,ad2%81900%8190/819+'0');
		display_char(9,0,ad2%81900%8190%819/81.9+'0');
    
        ad3=ad1-ad2;
	    display_char(11,0,ad3/81900+'0');
		display_char(12,0,ad3%81900/8190+'0');
		display_char(13,0,ad3%81900%8190/819+'0');
		display_char(14,0,ad3%81900%8190%819/81.9+'0');		
}	

⌨️ 快捷键说明

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