在一些仓储管理、生产制造、气象观测、科学研究以及日常生活中,对温湿度的要求普遍存在,如《档案库房技术管理暂行规定》中就明确指出:档案库房(含胶片库、磁带库)的温度应控制在14~24℃,有设备的库房日变化幅度不超过±2℃;相对湿度应控制在45%~60%,有设备的库房日变化幅度不超过±5%。本文利用新型的C8051F020单片机和I2C总线数字式温湿度传感器SHT11设计了一套满足此要求的自动化设备。
系统硬件设计
基于C8051F020的档案库温湿度控制器,主器件为8051F020,从器件为I2C总线数字温湿度传感器SHT11。
SHT11是瑞士Sennsirion公司生产的具有I2C总线接口的单片全校准数字式相对湿度和温度传感器。传统的模拟式湿度传感器一般都要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。SHT11是瑞士Sennsirion公司推出的基于CMOSensTM技术(将温湿度传感器、信号放大调理、A/D转换、I2C总线全部集成在一个芯片上)的新型温湿度传感器,该传感器的湿度值输出分辨率为14位,温度值输出分辨率为12位,并可编程为12位和8位。
C8051F020单片机是集成在1块芯片上的混合信号系统级单片机,具有与MCS8051内核及指令完全兼容的微控制器。除了具有标准8051机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其他数字外设及功能部件,内部还具有JTAG和调试电路,通过JATG接口可以使用安装在最终应用系统产品上的单片机进行非侵入、全速及在线系统调试。
由二者组成的温湿度控制器的硬件连接如图1所示。
ORL A,#WRITE
MOV WRIT_ADC, A
SETB SM_BUSY
SETB STA
JB SM_BUSY, $
//写温度测量命令
CLR RW
MOV A,# MEAMURE_TEMP
ORL A,#WRITE
MOV WRIT_ADC, A
SETB SM_BUSY
SETB STA
JB SM_BUSY, $
//读测得的温度
SETB RW
MOV A, # Chip_A
ORL A,#READ
MOV READ_ADC, A
SETB SM_BUSY
SETB STA
ACALL DELAY
MOV TEMPR, RECEIVE_BYTE
------------------
//写湿度测量命令
------------------
//读测得的湿度值
由于湿度测量和温度测量程序相同,所以没有给出,测量后的温度数据和湿度数据分别放在TEMPR和HUMIR两个寄存器中,然后经过线性修正程序和棒棒算法程序后控制继电器的动作。
结束语
本文设计温湿度调节系统,主器件为8051F020,从器件为I2C总线数字温湿度传感器SHT11,接口电路用I/O端口初始化程序启动优先权交叉开关译码器把引脚分别配置成串行数据及串行时钟,并配置基本输入输出。软件设计则采用Bang-Bang控制算法,需高低两个温度设置点,温度高于高点则关闭电源,低于低点则打开电源。控制程序含系统复位、初始化、A/D转换和读取数据转换、Bang-Bang控制算法及输出控制子程序。