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

📄 ad._c

📁 AVR学习开发 板
💻 _C
字号:
/****************************************************************************************
                         mega8的AD转换功能演示实验   
		                                                
             程序功能:该程序是用AVR来实现AD转换,
			           精度为10位,参考电压选用内部2.56v
					   通道选用ADC0
					   电压显示用12864液晶模块显示
             
					                                 作者:张国旗
													 2009年1月4号       
****************************************************************************************/
uint mega8_ad()
{
     uint addata;
	 ADMUX=0xc0;           	  		//选择内部参考电压2.56v,选择ADC0,数据右对齐
	 ADCSR=0X80;					//ADC使能
	 ADCSR|=BIT(ADSC);				//启动AD转换
	 while(!(ADCSR&(BIT(ADIF))));	//等待转换结束
     addata=ADCL;					//读取转换结果
	 addata=addata+ADCH*256;
	 return addata;
}   

void adchange()
{
   uint i,vstrtemp,ad[4],xdata;
   float ada=0.0000000000;
   unsigned long int data;
   char lcddata[11]={0,0,0,0,0,0,0,0,0,0,0};//2.560000000
  // LcmInit();					   //液晶初始化										  
   //PORTB=0xff;					   //背光口开											  
   //LCD_ON;                     	   //开液晶背光显示 
   //Delay(10);
   PutStr(1,0,"电压为:");		   //向12864发字符串
   
      ada=mega8_ad(); 			   //读取AD转换结果到ada
	  data=(ada/1023*2560000000);  //显示数据转化
	  for(i=0;i<10;i++)
	  {
	    lcddata[10-i]=data%10;
		data=data/10;
	  }
	  lcddata[0]=lcddata[1];
	  lcddata[1]=-2;
	  WriteCommand(0x30);         //电压显示起始坐标
	  WriteCommand(0x88);
	  for(i=0;i<11;i++)
	  {
	     vstrtemp=lcddata[i]+0x30;                
         WriteData(vstrtemp);
	  } 
	  WriteData(0x76);		 	//发送电压单位"v"	
   
	 delay(10);
}

⌨️ 快捷键说明

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