欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5222|回復: 2
打印 上一主題 下一主題
收起左側

基于單片機的溫度報警系統及溫控風扇設計資料下載

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

目  錄

第一章 緒 論

1.1 數字溫度計的介紹

1.2 單片機的簡介

1.3 單片機的應用領域

第二章 系統硬件組成

2.1 DS18B20溫度傳感器介紹

2.2 7段LED數碼管電路及原理

2.3 系統方案的選擇

2.4 系統整體硬件電路

第三章 系統程序的設計

3.1 主程序

3.2 讀出溫度子程序

3.3 溫度轉換命令子程序

3.4 計算溫度子程序

3.5 顯示數據刷新子程序

第四章 實驗、調試及測試結果分析

4.1 硬件調試

4.2 軟件調試

總 結

致 謝

參考文獻

附錄 程序代碼


第一章 緒 論

1.1 數字溫度計的介紹

溫度是我們日常生產和生活中實時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統的指針式的溫度計雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數字溫度計的出現可以讓人們直觀的了解自己想知道的溫度到底是多少度。

數字溫度計采用進口芯片組裝精度高、高穩定性,誤差≤0.5%, 內電源、微功耗、不銹鋼外殼,防護堅固,美觀精致。數字溫度計采用進口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內置高能量電池連續工作≥5年無需敷設供電電纜,是一種精度高、穩定性好、適用性極強的新型現場溫度顯示儀。是傳統現場指針雙金屬溫度計的理想替代產品,廣泛應用于各類工礦企業,大專院校,科研院所。

數字溫度計采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導體,熱敏電阻等),將溫度的變化轉換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關系,如線性關系,一定的曲線關系等,這個電信號可以使用模數轉換的電路即AD轉換電路將模擬信號轉換為數字信號,數字信號再送給處理單元,如單片機或者PC機等,處理單元經過內部的軟件計算將這個數字信號和溫度聯系起來,成為可以顯示出來的溫度數值,如25.0攝氏度,然后通過顯示單元,如LED,LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數字溫度計的基本測溫功能。數字溫度計根據使用的傳感器的不同,AD轉換電路,及處理單元的不同,它的精度,穩定性,測溫范圍等都有區別,這就要根據實際情況選擇符合規格的數字溫度計。


1.2 單片機的簡介

單片機是一種集成在電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統。

單片機也被稱為 微控制器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機,它最早是被用在工業控制領域。單片機由芯片內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備  和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發展便分道揚鑣。

  早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發展出了MCS51系列單片機系統。基于這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想并未得到很廣泛的應用。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端[1]的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。

單片機比專用處理器更適合應用于嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百臺單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的總和,甚至比人類的數量還要多。

1.3 單片機的應用領域

  

目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。

單片機廣泛應用于儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分如下幾個范疇:

1.在智能儀器儀表上的應用

單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用于儀器儀表中,結合不同類型的傳感器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起采用電子或數字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。

2.在工業控制中的應用

用單片機可以構成形式多樣的控制系統、數據采集系統。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。

3.在家用電器中的應用

可以這樣說,現在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。

4.在計算機網絡和通信領域中的應用

  現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。

5.單片機在醫用設備領域中的應用

  單片機在醫用設備中的用途亦相當廣泛,例如醫用呼吸機,各種分析儀,監護儀,超聲診斷設備及病床呼叫系統等等。

6.在各種大型電器中的模塊化應用

  某些專用單片機設計用于實現特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內部結構。如音樂集成單片機,看似簡單的功能,微縮在純電子芯片中(有別于磁帶機的原理),就需要復雜的類似于計算機的原理。如:音樂信號以數字的形式存于存儲器中(類似于ROM),由微控制器讀出,轉化為模擬音樂電信號(類似于聲卡)。

  在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。

7.單片機在汽車設備領域中的應用

單片機在汽車電子中的應用非常廣泛,例如汽車中的發動機控制器,基于CAN總線的汽車發動機智能電子控制器,GPS導航系統,abs防抱死系統,制動系統等等。

此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。


第二章 系統硬件組成

2.1 DS18B20溫度傳感器介紹


1、DS18B20 簡單介紹:

DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。DS18B20的性能特點如下:

●獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊

●DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫

●DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內

●適應電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數據線供電

●溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃

●零待機功耗

●可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現高精度測溫

●在9位分辨率時最多在93.75ms內把溫度轉換為數字,12位分辨率時最多在750ms內把溫度值轉換為數字,速度更快

●用戶可定義報警設置

●報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件

●測量結果直接輸出數字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力

●負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作


TO-92封裝的DS18B20的引腳排列見下圖2.1,其引腳功能描述見下:1.GND地信號

2.DQ

   數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。

3.VDD

   可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。

圖2.1 18B20管腳圖

2、DS18B20 使用中的注意事項:

DS18B20 雖然具有測溫系統簡單、測溫精度高、連接方便、占用口線少等優點,但在實際應用中也應注意以下幾方面的問題:

●DS18B20 從測溫結束到將溫度值轉換成數字量需要一定的轉換時間,這是必須保證的,不然會出現轉換錯誤的現象,使溫度輸出總是顯示85。

●在實際使用中發現,應使電源電壓保持在5V 左右,若電源電壓過低,會使所測得的溫度精度降低。

●較小的硬件開銷需要相對復雜的軟件進行補償,由于DS1820與微處理器間采用串行數據傳送,因此,在對DS1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結果。在使用PL/M、C等高級語言進行系統程序設計時,對DS1820操作部分最好采用匯編語言實現。

●在DS18B20的有關資料中均未提及單總線上所掛DS18B20 數量問題,容易使人誤認為可以掛任意多個DS18B20,在實際應用中并非如此,當單總線上所掛DS18B20 超過8 個時,就需要解決微處理器的總線驅動問題,這一點在進行多點測溫系統設計時要加以注意。

●在DS18B20測溫程序設計中,向DS18B20 發出溫度轉換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20 接觸不好或斷線,當程序讀該DS18B20 時,將沒有返回信號,程序進入死循環,這一點在進行DS18B20硬件連接和軟件設計時也要給予一定的重視。

3、DS18B20 內部結構:

圖為DS1820的內部框圖,它主要包括寄生電源、溫度傳感器、64位激光ROM單線接口、存放中間數據的高速暫存器(內含便箋式RAM),用于存儲用戶設定的溫度上下限值的TH和TL觸發器存儲與控制邏輯、8位循環冗余校驗碼(CRC)發生器等七部分。

DS18B20采用3腳PR-35 封裝或8腳SOIC封裝,其內部結構框圖如圖 2.2所示

圖 2.2 DS18B20內部結構框圖

開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48 位,最后8位是前面56 位的CRC 檢驗碼,這也是多個DS18B20 可以采用一線進行通信的原因。溫度報警觸發器TH和TL,可通過軟件寫入戶報警上下限。主機操作ROM的命令有五種,如表所列

Byte0
溫度測量值LSB(50H)
Byte1
溫度測量值MSB(50H)
Byte2
TH高溫寄存器
Byte3
TL低溫寄存器
Byte4
配位寄存器
Byte5
預留(FFH)
Byte6
預留(OCH)
Byte7
預留(IOH)
Byte8
循環冗余碼校驗(CRC)

DS18B20 溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM 的結構為8字節的存儲器,結構如圖 2.3所示。               



便箋式儲存器(上電狀態)
E2PROM
TH高溫寄存器
TL低溫寄存器
配位寄存器

圖 2.3高速暫存RAM結構圖

前2個字節包含測得的溫度信息,第3和第4字節TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節,為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數值。

溫度低位
溫度高位
TH
TL
配置
保留
保留
保留
8位CRC

LSB                                                            MSB

當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,數據格式以0.062 5 ℃/LSB形式表示。溫度值格式如下:

這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。圖中,S表示位。對應的溫度計算:當符號位S=0時,表示測得的溫度植為正值,直接將二進制位轉換為十進制;當S=1時,表示測得的溫度植為負值,先將補碼變換為原碼,再計算十進制值。例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為FF6FH,-55℃的數字輸出為FC90H。

DS18B20溫度傳感器主要用于對溫度進行測量,數據可用16位符號擴展的二進制補碼讀數形式提供,并以0.0625℃/LSB形式表示。表2是部分溫度值對應的二進制溫度表示數據。

溫度/℃
二進制表示
十六進制表示
+125
00000111
11010000
07D0H
+25.0625
00000001
10010001
0191H
+0.5
00000000
00001000
0008H
0
00000000
00000000
0000H
-0.5
11111111
11111000
FFF8H
-25.0625
11111110
01101111
FE6FH
-55
11111100
10010000
FC90H
表2 部分溫度值

DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節內容作比較,若T>TH或T<TL,則將該器件內的告警標志置位,并對主機發出的告警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行告警搜索。

在64位ROM的最高有效字節中存儲有循環冗余校驗碼(CRC)。主機根據ROM的前 56位來計算CRC值,并和存入DS18B20中的CRC值做比較,以判斷主機收到的ROM數 據是否正確。

4、DS18B20測溫原理:

:    DS18B20的測溫原理如圖2所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量.計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55 ℃所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55 ℃所對應的一個基數值。

減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器 1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫圖2中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。

另外,由于DS18B20單線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時    序很重要。系統對DS18B20的各種操作必須按協議進行。操作協議為:初始化DS18B20   (發復位脈沖)→發ROM功能命令→發存儲器操作命令→處理數據。

圖(2) DS18B20測溫原理圖

在正常測溫情況下,DS1820的測溫分辨力為0.5℃,可采用下述方法獲得高分辨率的溫度測量結果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度的整數部分Tz,然后再用BEH指令取計數器1的計數剩余值Cs和每度計數值CD。考慮到DS1820測量溫度的整數部分以0.25℃、0.75℃為進位界限的關系,實際溫度Ts可用下式計算:

         Ts=(Tz-0.25℃)+(CD-Cs)/CD

5、提高DS1820測溫精度的途徑

(1)、DS1820高精度測溫的理論依據

   DS1820正常使用時的測溫分辨率為0.5℃,這對于水輪發電機組軸瓦溫度監測來講略顯不足,在對DS1820測溫原理詳細分析的基礎上,我們采取直接讀取DS1820內部暫存寄存器的方法,將DS1820的測溫分辨率提高到0.1℃~0.01℃.

DS1820內部暫存寄存器的分布如表1所示,其中第7字節存放的是當溫度寄存器停止增值時計數器1的計數剩余值,第8字節存放的是每度所對應的計數值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結果。首先用DS1820提供的讀暫存寄存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結果,然后切去測量結果中的最低有效位(LSB),得到所測實際溫度整數部分T整數,然后再用BEH指令讀取計數器1的計數剩余值M剩余和每度計數值M每度,考慮到DS1820測量溫度的整數部分以0.25℃、0.75℃為進位界限的關系,實際溫度T實際可用下式計算得到:T實際=(T整數-0.25℃)+(M每度-M剩余)/M每度。

寄存器內容
字節地址
溫度最低數字位
0
溫度最高數字位
1
高溫限值
2
低溫限值
3
保留
4
保留
5
計數剩余值
6
每度計數值
7
CRC 校驗
8

表1 DS18B20暫存寄存器分布
該字節各位的定義如下:

低5位一直都是1,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動,R1和R0決定溫度轉換的精度位數,即是來設置分辨率,如表1所示(DS18B20出廠時被設置為12位)。

R1
R0
分辨率
溫度最大轉換時/mm
0
0
9位
93.75
0
1
10位
187.75
1
0
11位
275.00
1
1
12位
750.00

表1 R1和R2模式表

由表1可見,設定的分辨率越高,所需要的溫度數據轉換時間就越長。因此,在實際應用中要在分辨率和轉換時間權衡考慮。高速暫存存儲器除了配置寄存器外,還有其他8個字節組成,其分配如下所示。其中溫度信息(第1,2字節)、TH和TL值第3,4字節、第6~8字節未用,表現為全邏輯1;第9字節讀出的是前面所有8個字節的CRC碼,可用來保證通信正確。

     根據DS18B20的通訊協議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數據線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,后發出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。

(2)、 測量數據比較

表2為采用直接讀取測溫結果方法和采用計算方法得到的測溫數據比較,通過比較可以看出,計算方法在DS1820測溫中不僅是可行的,也可以大大的提高DS1820的測溫分辨率。

次數
T(直視)
M(剩余)
M(每度)
T(實際)
1
21.000
72
80
20.850
2
34.000
42
82
34.238
3
49.000
30
83
49.388
4
52.000
66
84
51.964
5
64.000
49
85
64.174
6
79.000
56
87
79.106
7
82.000
16
88
82.568

表2 DS18B20 直度測溫結果與計算測溫結果數據比較

2.2 7段LED數碼管電路及原理

7段LED數碼管分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、e、f、g及dp(小數點);共陰極則是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、d、e、f、g及dp(小數點),如下圖2.5所示。圖中的8個LED分別與上面那個圖中的A~DP各段相對應,通過控制各個LED的亮滅來顯示數字。

圖2.5數碼管顯示

4個數碼管共用a~dp這8根數據線,為人們的使用提供了方便,因為里面有4個數碼管,所以它有4個公共端,加上a~dp,共有12個引腳,下面便是一個共陰的四位數碼管的內部結構圖(共陽的與之相反)。引腳排列依然是從左下角的那個腳(1腳)開始,以逆時針方向依次為1~12腳,下圖中的數字與之一一對應。

圖2.6數碼管管腳

2.3系統方案的選擇

(一)、方案一

采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫熱偶,熱電偶由兩個焊接在一起的異金屬導線所組成(熱電偶的構成如圖 3.1),熱電偶產生的熱電勢由兩種金屬的接觸電勢和單一導體的溫差電勢組成。通過將參考結點保持在已知溫度并測量該電壓,便可推斷出檢測結點的溫度。數據采集部分則使用帶有A/D 通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行A/D 轉換后,就可以用單片機進行數據的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導線環路的噪聲影響以及漂移較高的缺點,并且這種設計需要用到A/D 轉換電路,感溫電路比較麻煩。

圖 3.1熱電偶電路圖

系統主要包括對A/D0809 的數據采集,自動手動工作方式檢測,溫度的顯示等,這幾項功能的信號通過輸入輸出電路經單片機處理。此外還有復位電路,晶振電路,啟動電路等。故現場輸入硬件有手動復位鍵、A/D 轉換芯片,處理芯片為51 芯片,執行機構有4 位數碼管、報警器等。系統框圖如圖 3.2所示:


圖 3.2熱電偶溫差電路測溫系統框圖

(二)、方案二

采用數字溫度芯片DS18B20 測量溫度,輸出信號全數字化。便于單片機處理及控制,省去傳統的測溫方法的很多外圍電路。且該芯片的物理化學性很穩定,它能用做工業測溫元件,此元件線形較好。在0—100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數據傳輸,由數字溫度計DS18B20和微控制器AT89S51構成的溫度測量裝置,它直接輸出溫度的數字信號,可直接與計算機連接。這樣,測溫系統的結構就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現各種各樣的算術算法和邏輯控制,而且體積小,硬件實現簡單,安裝方便。既可以單獨對多DS18B20

控制工作,還可以與PC 機通信上傳數據,另外AT89S51 在工業控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使用都很成熟。

該系統利用AT89S51芯片控制溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠實現快速測量環境溫度,并可以根據需要設定上下限報警溫度。該系統擴展性非常強,它可以在設計中加入時鐘芯片DS1302以獲取時間數據,在數據處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數據進行存儲,利用鍵盤來進行調時和溫度查詢,獲得的數據可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數據。

系統框圖如圖 3.3所示

圖 3.3 DS18B20溫度測溫系統框圖

從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實現方便、軟件設計也比較簡單,故本次設計采用了方案二。


2.4 系統整體硬件電路

溫度計電路設計原理圖如圖2.7所示,控制器使用單片機STC89C51,溫度傳感器使用DS18B20,用4位共陽LED數碼管以動態掃描法實現溫度顯示電路。


圖2.6數字溫度計電路原理圖


第三章 系統程序的設計

系統程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數據刷新子程序等


3.1 主程序

主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖3.1所示。


圖3.1 主程序流程圖                                            圖3.2讀溫度流程圖

3.2 讀出溫度子程序

    讀出溫度子程序的主要功能是讀出RAM中的9字節,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數據的改寫。其程序流程圖如圖3.2示

3.3 溫度轉換命令子程序

溫度轉換命令子程序主要是發溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如圖3.3所示


圖3.3 溫度轉換流程圖

3.4 計算溫度子程序

計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖3.4所示。

3.5 顯示數據刷新子程序

顯示數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作,當最高

顯示位為0時將符號顯示位移入下一位。程序流程圖如圖3.5。



圖3.4 計算溫度流程圖                            圖3.5 顯示數據刷新流程圖

第四章 實驗、調試及測試結果分析

4.1 硬件調試

檢查印制板及焊接的質量情況,在檢查無誤后可通電檢查LED顯示器。若亮度不理想,可以調整P0口的電阻大小,一般情況取200歐電阻即可

4.2 軟件調試

在KeilC51編譯下進行,源程序編譯及仿真調試應分段或以子程序為單位逐個進行,最后結合硬件實時調試

通過以上檢查后,將電路通電查看是否按要正常工作,實驗最終結果顯示實驗成功下面分別為方真電路圖、實物圖。


總 結

本設計利用89C51 芯片控制溫度傳感器DS18B20,再輔之以部分外圍電路實現對環境溫度的測控,性能穩定,精度教高,而且擴展性能很強大。由于DS18B20 支持單總線協議,我們可以將多個DS18B20 可以并聯到3 根或2 根線上,CPU 只需一根端口線就能與諸多DS18B20 通信,占用較少的微處理器的端口就可以實現多點測溫監控系統。由于DS18B20的測量精度只有±0.5 度,往往很多場合需要更加精確的溫度,在所測溫度精度不變的基礎上必須對數據進行校正。由于DS18B20 是基于帶隙結構的數字式溫度傳感器,PN 結增量電壓正比于IC 絕對溫度(PTAT),它的測溫精度較高,但存在著一定的誤差.不過,其誤差在時間和外部環境變化的條件下,保持相當高的穩定性。針對這一特性,基于線性插補的數學思想,利用DSP技術,對其進行誤差校正補償.這種誤差校正的補償方法,不需增加硬件電路,計算方法簡單,軟件費用也很小,既提高了測量精度,又不需增加成本。它充分利用監控計算機的處理能力,在監控計算機上用線性插補的數學方法對其進行誤差校正補償,能輕易地將其提高其精度。

   經過將近三周的單片機課程設計,終于完成了我的數字溫度計的設計,雖然沒有完全達到設計要求,但從心底里說,還是高興的,畢竟這次設計把實物都做了出來,高興之余不得不深思呀!

在本次設計的過程中,我發現很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數據加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們去試著做了,才能真正的掌握,只學習理論有些東西是很難理解的,更談不上掌握。

從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這次課程設計中的最大收獲。


全部資料51hei下載地址(內含仿真+程序):
1__配送資料.7z (5.68 MB, 下載次數: 94)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

板凳
ID:565333 發表于 2019-6-18 22:09 | 只看該作者
請問這個是匯編語言嘛
回復

使用道具 舉報

沙發
ID:565333 發表于 2019-6-18 22:09 | 只看該作者
請問這個是匯編語言嘛
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表