Board logo

标题: 基于DS1620和AT89C2051的数字温度计的设计 [打印本页]

作者: 520503    时间: 2014-4-19 18:21     标题: 基于DS1620和AT89C2051的数字温度计的设计

关键字:数字温度计   dsp   集成电路  
   1 DS1620芯片介绍
  
  DS1620是一片8引脚的片内建有温度测量并转换为数字值的集成电路,他集温度传感、温度数据转换与传输、温度控制等功能于一体。测温范围:-55~+125℃,精度为0.5℃。该芯片非常容易与单片机连接,实现温度的测控应用,单独做温度控制器使用时,可不用外加其他辅助元件。
   
  引脚功能及排列如图1所示。


                  

  其中:RST,CLK/CONV及DQ为三线串行通信线;DQ为数据输入输出端。当RST保持高电平,对应CLK/CONV时钟脉冲的上升沿处,DQ可按位输入各种控制指令及数据,在CLK/CONV时钟脉冲的下降沿处开始按位输出9 B温度值,分2个字节输出,最低位(LSB)在最先输出,先输出的1个字节(8 B)除以2就是摄氏温度值,后输出的1个字节(仅1 B)为温度的符号位,是0为正
,是1为负。RST为低电平时结束通信,CLK/CONV保持低电平,DQ呈现高阻态,但芯片内部在进行温度的测量与数字转换(即温度值的更新),这需要大约1 s的时间。
  
  引脚THIGH为高温临界触发输出端,当所测温度高于高温临界寄存器中设定的温度TH时,该引脚由低电平变为高电平,而温度低于TH时又回到低电平;TLOW为低温临界触发输出端,其电平变化与THIGH类似;TCOM为高/低温临界组合触发输出端;他们都可作为温度调节器的输出端,直接控制加热或冷却设备。
  
  DS1620内部有一个工作方式寄存器,如表1所示。


      

  其中:DONE为温度数据转换位,为0时表示正,在转换过程中,为1表示已转换完毕;THF:高温标志位,当温度高于或等于高温临界寄存器中的设定值TH时,硬件对该位置位,但硬件不能对该位清零;TLF:低温标志位,当温度低于或等于设定值TL时,硬件对该位置位,同样,硬件不能对该位清零;CPU:CPU使用位,通过软件对该位清零时,若RST为低电平,则可由CLK/CONV控制温度数据的转换,通过软件对该特定温度转换位,若通过软件对该位置1,则DS1620进行该时刻的温度转换,并等待读取,若该位被置0,则DS1620将不停地进行温度转换。
  
  DS1620的工作状态都是由外部输入的指令来控制的,具体的指令如下:
  
  AAH 读取转换好的温度数据;从指令输入后的第9个时钟(亦称移位)脉冲开始,将输出温度寄存器中的数据。
    01H 给高温临界寄存器写入TH数据。
    02H 给低温临界寄存器写入TL数据。
    A1H 读高温临界寄存器中的TH数据。
    A2H 读低温临界寄存器中的TL数据。
    EEH 开始转换温度数据。
    22H 停止转换温度数据。
    0CH 写工作方式寄存器。
  ACH 写工作方式寄存器。


    2 电路设计
  
  如图2所示,单片机P3.3~P3.5与DS1620按三线通信方式相连,P1口输出七段码,P3.0~P3.2通过驱动三极管接到共阳数码管的COM端,3个按键在P3.7的配合下提供功能扩展。


                 

    3 程序设计
  
  程序的流程图如图3所示,各程序模块均为子程序及嵌套有子程序的调用,其中读、写DS1620模块模块为子程序,完成1个字节的温度值或指令的读写;按键服务模块主要完成对高/低温临界寄存器中TH、TL值的改写。
  
  下面给出写/读DS1620、配置DS1620、开始转换、读取温度等5个子程序的汇编语言程序,其余模块及程序不再赘述。


   



                        







欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0