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

📄 adc.c

📁 RFID模块 RF24E1读卡程序,用Keil C编译成功!
💻 C
字号:
#include "24e1.h"
#include "adc.h"


  
 void InitADC(void)
{
    //ADCCON = 0x20;                  // Channel 0, NPD=1, ADCRUN=0, EXTREF=0
	//ADCCON = 0x28;					  // ADCSEL=8, NPD=1, ADCRUN=0, EXTREF=0
    ADCCON  = 0x30;   				  // Channel 0, NPD=1, ADCRUN=0, EXTREF=1
	ADCSTATIC &= 0x1c;				//
    //ADCSTATIC |= 0x03;              // 12bit
	ADCSTATIC |= 0x01;              // 8bit
    ADCCON &= ~0x80;                // Start..
    ADCCON |= 0x80;                 // ..new conversion
} 
  
unsigned char ReadADC1(void)
{
    unsigned char b;

    while((EXIF & 0x10) == 0)       // Wait until ADC conversion complete
        ;
    EXIF &= ~0x10;                  // Clear ADC completion bit
    b = ADCDATAH;                   // Read ADC data
    ADCCON &= ~0x80;                // Start..
    ADCCON |= 0x80;                 // ..new conversion
    return b;
}

unsigned char ReadADC(void)
{
  unsigned char adc[7],adc_rev;
  unsigned int sum;
  unsigned char max,min,temp,i;
  for(i=0;i<7;i++)
  {
   adc[i]=ReadADC1();
   Delay100us(10);
   }
  max=adc[0];
  min=adc[6];
  if(max<min)
  {
    temp=max;
	max=min;
	min=temp;
  }
  for(i=1;i<6;i++)
  {
   if(adc[i]>max)
   {
     temp=max;
	 max=adc[i];
	 adc[i]=temp;
   }
   else if(adc[i]<min)
   {
	 temp=min;
	 min=adc[i];
	 adc[i]=temp;
   }
  }
  for(i=1,sum=0;i<6;i++)
  {
    sum+=adc[i];
  }
  adc_rev=sum/5;
  return adc_rev;
}

⌨️ 快捷键说明

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