新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于C51的兩路溫度控制器設計

        基于C51的兩路溫度控制器設計

        作者: 時間:2014-06-06 來源:網絡 收藏

        4.1 主程序模塊

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

        主程序中先對數據進行初始化,然后調用鍵盤掃描子程序KEY_TEST,溫度比較子程序C O M P A R E,溫度采集子程序G E T _ T E M P,溫度顯示子程序D I S _ S E T和DISPLAY,再判斷采集,顯示第二個溫度傳感器的溫度值。編寫程序如下:

         

         

        4.2 LED顯示模塊

        LED顯示可以分為動態顯示和靜態顯示兩種,靜態顯示占用更多口線,為了減少硬件成本,本設計采用動態掃描顯示的方法顯示兩個溫度傳感器的溫度值。

        DISPLAY和DISPLAY1函數分別讀取第一個和第二個溫度傳感器的溫度并根據暫存單元的數據顯示兩個溫度傳感器的溫度。編程思路:根據SIGN標志來判斷轉入不同的顯示,將查表所得的數據存入不同的單元并顯示在LED上。

        4.3 鍵盤控制模塊

        鍵盤通過設定SIGN標志來判斷設定第一個或者第二個溫度傳感器的最高溫或者最低溫,編程思路為:將SIGN初始設定為0,當第一個按鍵按下時將其賦為1,再次按下時加一,直到按到第5次重新賦值為0,根據SIGN的值確定進行不同的設置。

        4.4 溫度傳感器模塊

        根據溫度傳感器完成溫度轉換所必須經過的3個步驟,程序:MOV A,#0CCH//跳過ROM MOV A,#44H / / 進行溫度變換 MOV A,#0BEH//讀暫存存儲器內容。

        4.5 報警模塊

        當實時溫度高于設定的最高溫度時或者實時溫度低于設定的最低溫度時,單片機會控制蜂鳴器或者電風扇工作,判斷當前溫度是否在正常范圍的函數為COMPARE,高溫部分程序如下:

         

         

        5.仿真測試

        我們對寫入程序之前,必須調試自己的程序。但我們不能看到程序是怎樣運行的。因此我們可以用仿真機來仿真,通過仿真機我們可以看到發送過來的數據,讀出來的溫度值,所利用寄存的值的變化。系統連接示意圖如下圖所示:

        我們現在能把DS18B20所采集到的溫度在PC機上顯示出來并且每一個溫度值顯示后換一行。試驗證明了系統實用性強,達到了預定的功能。

        6.結語

        本文提出了基于51單片機兩路溫度控制器的設計方案,該設計方案采用兩個DS18B20溫度傳感器,采集兩個不同地方的溫度,通過處理進行,由四位LED數碼管顯示所測量溫度,前兩位為第一個溫度傳感器的溫度,后兩位為第二個溫度傳感器的溫度。采用3個按鍵實現溫度最高和最低的設定,采用蜂鳴器和電動機實現溫度過高或過低報警。然后又經過過仿真測試證實了改設計方案經濟適用,實用性強,能夠測量兩個地方的溫度,滿足溫室大棚,室內家居,工業控制等不同環境下的使用。

        手機電池相關文章:手機電池修復


        c語言相關文章:c語言教程


        蜂鳴器相關文章:蜂鳴器原理
        溫濕度控制器相關文章:溫濕度控制器原理

        上一頁 1 2 下一頁

        關鍵詞: AT89C51 DS18B20

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蒙阴县| 永川市| 天津市| 闸北区| 罗甸县| 吴桥县| 化州市| 郁南县| 从化市| 瑞昌市| 吴江市| 大兴区| 西吉县| 炉霍县| 星子县| 泊头市| 毕节市| 蕲春县| 顺义区| 乃东县| 岳阳县| 辛集市| 原阳县| 香港 | 太湖县| 江口县| 通河县| 九寨沟县| 诏安县| 鹤庆县| 托克逊县| 东海县| 黎川县| 郧西县| 邵阳市| 泰兴市| 夏邑县| 虞城县| 宁波市| 西青区| 黔江区|