基于51单片机的温度检测及显示设计
2011-12-17
由于高新技术的不断发展,仪器仪表的微型化,数字化已得到实现。90年代高精确度、高性能、多功能仪器仪表都已经采用微处理器件。而作为工业控制和自动化领域的各种新技术、新方法、新产品的发展趋势和显著标志智能化是自动化技术当前和今后发展的动向之一。本文采用AT89C52单片机开发了键盘、液晶显示器、多路温度检测来实现温度的采集、温度的文字显示和图形显示三个系统。实验证明,采用AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点。
1 元器件的选择
1.1 核心芯片的选择
AT89C52单片机价格低廉,输入输出口丰富,无需再另外扩展,简化了外围电路。256 B内部RAM,8 kB内部ROM,程序存储空间大,防止由于字模过多而造成存储空间不够。另外由于前期开发需要多次的写入、擦除,而89C52可以完成1 000次写/擦,故满足要求。
1.2 模数转换芯片的选择
ADC0809是8位的A/D转换芯片,为逐次逼近型。由单一的+5 V电源供电,片内带有所存功能的8路模拟多路开关,可对8路0~5 V的输入模拟电压信号分时进行转换,完成一次转换约需100μs;片内的地址译码和锁存电路,将单片机的三条地址信号译码生成选择八路模拟通道。输出具有TTL三态锁存缓冲器,可以直接接到单片机的数据线上。
1.3 温度传感器的选择
温度传感器类型很多,目前出现的石英体温度传感器如AD590具有很高的稳定性、准确度和良好的线性,抗干扰能力强。单总线数字型的温度传感器DS18B20直接产生温度数字信号,不需要A/D转换,准确度、稳定性都相当高,但这些传感器的适用范围不广,不利于以后其他功能的扩展。所以本次采用TREND公司的铂热电阻温度传感器T/PI/HT,传感器的工作电压为24 V,输出电流为4~20 mA,外接250 Ω精确电阻用于提取电压时进行A/D转换,ADC0809的输入电压在1~5 V范围内对应的测量温度范围为-10~+160℃。
2 AT89C52的设计应用
2.1 硬件设计
根据设计仪表的功能要求,本设计要完成以下功能:
(1)数字化测量,显示及报警装置;
(2)显示指定位置温度的数值及其动态曲线图;
(3)多路模拟数据的采集、处理;
(4)温度值字体的放缩。
系统结构图如图1所示。
|
2.2 软件设计
用C语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用“自顶而下”(TOP-DOWN)的方法,在程序设计中采用模块化编程。把整体任务分成一个个子任务,子任务再分子任务,逐层细分,每个子程序都完成其规定的功能,明确输入输出。将这些程序连接起来就构成整体流程图。模块化编程,每个模块结构完整,相互独立的程序段。如液晶模块的写控制指令、写显示数据、清屏;数据处理中的工程量转换,均值滤波等。这些程序可以任意调用、修改,使整个程序结构清晰,组合灵活,维护调试方便。
2.2.1 主流程图
主流程图如图2所示。主要包括程序初始化部分,主要完成的任务是初始化液晶显示屏,初始化单片机各口状态和设初始阈值,检测位置为第一路;按确定键后系统开始工作,显示第一路位置的温度及其动态显示图的主页面;当按下设置键时,液晶屏幕显示一个选择界面,可选择设置检测位置,检测位置阈值;通过上下键可进行选择,选择界面的箭头指向设置位置时,按确定就可进入位置的设置,设置完毕后,确定健返回;直接再按确定键可显示放大的温度字体。
2.2.2 测温流程图和曲线显示流程
启动ADC0809时需根据启动的检测位置不同查表选用不同的通道地址表;设定ADC0809转换时间,采用延时等待后,再读取它的转换数据;根据温度传感器的量程得出转换公式;为了便于显示,需要把各位数分离,分离出了百位数、十位、个位、十分位和百分位;建立一个0~9的数字字模表,取模显示。温度显示和曲线显示流程图分别如图3和图4所示。
2.2.3 阈值设置流程图
阈值温度ft为外部变量,在整个程序中都有效,每按一次“上”键ft=ft+1,按“下”键时ft=ft-1,检测位置的设定与其相似。阈值设置流程图如图5所示。
3 结语
本文对AT89c52单片机在智能温度检测中的应用进行了设计研究,该系统还可方便接人其他模拟量传感器,功能扩展性好。液晶模块显示和键盘操作设置系统参数,人机交互界面好。检测数据准确可靠,线性度好,降低了系统成本,增强了系统的通用性。软件设计采用C语言,可移植性好,结构严谨,开发速度快,大大减少了软件开发的时间,具有一定的实用价值。