本文介绍一种用 DS18B20 测温、用 SMC1602A 液晶来显示的新型温度计。该温度计与其他数显式温度计相比,具有测量精度高、电路简单、易于观察的优点。
一、电路原理
本温度计大体分三个工作过程:首先由 DS18B20 温度传感器芯片测量当前的温度,并将结果送入单片机;然后通过 89C2051 单片机芯片对送来的测量温度读数进行计算和转换,并将此结果送入液晶显示模块;最后 SMC1602A 芯片将送来的值显示于显示屏上。温度计的整体电路如图 1 所示。

图 1 温度计整体电路
由图 1 可看到,本电路主要由 DS18B20 温度传感器芯片、SMC1602A 液晶显示模块芯片和 89C2051 单片机芯片组成。其中 DS18B20 温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作,其连接引脚如图 2 所示。

图 2 DS18B20 连接引脚
SMC1602A 液晶显示模块芯片是长沙太阳人电子有限公司生产的一种液晶显示芯片,该芯片可显示 16×2 个字符,比以前的七段数码管 LED 显示器在显示字符的数量上要多得多;另外,由于 SMC1602A 芯片编程比较简单、界面直观,因此更加易于使用者操作和观测,其接口信号说明如表 1 所列。

表 1 SMC1602A 接口信号
二、软件设计
程序流程如图 3 所示。

图 3 程序流程
DS18B20 输出的数据格式如图 4 所示,其中 MS 表示数据的高 8 位、LS 表示数据的低 8 位。由于温度在 0 ℃ 以上为正温度、而在 0 ℃ 以下为负温度,因此在计算温度时必须在转换之前先对正负数进行判别,然后再进行转换。

图 4 DS18B20 输出数据格式
当 S = 0 时表示正数、S = 1 时表示负数。对于负数,在处理时采用“先取反再加一”,即将补码转换为原码的方法。同时为了提高测量的精度,DS18B20 采用了 12 位数据转换的方式,其中符号位占 1 位、整数占 7 位、小数占 4 位,因此在计算与处理时还必须将整数和小数分开进行处理。通过对百分位数据的“四舍五入”处理之后,温度的显示范围就可达到 −99~99.9 ℃。
三、绘制温度计电路图及 PCB 设计方法
要想成功地设计一个温度计的 PCB 图,大致要经过以下步骤:
首先学会绘制温度计的原理图。绘制原理图时要知道需要哪些元件,对库中没有的或很难找到的元器件,必须建立一个元件库(Sch.Lib)以满足设计需要;在制作集成芯片 ICL7107、ICL7660、S-DSP 时,必须注意每个引脚的属性并认真逐个设置,以免在原理图中出现错误连接,导致在调试时将芯片烧坏。
其次,将要用到的元件调到原理图中进行连接。在连接的过程中要注意总线的连接:总线只是示意性电气连接,而真正表示连接的是网络标号,因此在用到总线时必须放置网络标号。
最后,电路图连接好后,必须进行 ERC、Reports/Bill of material、Create netlist 操作:进行电气规则检查以纠正电路图中的电路错误,进行元件报表查看电路图的元件信息,创建网络表为进行 PCB 绘制做准备。
设计好的原理图如图 5 所示,数显温度计的原理图如图 6 所示。

图 5 原理图组成

图 6 数显温度计原理

图 7 PCB 设计效果
本文介绍了液晶显示温度计的电路设计,并给出温度计电路图以及 PCB 设计方法。