资讯详情

基于STC89C52单片机的温度检测系统设计

为了检测现场温度,直观反映其变化趋势,设计了基于STC89C52单片机温度检测系统。使用数字温度传感器DS18B20收集温度信号,发送到STC89C52单片机处理后,液晶显示器LCD12864(ST7920)显示温度值,绘制温度变化曲线。测量结果表明,系统的可靠性、测试精度和温度趋势曲线符合设计要求。

关键词:STC89C52单片机;DS18B20;LCD12864(ST7920);温度检测系统;

0 在某些检测领域,将被测温度数字化显示不足以充分反映其变化过程和规律,绘制趋势曲线是有效的方法之一。解决方案之一是将单片机作为下位机采样现场温度,并上传到PC机绘曲线。鉴于点阵图形液晶显示器的成本逐年降低,显示容量越来越大,工作消耗越来越小,可以方便地与单片机接口,本文设计了一个温度检测系统。利用DS18B20采集温度,LCD12864(ST7920)液晶显示器直接与STC8 9C52单片机接口,在LCD12864(ST7920)显示被测温度和温度曲线。

1 系统主要由单片机组成STC89C52、温度传感器DS18B20点阵型液晶显示器LCD12864(ST7920)由键盘电路和报警电路组成(如图1所示)。

895dfa353714874b808d456800b25160.png

STC89C52用于实现算法,是整个系统的主核心;LCD12864用于显示实测温度、温度曲线、时间和日期等参数;DS18B20用于温度采集;键盘电路用于设置相关参数(上下温度值、时间);报警电路用于温度超限报警。

2 主硬件设计

2. 1 STC89C52单片机系统STC89C单片机系统由单片机、时钟电路和复位电路组成。单片机系统如图2所示。

STC89C52单片机具有抗干扰性强、速度快、功耗低、指令代码与8051单片机完全兼容等特点。其主要参数:最高时钟频率为80MHz;内置8 KB的FLASH ROM,512 B的RAM和2 KB的E2PROM;三个16位定时器/计数器,6向量2级中断结构。

STC89C52的P0口作为普通I/O12864液晶显示器DB0~DB7数据口相连,根据P0口硬件的特0口硬件的上拉电阻。

内部时钟电路为单片机系统提供时钟信号。

复位电路采用上电自动复位和按键复位的方式,只要添加RST引脚的高电平持续时间超过2个机器周期,使单片机正常复位。

2.2 DS18B20数字测温电路测温电路传感器选用DS18B20数字温度传感器具有编程9~12位数字温度直读的特点;测温范围为-55~125℃,最高12位分辨率,精度可达±0.5℃;可设置超限温度报警,并有搜索命令识别报警条件;单总线接口,只需要一条输入输出线(DQ)可与单片机搭配(P2.0)通信。DS18B数字测温电路如图3所示。

2.3 LCD12864显示电路显示电路是人机交互的核心。该系统还需要显示测量温度、上限温度、温度曲线、时间和日期以及大量的信息。因此,选择降低图形液晶显示器LCD12864(ST7920)。

LCD12864(ST7920)具有多种接口方式,如4位/8位并行、2线或3线串行等;显示分辨率为128x64,内置8 192个16x16点汉字,12816点×8点ASCII字符集;接口方式灵活简单,方便构成中英文人机交互图形界面。LCD12864与单片机接口电路如图4所示。

LCD12864(ST7920)由DDRAM(显示数据RAM,CGROM(字型产生ROM)和CGRAM(产生自定义字型RAM)和GDRAM(绘图RAM)实现显示字符和图形的功能。

DDRAM模块提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM可分别显示时间CGROM与CGRAM字型;这个模块可以显示HCGROM字型(半角)、CGRAM字型及CGROM三种中文字型。液晶显示屏坐标(AC地址)与DDRAM如表1所示。

CGRAM模块提供4组16×16点的自定义图像空间可以自行定义未提供内部字型的图像字型CGRAM中,便可和CGROM同样通过定义DDRAM显示在屏幕上。

GDRAM提供64×实际字节的空间实际上可以控制128×二维绘图缓冲空间64点阵。GDRAM二维地址与液晶屏坐标的对应关系如图5所示。

2.4 其他电路

2.4.1 报警电路报警电路由PNP蜂鸣器和单片机控制引脚三极管(9012)(P21)组成。当温度超限时,P引脚输出一定频率的信号,触发蜂鸣器工作,实现报警。报警电路如图6所示。

2.4.2 键盘电路键盘电路设置温度和调整时间,结合中断和查询。系统由四个按钮组成,对应温度/时间设置的功能选择、数字增减调节。按键时,负跳变引起INT中断,查询具体按钮,执行相应功能。这种结构既扩充了外部中断源,减少了CPU工作负担可以实时处理按键。键盘电路如图7所示。

2.4.3 电源电路LM电源电路由7805三端集成稳压器和滤波电容器组成,为整个系统提供稳定的工作电压。如图8所示。

3 软件设计 主程序流程如图9所示。

3.1 由驱动函数和界面显示函数完成液晶显示函数的读写数据和数字/字符、温度显示、曲线绘制和时钟显示。

驱动函数包括:

界面显示函数包括:

3.2 启动温度采集函数DS18B温度采集函数包括:

3.3 主函数主函数包括初始液晶显示器、定时/计数器等模块,然后调用温度采集、界面显示等函数。

每50 ms采样一次(即每50次) ms调用上述温度采集函数),共采样6次,采用去极值平均滤波法获得测量温度(取样6个数据排序后去除最大值和最小值再平均),显示测量温度,绘制曲线,判断是否超限。

4 实验系统的实际运行结果如图10~图13所示。

左显示包括:

(1)阳历日期为12/06/21,格式为年/月/日。

(2)数字时钟为16:59:09,格式为小时:分钟:秒。

(3)“S:30℃代表设定的上限温度;

(4)“46.84℃”,“26.35℃”,“31.23℃”,“40.99℃”等代表实测温度。

温度曲线和上限温度线在图中右侧。

程序或键盘可以设置时间和温度的上限。

测量温度的误差范围(单位:℃)在(-0.5~0.5)/100内,绘制的温度曲线能直观地反映其变化。

5 结论表明,测量温度和绘制曲线可以更直观地反映其变化趋势,为后续研究其变化规律奠定基础。实际操作表明,系统测试精度、曲线绘制、超限报警等功能符合设计要求,整个电路简单实用,稳定可靠。

标签: 温度传感器99st400700

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台