關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于Bang-Bang控制的溫濕度調節系統

        基于Bang-Bang控制的溫濕度調節系統

        作者:山東省鄒城東昱機械制造有限責任公司 胡巖 翟淑英 時間:2008-07-10 來源:今日電子 收藏

          在一些倉儲管理、生產制造、氣象觀測、科學研究以及日常生活中,對溫濕度的要求普遍存在,如《檔案庫房技術管理暫行規定》中就明確指出:檔案庫房(含膠片庫、磁帶庫)的溫度應控制在14~24℃,有設備的庫房日變化幅度不超過±2℃;相對濕度應控制在45%~60%,有設備的庫房日變化幅度不超過±5%。本文利用新型的C8051F020和I2C總線數字式溫濕度SHT11設計了一套滿足此要求的自動化設備。

        本文引用地址:http://www.104case.com/article/85546.htm

          系統硬件設計

          基于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端口初始化程序啟動優先權交叉開關譯碼器把引腳分別配置成串行數據及串行時鐘,并配置基本輸入輸出。軟件設計則采用控制算法,需高低兩個溫度設置點,溫度高于高點則關閉電源,低于低點則打開電源。控制程序含系統復位、初始化、A/D轉換和讀取數據轉換、控制算法及輸出控制子程序。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天祝| 都江堰市| 连平县| 依安县| 梨树县| 松阳县| 陵川县| 天津市| 五莲县| 罗平县| 兰州市| 连江县| 乐平市| 泰和县| 石台县| 杭锦后旗| 龙海市| 上饶市| 大宁县| 宣化县| 鲁甸县| 内乡县| 阿城市| 汉源县| 邹平县| 盐城市| 龙里县| 丽水市| 延川县| 建瓯市| 三亚市| 辉南县| 中江县| 城市| 淮南市| 公安县| 陕西省| 湘西| 兴安盟| 临朐县| 江永县|