代码
#include <ny8.h>
#include "ny8_constant.h"
unsigned int R_AIN1_DATA;
}
//Byt = 0x00-0xff;
void ADC_Init(unsigned char Byt)
{
ADMD = 0x80;
ADVREFH = 0x03; //设置参考电压
ADR = 0x20; //设置时序
ADCR = 0x0f; //设置ADC数据位数和采样时间
ADMDbits.GCHS = 1; //启用全部ADC模拟输入通道
PACON = Byt; //这个脚做ADC专用引脚
unsigned int ADC_dialogue(unsigned char Byt)
{
ADMD = 0x90|Byt ; //ADC通道选择,使能ADC模块
ADMDbits.START =1; // 开始转化
//等待一下
while(!ADMDbits.EOC); //判断转换是否完成退出
ADMDbits.EOC= 0; //标志位手动清0
R_AIN1_DATA = ADD<<4|(ADR & 0x0f) ; //得到12位数据
return R_AIN1_DATA; //返回采样结果
}
unsigned int ADC_byte_filter(unsigned char Byt)
{
unsigned char BYTE=0,i=0;
ADC_dialogue(Byt);
ADC_dialogue(Byt);//前两个数据丢掉
for(i=0;i<16;i++)
{
BYTE+=ADC_dialogue(Byt);
}
BYTE/=16;
return BYTE;
}