APP下载

基于单片机的温湿度感测系统的实现

2011-05-21翟春艳岳修正

电子设计工程 2011年12期
关键词:液晶显示字符温湿度

翟春艳,岳修正,肖 宏,夏 涛

(中国电子科技集团公司 第二十七研究所,河南 郑州 450047)

温湿度的测量与控制在工业生产、气象、环保及日常生活的许多领域得到越来越广泛的应用,有很多地方都需要对温度和湿度进行定时或实时监控。人们除对温湿度传感器的普通性能(如精确度、长期漂移特性等)感兴趣外,还把目光聚集到其在不同环境下的耐久性、元件尺寸、数字化、简单和快速的系统综合特性上。SHT11是瑞士Sensirion公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案[1]。

1 系统组成及硬件设计

温湿度感测系统将单片机与温湿度传感器等技术相结合,以PIC单片机为微控制器,利用数字温湿度传感器SHT11对环境的温度和相对湿度进行检测,通过二线串行接口将数字温湿度信号送至PIC微控制器,最后利用PIC微控制器完成相对湿度的非线性补偿和温度补偿,并将实际温度和相对湿度值送液晶显示器显示,从而实现对环境温湿度的测控。温湿度感测系统主要由温湿度传感器SHT11和PIC单片机以及162字符型液晶显示屏组成。

1.1 数字温湿度传感器SHT11

温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图1所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准寄存器中,在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。

图1 SHT11内部结构图Fig.1 Internal stucture of SHT11

单片机和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线,硬件接口电路非常简单。需要注意的是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求,当工作电压高于4.5 V时,SCK频率最高为10 MHz,而当工作电压低于4.5 V时,SCK最高频率为1 MHz。由于所用单片机不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,并利用RA0口来虚拟数据线DATA,RA1口线来虚拟时钟线,并在DATA端接入一只10 kΩ的上拉电阻,同时,在VDD及GND端接入一只0.1 μF的去耦电容。

硬件连接如图2所示。

图2 SHT11与PIC接口电路Fig.2 Interface circuit of SHT11 and PIC

1.2 162字符型液晶显示模块

162字符型液晶显示模块是发展比较成熟的一种液晶显示屏,应用相当广泛。它是一类专用于显示字母、数字、符号等的点阵液晶显示模块,可显示两行,每行可以显示16个字符,162字符型液晶显示模块应用到温湿度感测系统中显示温湿度,直观方便又节约成本。

该显示屏是一个以若干5×8或5×11点阵块组成的显示字符群。其中,字符群中的每一个字符块为一个字符单位,字符间的点距和行距均为一个点的宽度。它的内部有字符发生器 CGROM,可以显示 160个 5×7和32个 5×10点阵字符,具有64个字节的CGRAM,可以自定义 8个5×8或4个 5×11点阵字符[2],有80个显示存储器DDRAM的地址。

162字符型液晶显示模块由16个引脚组成,具体的引脚功能如表1所示。

控制器接口信号说明:也就是RS、R/W和E信号的配合选择决定控制接口的4种模式,如表2所示。

162模块与单片机的接口电路如图3所示。

硬件将162模块的数据总线的低4位接为常态,在软件中设置数据总线长度为4位,4位数据总线时序图如图4所示[3]。

表1 162液晶显示模块的引脚功能Tab.1 Pin functions of 162 LCD module

表2 控制接口信号Tab.2 Control interface signal

图3 162液晶显示模块与PIC的接口电路Fig.3 Interface circuit of 162 LCD module and PIC

图4 4位数据总线模式时序图Fig.4 Timing diagram of 4-bit bus mode

2 系统软件设计

2.1 温湿度读取

单片机和温湿度传感器通信采用串行二线接口SCK和DATA,该二线串行通信协议和I2C协议是不兼容的。由于采用二线串行接口,对于SHT11的操作按照严格时序,共有5条用户命令,分别是测量温度命令 (03H)、测量湿度命令(05H)、读寄存器状态命令(07H)、写寄存器状态命令(06H)和软启动命令(1EH)[4]。

单片机发出启动命令,随后发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位,发送完该命令码,将DATA总线设为输入状态等待SHT11的响应,SHT11接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为芯片的ACK;在第9个时钟下降沿之后,芯片释放DATA(恢复高电平)总线;释放总线后,开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;单片机检测到DATA总线被拉低后,得知湿度测量已经结束,给出SCK时钟信号;芯片在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,单片机将DATA总线拉低作为ACK信号,然后释放总线DATA,在随后8个SCK周期下降沿,芯片发出低字节数据;接下来的SCK下降沿,单片机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿芯片发出CRC校验数据,单片机不予应答(NACK)则表示测量结束。CRC寄存器通过计算一个多项式(x8+x5+x4)之和来判定测量过程是否发生错误,一旦发现错误,单片机就发送软启动命令,重新进行测量。如果不使用CRC校验,单片机可以在测量值LSB后保持应答信号ACK高电平,来终止通信。SHT11在测量和通信完成后会自动返回睡眠模式。

以测量相对湿度,测量值N=0000100100110001为例,整个测量过程时序如图 5(a)、(b)、(c)所示。 DATA 为双向数据口,图5中粗线段表示由SHT11来控制数据线,常态下由单片机控制数据线。

图5 SHT11测量过程时序Fig.5 Timing sequence of SHT11 measuring procedures

下面给出与上述硬件电路配套的PIC16的温度传感器读取程序[5]。

TCGQ

BANKSEL TRISA

BCF TRISA,0

BCF TRISA,1

BANKSEL PORTA

BSF PORTA,0

BCF PORTA,1

BSF PORTA,1

BCF PORTA,0

BCF PORTA,1

BSF PORTA,1

BSF PORTA,0

BCF PORTA,1

;发送测量温度命令

MOVLW 0X8

MOVWF COUNT

MOVLW 0X3

MOVWF TORDER

STORD

BTFSS TORDER,7

GOTO CLRSDA

BSF PORTA,0

GOTO STGOON

CLRSDA

BCF PORTA,0

STGOON

BSF PORTA,1

NOP

BCF PORTA,1

RLF TORDER,F

DECFSZ COUNT,F

GOTO STORD

BANKSEL TRISA

BSF TRISA,0

BANKSEL PORTA

BTFSC PORTA,0

GOTO TCGQ

BSF PORTA,1

NOP

BCF PORTA,1

NOP

RTWAIT

BTFSC PORTA,0

GOTO RTWAIT

MOVLW 0X8

MOVWFCOUNT

MOVLW 0X80

MOVWFTORDER

MOVLW 0

MOVWFTREGH

BCF STATUS,C

RTORDH

MOVF TORDER,W

BSF PORTA,1

BTFSC PORTA,0

IORWF TREGH,F

BCF PORTA,1

RRF TORDER,F

DECFSZ COUNT,F

GOTO RTORDH

BANKSEL TRISA

BCF TRISA,0

BANKSEL PORTA

BCF PORTA,0

BSF PORTA,1

NOP

BCF PORTA,1

BSF PORTA,0

BANKSEL TRISA

BSF TRISA,0

NOP

BANKSEL COUNT

MOVLW 0X8

MOVWFCOUNT

MOVLW 0X80

MOVWFTORDER

MOVLW 0

MOVWFTREGL

BCF STATUS,C

RTORDL

MOVF TORDER,W

BSF PORTA,1

BTFSC PORTA,0

IORWF TREGL,F

BCF PORTA,1

RRF TORDER,F

DECFSZ COUNT,F

GOTO RTORDL

BANKSEL TRISA

BCF TRISA,0

BANKSEL PORTA

BSF PORTA,0

RETURN

2.2 温度和湿度值的计算

2.2.1 湿度线性补偿和温度补偿

SHT11可通过DATA数据总线直接输出数字量湿度值。该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值[6]:

式中,RHlinear为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3为线性补偿系数。

由于温度对湿度的影响十分明显,而实际温度和测试参考温度25℃有所不同,所以对线性补偿后的湿度值进行温度补偿很有必要。补偿公式如下:

RHtrue=(T-25)×(t1+t2×SORH)+RHlinear

式中:RHtrue为经过线性补偿和温度补偿后的湿度值,T为测试湿度值时的温度(℃),t1和t2为温度补偿系数。

2.2.2 温度值输出

由于SHT11是采用PTAT能隙材料制成的温度敏感元件,因而具有很好的线性输出。实际温度值可由下式算得:

式中,d1和d2为特定系数,d1的取值与SHT11工作电压有关,d2的取值则与SHT11内部A/D转换器采用的分辨率有关。

2.3 温湿度显示

计算出温度、湿度值后,在162字符型液晶显示模块上显示出来,屏幕第一行显示温度值:“TEM:……”第二行显示湿度值:“HUM:……”。程序设定每5 min更新一次温湿度。显示流程图如图6所示。

图6 温湿度显示流程图Fig.6 Flow chart of temperature and humidity display

3 结 论

由PIC单片机和温湿度数字传感器SHT11以及162液晶显示模块组成的温湿度感测系统,充分利用了SHT11的特点,又对温湿度测量功能进行了扩充,使其具有显示直观、运行可靠、扩充方便等优点。利用可控的加热制冷设备对该系统性能进行了测试,实际结果表明:测温范围为-40~+100℃,误差不超过0.5℃,湿度测量范围是2~98%RH,误差不超过4%RH(室温25℃时测量),达到了预期性能指标,满足实际应用要求。

[1]冯显英,葛荣雨.基于数字温湿度传感器SHT11的温湿度测控系统[J].自动化仪表,2006(1):59-61.FENG Xian-ying,GE Rong-yu.The temperature/humidity measurement and control system based on digital temperature/humiditysensorSHT11[J].ProcessAutomation Instrumentation,2006(1):59-61.

[2]李志广,淮俊霞.162字符型液晶显示模块在光电计数系统中的应用[J].现代显示,2007(5):27-31.LI Zhi-guang,HUAI Jun-xia.The Application of 162 character LCD module in a photoelectric counting system[J].Advanced Display,2007(5):27-31.

[3]Displaytech Ltd.[EB/OL].http://docs-asia.electrocomponents.com/webdocs/06dd/0900766b806dda18.pdf.

[4]盛恩锐贸易深圳有限公司.数字温湿度传感器技术手册[EB/OL] (2010-05).http://www.sensirion.com.cn/product/downimg/C-Datasheet_SHT1x_V4.%203_C1.pdf.

[5]李海涛,仪维,吴筱坚,等.PIC单片机应用开发典型模块[M].北京:人民邮电出版社,2007.

[6]孟臣,李敏,李爱传.I2C总线数字式温湿度传感器SHT11及其在单片机系统的应用[J].电子设计工程,2004(3):50-54.MENG Chen,LI Min,LI Ai-chuan.Digital temperature and humidity sensor SHT11 based on I2C bus and its application in the single-chip microcomputersystem[J].Electronic Design Engineering,2004(3):50-54.

猜你喜欢

液晶显示字符温湿度
寻找更强的字符映射管理器
温湿度控制器在回收砂冷却系统中的应用
字符代表几
一种USB接口字符液晶控制器设计
基于DSP的多路温湿度监测系统
消失的殖民村庄和神秘字符
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
122×32 点阵液晶显示汉字原理实验
界面致稳型柔性胆甾相液晶显示器件的制备与性能