单片机AD转换

2019-04-15 17:34发布

 sfr ADC_RES=0xBD;  声明 转换结果寄存器
转换出来的分数保存在这个寄存器里,范围0~255。
假如写程序 a=ADC_RES; a就获得转换结果了。

sfr P1ASF=0x9D 声明 P1口模拟功能寄存器
 
设置P1.7引脚对应的程序是: P1ASF=0x80;

 sfr ADC_CONTR=0xBC  声明 模数转换寄存器
 .
这个寄存器里面参数较多,不过我们只需要用该用到的就行了,别的暂时不用理会。
寄存器的后三位是引脚选择,000~111,0到7代表P1.0~P1.7引脚。
开始P1.7引脚AD转换,你可以直接设置为 1000 1111,也可以分开再相加 1000 1000+111
对应程序,可以写作 ADC_CONTR=0x8F; 也可以写作 ADC_CONTR=0x88+7;

 AD转换例程
P1ASF=0x80;  //设置P1.7引脚
ADC_CONTR=0x88+7;  //开始P1.7引脚转换
Delay50us();   //等待AD转换完成
a=ADC_RES;  //读取转换结果
单片机时钟为12M时,一次AD转换最慢也是45us,所以等待50us即可保证转换完成。 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、