2 软件设计
系统的软件包括温度采集部分、A/D转换模块,接收结果处理显示部分。整个程序采用C语言编写,采用模块化程序设计。
设计采用Pt100模拟温度传感器采集数据,单片机通电后,Pt100由于温度变化,引起电阻发生变化,进而桥式测温电路的电压值发生变化,经过差分放大、A/D转换后送入单片机。单片机始终等待A/D转换值的到来,因为本设计只需要测量温度,所以没有采样周期,读取A/D值的程序放入无限循环中。在设计中,由于Pt100的电阻值和温度不成线性关系,所以设计用Matlab拟合函数创建一个电阻值一温度对应表格,查表得到温度值。程序开始后,先对液晶屏、A/D进行初始化处理,然后确定液晶屏在空闲状态,调用液晶写地址指令函数,使液晶屏分两行显示,接着调用液晶写数据函数在第1行写入温度计的英文Thermometer,第2行写入查表得到的温度值。
A/D模块,首先对A/D初始化,然后把A/D的CS管脚、时钟脉冲CLK拉至高电平,接着把CS拉至低电平开始采样。在写程序的时候要注意先发送给A/D两个下降沿脉冲,然后才开始采样数据。实验证明,如果直接进行采样,会导致采样数据误差很大。采样完成后给CS管脚拉至高电平,停止采样,返回数值。接着进行下一组数据的采样。主程序流程图如图7所示。
3 系统测试
液晶模块的硬件电路接好后,接通电源,调节与LCD连接的电位器,使液晶显示亮度适中,显示结果与预期结果相同,液晶模块测试正常。开启电源,Pt100开始测温,利用水银温度计做参考,计算Pt100温度测量误差。Pt100温度测量结果如表1所示。
由于设计的温度计精度只有1℃,所以小数点后的温度值都为0,经过测试计算,温度测量的平均误差为2.5%。
4 结束语
在程序模块,开始没有利用查表法,直接用公式进行计算,误差较大。经过不断地修改,发现查表法很好地解决了这个问题,在系统的大范围测温中,这个误差在高温环境下影响不大。系统可以用于高温环境中,测温准确、操作方便、成本低廉,有较高的实用性。还可以经过改善做成无线收发系统,成为远距离测温控制系统。
上一页 [1] [2] [3] [4] [5]