a 是模拟量,如电压,温度等物理量,就是连续变化的量,
d 数据量,单片机里的二进制数就是数字量。
单片机只能计算和处理数字量,为了测量外界的温度等模拟量,就要先把模拟量变成相应的数字理来表示。
把模拟量变成数字量的过程就叫AD转换。也叫ADC。
有的单片机内部有AD电路,就可以转换了,但有的单片机没有AD电路,就需要另外配一片AD电路来实现,就比较麻烦了。
如AT89C51,就没有AD,要测量模拟量就得外配AD电路,如典型的有ADC0808,特别是在proteus仿真里就常用ADC0808,或ADC0809。
STC12系列单片机AD转换设置是通过设置P1ASF寄存器来控制通道的。
你确定是0XF7?
上图是12C5A60S2的ADC_CONTR寄存器的格式,以及转换标志位的说明。按照这个来说,应该是ADC_CONTR=ADC_CONTR0XEF(等价于ADC_CONTR=0XEF),才能把标志位清0。
STC12C5A60S2单片机有8路AD输入,但是它的AD核只有一个,1次只能进行一个输入端的AD转换,你可以看一下它的DataSheet上面是有相关的说明的,在STC官网上也有代码,进入网站,按下Ctrl键+F键就可以查询你想要的代码了。
不能同时使用2个AD口,STC本身的8路AD口也是有多路选择开关进行切换实现的。如果你对速度要求不是很高,通过切换能满足一般要求,STC12系列的
AD转换
速度可达250KHz.。通过AD中断采集数据速度会快些。
ADC_RES
这是十位采样结果的高8位。
*4,就相当于
左移两位。再
+ADC_RESL,构成了10位数据
12单片机的ad的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:12单片机的ad