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

📄 adc_function.c

📁 基于IAR开发环境的利用CC2510无线单片机实现的多路数据采集。
💻 C
字号:
#include "ioCC2510.h"
#include "RF04EB.h"
#include "string.h"
#include "lcd128_64.h"
#include "ADC_function.h"

void Init_Clock(void)
{
      CLKCON &= ~0x40;              //晶振
      while(!(SLEEP & 0x40));      //等待晶振稳定
      CLKCON &= ~0x47;             //TICHSPD128分频,CLKSPD不分频
      SLEEP |= 0x04; 				 //关闭不用的RC振荡器
}

void Init_AD(void)
{
        ADCCFG = 0x01;          //打开AIN0
	ADCH &= 0X00;		//清EOC标志	
	ADCCON3=0x20;		//单次转换参考电压为1.25V内部基准源,对AIN0进行A/D转换
						//12位分辨率
	ADCCON1 = 0X30;		//停止A/D 
        IEN0|=0x02;//使能ADC中断
	ADCCON1 |= 0X40;	//启动A/D
}

#pragma vector = ADC_VECTOR
 __interrupt void ADC_conversion(void)
 {
	float num;
        UINT8 temp[2];
        UINT8 adcdata[]="0.00V";
        
//        TCON &= ~0x20;
	temp[1] = ADCL;
	temp[0] = ADCH;

	temp[1] = temp[1]>>4;//数据处理
        num = (temp[0]*16+temp[1])*1.25/2047;//定参考电压为1.25V。12位精确度               
        adcdata[0] = (char)(num)%10+48;
        //adcdata[2] = '.';
        adcdata[2] = (char)(num*10)%10+48;
        adcdata[3] = (char)(num*100)%10+48;
	Print(2,0,adcdata,1);   
 }

⌨️ 快捷键说明

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