1 电路原理
本温度计大体分三个工作过程。首先,由DS18820温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过89C205I单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后,SMC1602A芯片将送来的值显示于显示屏上。温度计的整体电路图如图1所示。
由图1可看到,本电路主要由DSl8820温度传感器芯片、SMCl602A液晶显示模块芯片和89C2051单片机芯片组成。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。DSl8820的连接引脚图如图2所示。
SMCI602A液晶显示模块芯片,是长沙太阳人电子有限公司生产的一种液晶显示芯片。该芯片可显示16×2个字符,比以前的七段数码管LED显示器在显示字符的数量上要多得多。另外,由于SMCl602芯片编程比较简单,界面直观,因此更加易于使用者操作和观测。SMCl602A芯片的接口信号说明如表1所列。
2 软件设计
程序流程如图3所示。
DSl8B20输出的数据格式在图4中有具体的说明,其中MS表示数据 的高8位,LS表示数据的低8位。由于温度在0℃以上为正温度,而在0℃以下为负温度,因此在计算 温度时必须在转换之前先对正负数进 行判别,然后再进行转换。
当S=0时,表示正数;S=1时,表示负数。对于负数,在处理时是采用了“先取反再加一”. 即将补码转换为原码的方法。同时,为了提高测量的精度, DSl8820采用了12位数据转换的方式,其中,符号位占l位,整数占7位,小数占4位。因此,在计算与处理时,还必须将整数和小数分开进行处理。通过对百分位数据的“四舍五入”处理之后,温度的显示范围就可达到-99℃~99.9C。