有谁知道单片机内部ad转换怎么使用,最好有例子
答案:1 悬赏:10
解决时间 2021-02-20 10:59
- 提问者网友:践踏俘获
- 2021-02-19 13:36
有谁知道单片机内部ad转换怎么使用,最好有例子使用的是12c5a60s2
最佳答案
- 二级知识专家网友:转身→时光静好
- 2021-02-19 14:33
单片机的说明文档上有,首先要看一下ADC_CONTR这个寄存器
它决定着ADC 电源开启 转换速度 选择哪个通道 启动与停止 转换是否完成
程序如下:
ADC_CONTR=ADC_CONTR|0x80; //10000000 开启转换电源
Delay1ms(1); //延时,等待内部电源稳定
P1M0=P1M0|0x07; //设置p1.0 P1.1 p1.3所在通道为开/漏模式也可以提前配置好
P1M1=P1M1|0x07;
ADC_CONTR=0xe0; //11100000 开启P1.0通道开始转换
Delay25us(10); //延时一端时间,使输入电压达到稳定
ADC_DATA =0x00; //清A/D转换结果寄存器
ADC_LOW2 =0x00;
ADC_CONTR |= 0x08; //ADC_START=1,开始转换
while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束
temp1=ADC_DATA; //读取转换结果
temp2=ADC_LOW2;
advalue=temp1*4+temp2;//advalue是最终结果
其余两路转换 略
它决定着ADC 电源开启 转换速度 选择哪个通道 启动与停止 转换是否完成
程序如下:
ADC_CONTR=ADC_CONTR|0x80; //10000000 开启转换电源
Delay1ms(1); //延时,等待内部电源稳定
P1M0=P1M0|0x07; //设置p1.0 P1.1 p1.3所在通道为开/漏模式也可以提前配置好
P1M1=P1M1|0x07;
ADC_CONTR=0xe0; //11100000 开启P1.0通道开始转换
Delay25us(10); //延时一端时间,使输入电压达到稳定
ADC_DATA =0x00; //清A/D转换结果寄存器
ADC_LOW2 =0x00;
ADC_CONTR |= 0x08; //ADC_START=1,开始转换
while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束
temp1=ADC_DATA; //读取转换结果
temp2=ADC_LOW2;
advalue=temp1*4+temp2;//advalue是最终结果
其余两路转换 略
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯