图中,Timer A和Timer B是两个16 位可编程计数器,其计数初值可以由程序设定。Timer A对系统时钟(System Clock)或系统时钟4分频信号(System Clock/4)或实时时钟的溢出信号(RTC Output)计数;Timer B对通道1或通道2的RC振荡电路产生的脉冲信号计数。下面我们以利用通道1构成的温度仪表为例,对其温度测量原理和设计方法作一介绍。

利用图2可以清晰地说明R-F型A/D转换过程:

1.见图2(a),Timer B对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A对系统时钟计数。通过置位有关特殊功能寄存器相关位可使 Timer A、Timer B同时启动。Timer B由初值0000H-NS计数到0000H(溢出);Timer A由初值0000H计到m,两者同时停止计数。NS的数值要保证Timer B先溢出,这段时间即为闸门时间。

2.见图2(b),Timer A初值改为0000H-m, Timer B初值改为0000H。Timer B对传感器(NTC热敏电阻)电阻Rt、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A还是对系统时钟计数。再次同时启动,当Timer A溢出时两者同时停止计数且申请中断。可以看出两次计数的闸门时间相等,此时Timer B的计数值为Nt。

从上述过程可以看出:NS·(1 /fs)=Nt·(1/ft)

所以 Nt=NS·ft/fs (1)

而 fs=1/(ks·Rs·Cs)

ft=1/(kt·Rt·Cs)

式中ks和kt是和电源电压、环境温度以及RsCs或RtCs乘积有关的常数(一般取 1.9~2.3),此处可看作近似相等,故有:

ft/fs=Rs/Rt

将此式代入上述Nt的表达式中,可得:

Nt=NS·Rs/Rt (2)

从上文可知,NS是Timer B在规定的闸门时间内对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲的计数值,和Rs一样,都是事先设定的常数。式(2)表示了计数值Nt和传感器电阻Rt近似成反比,它们之间的关系如图3(a)所示。