1 引言
随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用AT89C51型单片机作为主控制器件,DSl8820作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。通过DSl8820直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在O℃~100℃最大线性偏差小于0.1℃。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
2 系统硬件设计方案
根据系统功能要求,构造图1所示的系统原理结构框图。
2.1 单片机的选择
AT89C51作为温度测试系统设计的核心器件。该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS一51的CMOS产品。不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS一48单片机的体系结构和指令系统。
2.2 温度传感器与单片机的连接
温度传感器的单总线(1-Wire)与单片机的P2.0连接,P2.0是单片机的高位地址线A8。P2端口是一个带内部上拉电阻的8位双向I/O,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时。如执行MOVX DPTR指令,则表示P2端口送出高8位的地址数据。在访问8位地址的外部数据存储器时,可执行MOVX RI指令,P2端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时,P2端口也接收高位地址和其他控制信号。图2为DSl8820内部结构。图3为DSl8820与单片机的接口电路。
2.3 复位信号及外部复位电路
单片机的P1.6端口是MAX813看门狗电路中喂狗信号的输入端,即单片机每执行一次程序就设置一次喂狗信号,清零看门狗器件。若程序出现异常,单片机引脚RST将出现两个机器周期以上的高电平,使其复位。该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上。若使用频率为12 MHz的晶体振荡器,则复位信号持续时间应超过2μs才完成复位操作。
2.4 单片机与报警电路
系统中的报警电路是由发光二极管和限流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接法与P2端口相同,不同的是在Flash编程和程序校验期间,P1接收低8位地址数据。
2.5 电源电路
由于该系统需要稳定的5 V电源,因此设计时必须采用能满足电压、电流和稳定性要求的电源。该电源采用三端集成稳压器LM7805。它仅有输入端、输出端及公共端3个引脚,其内部设有过流保护、过热保护及调整管安全保护电路.由于所需外接元件少,使用方便、可靠,因此可作为稳压电源。图4为电源电路连接图。
2.6 显示电路
采用技术成熟的74HCl64实现串并转换。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。图5为显示电路的连接图。
2.7 看门狗电路
系统中把P1.6作为看门狗的“喂狗”信号;将MAX813的RESET与单片机的复位信号RST连接。由于单片机每执行一次程序,就会给看门狗器件一个复位信号,这样也可以用手工方式实现复位。当按键按下时,SW—SPST就会在MAX813引脚产生一个超过200 ms的低电平,其实看门狗器件在1.6 s时间内没有复位,使7引脚输出一个复位信号的作用是相同的,其连接图如图6所示。
3 软件设计
DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图7为读取数据流程图。
读取DS18B20数据的部分程序代码为:
4 数据测试
将温度传感器与冰水混合物接触,经过充分搅拌达到热平衡后调节系统,使显示读数为0.00(标定0℃);利用气压计读出当时当地的大气压强,并根据大气压强和当地重力加速度计算出当时的实际压强;根据沸点与压强的关系查出沸点温度。把温度传感器放入沸水中,待显示读数稳定后重新调节,使显示器显示读数等于当地当时沸点温度后工作结束。该温度计的量程为一50℃~150℃,读数精度为0.1℃,实际使用一般在0℃~100℃。采用0℃~50℃和50℃~100℃的精密水银温度计作检验标准,对设计的温度计进行测试,其结果表明能达到该精度要求。
5 结语
该温度测试系统不仅具有结构简单、体积小、价格低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。