当前位置:首页 期刊杂志

基于AT89C51单片机的温湿度测试系统设计与仿真

时间:2024-05-04

李明明,代绍庆,朱海锋,吴荣森

(嘉兴职业技术学院,浙江 嘉兴 314000)

基于AT89C51单片机的温湿度测试系统设计与仿真

李明明,代绍庆,朱海锋,吴荣森

(嘉兴职业技术学院,浙江 嘉兴 314000)

基于AT89C51单片机和SHT11芯片为温湿度传感器的温湿度测试系统,以实时存储相关温湿度数据。测试系统的硬件设计包括基础电路、按键电路、显示电路和温湿度控制电路;测试系统的软件设计包括按键控制、温湿度读取、温湿度计算、数据存储等。

AT89C51单片机;SHT11;显示电路

0 引言

单片机的使用变得更加便捷,具有低电压、低功耗、控制功能强、环境适应能力强等特点。随着单片机技术在智能产品中的广泛应用,航空事业、医药方面、家居产品的智能化管理及过程控制等领域均涉及单片机应用产品[1]。温度检测与控制是微机测控的重要学科也是测控技术中的研究重点[2-5]。大多数电子设备对温度湿度尤为敏感,不良温湿度环境会导致设备出错甚至损坏。因此,温湿度测试是实现工业生产提供安全保障的基础[6-7]。

AT89C51含有4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory),是一种具有高性能CMOS、低电压的8位微处理器的单片机。在嵌入式控制系统中提供了灵活性高且价廉的多种方案[8]。

为了有效利用AT89C51单片机完成温湿度测试系统设计,引入SHT11芯片。SHT11芯片是一种具有数字校准功能的复合型温湿度传感器[7-8],它采用传统工业COMS微加工技术,因而产品应用性上具有极高的可靠性和卓越的长期稳定性,但是SHT11芯片在实际应用中对环境有着极高的要求。当前SHT11主要应用于工业生产、过程控制、环境监测、家用电器、气象领域[9]。

如何设计一款成本低廉、测量准确、操作简单的温湿度测试系统成为一个重要问题。整个系统以AT89C52为核心,温湿度传感器SHT11完成环境温湿度转换功能,其输出为数字形式,可以直接对单片机进行处理;利用简单的三键测试键盘联合中断方式处理测试过程,一定程度上减少了占用CPU的时间。综合而言,其成本小、操作方便、结构简单,满足工业生产需要。

1 系统硬件设计

分析温湿度监测系统在实验室环境与现实应用中的区别,系统设计侧重于实验室环境下温湿度测试系统的设计。通过单片机与外部设备之间的命令发出与回收,以SHT11温湿度传感器采集温湿度信息,利用软件对温湿度信号进行分析处理、解决相应问题。具体电路结构如图1所示,常用的晶振电路、复位电路和AT89C51单片机中,增加了温湿度传感器、按键电路、显示电路、工作状态指示系统等。

图2为硬件电路原理图,通过P0端口增加上拉电阻以防止短路,并与LM016L相接,用于显示温湿度状况;温湿度传感器通过与P2端口的P2.1、P2.2引脚相连,实现了温湿度测试结果的输入和输出;按键电路与P1端口的P1.4-P1.7相连,用以修改温湿度。

1.1 SHT11芯片与接口

SHT11的内部结构如图3所示,其中包括一个高分子电阻型湿敏元件和一个 NTC测温元件、一个14位的A/D转换器,并与一个高性能8位单片机相连接并能够CRC传输校验。其具有品质好、超快响应、抗干扰能力强、性价比高、精确校准等优点。

图2 基本电路设计

图3 SHT11内部结构

1.2 其它硬件系统说明

LM016L液晶显示芯片作为LCD液晶显示系统中使用率最高的显示芯片,其特点主要集中在低功耗、体积小、数字式显示等方面。其中,最为常用的1602LCD选择2行*16字的显示格式。LM016L液晶显示器的电路结构如图4所示。引脚接口包括8个数据位、RS、RW、E信号引脚。

图4 LM016L元件电路原理

按键模块主要用于修改温湿度初始值或者出现温湿度数据有误时作修改用。按键电路无法避免去抖工作,一般采用软件去抖,即按键按下时对应低电平,执行延时程序若干毫秒后,确认该按键是否还是低电平,如果仍为低电平,可以确定按键被按下。当按键松开时,行线的低电平为高电平,执行一段延时程序后,仍为高电平时,说明按键已经松开。

2 系统程序设计

2.1 应用程序模块整体设计

针对51单片机应用C语言程序设计方法以实现系统各项功能。系统程序流程如图5所示。

2.2 温湿度读取子程序

读取温湿度子程序的主要功能包括SHT11的初始化,判断SHT11是否存在。如果SHT11存在,执行ROM操作命令、存储操作命令、读取温湿度。否则返回,其程序流程如图6所示。

2.3 温湿度处理

温湿度读取转换过程中,存在温湿度计算方法的处理,其中ROM操作命令主要为存储操作,RAM操作命令为温湿度转换中数据的存储。RAM中的BCD码需转换运算才能被读取,而温湿度计算子程序正是显示此功能,并进行温湿度值正负判定,其程序流程如图7所示。

图5 系统程序流程

图6 读温湿度流程

图7 计算温湿度子程序

3 系统调试与仿真

系统设计基于Keil5.0、Proteus7.8软件分别完成软件、硬件设计。其中关键的一步是系统调试,在硬件电路设计和程序设计过程中存在多次调试,最终的温湿度测试系统也需要经过多次调试。

3.1 硬件电路调试

硬件电路设计中往往存在很多失误点,导致硬件电路无法仿真成功。以下几点为系统调试易错点:①检测焊接板是否存在复位引脚虚焊,如果存在虚焊,在引脚非复位状态时其电压仍然为高电平,解决方法是重新焊接焊点再仔细检测是否还有错误;②温湿度测试电路调试,在调试温湿度测试电路时,由于测试比较复杂,所以采用先用面板上进行插接,通过给一个高电平到测试电路输入,看它是否能够驱动状态显示电路。在面板上调试成功后再焊接到电路板上。

3.2 系统软件调试

系统设计过程包括需求分析设计、系统源程序编写、系统仿真程序烧录等。重复测试、操作过程必不可少。具体软件调试步骤如下:

(1)温湿度传感器不能正常测量温湿度。原因:使用SHT11数字式温湿度传感器时,需要严格遵守时序方法。解决方法:重新分析时序关系。

(2)模块化程序设计,分布式调试程序结果。包括温湿度采集、读取、转换、计算等功能,继而完成总体调试。

(3)设置程序断点,给予模块中变量赋值,检查运算结果,核对输出结果的正确性。系统核心代码如下:

void calcHumi(void)

{ float aa=0, bb=0, humi_zi;

aa=(float)temp_H*256+(float)temp_L;

bb=aa*aa*2.8/1000000;

aa=0.0405*aa;

aa=aa-8-bb;

humi_zi=aa;

humi_zi=humi_zi*10;

Humi=(int)humi_zi;

// 湿度分段补偿

if(Humi >= 150 && Humi <= 700)

Humi = Humi +10;

else if(Humi > 700 && Humi <= 840)

Humi = Humi + 20;

else if(Humi >= 840 && Humi <= 930)

Humi = Humi + 30;

else if(Humi > 930)

Humi = Humi + 40

;}

4 结语

基于AT89C51单片机和SHT11温湿度传感器设计温湿度测试系统,硬件结构主要通过LM016L显示芯片、按键电路、SHT11芯片和基础电路完成,软件部分主要包括温湿度控制程序、温湿度读取、计算程序实现温湿度测试系统的主要框架。系统仿真效果明显,下一步工作将围绕实体产品完成测试系统的进一步设计。

[1] 闻人达.带有温湿度控制程序的设计[J].电子技术与软件工程,2015(16):140-141.

[2] 蒋之珏.基于AT89C51单片机的温湿度控制设计[J].科技传播,2013(14):120-121.

[3] 李扬.基于AT89C51单片机温湿度的研究[J].机电产品开发与创新,2013(5):55-57.

[4] 陈佳明,马杰思.基于单片机的温湿度模块设计[J].中国新通信,2012(6):45.

[5] 田娜,杨冰清,杨超越.基于单片机的温湿度控制与应用[J].河北北方学院学报:自然科学版,2013(6):25-28.

[6] 贡驾哲.基于51单片机的温湿度的设计与制作[J].中国科技信息,2011(18): 67-70.

[7] 于熙然.基于AT89C51单片机的温湿度系统设计[J].实验科学与技术,2012(2):35-36.

[8] 李庆华.多功能温湿度测试系统的设计[J].电脑与电信,2012(4):74-75.

[9] 郭琳.利用单片机如何制作温湿度系统[J].数字化用户,2014(6):126.

[10] 陈皓, 周航. 一种基于AT89S52单片机的LED显示器设计[J]. 电子制作, 2014(2):61-62.

(责任编辑:孙 娟)

李明明(1988-),女,湖北黄冈人,硕士,嘉兴职业技术学院助教,研究方向为分布式计算、物联网应用开发;代绍庆(1972-),男,湖北仙桃人,硕士,嘉兴职业技术学院副教授,研究方向为分布式计算、物联网应用开发。

10.11907/rjdk.162414

TP319

A

1672-7800(2017)003-0100-03

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!