单片机与数字温度接口及程序设计分析

数字式温度传感器(简称SWC),又称集成数字脉冲式感温探头,是一种新型的三端温度变送器件 。该器件采用集成模块化设计,可以直接将被测温度信号转化为数字脉冲信号输出,具有传输距离远,抗干扰能力强,转换精度高等优点 。它可以方便地与51系列单片机接口,而省去A/D转换集成电路,降低成本,提高可靠性,缩小体积,可广泛应用于军事、医药卫生、食品及自动化测控系统中 。
SWC三条引脚的名称分别为控制线(K)、信号线(S)、公共线(G) 。其K端实际上也是电源线,其工作方式为加电启动或宽脉冲触发式 。当对其控制线加电(或宽脉冲)触发时,经复位时间TQ之后信号线上便输出一串脉冲 。该串脉冲的个数即表示被测温度的数字量(见图1) 。
 
这里需要说明一点,输出脉冲个数的多少不取决于加电脉冲的宽度,而取决于SWC内部正比于温度的参考电压的大小,即取决于温度的高低 。利用SWC这种特点,可以方便地与单片机配接 。方案有两种,下面分别予以介绍 。
【单片机与数字温度接口及程序设计分析】1.外加电方式
第一种方案为外加电方式,即控制线K上所加宽脉冲为一外接振荡器,由振荡器的脉宽控制SWC启动,如图3-99所示 。SWC传感器出厂均严格约定每个脉冲为0.1℃的增量,而脉冲频率为15kHz左右 。8031单片机的P3,4/TO、P3.5/Ti引脚为计数器时,对外部事件的最高计数速度为fosc/24 。若机器晶振为6 MHz,6MHz/24>15 kHz,则计15 kHz左右的脉冲是没有问题的 。15 kHz脉冲的周期为0.067ms,SWC传感器的测量上限若为150℃,则须计1500个脉冲,大约100 ms 。即在控制线K端加电的脉宽应大于100ms.否则会引起误差 。重复对SWC进行加电启动,可实现对被测温度的连续采样 。
若以P3.4/TO为计数输入端,则必须将8031特殊功能寄存器TMOD中的D3位,即门控制位GATE置为1,并将D2位C/INTo位置为1,则只有当定时器运行控制位TRo=1,且INTo引脚为高电平时,才启动To计数器计数 。这种情况下,只要INTo为高电平,计数便开始;INTo为低电平,停止计数 。T0计数受控于INTo的高低电平 。利用这一特点,让SWC的控制线K与INTo相连,只要INTo变为高电平,一方面给SWC加电,其输出15kHz的脉冲;另一方面使8031计数器To开放,开始计数 。计数脉冲的多少,就是温度的数字量 。
图2中,IC1为施密特触发器 。它和电容C、电位器Wl、W2一起构成占空比和频率均可调的多谐振荡器 。Wl、W2可设定脉冲占空比;振荡器输出宽脉冲驱动三极管2SC9013给SWC控制线加电,每加一次电即采样一次;SWC传感器的信号线S经两级施密特触发器整形后,送至8031的P3.4/TO端计数 。
 
在大型冷库、化工自动化等工程中,往往需要进行多点的温度巡检,那么可以按图3线路设计 。图3中CD4028是CMOS的BCD码/十进制译码器;CD4067是CMOS十六选一模拟开关;74LS273是八D锁存器,可以将不同的二进制数在11脚为高电平时锁存在该器件中 。这样将可利用不同的二进制数依次只能选通某个通道 。该电路将CMOS逻辑电平控制和多路模拟开关控制相结合,最大限度地组合利用器件的通道容量,从而可以用八位二进制码来完成最多可达160路SWC测温电路的通断控制,可以方便地实现计算机巡检,以便进行多点温度控制 。
 
2.软件实现方式
第二种方案,是利用软件实现一个脉宽大于100 ms的方法,来代替第一种方案中的外加多谐振荡器,而其他接口电路与第一种方案一样,这里不再重复 。
若在Pl.0引脚上输出上述方法的信号,假定系统时钟频率为6 MHz,选用定时器To,且使其工作在方式1,则有定时初值
 
转化为二进制数:X=00llll0010110000,十六进制数为X=3CB0H,故定时器To的初值为BOH(TL)和3CH(TH) 。定时器初始化和中断服务程序清单如下:
 
这种方法以在P1.0 。口输出定时方波来给SWC不断加电实现连续采样,使接口电路极为简单、方便 。且SWC输出脉冲的传输距离一般可达500m以上,转换速度低于3 ms,误差不大于0.3℃,使得这种传感器应用非常广泛,且与数字化仪器仪表配套连接 。

    推荐阅读