基于STC89C58数字温度计的设计与实现
扫描二维码
随时随地手机看文章
引 言
随着时代的发展,数字化控制无疑是人们追求的目标之一,它给人们带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,它在信息、电子、物流等许多领域都有广泛的应用。随着人们对它的要求越来越高,为现代人工作、科研、生活提供更好、更方便的设施,就需要从单片机技术人手,朝着数字化、智能化控制方向发展。
这里介绍一种数字温度计的设计制作方案。该设计控制器使用单片机STC89C58,测温传感器使用LM94022,用FM1602C液晶显示实现温度显示,设计制作了宽量程高精度多功能数字温度计能准确达到各种要求。本文设计研制的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确的特点,其输出温度和时间采用数字显示,该数字温度计不仅分辨率高,还可以设置报警温度上下限,当温度达到高、低限温控制点发出声光报警。该设备主要用于对测温比较准确的场所或科研实验室。
1 系统设计方案的论证与比较
1.1 运用LED数码管显示与运用LCD液晶显示温度及时间
运用LED显示,提供的信息较少,界面不美观,显示时间和温度极不方便,所占体积也大,且在要表达较多信息时(如两路温度值时和时间),需要大量的LED和占用较多的引脚,软件设计也相对复杂。
LCD可以提供较强的页面显示功能,功率小,页面相对于LED显示更直观,更明了;在显示信息较多时,比LED所占的空间小,性价比更高。
很容易看出,在本设计中采用LCD作为显示更好。
2.2 灵敏度选择端GS0及GS1
LM94022根据对GS0,GS1施加的不同电平有4种灵敏度供用户选择,如表2所示。用户可根据测温范围及接口电路的工作电压条件合理选择。灵敏度由GS0及GS1的电平确定,高电平要求VDD>1.5 V;低电平要求VDD<0.5 V。
2.3 LM94022的输出特性
LM94022的输出特性如图2所示,这是测量温度与输出电压在不同灵敏度时的特性。由于输出电压随温度升高而下降,其灵敏度为负值。在VDD=5 V时,不同灵敏度下几个特定温度值的输出电压如表2所示(典型值)。
数字温度计电路设计的总体方案如图3所示。采用STC89C58单片机作为主控器件;LCD采用FM1602,单片机中的P0作为其接口,并由P2.5~P2.7控制,用以驱动LCD的显示;时钟芯片采用DS1302,用脚P2.2~P2.4作为时钟芯片控制引脚;LM94022作为温度传感芯片,并用TLC2543将其转化成数字信号,用P3.2~P3.6作为ADC的控制引脚;P1口作为键盘的输人口,用以接收由键盘输出的信号;用P2.1和P2.0分别作为温度过高和温度过低的报警控制引脚,P3.7作为蜂鸣器的控制引脚。
3.1 温度采样
LM94022采用“10”模式,在0~100℃范围内,用转化公式:
T=(1 568-V)×0.122 699 38
对输出电压采样(用运放LM2015作电压跟随器)并用ADC转化,由单片机提取,计算并转化成温度。
3.2 时钟电路
时钟采用备用电池,在第一次设定时间后,所储存的信息不会丢失,待下一次电路启动的时候,无需再次设定时间,方便使用。
3.3 人机交换电路
系统由键盘作为人机交换器,4×4结构如图4所示。其中,Time用于时间设定;L-tem和H-tem分别用于低温和高温设定;Return用于返回主界面。
3.4 复位功能
当按下复位键时,对系统初始化,系统的低温设置为0.0℃,高温设置为90.0℃。
3.5 显示界面
第一行显示时间,第二行显示第一路和第二路的温度,当出现紧急情况时,第二行显示原因,第一行显示第几路出错,并将有蜂鸣器鸣叫和LED灯提示。
3.6 数据存储
硬件存储功能没有实现,由于分工出现一些小的问题,导致软硬件结合不当,设计脱节,最终没能实现存储功能。
4 系统软件设计
系统的软件由三大模块组成:主程序模块、功能实现模块和运算控制模块。
4.1 主程序流程
系统上电复位后,进行初始化:选择T0中断(工作方式1)并设置定时器初值,温度测试电路初始化,显示电路初始化。若有按键按下,禁止T0中断,显示处理相应事件的界面。处理完事件后,按下Return键,T0中断重新开启,回到正常的温度显示界面;没有按键按下时,如果T0中断,则更新温度值,如图5所示。
4.2 显示更新程序流程
图6为显示更新程序流程图。如果T0中断,读取温度值并更新温度值,温度更新时间为50 ms。对新读取的温度值进行处理,如果高于或低于设定温度值,发出警报,相应二极管发光。最终读取并显示温度信息及时间。
5 测试与结果分析
5.1 系统调试参数分析
测试仪器:万用表,加热仪器。
采用程序模拟,事先在电脑软件上将其模拟好后再下载到单片机中,由于时间有限,有部分硬件程序并未实现。下面就测试结果做大概描述:
表3给出了用万用表测量LM94022在“10”模式下的电压输出值和PDF上的温度值。
由表3得出显示温度比LM94022输出所代表的温度小0.46℃,于是将线性公式加以修正:
Tem=Tem+0.46
原因分析:可能是与限流电阻的压降作用有关,由于限流电阻的作用是必不可少的,而且LM94022输出电压波动不大,故用一修正值来弥补这一压降,以达到较高精度。
5.2 系统实现的功能
(1)能数字显示被测温度,测量温度范围为0~100℃;
(2)分辨率不低于0.5℃;
(3)提高温度测量精度,使分辨率不低于0.1℃;
(4)带有计时和时间显示功能;
(5)至少有高、低两路限温控制输出接口控制外部电路,实际制作时可用发光二极管模拟显示其控制状态输出;
(6)高、低两路限温控制点可在0~100℃范围内独立设置;
(7)当温度达到高、低限温控制点发出声光报警;
(8)自动顺时测量温度值;
(9)多路温度巡检(至少两路)。
另外,温度传感器可通过导线连接而移动,方便测量不同地点的温度,切实达到多路测量可移动的效果,改变测量地点时操作方便。
6 结 语
该文报道的温度计采用了高分辨率的温度测控芯片LM94022,用FM1602C液晶显示实现温度显示,以STC89C58单片机为控制中心,设计制作了宽量程、高精度、多功能数字温度计能准确达到各种要求。与传统的温度计相比,该数字温度计具有读数方便,测温范围广,测温准确,其输出温度和时间采用数字显示的特点,不仅分辨率高,还可以设置报警温度上下限,当温度达到高、低限温控制点发出声光报警,在实际温度控制系统中有广泛的应用。