用PIC16C73单片机实现十二位A/D转换器
由图3可知,运算放大器U1的输出作为A/D转换器的输入,在4066的所有的开关都关闭的情况下,则输出的模拟电压:
,(U2为前置偏移调整电路的输出) (1)
取R3=10R2则,运算放大器U1输出数据的范围在0~4.095V之间,因基准电压为2.55V,如果输入的数据大于等于2.55V,则A/D转换之后读入的值为0FFH,此时转换的数值就大于八位,在程序中置位RA4、 RA5 、RA2、RA1中的某一位使模拟开关打开,此时运放U1的输出电压U0可表示为:
(2)
当RA1置1使相连的模拟开关导通时,所接电阻VR5的值应使
(3)
即VR5导通时所接到运算放大器输入端的电压为十六进制数为800H所对应的电压。而RA2、RA4、 RA5置1使相连的模拟开关导通时,所接到运算放大器输入端的电压依次为十六进制数400H,200H,100H所对应的电压。相应的各电阻值和VR5及VR2之间的关系为
(4)
2.2扩展A/D转换器软件原理
在程序中启动A/D转换后,等待A/D转换结束,读取八位转换结果,若为0FFH,说明输入端RA0/AN0已大于或等于基准VREF ,此时从高四位的最高位开始试探,先使最高位即RA1对应的位置1,然后再次转换,如果转换后的结果依然等于0FFH,则保留最高位的1,使次高位即RA2对应的位置1;如果转换后的结果为00H,则把最高位清零,使次高位即RA2对应的位置1。再次读取转换的结果,如果还等于0FFH则保留RA2的1,使RA4对应的位置1;若读取的转换结果为0,则清零RA2,置位RA4。依次循环完四位,得到最终高四位的值。程序流程如图4所示。

3 结束语
通过软件和硬件的配合,在PIC1673自带的八位A/D转换器基础上,扩充了十二位的A/D转换器,既满足了系统测试精度的要求,又用了很少的硬件开销。此方法用在有机磷的测试系统上,经实验,速度和精度都能满足系统要求。此方法也可以用在其它需要扩充A/D转换精度的控制系统中,不失为一种很好的解决精度扩展的方案。
评论