MP03/04型数字温度传感器的应用
发布时间:2008/5/29 0:00:00 访问次数:402
摘 要:介绍tmp03和tmp04型数字温度传感器在远程测温电路中的应用,重点阐述它们与单片机和 数字信号处理器的接口电路及程序设计。
|
关键词:数字温度传感器 远程测温 接口电路 程序设计
|
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 8
摘 要:介绍tmp03和tmp04型数字温度传感器在远程测温电路中的应用,重点阐述它们与单片机和 数字信号处理器的接口电路及程序设计。
|
关键词:数字温度传感器 远程测温 接口电路 程序设计
|
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 8
热门点击
推荐技术资料
| |