基于A(yíng)T89S52溫度自動(dòng)控制檢測系統設計
4.2 溫度檢測
4.2.1 讀取溫度設計
DS18B20可以從單總線(xiàn)獲取電源,當信號線(xiàn)為高電平時(shí),將能量貯存在內部電容器中;當單信號線(xiàn)為低電平時(shí),將該電源斷開(kāi),直到信號線(xiàn)變?yōu)楦唠娖街匦陆由霞纳娫礊橹?。此外,還可外接5 V電源,給DS18B20供電。
讀取溫度子程序的主要功能是讀出RAM中的9個(gè)字節,在讀出時(shí)需進(jìn)行CRC校驗,校驗有錯時(shí)不進(jìn)行溫度數據的改寫(xiě)。DS18B20的各個(gè)命令對時(shí)序的要求特別嚴格,所以必須按照所要求的時(shí)序才能達到預期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高低位在后,低位在前,共12位數,小數4位,整數7位,還有一位符號位。
讀取溫度的主程序如下:

4.2.2 溫度數據處理設計
讀出溫度數據后,TempL的低四位為溫度的小數部分,可以精確到0.062 5℃,TempL的高四位和TempH的低四位為溫度的整數部分,Tem pH的高四位全部為1表示負數,全為0表示正數。所以先將數據提取出來(lái),分為3個(gè)部分:小數部分、整數部分和符號部分。小數部分進(jìn)行四舍五入處理:大干0.5℃的話(huà),向個(gè)位進(jìn)1;小于0.5℃的時(shí)候,舍去不要。當數據是個(gè)負數的時(shí)候,顯示之前要進(jìn)行數據轉換,將其整數部分取反加一。還因為DS18B20最低溫度只能為-55℃,所以可以將整數部分的最高位換成一個(gè)“-”,表示為負數。由于DS18B20轉換后的代碼并不是實(shí)際的溫度值,所以要進(jìn)行計算轉換。溫度高字節高5位是用來(lái)保存溫度的正負,高字節低3位和低字節來(lái)保存溫度值。其中低字節的低4位來(lái)保存溫度的小數位。由于本程序采用的是0.062 5的精度,小數部分的值,可以用后四位代表的實(shí)際數值乘以0.062 5,得到真正的數值,數值可能帶幾個(gè)小數位,所以采取小數舍入,保留一位小數即可。也就說(shuō),本系統的溫度精確到了0.1度。
溫度數據處理主程序如下:

5 結束語(yǔ)
基于A(yíng)T89S52的自動(dòng)溫控系統能廣泛地應用于工、農業(yè)及人們的居家生活中。由于本系統采用AT89S52開(kāi)發(fā),可以很方便地根據用戶(hù)的要求實(shí)現不同的專(zhuān)用的自動(dòng)溫控系統,具有廣闊的市場(chǎng)前景。本文引用地址:http://dyxdggzs.com/article/170434.htm
評論