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

📄 xd2008ad_da.h

📁 西安电子科技大学08单片机开发板综合运用源代码
💻 H
字号:

/*-------A/D转换函数-------*/
unsigned char adcon(void)  //A/D变换函数
  {unsigned char i;
   unsigned char idata ad; 
    ADCS=1;CLK=0;ADO=1;
    ADCS=0;
	ET0=0;
   for(i=0;i<8;i++)
       { 
	    ad=ad<<1;
	    CLK=1;delay_s(0x02);
	    if(ADO==1) ad=ad | 0x01;
	    else   ad=ad | 0x00;
	    CLK=0;delay_s(0x02);
       }
	ADCS=1;
    ET0=1; 
	return(ad);      
  }
  void disp_ad(void)
    {
      unsigned char ad;
	  ad=adcon();//调用A/D函数
	  /*------显示参数-----*/
	  bs=ad/100;
      ss=ad%100/10;
      gs=ad%10;
	  qs=0;
	  pot=0;
    }
/*--------D/A转换函数--------*/
 void dacon(unsigned int x)
   { unsigned char i;
     unsigned int idata y;
     y=x & 0x3fff;
	 y=y<<2; 
     DACS=1;CLK=0;DAIN=0;
     DACS=0;
	 ET0=0;
     for(i=0;i<16;i++)
	  {
	    if((y&0x8000)==0x8000) DAIN=1;
 	     else DAIN=0;
	    CLK=1;delay_s(0x02);
        CLK=0;delay_s(0x02);
		y=y<<1;
       }
	 DACS=1;
     ET0=1;
   }

 void disp_dacon(void)//显示D/A的数据
   { unsigned int i;
     unsigned int idata z;
     float vot; 
	 for(i=0;i<1024;i++)
	   {
	     dacon(i);//DA转换函数
		 delay_l(0x500);
	     vot=(float) i/1024;
	     vot=4.274*vot;//计算出电压值
	     z=vot*100;
	     qs=(unsigned char)(z/1000);
	     bs=(unsigned char)(z%1000/100);
	     ss=(unsigned char)(z%100/10);
	     gs=(unsigned char)(z%10);
	     pot=1;
	     printf("\n %f %d",vot);
 		 if(K1==0) goto quit_DA;
		 led123=~led123;
       }
  quit_DA:
       ;
	} 
void daout_adin(void)//D/A输出A/D输入并显示
    { 
	 unsigned int idata i=0;
     led123=0x07;
     while(1)
     {
	  //for(i=0;i<255;i++)
	   if(K2==0) 
	    {
		 speak(0x300);//发声
         delay_l(0x1000);//延时
		 while(K2==0);
		 i=i+30;
		 if(i>0x3ff) i=0;
	    }
		dacon(i);//D/A输出X
        disp_ad(); //A/D采集并显示
        delay_l(0x1000);
	    led123=~led123;
        if(K1==0) goto quit_daad;
      }
     quit_daad:
     speak_2();
   	}

⌨️ 快捷键说明

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