系统硬件设计
基于文件库的温湿度控制器,主设备为I2C总线数字温湿度传感器SHT11,从设备为。
本文引用地址:
SHT11是瑞士公司生产的具有I2C总线接口的单芯片全校准数字相对湿度和温度传感器。传统的模拟湿度传感器一般要设计信号调理电路,经过复杂的校准和校准过程,测量精度难以保证,线性度、重复性、互换性、一致性往往不能令人满意。SHT11是瑞士公司推出的基于技术(集成温湿度传感器、信号放大与调理、A/D转换、I2C总线)的新型温湿度传感器。传感器湿度值的输出分辨率为 14 位。温度值输出的分辨率为 12 位,可编程为 12 位和 8 位。
单片机是集成在一个芯片上的混合信号系统级单片机,具有与内核和指令完全兼容的单片机。除了标准8051机的数字外围元件外,还集成了数据采集和控制系统常用的模拟元件等数字外围和功能元件,内部有JTAG和调试电路,可以安装通过 JATG 接口。在最终应用系统产品上的微控制器上进行非侵入式、全速和在线系统调试。
两者组成的温湿度控制器的硬件连接如图1所示。
620)this.width=620;"src=""/>
图 1 SHT11 接线图
使用I/O口初始化程序启动优先级交叉开关解码器温湿度控制器,将P0.0和P0.1引脚分别配置为SDA
(串口数据),SCL(串口时钟),然后分别连接到SHT11的DATA和SCK,完成对SHT11采集的温湿度数据的读取,并在时钟、P0.2、P0的控制下进行A/D转换.3配置为基本输入输出,根据读取的温湿度值控制两个继电器,从而达到控制温湿度调节器的目的。在串口通信过程中,主设备为SHT11,从设备为SHT11。
软件设计
1 砰砰控制
在档案室温湿度控制中,对温湿度的要求不是一个固定值,而是一个范围。执行器只有两种状态:开启、运行;关闭,不运行。对于这种执行器,典型的数字控制算法是 Bang-Bang 控制算法。这需要两个温度设定点:THIGH 和 TLOW,以及两个湿度设定点 HHIGH 和 HLOW。温度控制与湿度控制相同,所以只介绍温度控制。如果温度高于 THIGH,控制器关闭电源(继电器释放),如果温度低于 TLOW,控制器打开电源(继电器吸合)。THIGH 和 TLOW 之间的差异称为滞后。使用滞后可以延长继电器的寿命,因为它减少了继电器开关的次数。
2 编程
该计划包括:
● 系统复位子程序():完成内部振荡器的设置,并将SMB 连接到通用I/O 管脚,用于XBR0 和XBR2 的设置;
● SMBus 初始化子程序():配置和使能SMBus,设置SMBus 时钟频率,清除第一次传输标志;
● A/D 转换和读取转换数据子程序();Bang-Bang控制算法子程序(Bang-Bang);
● 输出控制子程序()。下面给出主要的启动A/D转换和读数据子程序。
:
写 EQU 00H
//SMBus写命令
读取 EQU 01H
//SMBus写命令
芯片-A EQU 00H
//SHT11从机地址
EQU 03H
//SHT11测温指令
EQU 05H
//SHT11测量湿度指令
CLR 读写器
//写入从机地址
移动一,#
ORL A,#写
MOV
SETB
SETB STA
美元
//写测温命令
CLR 读写器
移动一,#
ORL A,#写
MOV
SETB
SETB STA
美元
//读取测量的温度
SETB RW
移动一个温湿度控制器,#
奥拉,#READ
MOV
SETB
SETB STA
呼叫延迟
移动温度,
------------------
//编写湿度测量命令
------------------
//读取测量的湿度值
由于湿度测量和温度测量程序相同,因此不再给出。测得的温度数据和湿度数据分别放在两个寄存器TEMPR和HUMIR中,然后经过线性校正程序和棒算法程序后控制继电器的动作。
结束语
本文设计了温湿度调节系统。主设备是I2C总线数字温湿度传感器SHT11作为从设备。接口电路使用I/O口初始化程序启动优先级交叉开关解码器,将引脚分别配置为串行数据和串行数据。线路时钟,并配置基本输入和输出。软件设计采用Bang-Bang控制算法,需要高低两个温度设定点。如果温度高于最高点,则关闭电源,如果温度低于最低点,则开启电源。控制程序包括系统复位、初始化、A/D转换和读数据转换、Bang-Bang控制算法和输出控制子程序。