1系統設計2
1.1設計任務 2
1.2基本功能 2
1.3擴展功能 2
2系統方案論證2
2.1主控模塊 2
2.2顯示模塊 3
3 DS18B20的理論分析與計算3
4電路與程序設計6
4.1系統總體框圖 6
4.2總體電路 6
4.3程序的設計
總結
附錄1
附錄2
1系統設計
1.1設計任務設計一數字溫度測量系統,能自動實現實際溫度的測量與顯示。
1.2基本功能(1)測溫范圍-30℃~+120℃。
(2)測量誤差在±0.5℃之內。
(3)能正常顯示測量的溫度。
(4)能正常顯示測量的溫度的變換曲線圖。
1.3擴展功能(1)增加溫控功能,并可修改設置溫控的上下限。
(2)增加溫控報警功能。
2系統方案論證 本系統主要由主控模塊、顯示模塊、按鍵模塊、蜂鳴器模塊、LED模塊、傳感器模塊組成,下面分別論證這幾個模塊的選擇。
2.1主控模塊方案:AT89C52單片機是一種高性能8位單片微型計算機。內核本身具有豐富的指令集,足夠實現本次作品的全部基本功能和部分拓展功能,相比Atmega16我們對AT89C52更為熟悉,且芯片價格較低,性價比高。
2.2顯示模塊方案:采用LCD12864顯示。LCD12864屏幕顯示細膩直觀,且可以顯示中文,但是相對昂貴。

3 DS18B20的理論分析與計算DS18B20 通過編程,可以實現最高 12 位的溫度存儲值,在寄存器中,以補碼的格式存儲,如圖1所示。
圖1 DS18B20 溫度數據格式
寄存器一共 2 個字節,LSB 是低字節,MSB 是高字節,其中 MSb 是字節的高位,LSb 是字節的低位。大家可以看出來,二進制數字,每一位代表的溫度的含義,都表示出來了。其中 S表示的是符號位,低 11 位都是 2 的冪,用來表示最終的溫度。DS18B20 的溫度測量范圍是從-55 度到+125 度,而溫度數據的表現形式,有正負溫度,寄存器中每個數字如同卡尺的刻度一樣分布,如圖 2所示。
圖2 DS18B20 溫度值
二進制數字最低位變化 1,代表溫度變化 0.0625 度的映射關系。當 0 度的時候,那就是0x0000,當溫度 125 度的時候,對應十六進制是 0x07D0,當溫度是零下 55 度的時候,對應的數字是 0xFC90。反過來說,當數字是 0x0001 的時候,那溫度就是 0.0625 度了。
DS18B20 簡單介紹:
DALLAS 最新單線數字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55~+125 攝氏度,可編程為9位~12 位轉換精度,測溫分辨率可達0.0625攝氏度,分辨率設定參數以及用戶設定的報警溫度存儲在EEPROM 中,掉電后依然保存。被測溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可以在遠端引入,也可以采用寄生電源方式產生;多個DS18B20可以并聯到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。
DS18B20 的性能特點如下:
●獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊
●DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫
●DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內
●適應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數據線供電
●測溫范圍-55℃~+125℃,精度為±0.5℃
●零待機功耗
●測量結果直接輸出數字信號,以“一線總線”穿行傳送給CPU,同時可傳送CRC校驗位,具有極強的抗干擾糾錯能力
●負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作
以上特點使DS18B20非常適用與多點、遠距離溫度檢測系統。
DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 4.2 所示,DQ 為數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。
外部封裝形式 傳感器電路圖
4電路與程序設計4.1系統總體框圖系統總體框圖如圖3所示
圖3 系統總體框圖
4.2總體電路總體電路圖見附錄2。
4.3程序的設計4.3.1程序功能描述(1)能夠測試-30℃~+120℃的溫度。
(2)按下S1能增加溫度報警上限,按下S2能減少溫度報警上限。
4.3.2試驗程序實驗程序見附錄1。
總結本系統以單片機STC89C52芯片為核心部件,利用LCD12864、獨立按鍵、DS18B20并配合C語言算法實現了簡易數字溫度計設計,完成此次設計題目中的全部基本功能和部分拓展功能。在系統設計過程中,力求硬件線路簡單,充分發揮軟件編程方便靈活的特點,來滿足系統設計要求。
在本次設計的過程中,遇到了許多突發事件和困難,設計制作曾一度止步不前,但通過仔細分析和調整后解決了一個又一個的問題。在整個過程中我們深刻的體會到團隊精神的重要性,并提高了自己解決問題的能力。在課程設計的整個過程中,我遇到了許多意想不到的困難,如自己設計電路,進行軟件編譯等等。不僅如此,很多從未遇見過的問題和現象困擾著我,比如在調試的過程中,時常出現問題,但每次經過仔細反復查找,終于可以將這些問題針對性的找到并進行合理的改正,確保其正常實現對應的功能,在自己處理難題的過程中,真正學到了很多新的知識。