单片机Adc c语言,初学PIC单片机 ADC求教高手,内附C程序

//PIC16F685 ADC 采样(0-5V),AD值始终<700,反复参考数据手册未了原因,食不知味,睡不安寝

2e0ef1177797c9c932bd34b0fde376a0.gif ,请高手不吝指教,感谢!

#include

__CONFIG(0x0034);

#define     LED1     RC6

#define     LED2   RC7

UINT POT_AD;

void adc_init(void)

{

ADCON0 = 0x81;

ADCON1 = 0b00100000;

ADCON0bits.ADON = 1;

ADCON0bits.GO_nDONE = 0;

}

UINT adc_polling(UINT8 channel)

{

unsigned int rlt = 0;

ADCON0 &= 0x83;

ADCON0 |= (channel << 2);

ADCON0bits.GO_nDONE = 1;

while(ADCON0bits.GO_nDONE);

rlt =ADRESH;

rlt = rlt <<8;

rlt += ADRESL;

return rlt;

}

void io_init(void)  //端口初始化

{

ANSEL = 0b01100100;

ANSELH = 0b11111000;

PORTC = 0b00000000;

TRISC = 0b00000111;

}

void system_init(void)

{

OSCCON = 0b01100111;

io_init();                  //端口初始化

adc_init();                 //ADC初始化

LED1= 0;

LED2= 0;

}

void main(void)     //主函数

{

system_init();  //初始化端口

while(1)

{

POT_AD = adc_polling(5);  //读取AD

if(POT_AD>700)

{

LED1 = 0;

LED2 = 1;

}

else

{

LED1 =1;

LED2 =0;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值