位置:51电子网 » 技术资料 » 其它综合

基于Bang-Bang控制的温湿度调节系统

发布时间:2008/8/20 0:00:00 访问次数:483

  系统硬件设计

  基于c8051f020的档案库温湿度控制器,主器件为8051f020,从器件为i2c总线数字温湿度传感器sht11。

  sht11是瑞士sennsirion公司生产的具有i2c总线接口的单片全校准数字式相对湿度和温度传感器。传统的模拟式湿度传感器一般都要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。sht11是瑞士sennsirion公司推出的基于cmosenstm技术(将温湿度传感器、信号放大调理、a/d转换、i2c总线全部集成在一个芯片上)的新型温湿度传感器,该传感器的湿度值输出分辨率为14位,温度值输出分辨率为12位,并可编程为12位和8位。

  c8051f020单片机是集成在1块芯片上的混合信号系统级单片机,具有与mcs8051内核及指令完全兼容的微控制器。除了具有标准8051机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其他数字外设及功能部件,内部还具有jtag和调试电路,通过jatg接口可以使用安装在最终应用系统产品上的单片机进行非侵入、全速及在线系统调试。

  由二者组成的温湿度控制器的硬件连接如图1所示。

  

图1 c8051f020与sht11的接线图

  利用i/o端口初始化程序启动优先权交叉开关译码器把p0.0、p0.1引脚分别配置成sda (串行数据)、scl(串行时钟),然后分别接sht11的data和sck,在时钟的控制下来完成对sht11采集并进行a/d转换后的温湿度数据的读取,p0.2、p0.3被配置成基本输入输出,根据读取的温湿度值的高低来控制两个继电器,进而达到控制温湿度调节器的目的。在串行通信过程中主器件为8051f020,从器件为sht11。

  软件设计

  1 bang-bang控制

  在档案室温湿度控制中,对温湿度的要求不是一个定值,而是一个范围。执行机只有两种状态:on,运转;off,不运转。对于这种执行机,采用典型的数字控制算法为bang-bang控制算法。这样需要两个温度设置点:thigh和tlow,两个湿度设置点hhigh和hlow。温度控制和湿度控制一样,所以只介绍温度的控制。如果温度高于thigh,则控制器关闭电源(继电器释放),如果温度低于tlow,则控制器打开电源(继电器吸合)。thigh与tlow之差称为滞后。使用滞后延长了继电器的使用寿命,因为它减少了继电器开关次数。

  2程序设计

  该程序包括:

  ● 系统复位子程序(reset_init):完成对内部振荡器的设置,对xbr0和xbr2的设置将smb连到通用的i/o引脚;

  ● smbus初始化子程序(smbus_init):配置并使能smbus,设置smbus时钟速率,为第一次传输清除sm_busy标志;

  ● a/d转换和读取转换数据得子程序(adcread);bang-bang控制算法子程序(bang-bang);

  ● 输出控制子程序(outcontrol)。现把主要的启动a/d转换及读取数据子程序给出。

  adcread:

  write equ 00h

  //smbus写命令

  read equ 01h

  //smbus写命令

  chip-a equ 00h

  //sht11从地址

  meamure_temp equ 03h

  //sht11测量温度命令

  mearure_humi equ 05h

  //sht11测量湿度命令

  clr rw

  //写从地址

  mov a,#chip_a

  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控制算法,需高低两个温度设置点,温度高于

  系统硬件设计

  基于c8051f020的档案库温湿度控制器,主器件为8051f020,从器件为i2c总线数字温湿度传感器sht11。

  sht11是瑞士sennsirion公司生产的具有i2c总线接口的单片全校准数字式相对湿度和温度传感器。传统的模拟式湿度传感器一般都要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。sht11是瑞士sennsirion公司推出的基于cmosenstm技术(将温湿度传感器、信号放大调理、a/d转换、i2c总线全部集成在一个芯片上)的新型温湿度传感器,该传感器的湿度值输出分辨率为14位,温度值输出分辨率为12位,并可编程为12位和8位。

  c8051f020单片机是集成在1块芯片上的混合信号系统级单片机,具有与mcs8051内核及指令完全兼容的微控制器。除了具有标准8051机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其他数字外设及功能部件,内部还具有jtag和调试电路,通过jatg接口可以使用安装在最终应用系统产品上的单片机进行非侵入、全速及在线系统调试。

  由二者组成的温湿度控制器的硬件连接如图1所示。

  

图1 c8051f020与sht11的接线图

  利用i/o端口初始化程序启动优先权交叉开关译码器把p0.0、p0.1引脚分别配置成sda (串行数据)、scl(串行时钟),然后分别接sht11的data和sck,在时钟的控制下来完成对sht11采集并进行a/d转换后的温湿度数据的读取,p0.2、p0.3被配置成基本输入输出,根据读取的温湿度值的高低来控制两个继电器,进而达到控制温湿度调节器的目的。在串行通信过程中主器件为8051f020,从器件为sht11。

  软件设计

  1 bang-bang控制

  在档案室温湿度控制中,对温湿度的要求不是一个定值,而是一个范围。执行机只有两种状态:on,运转;off,不运转。对于这种执行机,采用典型的数字控制算法为bang-bang控制算法。这样需要两个温度设置点:thigh和tlow,两个湿度设置点hhigh和hlow。温度控制和湿度控制一样,所以只介绍温度的控制。如果温度高于thigh,则控制器关闭电源(继电器释放),如果温度低于tlow,则控制器打开电源(继电器吸合)。thigh与tlow之差称为滞后。使用滞后延长了继电器的使用寿命,因为它减少了继电器开关次数。

  2程序设计

  该程序包括:

  ● 系统复位子程序(reset_init):完成对内部振荡器的设置,对xbr0和xbr2的设置将smb连到通用的i/o引脚;

  ● smbus初始化子程序(smbus_init):配置并使能smbus,设置smbus时钟速率,为第一次传输清除sm_busy标志;

  ● a/d转换和读取转换数据得子程序(adcread);bang-bang控制算法子程序(bang-bang);

  ● 输出控制子程序(outcontrol)。现把主要的启动a/d转换及读取数据子程序给出。

  adcread:

  write equ 00h

  //smbus写命令

  read equ 01h

  //smbus写命令

  chip-a equ 00h

  //sht11从地址

  meamure_temp equ 03h

  //sht11测量温度命令

  mearure_humi equ 05h

  //sht11测量湿度命令

  clr rw

  //写从地址

  mov a,#chip_a

  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控制算法,需高低两个温度设置点,温度高于

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!