这个实验利用电位器作为模拟输入,ADC进行单次采样,将得到的值和对应的ADC转换数值显示在ADC上,同时让红灯和绿灯闪烁,采样值越大闪烁频率越大。
主函数如下:
void main(void){
INT8 adc_value;
UINT8 potVoltage = 0;
BOOL updateLCD = TRUE;
initLcd();
initAdc();
while(1){
ADC_ENABLE_CHANNEL(ADC_AIN7);//选择AIN7输入使能
//ADCCON3=10000111,3.3v参考电压,8位分辨率(实际为7位,有一位无用),信道为7道
ADC_SINGLE_CONVERSION(ADC_REF_AVDD | ADC_8_BIT | ADC_AIN7);
ADC_SAMPLE_SINGLE();//启动转换,先使ADCCON1.STSEL[1:0]=11,再令ADCCON1.ST=1启动抓换
while(!ADC_SAMPLE_READY());//转换完成ADC_SAMPLE_READY()=ADCCON1.EOC=0,往下执行,否则等待
adc_value = ADCH;//