MP03/04型数字温度传感器的应用
时间:06-23
来源:互联网
点击:
1 远程测温电路
远程测量温度时,传输线上存在着较高的共模电压,须用光耦合器(以下简称光耦)对输出端进 行隔离。三种光耦隔离电路分别如图1(a)、(b)、(c)所示。
(a)图为普通光耦隔离电路。TMP03能够承受5 mA以下的灌电流,可直接与光耦中LED发光二极管的阴极连通。此时上拉电阻 R1还起到限流作用,防止LED过流损坏。取 R1=620欧姆,当DOUT端呈低电平时,灌电流小于1 mA,LED上的正向压降仅为1 V左右。需要注意的是,光耦合器的开启和关闭时间必须完全相同,否则会导致被传输的数据 发生错误。某些达林顿型光耦合器(例如4N32)的开启时间远大于关闭时间,不能在此使用。
(b)图中增加了1只2N2907型PNP管,目的是给LED提供较大的工作电流。
(c)图中采用施密特整形输出的光耦合器,能降低传输噪声。
进行远程测温时,TMP03/04远优于模拟输出式温度传感器。这是因为它输出的是数字信号,比模 拟信号的抗干扰能力强。远程传输信号时不得影响t 1/t2的比率,必要时还可加1片ADM485型RS-485 差分线驱动器,电路如 图 2 所示。该电路能准确传输1200 m远的温度信号。ADM485中的发射器和接收器所造成的滞后时间误差仅为5 ns,不会影响t1、t2 值。在RS-485总线上可以接32片ADM485。
2 TMP03/04与80C51单片机的接口电路
TMP03/04配上单片机后,很容易用微机中的计数器分别测得 t1、t2,再用软件计算出温度值。因为TMP03/04是用时间比率(t1/t2)来计量温度的,所以并不要求微机的计数频率十分精确,但计数频 率应足够高。
TMP04与80C51单片机的接口电路如 图 3 所示。该接口电路非常简单,在温度传感器与单片机之间 仅需单线连接,TMP04的输出数据可直接加到80C51的P1.0口。若按传统的串行通信输入协议,至 少需要3条线(数据线、时钟线和片选信号线),甚至更多。这是因为TMP03/04的输出数据仅代表 t1与t2的比率,这与通常讲的二进制数据完全不同。


80C51内部有2个16位计数器,并且是由2个专用寄存器分别控制的。TMOD寄存器亦称定时器 模式寄存器,专门控制定时器0和定时器1的工作模式,决定哪个定时器工作。TCON寄存器则用来 控制定时器0和定时器1的计数起止时间。这样很容易分别测出 t1、t2。80C51采用12 MHz晶振频率时,经内部12分频器后获得1 MHz的计数频率,计数周期为1us。
接口电路的程序清单如下:
;TMP04与8051的接口测试
;使用定时器0和1来测量占空比
;这个程序分三步
;① 清除定时寄存器,然后等待P1.0输入脚上出现0-1的跳变(此引脚与TMP04的输出相连)
;② 一旦P1.0变为高,定时器0开始启动。然后程序开始循环检测P1.0
;③ 一旦P1.0变为低,定时器0停止,同时定时器1启动。程序又再次循环检测P1.0,直到P1.0变低,定时器1停止, 从而TMP04的t1和t2 的数值就会存储在特殊功能寄存器8AH到8DH(TL0到TH1)中
;主控程序
$MOD51
$TITLE(TMP04 Interface, Using T0 and T1)
$PAGEWIDTH(80)
$DEBUG
$OBJECT; 变量声明
PORT1 DATA 90H ; 端口1
;TCON DATA 88H ; 定时器控制
;TMOD DATA89H ; 定时器模式
;TH0 DATA 8CH ; 定时器0高字节
;TH1 DATA 8DH ; 定时器1高字节
;TL0 DATA 8AH ; 定时器0低字节
;TL1 DATA 8BH ; 定时器1低字节
ORG 100H ; 任意的起始地址
READ_TMP04: MOV A,#00 ; 先清除寄存器
MOV TH0,A
MOV TH1,A
MOV TL0,A ;
MOV TL1,A ;
WAIT_LO: JB PORT1.0,WAIT_LO ; 等待TMP04输出变高
MOV A,#11H ; 准备好启动定时器0
MOV TMOD,A
WAIT_HI: JNB PORT1.0,WAIT_HI ; 等待输出变高
; 在TMP04输出变高期间定时器0运行
SETB TCON.4
WAITTIMER0: JB PORT1.0,WAITTIMER0
CLR TCON.4;
;在TMP04输出变低期间定时器1运行
SETB TCON.6 ; 启动定时器1
WAITTIMER1: JNB PORT1.0,WAITTIMER1
CLR TCON.6 ; 停止定时器1
MOV A,#0H ; 准备停止定时器
MOV TMOD,A
RET
END
上述程序用来监视TMP04的输出,并且开启或关闭相应的计数器来测量 t1与t2的比率。当TMP04 输出为高电平(对应于t1)时,由定时器0进行记 录;当输出呈低电平(对应于t2)时,由定时器1 记录。记录结果存储在特殊功能寄存器SFR的08AH~08DH单元中。
在调用读TMP04的程序时,计数寄存器就被清零。程序首先将计数器置成16位模式,然后等待 TMP04输出为高电平。当P1.0口输入高电平时,定时器0开始工作,程序用来监视输入口计数器进行 累加计数。一旦TMP04输出为低电平,定时器0就停止计数,而定时器1开始计数,直到TMP04的输 出又变成高电平为止。执行完上述子程序之后,定时器0中的 t1值和定时器1中的t2 值,分别存入各自的专用寄存器中。最后由软件计算出被测温度to由于80C51与TMP04属于异步操作,因此从TMP04的输出电平发生跳变、到定时器开始工作之间,必 须加上延迟时间。这个延迟时间从0us开始,到识别转换指令为止。控制80C51跳转到某位置的指 令,需要24个时钟周期,即24/12 MHz=2uso在+25°C时,由2us延迟时间所造成的测温误差约为±0.15 °C,一般可忽略不计。
远程测量温度时,传输线上存在着较高的共模电压,须用光耦合器(以下简称光耦)对输出端进 行隔离。三种光耦隔离电路分别如图1(a)、(b)、(c)所示。
(a)图为普通光耦隔离电路。TMP03能够承受5 mA以下的灌电流,可直接与光耦中LED发光二极管的阴极连通。此时上拉电阻 R1还起到限流作用,防止LED过流损坏。取 R1=620欧姆,当DOUT端呈低电平时,灌电流小于1 mA,LED上的正向压降仅为1 V左右。需要注意的是,光耦合器的开启和关闭时间必须完全相同,否则会导致被传输的数据 发生错误。某些达林顿型光耦合器(例如4N32)的开启时间远大于关闭时间,不能在此使用。
(b)图中增加了1只2N2907型PNP管,目的是给LED提供较大的工作电流。
(c)图中采用施密特整形输出的光耦合器,能降低传输噪声。



进行远程测温时,TMP03/04远优于模拟输出式温度传感器。这是因为它输出的是数字信号,比模 拟信号的抗干扰能力强。远程传输信号时不得影响t 1/t2的比率,必要时还可加1片ADM485型RS-485 差分线驱动器,电路如 图 2 所示。该电路能准确传输1200 m远的温度信号。ADM485中的发射器和接收器所造成的滞后时间误差仅为5 ns,不会影响t1、t2 值。在RS-485总线上可以接32片ADM485。
2 TMP03/04与80C51单片机的接口电路
TMP03/04配上单片机后,很容易用微机中的计数器分别测得 t1、t2,再用软件计算出温度值。因为TMP03/04是用时间比率(t1/t2)来计量温度的,所以并不要求微机的计数频率十分精确,但计数频 率应足够高。
TMP04与80C51单片机的接口电路如 图 3 所示。该接口电路非常简单,在温度传感器与单片机之间 仅需单线连接,TMP04的输出数据可直接加到80C51的P1.0口。若按传统的串行通信输入协议,至 少需要3条线(数据线、时钟线和片选信号线),甚至更多。这是因为TMP03/04的输出数据仅代表 t1与t2的比率,这与通常讲的二进制数据完全不同。


80C51内部有2个16位计数器,并且是由2个专用寄存器分别控制的。TMOD寄存器亦称定时器 模式寄存器,专门控制定时器0和定时器1的工作模式,决定哪个定时器工作。TCON寄存器则用来 控制定时器0和定时器1的计数起止时间。这样很容易分别测出 t1、t2。80C51采用12 MHz晶振频率时,经内部12分频器后获得1 MHz的计数频率,计数周期为1us。
接口电路的程序清单如下:
;TMP04与8051的接口测试
;使用定时器0和1来测量占空比
;这个程序分三步
;① 清除定时寄存器,然后等待P1.0输入脚上出现0-1的跳变(此引脚与TMP04的输出相连)
;② 一旦P1.0变为高,定时器0开始启动。然后程序开始循环检测P1.0
;③ 一旦P1.0变为低,定时器0停止,同时定时器1启动。程序又再次循环检测P1.0,直到P1.0变低,定时器1停止, 从而TMP04的t1和t2 的数值就会存储在特殊功能寄存器8AH到8DH(TL0到TH1)中
;主控程序
$MOD51
$TITLE(TMP04 Interface, Using T0 and T1)
$PAGEWIDTH(80)
$DEBUG
$OBJECT; 变量声明
PORT1 DATA 90H ; 端口1
;TCON DATA 88H ; 定时器控制
;TMOD DATA89H ; 定时器模式
;TH0 DATA 8CH ; 定时器0高字节
;TH1 DATA 8DH ; 定时器1高字节
;TL0 DATA 8AH ; 定时器0低字节
;TL1 DATA 8BH ; 定时器1低字节
ORG 100H ; 任意的起始地址
READ_TMP04: MOV A,#00 ; 先清除寄存器
MOV TH0,A
MOV TH1,A
MOV TL0,A ;
MOV TL1,A ;
WAIT_LO: JB PORT1.0,WAIT_LO ; 等待TMP04输出变高
MOV A,#11H ; 准备好启动定时器0
MOV TMOD,A
WAIT_HI: JNB PORT1.0,WAIT_HI ; 等待输出变高
; 在TMP04输出变高期间定时器0运行
SETB TCON.4
WAITTIMER0: JB PORT1.0,WAITTIMER0
CLR TCON.4;
;在TMP04输出变低期间定时器1运行
SETB TCON.6 ; 启动定时器1
WAITTIMER1: JNB PORT1.0,WAITTIMER1
CLR TCON.6 ; 停止定时器1
MOV A,#0H ; 准备停止定时器
MOV TMOD,A
RET
END
上述程序用来监视TMP04的输出,并且开启或关闭相应的计数器来测量 t1与t2的比率。当TMP04 输出为高电平(对应于t1)时,由定时器0进行记 录;当输出呈低电平(对应于t2)时,由定时器1 记录。记录结果存储在特殊功能寄存器SFR的08AH~08DH单元中。
在调用读TMP04的程序时,计数寄存器就被清零。程序首先将计数器置成16位模式,然后等待 TMP04输出为高电平。当P1.0口输入高电平时,定时器0开始工作,程序用来监视输入口计数器进行 累加计数。一旦TMP04输出为低电平,定时器0就停止计数,而定时器1开始计数,直到TMP04的输 出又变成高电平为止。执行完上述子程序之后,定时器0中的 t1值和定时器1中的t2 值,分别存入各自的专用寄存器中。最后由软件计算出被测温度to由于80C51与TMP04属于异步操作,因此从TMP04的输出电平发生跳变、到定时器开始工作之间,必 须加上延迟时间。这个延迟时间从0us开始,到识别转换指令为止。控制80C51跳转到某位置的指 令,需要24个时钟周期,即24/12 MHz=2uso在+25°C时,由2us延迟时间所造成的测温误差约为±0.15 °C,一般可忽略不计。
电路 电压 电流 LED 二极管 电阻 传感器 总线 单片机 51单片机 温度传感器 IDT DSP CMOS 集成电路 电子 PCB 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 航天器DC/DC变换器的可靠性设计(02-12)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 卫星电源分系统可靠性设计与研究(02-12)
