新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT89S52溫度自動控制檢測系統設計

        基于AT89S52溫度自動控制檢測系統設計

        作者: 時間:2013-08-23 來源:網絡 收藏

        4.2 溫度檢測
        4.2.1 讀取溫度設計
        DS18B20可以從單總線獲取電源,當信號線為高電平時,將能量貯存在內部電容器中;當單信號線為低電平時,將該電源斷開,直到信號線變為高電平重新接上寄生電源為止。此外,還可外接5 V電源,給DS18B20供電。
        讀取溫度子程序的主要功能是讀出RAM中的9個字節,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數據的改寫。DS18B20的各個命令對時序的要求特別嚴格,所以必須按照所要求的時序才能達到預期的目的,同時,要注意讀進來的是高低位在后,低位在前,共12位數,小數4位,整數7位,還有一位符號位。
        讀取溫度的主程序如下:
        d.JPG
        4.2.2 溫度數據處理設計
        讀出溫度數據后,TempL的低四位為溫度的小數部分,可以精確到0.062 5℃,TempL的高四位和TempH的低四位為溫度的整數部分,Tem pH的高四位全部為1表示負數,全為0表示正數。所以先將數據提取出來,分為3個部分:小數部分、整數部分和符號部分。小數部分進行四舍五入處理:大干0.5℃的話,向個位進1;小于0.5℃的時候,舍去不要。當數據是個負數的時候,顯示之前要進行數據轉換,將其整數部分取反加一。還因為DS18B20最低溫度只能為-55℃,所以可以將整數部分的最高位換成一個“-”,表示為負數。由于DS18B20轉換后的代碼并不是實際的溫度值,所以要進行計算轉換。溫度高字節高5位是用來保存溫度的正負,高字節低3位和低字節來保存溫度值。其中低字節的低4位來保存溫度的小數位。由于本程序采用的是0.062 5的精度,小數部分的值,可以用后四位代表的實際數值乘以0.062 5,得到真正的數值,數值可能帶幾個小數位,所以采取小數舍入,保留一位小數即可。也就說,本系統的溫度精確到了0.1度。
        溫度數據處理主程序如下:
        e.JPG

        5 結束語
        基于AT89S52的自動溫控系統能廣泛地應用于工、農業及人們的居家生活中。由于本系統采用AT89S52開發,可以很方便地根據用戶的要求實現不同的專用的自動溫控系統,具有廣闊的市場前景。

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

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临沭县| 陕西省| 唐山市| 青冈县| 香格里拉县| 荣成市| 得荣县| 湾仔区| 青田县| 青冈县| 福建省| 通辽市| 高碑店市| 苏尼特右旗| 宜丰县| 扶沟县| 专栏| 新竹县| 汕头市| 都江堰市| 三门峡市| 东乡县| 嵊州市| 石阡县| 库车县| 泽州县| 华安县| 特克斯县| 新沂市| 察哈| 望谟县| 靖远县| 五台县| 勃利县| 平果县| 商水县| 苍山县| 茂名市| 南阳市| 阜城县| 中宁县|