数字式温度传感器AD7416及其应用
字体放大 字体缩小 字体恢复 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

摘 要: 本文详细介绍了新型数字式温度传感器AD7416的功能、特点及使用方法,并给出了应用实例。通过实践应用,可知AD7416测温范围宽、准确度高、连接及编程简单。 
关键词: AD7416;I2C总线;单片机  

引言 
   在测量与仪器仪表中,温度的检测几乎成为必不可少的一部分。传统的模拟温度传感器如AD590因外围电路复杂、需调零等缺点而受到使用限制,用数字温度传感器设计各种控制系统必将成为发展趋势。武汉力源的AD7416是在一个单片中有完整的数字温度传感器和热监测系统的芯片。它与其它数字温度传感器相比具有体积小、编程简单等优点。笔者在多路循环温湿度检测控制仪中选用了此芯片。发现其使用简单、测量精度高,并且不易受环境干扰。 

AD7416 
AD7416具有如下特点: 
·10位温度至数字转换器 
·漏极开路超温掉电输出,可以实现“线与” 
·I2C兼容的串行接口 
·可选的串行总线地址,允许在单一总线上连接多达 
8个AD7416 
·低功耗掉电方式(典型2mA) 
·400ms更新速率 
·-55℃至+125℃温度测量范围 
AD7416表示温度的数据是10位二进制数码,以2的补码格式储存。表1给出了几个温度数据的格式。 
AD7416有5个内部寄存器。其中四个是数字寄存器,一个是地址指针寄存器。地址指针寄存器是一个8位寄存器,它储存指向四个数据寄存器之一的地址。对AD7416 每一次串行写操作的第一个数据字节是数据寄存器的地址,这就是随后的数据字节要写入的地址。这个寄存器只须最低两位被用来选择一个数据寄存器,如表2所示。这两位所选的寄存器如表3所示。 
温度值寄存器是一个16位只读寄存器,它的高10位以2的补码格式储存由AD转换器送来的10位温度读数;配置寄存器是一个8位读/写寄存器,它用来设置AD7416的工作方式;THYST设点寄存器是一个16位读/写寄存器,它的9个最高位储存以2的补码格式表示的低温度门限设点;TOTI设点寄存器是一个16位读/写寄存器,它的9个最高位储存以2 的补码格式表示的高温度门限设点。AD7416上电时地址指针指向温度值寄存器,TOTI=80℃,THYST=75℃,这些缺省使得AD7416可以用于标准的恒温器而不需要与任何串行总线连接。 

AD7416与AT89C2051的接口 
如所有的I2C兼容器件一样,AD7416有一个7位串行地址。这个地址的高4位设定为1001,而低3 位可由用户通过将A2至A0引脚连接到无论是+VS或GND来设置。通过它们不同的设定地址,可将多达8个AD7416接到一条串行总线,超过8个则将与总线上的其它器件发生冲突。图1是AD7416在笔者设计的多路循环温湿度检测控制仪中的接法(只画出其中的一路温度测量),其中示出了AD7416与AT89C2051的一种串行接口形式。 
从AD7416读数据是一或二字节的操作。读温度寄存器的内容是一个双字节的操作。下面是针对图1硬件结构所编写的读温度子程序TEMP。 
ORG 0000H 
AJMP MAIN 
ORG 0010H 
T_SDA BIT P1.6 
T_SCL BIT P1.4 
MAIN:  ...... 
;========================= 
TEMP:SETB  T_SCL 
        SETB  T_SDA 
      CLR    T_SDA          ;发送起始位 
        MOV  A,#9FH        ;发送串行总路线地址字节 
          MOV  R4,#8 
THE: CLR  T_SCL 
          RLC  A 
          MOV  T_SDA,C 
          SETB  T_SCL 
          DJNZ  R4,THE        
          CLR  T_SCL          ;AD7416响应位 
          SETB  T_SCL 
          SETB  T_SDA 
          MOV  R4,#8        ;读温度数值的第一个字节, 
  并把结果放到3FH寄存器 
  中。 
XX0: CLR    T_SCL 
          SETB    T_SCL 
          MOV    C,T_SDA 
          RLC    A 
          DJNZ    R4,XX0 
          MOV    3FH,A 
          MOV    A,#0 
          CLR    T_SCL            ;主机响应位 
          CLR    T_SDA 
          SETB  T_SCL 
          CLR    T_SCL 
          SETB  T_SDA 
          MOV    R4,#8        ;读温度数值的第二个字节, 
  并把结果放到3EH寄存器 
  中。 
XX1: CLR      T_SCL 
          SETB    T_SCL 
          MOV    C,T_SDA 
          RLC      A 
          DJNZ    R4,XX1 
          MOV    3EH,A 
          CLR    T_SCL            ;主机响应位 
          SETB  T_SDA 
          SETB  T_SCL 
        CLR      T_SCL            ;发送停止位 
        CLR      T_SDA 
        SETB    T_SCL 
        SETB    T_SDA 
        RET 
...... 
    读出温度数字值之后就可以根据表2 的格式对温度进行适当的处理。 

应用中需注意的问题 
电源耦合 
AD7416必须用一个0.1mF陶瓷电容接在+VS和地之间去耦。如果AD7416要装在离电源较远处时,此尤其重要。 
远距离通讯 
若AD7416要放在离主板较远的地方,比如20米左右,则需要在靠近AD7416的两条通讯线处分别加一个500Ω或1KΩ的上拉电阻。若还要远,最好的办法是在主板通讯线出口接一驱动电路,在AD7416处接一整形电路,以保证时钟及数据传输的准确性。 
时钟频率 
AD7416一般情况下工作时钟周期为2.5ms,而单片机的时钟同期很短。如图1在接12MHz的晶振时,单片机的时钟周期为1ms。因此在读出的温度值不正确的情况下,应考虑适当降低时钟频率。最简单的方法是在程序中时钟线的高低变化之间加入几个NOP语句,也可以用定时器来实现频率的降低。 

结语 
笔者设计的多路温湿度循环检测控制仪已投入使用半年有余,用AD7416所进行的温度检测准确可靠,不易受环境干扰,为整个系统的正常运行提供了可靠性的保障。

日期:2005年06月21日   来源: 
相关文章:
·用超低功耗MSP430单片机设计数据采集系统 2005-06-27
·Atmega16在开关磁阻电机调速系统中的应用 2005-06-28
·火灾探测器受干扰的原因及改进方法 2005-07-02
·特殊构件的焊接技术 2005-10-18
·触摸屏的工作原理及典型应用 2005-11-25
·高质量C++/C编程指南---类的构造函数,析构函数,赋值 2005-12-13
·基于ATmega8的新型电动自行车调速控制系统设计 2005-12-20
·电子产品高温老化的原理以及一间智能温控老化室的应用 2006-01-05
·新近成功开发无霍尔传感器无刷电机控制器 2006-01-20
·归纳一下最近比较流行的电动自行车技术 2006-01-23
·电子工作台 --- workbench 电子仿真软件 2006-05-23
·液晶字模工具 ------ HZDotReader V3 2006-05-23
·51系列单片机仿真软件----伟福e6000w  2006-05-23
·无传感器无刷电机驱动控制器系统的优点 2006-06-10
·PIC单片机C语言编译器 --PICC 8.05 完整破解版 2006-07-09