版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 四位數(shù)數(shù)字溫度計的設計</p><p><b> 作者姓名:</b></p><p> 專業(yè)名稱:電氣工程及其自動化</p><p> 指導教師: 講師</p><p><b> 摘要</b></p><p> 在這個信息化高速發(fā)展的
2、時代,單片機作為一種最經典的微控制器,單片機技術已經普及到我們生活,工作,科研,各個領域,已經成為一種比較成熟的技術,作為電氣工程及其自動化專業(yè)的學生,我們學習了單片機,就應該把它熟練應用到生活之中來。</p><p> 溫度計,是測溫儀器的總稱,可以準確的判斷和測量溫度。溫度計現(xiàn)在廣泛應用于醫(yī)療、科研、制造、生活等各個方面,要求也越來越高。一般的老式的溫度計是利用液體、氣體受溫度的影響而熱脹冷縮等的現(xiàn)象為設計
3、的依據。但是這種溫度計的精度和準確性卻不一定很好。</p><p> 而隨著科學技術的發(fā)展,現(xiàn)在又推出了一些新式的電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計、雙金屬溫度計等,它們則是依據熱敏電阻、電磁輻射等的影響設計的,應用領域更廣,性能更好。而溫度計的發(fā)展趨勢就是精度越來越準確,使用越來越方便,范圍越來越廣等。所以我們應該把一些現(xiàn)行的比較先進的技術應用于溫度計的設計和制造。</p>&l
4、t;p> 本文將介紹一種基于單片機控制的數(shù)字溫度計,本溫度計屬于多功能溫度計,可以設置上下報警溫度,當溫度不在設置范圍內時,可以報警。本文設計的數(shù)字溫度計具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點。但是此溫度計也有著測溫范圍有限制,測溫精度會因為溫度傳感器的不同而有所影響,不過用于一般的生活、工作等是可以勝任的。</p><p> 關鍵詞: 數(shù)字控制 溫度傳感器 單片機 數(shù)字
5、顯示 報警溫度</p><p><b> Abstract</b></p><p> In this information age, the high-speed development of the microcontroller as one of the most classic micro controller, microcontroller tec
6、hnology has spread to our life, work, research, each domain, has become a more mature technology, as electrical engineering and automation specialized student, we studied the microcontroller, you should do it skilled app
7、lication to life.</p><p> The thermometer, is the floorboard of temperature measurement instrument, can accurate judgment and measure temperatures. The thermometer now widely used in medical treatment, scie
8、ntific research, manufacturing, life, and other aspects, demand more and more is also high. General old-fashioned thermometer is by using liquid, gas and heat bilges cold shrink the influence of the temperature of the ph
9、enomenon such as the basis for design. But this thermometer precision and accuracy is not necessaril</p><p> But with the development of science and technology, now again launched some new resistance thermo
10、meters, temperature electric dipoles thermometer, thermometer and light measurement thermometer, two-metal thermometer, etc., which is based on thermistors and electromagnetic radiation effect of design, application fiel
11、d better performance and more. And the development trend of the thermometer is more accurate, use precision more and more convenient, more widely, etc. So we should put some current o</p><p> This paper wil
12、l introduce a kind of digital thermometer based on single-chip microcomputer control, the thermometer belongs to the multifunctional thermometer, can install fluctuation alarm, when the temperature is not setting tempera
13、ture range, can report to the police. This paper designed digital thermometer readings is convenient, with wide range of temperature, temperature measurement precision, the digital display characteristics, wide applicati
14、on scope. But this thermometer also has a temp</p><p> Keywords: digital control,temperature sensor,microcontroller,</p><p> digital display,alarming temperature</p><p><b>
15、 目錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p><b> 目錄IV</b></p><p><b> 前言1</b></p><p><b> 1
16、單片機簡介2</b></p><p> 1.1 主要性能4</p><p> 1.2 引腳說明5</p><p> 2 系統(tǒng)總體方案及硬件設計9</p><p> 2.1 數(shù)字溫度計設計方案論證9</p><p> 2.2 總體設計框圖10</p><p>
17、2.2.1 主控制器11</p><p> 2.2.2 顯示電路11</p><p> 2.2.3 溫度傳感器12</p><p> 2.3 DS18B20溫度傳感器與單片機的接口電路17</p><p> 2.4 系統(tǒng)整體硬件電路設計18</p><p> 2.4.1 主板電路18</p&
18、gt;<p> 2.4.2 顯示電路19</p><p> 3 系統(tǒng)軟件設計20</p><p> 3.1 初始化程序20</p><p> 3.2 讀出溫度子程序22</p><p> 3.3 讀、寫時序子程序23</p><p> 3.4 溫度處理子程序26</p>
19、<p> 3.5 顯示程序28</p><p> 3.6 延時程序29</p><p><b> 總結30</b></p><p><b> 致謝31</b></p><p><b> 參考文獻32</b></p><p&g
20、t; 附件1 源程序代碼33</p><p> 附件2 整體原理圖39</p><p><b> 前言</b></p><p> 隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方
21、便的設施就需要從數(shù)單片機技術入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。</p><p> 本設計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,可廣泛用于食品庫、冷庫、糧庫、溫室大棚等需要控制溫度的地方。目前,該產品已在溫控系統(tǒng)中得到廣泛的應用。</p><p> 本系統(tǒng)是一個基于單片
22、機AT89S52的數(shù)字溫度計的設計,用來測量環(huán)境溫度,測量范圍為-50℃—110℃度。整個設計系統(tǒng)分為4部分:單片機控制、溫度傳感器、數(shù)碼顯示以及鍵盤控制電路。整個設計是以AT89S52為核心,通過數(shù)字溫度傳感器DS18B20來實現(xiàn)環(huán)境溫度的采集和A/D轉換,同時因其輸出為數(shù)字形式,且為串行輸出,這就方便了單片機進行數(shù)據處理,但同時也對編程提出了更高的要求。單片機把采集到的溫度進行相應的轉換后,使之能夠方便地在數(shù)碼管上輸出。LED采用四
23、位一體共陰的數(shù)碼管。</p><p> 此設計的重點在于編程,程序要實現(xiàn)溫度的采集、轉換、顯示和上下限溫度報警,其外圍電路所用器件較少,相對簡單,實現(xiàn)容易。</p><p><b> 1 單片機簡介</b></p><p> 單片微型計算機簡稱單片機,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫M
24、CU表示單片機,它最早是被用在工業(yè)控制領域。單片機由芯片內僅有CPU的專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。 </p><p> 早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可
25、靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)?;谶@一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產品大發(fā)展,單片機技術得到了巨大提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提
26、高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端[1]的型號也只有10美元。當代單片機系統(tǒng)已經不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。 </p><p>
27、單片機比專用處理器更適合應用于嵌入式系統(tǒng),因此它得到了最多的應用。事實上單片機是世界上數(shù)量最多的計算機?,F(xiàn)代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數(shù)不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠超過PC機和其他計算的總和,甚至比人類的
28、數(shù)量還要多。 </p><p> 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。相當于一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發(fā)提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。 </p><p> 單片機內部也用和電腦
29、功能類似的模塊,比如CPU,內存,并行總線,還有和硬盤作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現(xiàn)在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電里面都可以看到它的身影!......它主要是作為控制部分的核心部件。 </p><p> 它是一種在線式實時控制計算機,在線式就是現(xiàn)場控
30、制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區(qū)別。 </p><p> 單片機是靠程序運行的,并且可以修改。通過不同的程序實現(xiàn)不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是
31、如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!</p><p> 而本設計使用的單片機則是屬于51系列單片機中的AT89S52,下面是它的一些簡介。</p><p><b> 1.1 主要性能</b></p><p> 首先,我先介紹一些AT89S5
32、2芯片的主要性能:</p><p> 與MCS-51單片機產品兼容; </p><p> 8K字節(jié)在系統(tǒng)可編程Flash存儲器; </p><p> 1000次擦寫周期; </p><p> 全靜態(tài)操作:0Hz-33MHz; </p><p> 三級加密程序存儲器; </p><p>
33、 32個可編程I/O口線; </p><p> 三個16位定時器/計數(shù)器; </p><p><b> 六個中斷源; </b></p><p> 全雙工UART串行通道; </p><p> 低功耗空閑和掉電模式; </p><p> 掉電后中斷可喚醒; </p><
34、;p><b> 看門狗定時器; </b></p><p><b> 雙數(shù)據指針; </b></p><p><b> 掉電標識符。</b></p><p><b> 1.2 引腳說明</b></p><p> AT89S52 是一種低功耗、
35、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程 </p><p> 圖1.1 AT89S52引腳圖 DIP封裝</p><p> Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT8
36、9S52為眾多嵌入式控制應用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口, 片內晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作
37、。掉電保護方式下,RAM內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止。 </p><p> P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數(shù)據存儲器時,P0口也被作為低8位地址/數(shù)據復用。在這種模式下, P0不具有內部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié)
38、;在程序校驗時,輸出指令字節(jié)。程序校驗 時,需要外部上拉電阻。 </p><p> P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 </p><p> 此外,P1.0和P1.
39、1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 </p><p><b> 引腳號第二功能: </b></p><p> P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 </p><p> P1.1 T2EX
40、(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) </p><p> P1.5 MOSI(在系統(tǒng)編程用) </p><p> P1.6 MISO(在系統(tǒng)編程用) </p><p> P1.7 SCK(在系統(tǒng)編程用) </p><p> P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動 4 個
41、TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據存儲器(例如執(zhí)行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據存儲器時,P2口輸出P2鎖存器的內容。 在flash編程和校
42、驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 </p><p> P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程
43、和校驗時,P3口也接收一些控制信號。</p><p> 端口引腳 第二功能:</p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p><p> P3.2 INTO(外中斷0) </p><p> P3.3 INT1(外中斷1) </p>&
44、lt;p> P3.4 TO(定時/計數(shù)器0) </p><p> P3.5 T1(定時/計數(shù)器1) </p><p> P3.6 WR(外部數(shù)據存儲器寫選通) </p><p> P3.7 RD(外部數(shù)據存儲器讀選通) </p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。 </p>
45、<p> RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。 </p><p> ALE/PROG:當訪問外部程序存儲器或數(shù)據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據存儲器時將跳過一個ALE脈沖。對FLASH存
46、儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。 </p><p> PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89S52由外部程序存儲器取指令(或數(shù)據)時
47、,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據存儲器,將跳過兩次PSEN信號。 </p><p> EA/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+
48、12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。 </p><p> XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端。</p><p> 2 系統(tǒng)總體方案及硬件設計</p><p> 2.1 數(shù)字溫度計設計方案論證</p>&l
49、t;p> 由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數(shù)據的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換,
50、就可以滿足設計要求。</p><p> 2.2 總體設計框圖</p><p> 溫度計電路設計總體設計方框圖如圖2.1所示,控制器采用單片機AT89S52,溫度傳感器采用DS18B20,用4位共陰LED數(shù)碼管以串口傳送數(shù)據實現(xiàn)溫度顯示。</p><p> 圖2.1 總體設計框圖</p><p> 2.2.1 主控制器</p&g
51、t;<p> 單片機AT89S52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,適合便攜手持式產品的設計使用。</p><p> AT89S52單片機芯片具有以下特性:</p><p> 1)指令集合芯片引腳與Intel公司的8052兼容;</p><p> 2)4KB片內在系統(tǒng)可編程FLASH程序存儲器;<
52、;/p><p> 3)時鐘頻率為0~33MHZ;</p><p> 4)128字節(jié)片內隨機讀寫存儲器(RAM);</p><p> 5)6個中斷源,2級優(yōu)先級;</p><p> 6)2個16位定時/記數(shù)器;</p><p> 7)全雙工串行通信接口;</p><p><b>
53、 8)監(jiān)視定時器;</b></p><p><b> 9)兩個數(shù)據指針;</b></p><p> 2.2.2 顯示電路</p><p> 顯示電路采用4位共陰LED數(shù)碼管,從P0口輸出段碼,P2.0—P2.3作片選端。但在焊電路板的時候發(fā)現(xiàn)數(shù)碼管亮度不夠,所以在P2.0—P2.3端口接四個10K的電阻和四個NPN的三極管,以
54、使數(shù)碼管高亮顯示。</p><p> 2.2.3 溫度傳感器</p><p> DS18B20溫度傳感器是美國DALLAS半導體公司推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p> ●獨特的單線接口僅需要一個端口
55、引腳進行通信,無須經過其它變換電路;</p><p> ●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網功能;</p><p> ●內含64位經過激光修正的只讀存儲器ROM;</p><p> ●可通過數(shù)據線供電,內含寄生電源,電壓范圍為3.0~5.5V;</p><p><b> ●零待機功耗;</b>
56、</p><p> ●溫度以9或12位數(shù)字;</p><p> ●用戶可定義報警設置; </p><p> ●報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;</p><p> ●負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;</p><p> ●測溫范圍為-55℃~+12
57、5℃,測量分辨率為0.0625℃①采用單總線專用技術。</p><p> DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內部結構框圖如圖2.2所示。</p><p> 圖2.2 DS18B20內部結構</p><p> 64位ROM的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多
58、個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入用戶報警上下限。</p><p> DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節(jié)的存儲器,結構如表2.1所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫
59、度值的數(shù)字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如表2.1所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉換的精度位數(shù),來設置分辨率。</p><p> 表2.1 DS18B20字節(jié)定義</p><p> 由下面表2.2可見
60、,DS18B20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。</p><p> 表2.2 DS18B20溫度轉換時間表:</p><p> 高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據,從而保證通信數(shù)據的正確性。</p><p&
61、gt; 當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據,讀數(shù)據時低位在先,高位在后,數(shù)據格式以0.0625℃/LSB形式表示。</p><p> 當符號位S=0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再
62、計算十進制數(shù)值。表2.3是一部分溫度值對應的二進制溫度數(shù)據。</p><p> DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較。若T>TH或T<TL,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。</p><p> 在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)
63、。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據是否正確。</p><p> DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振
64、蕩器產生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。</p><p> 減法計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)
65、晶振產生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。</p><p> 表2.3 一部分溫度對應值表:</p><p> 2.3 DS18B20溫度傳感器與單片機的接口電路</p><p>
66、 圖2.3 DS18B20與單片機的接口電路</p><p> DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖2.3所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管來完成對總線的上拉,多個DS18B20可以將2口串接到一條總線上,而本設計只用了一個DS1
67、8B20。</p><p> 當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> 2.4 系統(tǒng)整體硬件電路設計</p><p> 2.4.1 主板電路</p><p> 系統(tǒng)整體
68、硬件電路包括,傳感器數(shù)據采集電路,溫度顯示電路,上下限報警調整電路,單片機主板電路等,單片機主板電路如圖2.4 所示:</p><p> 圖2.4 單片機主板電路</p><p> 圖2.4中包括時鐘振蕩電路和按鍵復位電路,按鍵復位電路是上電復位加手動復位,使用比較方便,在程序跑飛時,可以手動復位,這樣就不用在重起單片機電源,就可以實現(xiàn)復位。另外擴展電路中,蜂鳴器可以在被測溫度不在上下
69、限范圍內時,發(fā)出報警鳴叫聲音,同時LED數(shù)碼管將沒有被測溫度值顯示,這時可以調整報警上下限,從而測出被測的溫度值。</p><p> 2.4.2 顯示電路</p><p> 顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點就是使用口資源比較少,只用P0和P3口,串口的發(fā)送和接收,采用4位共陰LED數(shù)碼管,從P0口輸出段碼,P2.0—P2.3作片選端。但在焊電路板的時候發(fā)現(xiàn)數(shù)碼管亮度不夠,所
70、以在P2.0—P2.3端口接四個10K的電阻和四個NPN的三極管,期望增加驅動電流,以使數(shù)碼管高亮顯示。</p><p> 圖2.5 溫度顯示電路</p><p><b> 3 系統(tǒng)軟件設計</b></p><p> 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據刷新子程序等。</p>
71、<p><b> 3.1 初始化程序</b></p><p> 圖3.1 初始化程序</p><p><b> 、</b></p><p> 圖3.2 初始化程序流程圖</p><p> 3.2 讀出溫度子程序</p><p> 讀出溫度子程序的主要功
72、能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據的改寫。其程序流程圖如圖3.3示</p><p> 圖3.3讀溫度程序流程圖</p><p> 3.3 讀、寫時序子程序</p><p> 讀寫的程序是本次設計中的重點和難點,通過我們對其時序的分析,從而寫出高效的程序。</p><p>
73、; 圖3.4 寫1,0時序</p><p> 圖3.5 讀0,1時序</p><p> 圖3.6 寫時序子程序流程圖 圖3.7 讀時序子程序</p><p><b> 流程圖</b></p><p> 3.4 溫度處理子程序</p><p>
74、 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖3.8所示。</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y<
75、/b></p><p> 圖3.8 溫度處理程序流程圖</p><p><b> 3.5 顯示程序</b></p><p> 此函數(shù)實現(xiàn)的對數(shù)碼管顯示的處理,其亮點在于可以直接對數(shù)碼管進行操作,其本身是個兩變量函數(shù),第一個變量是要開通的位選,第二個變量是要顯示的數(shù)據,這樣我們可以直接方便而又簡單直觀的對數(shù)碼管進行操作。程序流程圖如圖
76、3.9。</p><p><b> N</b></p><p><b> Y</b></p><p> 圖3.9 顯示數(shù)據刷新流程圖</p><p><b> 3.6 延時程序</b></p><p> 延時程序主要分為短延時和長延時,短延時如
77、果要求十分的精確可以采用定時器,如果要求不太高的話可以采用普通函數(shù)的疊加,可以近似時間的延時。長延時同樣的道理,不過要求不是很精確的話,可以采取語言結構的循環(huán)來實現(xiàn)延時。具體程序如下:</p><p> 近乎精確的短延時,采用標準庫里的_nop_()函數(shù),此函數(shù)一個延時為22微秒左右;</p><p> void delay15(uint n)</p><p>
78、<b> { </b></p><p><b> do</b></p><p><b> {</b></p><p> _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p> _nop_();
79、_nop_();_nop_();_nop_();_nop_();_nop_();</p><p><b> n--;</b></p><p><b> }</b></p><p><b> while(n);</b></p><p><b> }</b&
80、gt;</p><p> //長延時,用于不太嚴格的延時</p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0;x--)&l
81、t;/p><p> for(y=50;y>0;y--);</p><p><b> }</b></p><p> 表3.1 delay15()延時函數(shù)的取值采樣:</p><p><b> 總結</b></p><p> 終于完成了我的數(shù)字溫度計的設計,雖然沒有
82、完全達到設計要求,但從心底里說,還是高興的,畢竟這次設計傾注了汪老師和我太多的心血。</p><p> 在本次設計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)
83、直接加減,顯示處理時在用對不同的位,求商或求余,感覺效果比較好。還有時序的問題,通過這次的設計我明白了時序才真正是數(shù)字芯片的靈魂,所有的程序我們都可以通過對其時序的理解來實現(xiàn)對其操作,同時體會到了單總線結構的魅力。</p><p> 從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這
84、次課程設計中的最大收獲。</p><p> 而且在本次設計的過程中,自己去查詢資料,以及對資料的整理,與老師的探討都使我受益匪淺。在查找資料的過程中讓我懂得了自己一個人時如何去學習,如何去篩選其中最有用的一部分。而與汪老師的交流探討中,我則學會了如何去與人合作完成一件事,這對我在以后的工作中與其他人合作奠定了基礎。同時也在汪老師的指導和幫助下了解了與人合作的優(yōu)勢。人都是群居動物,在以后的工作與生活中一定會需要別
85、人的合作,而這次畢業(yè)設計則是一個預演。相信通過此次畢業(yè)設計,今后我一定會做得跟好。</p><p><b> 致謝</b></p><p> 非常感謝某某老師在我大學的最后學習階段——畢業(yè)設計階段給我的指導。從最初的定題,到資料收集,到寫作、修改,到論文定稿,某某老師給了我耐心的指導和無私的幫助。在此,我向某某老師表示我誠摯的謝意。同時,感謝所有的任課老師和所有的
86、同學在這四年來給我的指導和幫助,是你們教會了我專業(yè)知識,如何學習,如何與人相處。正是由于你們,我才能在各方面取得顯著的進步,在此向你們表示我由衷的謝意,并祝所有老師培養(yǎng)出更多的優(yōu)秀人才,桃李滿天下!</p><p> 通過這一階段的努力,我的畢業(yè)論文《四位數(shù)數(shù)字溫度表的設計》終于完成了,這意味著我的大學生活即將結束。在大學階段,我在學習上和思想上都收益非淺,這除了自身的努力外,與各位老師、同學和朋友、親人們的關
87、心、支持和鼓勵是分不開的。</p><p> 在本論文的寫作過程中,我的導師某某老師傾注了大量的心血,從寫作提綱,到一遍又一遍的指出每稿中的問題,嚴格把關,循循善誘,在此我表示衷心的感謝。同時我還要感謝在我學習期間給我極大關心和支持的各位老師、同學、朋友和親人們。</p><p> 寫畢業(yè)論文是一次在學習的過程,畢業(yè)論文的完成同樣也意味著新的學習生活的開始。我將銘記我曾是一名電氣學子,
88、在今后的工作中把學校的優(yōu)良傳統(tǒng)發(fā)揚光大。</p><p><b> 參考文獻</b></p><p> DS18B20數(shù)據手冊[M].</p><p> 求是科技編著8051系列單片機C程序設計完全手冊北京[M]: 人民郵電出版社, 2006.</p><p> 余發(fā)山, 王福忠. 單片機原理及應用技
89、術[M]. 中國礦業(yè)大學出版社, 2003.</p><p> 趙巧娥, 魏文. AT89C2051單片機的LED數(shù)顯接口技術[J]. 電力學報, 2000.</p><p> 夏林甫. 小型非接觸式數(shù)字溫度計[M]. 電子元件與材料, 1988.</p><p> 薛振東. 一種新型實用數(shù)字溫度計的設計與制作[J]. 電子儀器儀表用戶,
90、 1997.</p><p> 陳思, 基于單片機的數(shù)字溫度計的設計[J]. 信息與電腦(理論版), 2010.</p><p> 顧春祿, 賈姝娟, 劉茹敏. 基于單片機的數(shù)字溫度計設計[J]. 科協(xié)論壇(下半月) , 2010.</p><p> 潘洪, 一種實用多功能數(shù)字溫度計的設計[J]. 魅力中國, 2010.</p><p>
91、; 劉洋, 吳雙, 趙永剛. 熱電偶溫度傳感器的研究與發(fā)展現(xiàn)狀[M]. 中國儀器儀表, 2003,11:1-3.</p><p> 周美娟, 單片機技術及系統(tǒng)設計[M]. 北京:清華大學出版社, 2007.</p><p> 王幸之, 鐘愛琴等. 《AT89系列單片機原理與接口技術》[M]. 北京:北京航空航天大學出版社, 2004.</p><p> 王美
92、玲; 付佳; 肖烜. 創(chuàng)新型實驗項目——數(shù)字溫度計的設計[J]. 實驗室研究與探索, 2010.</p><p> 周學軍. 基于AT89C2051的數(shù)字溫度計設計[J]. 現(xiàn)代電子技術, 2010.</p><p> 張志勇; 衛(wèi)勇; 單慧勇. 一種基于單片機控制的數(shù)字溫度計的設計[J]. 天津農學院學報, 2007.</p><p> 附件1 源程序代
93、碼</p><p> #include <reg52.h></p><p> #include<intrins.h></p><p> #include<math.h></p><p> #define uchar unsigned char</p><p> #defi
94、ne uint unsigned int</p><p> #define duaP2</p><p> #define max36</p><p> //#define min 0</p><p> sbit DQ=P1^7;</p><p> sbit din=P0^7;</p>
95、;<p> sbit beep=P3^0;</p><p> /*uchar tab[]={0xc0,0xf9,0xa4,0xB0,0x99,</p><p> //"0" "1" "2" "3""4";</p><p> 0x92,0x
96、82,0xF8,0x80,0x90,0xff,0xbf,0xc6}; //共陽; </p><p> // "5" "6""7""8""9" "滅""-" 'c' */</p><p> uchar
97、tab[]={0x3f,0x06,0x5b,0x4f,</p><p> 0x66,0x6d,0x7d,0x07,</p><p> 0x7f,0x6f,0x00,0x40}; </p><p> uchar tab2[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,</p><p> 0
98、x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};</p><p> uchar d1,d2,ht,bai,b,shi,ge;</p><p><b> uint tem;</b></p><p> //近乎精確的短延時,采用標準庫里的_nop_()函數(shù),此函數(shù)一個延時為22微秒左右;</p>
99、<p> void delay15(uint n)</p><p><b> { </b></p><p><b> do</b></p><p><b> {</b></p><p> _nop_();_nop_();_nop_();_nop_();_n
100、op_();_nop_();_nop_();</p><p> _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p><b> n--;</b></p><p><b> }</b></p><p><b> while(
101、n);</b></p><p><b> }</b></p><p> //長延時,用于不太嚴格的延時</p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;&
102、lt;/b></p><p> for(x=z;x>0;x--)</p><p> for(y=50;y>0;y--);</p><p><b> }</b></p><p><b> //初始化函數(shù)</b></p><p> void init(
103、)</p><p><b> {</b></p><p> uchar x=1;</p><p><b> while(x)</b></p><p><b> {</b></p><p><b> DQ=1;</b><
104、;/p><p><b> _nop_();</b></p><p><b> DQ=0;</b></p><p> delay15(23); //最小480us;</p><p><b> DQ=1;</b></p><p> delay15(2)
105、;//存在檢測高電平最小15us; </p><p><b> x=DQ;</b></p><p> delay15(22);// 存在檢測低電平最小240us;</p><p><b> x=~DQ;</b></p><p><b> }</b></p&g
106、t;<p><b> DQ=1; </b></p><p><b> }</b></p><p> void write(uchar dat)</p><p><b> {</b></p><p><b> uchar i;</b>
107、;</p><p> for(i=8;i>0;i--)</p><p><b> {</b></p><p><b> DQ=1;</b></p><p> _nop_();_nop_(); </p><p><b> DQ=0;</b>
108、;</p><p> DQ=dat&0x01;</p><p> _nop_();_nop_();_nop_();_nop_();_nop_();</p><p> delay15(3);</p><p><b> dat>>=1;</b></p><p><
109、;b> }</b></p><p><b> DQ=1;</b></p><p><b> _nop_();</b></p><p><b> }</b></p><p><b> //讀一個字節(jié);</b></p>
110、<p><b> read()</b></p><p><b> {</b></p><p><b> uchar i;</b></p><p> uchar dat=0;</p><p> for(i=8;i>0;i--)</p>&
111、lt;p><b> {</b></p><p><b> DQ=1;</b></p><p><b> dat>>=1;</b></p><p><b> _nop_();</b></p><p><b> DQ=0;
112、</b></p><p> _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();</p><p> _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//十五微秒不變;</p><p><b> DQ=1;</b
113、></p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p><p> delay15(3);</p><p><b> }</b>
114、</p><p><b> DQ=1;</b></p><p> return(dat);</p><p><b> } </b></p><p><b> //讀溫度函數(shù) </b></p><p><b> readT()</
115、b></p><p><b> {</b></p><p><b> init();</b></p><p> delay15(20);</p><p> write(0xcc);</p><p> write(0x44);</p><p&
116、gt; delay15(900);//yanshi20ms</p><p><b> init();</b></p><p> write(0xcc);</p><p> write(0xbe);</p><p> d1=read();</p><p> d2=read();</
117、p><p> ht=d2<<4; </p><p> ht+=(d1&0xf0)>>4;</p><p><b> }</b></p><p> //顯示函數(shù),n,m可以實現(xiàn)對任意的管子賦值;</p><p> //n為第幾位數(shù)碼管,m為
118、送的數(shù)值;</p><p> void display(uchar n,uchar m)</p><p><b> {</b></p><p> uchar temp=0x01;//根據板子 的硬件 連接圖賦值;</p><p> temp=_crol_(temp,n);</p><p>
119、 dua=temp; //////////////</p><p> P0=tab[m];</p><p><b> delay(1);</b></p><p><b> if(n==2)</b></p><p><b> {</b></p>&l
120、t;p> din=1;//根據數(shù)碼管的陰陽顯示選值;</p><p><b> } </b></p><p> delay15(50);</p><p> dua=0x00;/////////////////</p><p><b> }</b></p><p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda四位數(shù)碼顯示頻率計
- 數(shù)字溫度計畢業(yè)論文
- 畢業(yè)論文---數(shù)字溫度計的設計
- 畢業(yè)論文---數(shù)字溫度計
- 數(shù)字溫度計畢業(yè)論文
- Ka波段四位數(shù)字移相器研究.pdf
- 數(shù)字溫度計論文數(shù)字溫度計設計論文
- 毫米波四位數(shù)字移相器研究.pdf
- 四位數(shù)加減法
- 畢業(yè)論文范文——數(shù)字溫度計
- 畢業(yè)論文范文——數(shù)字溫度計
- 數(shù)字溫度計畢業(yè)設計論文
- 畢業(yè)論文-數(shù)字溫度計設計【精校排版】
- 畢業(yè)論文---單片機數(shù)字溫度計設計
- 數(shù)字溫度計設計畢業(yè)課題論文
- S波段MCM四位數(shù)字移相器開關組件的研究.pdf
- 溫度計畢業(yè)論文
- 智能數(shù)字溫度計設計-自動化畢業(yè)論文
- 畢業(yè)設計(論文)數(shù)字溫度計的設計
- 基于spce061a的數(shù)字溫度計設計【畢業(yè)論文】
評論
0/150
提交評論