版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢 業(yè) 設(shè) 計</b></p><p> 題 目:基于DS18B20的數(shù)字溫度計的設(shè)計與實現(xiàn)</p><p><b> 學(xué)生姓名: </b></p><p><b> 學(xué) 號: </b></p><p> 系 (院):物理與機電
2、工程學(xué)院自動化系</p><p> 專 業(yè):自動化專業(yè)</p><p><b> 班 級: </b></p><p> 指導(dǎo)教師姓名及職稱: </p><p> 起止時間: 2011 年 10 月—— 2012 年 5 月</p><p> 基于DS18B20的數(shù)字溫度計的設(shè)
3、計與實現(xiàn)</p><p> 摘要:隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活、工作、科研、各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。對于溫度的測量方法與裝置的研究就凸顯得非常重要。由單片機與溫度傳感器構(gòu)成的測溫系統(tǒng)可廣泛應(yīng)用于很多領(lǐng)域。</p><p> 本設(shè)計采用51單片機和DS18B20 數(shù)字溫度傳感器來進行溫度測量的方法,包括溫度傳感器芯片的選取、單片機與溫度傳感器接口電路的
4、設(shè)計,以及實現(xiàn)溫度信息采集和數(shù)據(jù)傳輸?shù)能浖O(shè)計。DS18B20 數(shù)字溫度傳感器是單總線器件,與51 單片機組成一個測溫系統(tǒng),具有線路簡單、體積小等特點,而且在一根通信線上,可以掛接很多這樣的測溫系統(tǒng),十分方便。</p><p> 關(guān)鍵詞:單片機;溫度傳感器;數(shù)字溫度計</p><p> Design and implementation of the digital thermomet
5、er based on DS18B20</p><p> Abstract:With the progress and development of era,microcontroller technology has become popular in our life,in the work,the scientific research and various fields,has become a re
6、latively mature technology.The temperature measurement method and device of the highlights is very important.Posed by the single chip temperature sensor and temperature measurement system can be widely applied in many fi
7、elds.</p><p> A practical temperature measuring method based on microcont roller and DS18B20 digital temperature sensor was presented. The selection of temperature sensor chip was discussed and the design o
8、f hardware interface circuit and related sof tware were dealt with in more details. The proposed design is simple in hardware connection lines and small in size. In addition , it is applicable for different temperature m
9、easuring systems based on DS18B20</p><p> temperature sensors hung on one communication line.</p><p> Key words:microcontroller;temperature sensor;temperature measurement system</p><
10、;p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 溫度計的介紹1</p><p> 1.2選題的目的和意義、1</p><p> 1.2.1選題的目的1</p><p> 1.2.2選題的意義
11、2</p><p> 2 數(shù)字溫度計的設(shè)計方案2</p><p> 2.1 設(shè)計方案的確立及論證2</p><p> 2.1.1 溫度傳感器DS18B20的選擇2</p><p> 2.1.2 單片機STC89C52的選擇3</p><p> 3 系統(tǒng)硬件電路的設(shè)計3</p><
12、p> 3.1 主控制器3</p><p> 3.1.1 STC89C52的介紹4</p><p> 3.1.2 DS18B20的介紹10</p><p> 3.1.3 DS18B20使用的注意事項17</p><p> 3.2 DS18B20與單片機接口電路的設(shè)計17</p><p> 3
13、.3 顯示電路的設(shè)計18</p><p> 3.3.1方案一:數(shù)碼管顯示18</p><p> 3.3.2方案二:液晶顯示19</p><p> 3.3.3 顯示電路22</p><p> 4 系統(tǒng)程序的設(shè)計22</p><p> 4.1 系統(tǒng)設(shè)計內(nèi)容22</p><p>
14、; 4.1.1主程序23</p><p> 4.1.2 讀出溫度子程序23</p><p> 4.1.3 溫度轉(zhuǎn)換命令子程序24</p><p> 4.1.4 計算溫度子程序24</p><p> 4.1.5 顯示數(shù)據(jù)刷新子程序25</p><p> 4.1.6 溫度數(shù)據(jù)的計算處理方法26
15、</p><p> 4.2 匯編源程序26</p><p> 4.2.1 DS18B20的各條ROM命令26</p><p> 5 調(diào)試及性能分析28</p><p> 5.1 系統(tǒng)的調(diào)試28</p><p> 5.2 性能分析28</p><p><b> 致
16、 謝30</b></p><p><b> 參考文獻31</b></p><p><b> 附錄32</b></p><p> 基于DS18B20的數(shù)字溫度計的設(shè)計與實現(xiàn)</p><p> 自動化2008級1班:羅文釗</p><p> 指導(dǎo)老師
17、:彭昕昀 講師</p><p><b> 1 緒論</b></p><p> 1.1 溫度計的介紹</p><p> 溫度計是測溫儀器的總稱。根據(jù)所用測溫物質(zhì)的不同和測溫范圍的不同,有煤油溫度計、酒精溫度計、水銀溫度計、氣體溫度計、電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計等。</p><p> 隨著科
18、學(xué)技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測溫技術(shù)也不斷地改進和提高。由于測溫范圍越來越廣,根據(jù)不同的要求,又制造出不同需要的測溫儀器。下面介紹幾種。</p><p> 氣體溫度計多用氫氣和氦氣作測溫物質(zhì),因為氫氣和氦氣的液化溫度很低,接近于絕對零度,故它的測溫范圍很廣。這種溫度計精確度很高,多用于精密測量。</p><p> 電阻溫度計分為金屬電阻溫度計和半導(dǎo)體電阻溫度計,都是根據(jù)電阻值隨溫
19、度的變化這一特性制成的。金屬溫度計主要有用鉑、金、銅、鎳等純金屬的及銠鐵、磷青銅合金的;半導(dǎo)體溫度計主要用碳、鍺等。電阻溫度計使用方便可靠,已廣泛應(yīng)用。它的測量范圍為-260℃至600℃左右。</p><p> 溫差電偶溫度計是一種工業(yè)上廣泛應(yīng)用的測溫儀器。利用溫差電現(xiàn)象制成。兩種不同的金屬絲焊接在一起形成工作端,另兩端與測量儀表連接,形成電路。把工作端放在被測溫度處,工作端與自由端溫度不同時,就會出現(xiàn)電動勢,
20、因而有電流通過回路。通過電學(xué)量的測量,利用已知處的溫度,就可以測定另一處的溫度。這種溫度計多用銅—康銅、鐵—康銅、鎳銘—康銅、金鉆—銅、鉑—銠等組成。它適用于溫差較大的兩種物質(zhì)之間,多用于高溫和低濁測量。有的溫差電偶能測量高達3000℃的高溫。有的能測接近絕對零度的低溫。</p><p> 1.2選題的目的和意義</p><p> 1.2.1選題的目的</p><p
21、> 利用單片機STC89C52和溫度傳感器DS18B20設(shè)計一個設(shè)計溫度計,能夠測量-55 ~+125℃之間的溫度值,用LCD液晶屏直接顯示,誤差在±0.5℃以內(nèi),同時要求使用的元器件數(shù)目最少。通過這次設(shè)計能夠更加了解數(shù)字溫度計的工作原理和熟悉單片機的發(fā)展和應(yīng)用,鞏固所學(xué)的知識。</p><p> 1.2.2選題的意義</p><p> 單片機是隨著超大規(guī)模集成電路技
22、術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強、性價比高等特點,所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡化了設(shè)計。本設(shè)計主要利用單片機和LCD液晶顯示屏設(shè)計一個數(shù)字顯示的溫度計。選題的意義在于通過這次設(shè)計可以將平時在課堂上學(xué)到的關(guān)于單片機的知識應(yīng)用與實踐中,而且更加深入的認識到單片機在現(xiàn)代生活和生產(chǎn)中的重要性。</p>&
23、lt;p> 2 數(shù)字溫度計的設(shè)計方案</p><p> 2.1 設(shè)計方案的確立及論證</p><p><b> 功能要求:</b></p><p> 數(shù)字式溫度計測溫范圍在-55~+125℃,誤差在±0.5℃以內(nèi),采用LCD液晶屏顯示,直接讀取測溫值。</p><p><b> 方案論
24、證:</b></p><p> 2.1.1 溫度傳感器DS18B20的選擇</p><p><b> 方案一:水銀溫度計</b></p><p> 在生活中我們經(jīng)??吹剿y溫度計,它只能作為就地監(jiān)督的儀表,用它來測量溫度時,由于讀數(shù)時用眼睛觀察,主觀因素大,容易造成誤差大,而且不同是水銀溫度計量程不同,在讀數(shù)前需要看清它的最小
25、分度值,還有它有熱慣性,需要等到溫度計達到穩(wěn)定狀態(tài)后才能讀數(shù),比較麻煩,并且水銀有毒,不小心打破后接觸到水銀,對人體傷害大,所以危險性較高。</p><p> 方案二:傳統(tǒng)測溫元件</p><p> 傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部硬件支持,其缺點有:硬件電路復(fù)雜;軟件調(diào)試復(fù)雜;制作成本高。</p>
26、<p> 方案三:DS18B20傳感器測溫</p><p> 本設(shè)計采用美國DALLAS半導(dǎo)體公司繼DS1820之后推出的一種改進型智能溫度傳感器DS18B20作為檢測元件</p><p> DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有成本低和易使用的特點。</p><p> 2.1.2 單片機STC
27、89C52的選擇</p><p> STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,內(nèi)置看門狗定時器,而且STC89C52可降到0Hz靜態(tài)邏輯操作,支持兩種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器∕計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)存被保存,振蕩器被凍結(jié),單片機一切工作停止,直到一個中斷或硬件復(fù)位為止。而且STC89C5
28、2的工作電壓為3.3V,因此可以用來開發(fā)三節(jié)5號電池供電的便攜式產(chǎn)品。和AT89S52單片機的對比: </p><p> STC89C52RC單片機: ①8K字節(jié)程序存儲空間; ②512字節(jié)數(shù)據(jù)存儲空間; ③內(nèi)帶4K字節(jié)EEPROM存儲空間; ④可直接使用串口下載。 </p><p> AT89S52單片機: ①8K字節(jié)程序存儲空間; ②256字節(jié)數(shù)據(jù)存儲空間; ③沒有內(nèi)帶EEPROM
29、存儲空間。</p><p> 因此選用STC89C52更適合。</p><p> 按照系統(tǒng)設(shè)計功能的要求,確定系統(tǒng)由3個模塊組成;主控制器、測溫電路和顯示電路。 </p><p> 數(shù)字溫度計總體設(shè)計電路結(jié)構(gòu)框圖如2.1圖所示:</p><p> 圖2.1 數(shù)字溫度計總體結(jié)構(gòu)框圖</p><p> 3 系統(tǒng)硬
30、件電路的設(shè)計</p><p><b> 3.1 主控制器</b></p><p> 單片機STC89C52具有高速、低功耗、超強抗干擾的特點,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘∕機器周期和6時鐘∕機器周期可以任意選擇。</p><p> 3.1.1 STC89C52的介紹</p><p> STC89C
31、52簡介:</p><p> STC89C52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Flash Programable and Erasable Read Only Memory)的低電壓,高性能COMOS8的微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。實物如3.1圖所示:</p><p>
32、 圖3.1 STC89C52 實物圖</p><p> STC89C52引腳及特點</p><p> STC89C52的引腳如圖3.2所示:</p><p> 圖3.2 芯片引腳功能</p><p> STC89C52引腳功能說明</p><p> Vcc(40引腳):電源電壓。</p>
33、<p> Vss(20引腳):接地。</p><p> P0端(P0.0~P0.7,39~32引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入,在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時,P0口內(nèi)部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時
34、,則輸出指令字節(jié)。驗證時,要求外接上拉電阻。</p><p> P1端口(P1.0~P1.7,1~8引腳):P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的引腳會輸出一個電流。</p><p> 此外,P1.0和P1.1還可
35、以作為定時器/計數(shù)器2的外部技術(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表3.1所示:</p><p> 表3.1 P1.0和P1.1引腳復(fù)用功能</p><p> P2端口(P2.0~P2.7,21~28引腳);P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口.P2的輸出緩沖器可以驅(qū)動4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高
36、電平,這時可用作輸入口。P2作為輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p> 在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX@DPTR”指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX@R1”指令)時,P2口引腳上的內(nèi)容,在整個訪問期間不會改變。</p><p> 在對Flash ROM
37、編程和程序校驗期間,P2也接收高位地址和一些控制信號。</p><p> P3端口(P3.0~P3.7,10~17引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P3的輸出緩沖器可驅(qū)動4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3作輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。</p><p> 在對Flas
38、h ROM編程或程序校驗時,P3還接收一些控制信號。</p><p> P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如表3.2所示:</p><p> 表3.2 P3口引腳復(fù)用功能</p><p> RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機的復(fù)位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平
39、。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。</p><p> ALE/PROG (30引腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳(PROG )也用作編程輸入脈沖。</p><p> 在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時
40、器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。</p><p> 如果需要,通過將地址位8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOV指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址位8EH的SFR的第0位)的設(shè)置對微控制器在外部執(zhí)行模式下無效。</p><p> PSEN(29引腳):外
41、部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89C51RC從外部程序存儲器執(zhí)行外部代碼時,PSEN 在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。</p><p> EA/VPP(31引腳):訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令, EA必須接GND。注意加密方式1時,EA將內(nèi)部鎖定為RESET。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)
42、該接VCC。在Flash編程期間,EA也接收12伏VPP電壓。</p><p> XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p> XTAL2(18引腳):振蕩器反相放大器的輸入端。</p><p> 2.特殊功能寄存器 </p><p> STC89C52除了有定時器/計數(shù)器0和定時器/計數(shù)器
43、1之外,還增加了一個定時器/計數(shù)器2.定時器/計數(shù)器2的控制與狀態(tài)位位于T2CON,如表3.3所示:</p><p> 表3.3 特殊功能寄存器T2CON的描述</p><p> T2CON 地址=0C8H 可位尋址 復(fù)位值=00H</p><p> 定時器2是一個16位定時/計數(shù)器。通過設(shè)置特殊功能寄存器
44、T2CON中的C/T2位,可將其作為定時器或計數(shù)器(特殊功能寄存器T2CON的功能說明如表3.4所示)。</p><p> 表3.4 定時/計數(shù)器2控制器寄存器各位功能說明</p><p> 定時器2有3種操作模式:捕獲、自動重新裝載(遞增或遞減計數(shù))和波特率發(fā)生器,這3種模式由T2CON中的位進行選擇,如表3.5所示:
45、 </p><p> 表3.5 定時器2工作方式</p><p> 3.STC89C52單片機的主要特征</p><p> (1)增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。</p><p> ?。?)工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V單片機)
46、。</p><p> ?。?)工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達48MHz。</p><p> (4)用戶應(yīng)用程序空間為8K字節(jié)。</p><p> ?。?)片上幾成512字節(jié)RAM。</p><p> ?。?)通用I/O口(32個),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口
47、是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。</p><p> (7)ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片。</p><p> ?。?)具有EEPROM功能。</p><p> ?。?)具有看門狗功能。
48、</p><p> (10)共有3個16位定時器/計數(shù)器。即定時器T0、T1、T2。</p><p> ?。?1)外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒。</p><p> ?。?2)通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART。</p><p> ?。?3)工作
49、溫度范圍;-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)。</p><p> (14)PDIP封裝。</p><p> 4. STC89C52單片機的工作模式</p><p> ?。?)掉電模式:典型功耗<0.1μA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序。</p><p> ?。?)空閑模式:典型功耗2mA。</p>
50、<p> ?。?)正常工作模式:典型功耗4mA~7mA。</p><p> ?。?)掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設(shè)備。</p><p> 3.1.2 DS18B20的介紹</p><p> 1.DS18B20簡介</p><p> Dallas的最新單線數(shù)字溫度傳感器DS18B20簡稱新的
51、“一線器件”體積更小、使用電壓更寬、更經(jīng)濟。Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18b20是世界上第一片支持“一線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。DS18b20、DS1822“一線總線”數(shù)字化溫度傳感器同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55℃~+125℃,在-10~+85℃范圍內(nèi),精度為±0.5℃。D
52、S1822的精度較差為±2℃?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3V~5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。其實物圖如3.3圖所示:</p><p> 圖3.3 DS18B20的實物管腳分布圖</p>&
53、lt;p> 2.DS18B20引腳及特點 </p><p><b> ?。?)引腳功能說明</b></p><p><b> GND是地址信號;</b></p><p> DQ是數(shù)據(jù)輸入/輸出引腳,開漏單總線接口引腳,當(dāng)被用在寄生電源下,也可以向器件提供電源;</p><p> VDD
54、為外接供電電源輸入端(在寄生電源接線方式時接地)。</p><p> (2)DS18B20功能特點</p><p> ?、俨捎脝慰偩€技術(shù),與單片機通信只需要一根I/O線,在一根線上可以掛接多個DS18B20。</p><p> ②每只DS18B20具有一個獨有的,不可修改的64位序列號,根據(jù)序列號訪問地應(yīng)的器件。</p><p> ③低
55、壓供電,電源范圍從3.0~5.5V,可以本地供電,也可以直接從數(shù)據(jù)線竊取電源(寄生電源方式)。</p><p> ?、軠y溫范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi)誤差為±0.5℃。</p><p> ⑤可編輯數(shù)據(jù)為9~12位,轉(zhuǎn)換12位溫度時間為750ms(最大)。</p><p> ?、抻脩艨勺栽O(shè)定報警上下限溫度。</p>
56、<p> ⑦報警搜索命令可識別和尋址超過程序限定溫度(溫度報警條件)的器件。</p><p> ?、郉S18B20的分辨率由用戶通過EEPROM設(shè)置為9~12位。</p><p> ?、酓S18B20可將檢測到溫度值直接轉(zhuǎn)化為數(shù)字量,并通過串行通信的方式與主控制器進行數(shù)據(jù)通信。</p><p> ?、庳撾妷禾匦裕娫礃O性接反時,溫度計不會因為發(fā)熱而燒毀,
57、只是不能正常工作。</p><p> 3.DS18B20的內(nèi)部結(jié)構(gòu)</p><p> (1)DS18B20內(nèi)部結(jié)構(gòu)及功能</p><p> DS18B20采用3腳PR—35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)如3.5圖所示,主要包括:寄生電源,溫度傳感器,64位ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲用戶設(shè)定溫度上下限值的TH和TL觸發(fā)器,存
58、儲與控制邏輯,8位循環(huán)冗余校驗碼(CRC)發(fā)生器等7部分。如圖3.4所示:</p><p> 圖3.4 DS18B20內(nèi)部結(jié)構(gòu)</p><p> ?。?)64位激光ROM</p><p> 每一個DS18B20包括一個唯一個64位長的ROM編碼。64位ROM的位結(jié)構(gòu)如下圖3.5所示。開始的8位是單線產(chǎn)品系列編碼(DS1820編碼是10h);接著的48位是每個器件
59、唯一的系列號;最后的8位是開始56位CRC檢驗碼。64位ROM和ROM操作控制部分允許DS18B20作為一個單線器件工作并遵循“單線總線系統(tǒng)”一節(jié)中所詳述的單線協(xié)議。知道ROM操作協(xié)議被滿足,DS18B20控制部分的功能是不可訪問的。單線總線主機必須首先操作五種ROM操作命令之一:1、Read ROM(讀ROM),2、Match ROM(匹配(ROM),3、Search ROM(搜索ROM),4、Skip ROM(跳過ROM),或5、A
60、larm Search(告警搜索)。在成功地執(zhí)行了ROM操作序列之后DS18B20特定的功能便可訪問,然后總線上主機可提供六個存儲器和控制功能命令之一。</p><p> MSB LSB MSB LSB MSB LSB</p><p> 圖3.5 64位ROM結(jié)構(gòu)框圖</p><p> ?。?)運用—報警信號 &
61、lt;/p><p> 在DS18B20完成溫度變換之后,溫度值與貯存在TH和TL內(nèi)的觸發(fā)值相比較。因為這些寄存器僅僅是8位,所以0.5℃位在比較時被忽略。TH或TL的最高比較位直接對應(yīng)于16位溫度寄存器的符號位。如果溫度測量的結(jié)果高于TH或低于TL,那么器件內(nèi)告警標(biāo)志將置位。每次溫度測量更新此標(biāo)志。只要告警標(biāo)志置位,DS18B20將對告警搜索命令做出響應(yīng)。這允許并聯(lián)接許多DS18B20,同時進行溫度測量。如果某處溫
62、度超過極限,那么可以識別出正在告警的器件并立即將其讀出而不必讀出非告警的器件。</p><p> ?。?)CRC產(chǎn)生 </p><p> DS18B20有一存貯在64位ROM的最高有效字節(jié)內(nèi)的8位CRC??偩€上的主機可以根據(jù)64位ROM的前56位計算機CRC的值并把它與存貯在DS18B20內(nèi)的值進行比較以決定ROM的數(shù)據(jù)是否已被主機正確地接收。C
63、RC的等效多項式函數(shù)為:</p><p> CRC=X8+X5+X4+1 (公式3.1) </p><p> DS18B20也利用與上述相同的多項式函數(shù)產(chǎn)生一個8位CRC值并把此值提供給總線的主機以確認數(shù)據(jù)字節(jié)的傳送。在使用CRC來確認數(shù)據(jù)傳送的每一種情況中,總線主機必須使用上面給出的多項式函數(shù)計算CRC的值并把計算所得的值或者與
64、存貯在DS18B20的64位ROM部分中的8位CRC值(ROM讀數(shù)),或者與DS18B20中計算得到的8位CRC值(在讀暫存存貯器中時,它作為第九個字節(jié)被讀出),進行比較。CRC值的比較和是否繼續(xù)操作都由總線主機來決定。當(dāng)存貯在DS18B20內(nèi)或由DS18B20計算得到的CRC值與總線主機產(chǎn)生的值不相符合時,在DS18B20內(nèi)沒有電路來阻住命令序列的繼續(xù)執(zhí)行。</p><p> ?。?)存貯器 &l
65、t;/p><p> DS18B20的存貯器由一個高速暫存(便箋式)RAM和一個非易失性、電可擦除EEPROM組成,后者存貯高溫度和低溫度觸發(fā)器TH和TL。暫存存貯器有助于在單線通信時確保數(shù)據(jù)的完整性。數(shù)據(jù)首先寫入暫存存貯器,在那里它可以被讀回。當(dāng)數(shù)據(jù)被校驗之后,復(fù)制暫存存貯器的命令把數(shù)據(jù)傳送到非易失性EEPROM。這一過程確保了更改存貯器時數(shù)據(jù)的完整性。</p><p> 高速暫存RAM的
66、結(jié)構(gòu)為9字節(jié)的存儲器,結(jié)構(gòu)如3.6圖所示。前2字節(jié)包含測得的溫度信息。第3和第4字節(jié)是TH和TL的拷貝,是易失的,每次上電復(fù)位時刷新。第5字節(jié)為配置寄存器,其內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,DS18B20工作時按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)個位的定義如3.7圖所示,其中,低5位一直為1;TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,在DS18B20出廠時,該位被設(shè)置為0,用戶不要去改動;R
67、1和R0決定溫度轉(zhuǎn)換的精度位數(shù),即用來設(shè)置分辨率,其定義方法見表3.6:</p><p> 表3.6 DS18B20分辨率</p><p> 表3.6 DS18B20分辨率的定義和規(guī)定</p><p> 由表3.6可見,DS18B20溫度轉(zhuǎn)換的時間較長,而且設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間就越長。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。&l
68、t;/p><p> 圖3.6 高速暫存RAM結(jié)構(gòu)圖</p><p> 高速暫存的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)是前面所有8字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。如表3.7所示:</p><p> 表3.7 配置寄存器位定義</p><p> 當(dāng)DS18B20接受到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)
69、換完成后的溫度值就以16位帶符號擴張的二進制補碼形式存儲在暫存RAM的第1、2字節(jié)中。</p><p> 單片機可以通過單線接口讀出數(shù)據(jù)。讀數(shù)據(jù)是,低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。溫度值格式如圖3.7所示:</p><p><b> 低字節(jié) </b></p><p><b> 高字節(jié) <
70、;/b></p><p> 圖3.7 溫度數(shù)據(jù)值格式</p><p> 圖中,S表示符號位。當(dāng)S=0時,表示測得的溫度值為正值,可以直接將二進制轉(zhuǎn)換為十進制;當(dāng)S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制值。表3.8是部分溫度值對應(yīng)的二進制溫度表示數(shù)據(jù)。</p><p> 表3.8 DS18B20溫度與表示值對應(yīng)表</p&
71、gt;<p> DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較,若T>TH或T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機發(fā)出的報警搜索命令做出響應(yīng)。因此,可用多個DS18B20同時測得溫度并進行報警搜索。</p><p> 在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機根據(jù)ROM的前56位來計算CRC值,并與存入DS18B20的CRC值
72、作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。</p><p> 4.DS18B20的測溫原理 </p><p> 如圖3.8所示,圖中低溫度系數(shù)振蕩器的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)振蕩器隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。</p><p> 圖3.8 D
73、S18B20測溫原理圖</p><p> 圖中還隱含著計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。</p><p> 減法計數(shù)器1對低溫度系數(shù)振蕩器產(chǎn)生的
74、脈沖信號進行減法計數(shù),當(dāng)減法計數(shù)器1的預(yù)置減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置值將重新被裝入,并重新開始對低溫度系數(shù)振蕩器產(chǎn)生的脈沖信號進行計數(shù)。如此循環(huán),知道減法計數(shù)器2計數(shù)到0時,停止溫度計數(shù)器值的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。圖3.9中的斜率累加器用于補償和修正測溫過程的非線形性,直到溫度寄存器達到被測溫度值。</p><p> 另外,DS18B20單線通信功能是分時完成的,有
75、嚴格的時隙概念,因此讀/寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p> 3.1.3 DS18B20使用的注意事項</p><p> DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題: </p&
76、gt;<p> (1)較小的硬件開銷需要相對復(fù)雜的軟件進行補償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進行讀寫編程時,必須嚴格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進行系統(tǒng)程序設(shè)計時,對DS1820操作部分最好采用匯編語言實現(xiàn)。 </p><p> (2)在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認為
77、可以掛任意多個DS1820,在實際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。 </p><p> (3)連接DS1820的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,
78、正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS1820進行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容和阻抗匹配問題。 </p><p> (4)在DS1820測溫程序設(shè)計中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS1820硬件連
79、接和軟件設(shè)計時也要給予一定的重視。</p><p> 3.2 DS18B20與單片機接口電路的設(shè)計 </p><p> DS18B20可以采用兩種供電方式:一種是采用電源供電方式,此時DS18B20的第1引腳接地,第2引腳作為信號線,第3引腳接電源;另外一種是寄生電源供電方式,如圖3.9所示。單片機端口接單線總線,為保證在有
80、效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上位。</p><p> 圖3.9 DS18B20采用寄生電源的電路圖</p><p> 當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最長為500ms。采用寄生電源供電方式時,VDD和GND端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p&
81、gt;<p> 3.3 顯示電路的設(shè)計</p><p> 3.3.1方案一:數(shù)碼管顯示</p><p> 數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管。按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。
82、共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點亮,當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就
83、不亮。LED數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃和公共電極。如圖3.10所示:</p><p> 圖3.10 八段數(shù)碼管圖</p><p> 數(shù)碼管的動態(tài)顯示:數(shù)碼管動態(tài)顯示接口是單片機中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,
84、d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯
85、示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。</p><p> 3.3.2方案二:液晶顯示</p><p> 1602LCD液晶簡介</p><
86、p> 1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,所以它不能顯示圖形。</p><p> 1602LCD是指顯示的內(nèi)容為16×2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)
87、字)。</p><p> 1602LCD的特性</p><p> ?。?)+5V電壓,對比度可調(diào)。</p><p> ?。?)內(nèi)含復(fù)位電路。</p><p> (3)提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能。</p><p> ?。?)有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM。</p>
88、;<p> ?。?)內(nèi)建有160個5×7點陣的字型的字符發(fā)生器CGROM。</p><p> ?。?)8個可由用戶自定義的5×7的字符發(fā)生器CGROM。</p><p> (7)字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線(16腳),如表3.9所示:</p><p>
89、; 表3.9 液晶1602引腳表</p><p> 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下表3.10所示:</p><p> 表3.10 1602的控制指令 </p><p> 指令1:清顯示,光標(biāo)復(fù)位到地址00H位置。</p><p> 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。</p><p>
90、; 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。</p><p> 指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。</p><p> 指令5:光
91、標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。R/L,高向左,低向右。</p><p> 指令6:功能設(shè)置命令 DL:高電平時為8位總線,低電平時為4位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。(有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)</p><p> 指令7:字符發(fā)生器R
92、AM地址設(shè)置,地址:字符地址*8+字符行數(shù)。(將一個字符分成5*8點陣,一次寫入一行,8行就組成一個字符)</p><p> 指令8:置顯示地址,第一行為:80H——8FH,第二行為:C0H——CFH。</p><p> 指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。</p><p><b&
93、gt; 指令10:寫數(shù)據(jù)。</b></p><p><b> 指令11:讀數(shù)據(jù)。</b></p><p> 3.3.3 顯示電路</p><p> 設(shè)計顯示電路如圖3.11所示:</p><p> 圖3.11 1602液晶接線圖</p><p> 液晶屏的軟件編程控制操作主
94、要包含初始化,寫指令和寫數(shù)據(jù)三個部分。凡是寫到液晶屏內(nèi)部,用來控制液晶屏顯示的內(nèi)容都屬于指令。寫入到液晶屏后能直接顯示出來的結(jié)果就屬于數(shù)據(jù)。</p><p> 兩種方案相比較,硬件方面方案二明顯比方案一簡單,而且手工制作容易實現(xiàn),而且液晶顯示具有穩(wěn)定性,不容易出現(xiàn)硬件出錯。軟件方面,兩種方案的軟件設(shè)計都比較容易實現(xiàn)。綜上所述,方案二適合本設(shè)計,所以采用方案二。</p><p><b
95、> 4 系統(tǒng)程序的設(shè)計</b></p><p> 4.1 系統(tǒng)設(shè)計內(nèi)容</p><p> 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和顯示數(shù)據(jù)刷新子程序等。</p><p> 4.1.1主程序 </p><p> 主程序主要功能是負責(zé)溫度的實時顯示、讀出處理DS18B20的測量溫
96、度值。溫度測量每1秒進行一次。主程序流程圖如圖4.1所示:</p><p> 圖4.1 主程序流程圖</p><p> 4.1.2 讀出溫度子程序</p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。</p><p> 讀出溫度子程序流程圖如圖4.2所示:<
97、;/p><p> 圖4.2 讀出溫度子程序流程圖</p><p> 4.1.3 溫度轉(zhuǎn)換命令子程序</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時,轉(zhuǎn)換時間約為750ms。在本程序設(shè)計中,采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖4.3所示:</p><p> 圖4.3 溫度
98、轉(zhuǎn)換命令子程序流程圖</p><p> 4.1.4 計算溫度子程序 </p><p> 計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定。計算溫度子程序流程圖如圖4.4所示:</p><p> 圖4.4 計算溫度子程序流程圖</p><p&g
99、t; 4.1.5 顯示數(shù)據(jù)刷新子程序</p><p> 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器的顯示數(shù)據(jù)進行刷新操作,當(dāng)最高數(shù)據(jù)顯示位為0時,將符號顯示位移入下一位。顯示數(shù)據(jù)刷新子程序流程圖如圖4.5所示:</p><p> 圖4.5 顯示數(shù)據(jù)刷新子程序流程圖</p><p> 4.1.6 溫度數(shù)據(jù)的計算處理方法</p><p>
100、 從DS18B20讀取出的二進制值必須轉(zhuǎn)換成十進制值,才能用于字符的顯示。DS18B20的轉(zhuǎn)換精度為9~12位,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時,溫度寄存器里的值是以0.0625為步進的,即溫度值為寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。</p><p> 通過觀察表4.1可以發(fā)現(xiàn),一個十進制與二進制間有很明顯的關(guān)系,就是把二進制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié)
101、,這個字節(jié)的二進制化為十進制后,就是溫度值的百、十、個位字節(jié),所以二進制值范圍是0~F,轉(zhuǎn)換成十進制小數(shù)就是0.0625的倍數(shù)(0~15倍)。這樣需要4位的數(shù)碼管來表示小數(shù)部分。實際應(yīng)用不必這么高的精度,采用1位數(shù)碼管來顯示小數(shù),可以精確到0.1℃。</p><p> 表4.1 二進制與十進制的近似對應(yīng)關(guān)系表</p><p><b> 4.2 源程序</b>&
102、lt;/p><p> 4.2.1 DS18B20的各條ROM命令</p><p> ?。?)Read ROM[33H]。這條命令允許總線控制器獨到DS18B20的8位系列編碼、唯一的序列號和8位CRC碼。只要在總線上存在單只DS18B20時,才能使用該命令。如果總線上有不止一個從機,則當(dāng)所有從機試圖同時傳送信號時就會發(fā)生數(shù)據(jù)沖突(漏極開路連在一起形成相“與”的效果)。</p>
103、<p> (2)Match ROM[55H].這是一條匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點總線上定位一只特定的DS18B20.只有與64位ROM序列完全匹配的DS18B20才能響應(yīng)隨后的存儲器操作.所有與64位ROM序列不匹配的從機都將等待復(fù)位脈沖.這條命令在總線上有單個或多個器件時都可以使用.</p><p> (3)Skip ROM[0CCH].這條命令允許總線控制器不用提
104、供64位ROM編碼就使用存儲器操作命令,在單點總線情況下,可以節(jié)省時間.如果總線上不止一個從機,則在Skip ROM命令之后跟著發(fā)一條讀命令.由于多個從機同時傳送信號,所以總線上就會發(fā)生數(shù)據(jù)沖突(漏極開路下拉效果相當(dāng)于相“與”)。</p><p> ?。?)Search ROM[0F0H]。當(dāng)一個系統(tǒng)初次啟動時,總線控制器可能并不知道單線總線上有多少個器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排
105、除法識別總線上的所有從機的64位編碼。</p><p> ?。?)Alarm Search[0ECH]。這條命令的流程與Search ROM相同。然而,只有在最近一次測溫后遇到符合報警條件的情況下,DS18B20才會響應(yīng)這條命令。報警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報警狀態(tài)將一直保持,直到再一次測得的溫度值達不到報警條件。</p><p> (6)Write
106、Scratchpad[4EH]。這條命令向DS18B20的暫存器TH和TL中寫入數(shù)據(jù)??梢栽谌魏螘r刻發(fā)出復(fù)位命令來中止寫入。</p><p> (7)Read Scratchapad[0BEH]。這條命令讀取暫存器的內(nèi)容。讀取將從第一字節(jié)開始,一直進行下去,知道第九字節(jié)(CRC)讀完。如果不想讀完所有字節(jié),則控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取。</p><p> (8)Copy
107、 Scratchpad[48H]。這條命令把暫存器的內(nèi)容拷貝到DS18B20的E²PROM存儲器里,即把溫度報警觸發(fā)字節(jié)存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于把暫存器拷貝到E²PROM存儲器,則DS18B20就會輸出一個0;如果拷貝結(jié)束,則DS18B20輸出1。如果使用寄生電源,則總線控制器必須在這條命令發(fā)出后立即啟動強上拉,并最少保持10ms。</p>
108、<p> ?。?)Convert T[44H]。這條命令啟動一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時間隙,而DS18B20又忙于做時間轉(zhuǎn)換,則DS18B20將在總線上輸出0;如果溫度轉(zhuǎn)換成功,則輸出1。如果使用寄生電源,則總線控制器必須在發(fā)出這條命令后立即啟動強上拉,并保持500ms以上時間。</p><p> (10)R
109、ecall E²[0B8H]。這條命令把報警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時自動執(zhí)行,這樣器件一上電暫存器里馬上就存在有效的數(shù)據(jù)了。若在這條命令發(fā)出之后發(fā)出讀數(shù)據(jù)隙,器件會輸出溫度轉(zhuǎn)換忙的標(biāo)識:0表示忙;1表示完成。</p><p> (11)Read Power Supply[0B4H]。若把這條命令發(fā)給DS18B20后發(fā)出讀時間隙,器件會返回它的電源模式0:0表示寄生電
110、源;1表示外部電源。</p><p><b> 5 調(diào)試及性能分析</b></p><p><b> 5.1 系統(tǒng)的調(diào)試</b></p><p> 硬件調(diào)試比較簡單,首先檢查電路的焊接是否正確,然后可以用萬用表測試或通電檢測。</p><p> 軟件程序使用keil2軟件進行編程與編譯,Ke
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計---基于ds18b20的數(shù)字溫度計的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計----ds18b20數(shù)字溫度計論文
- 基于ds18b20的數(shù)字溫度計設(shè)計與實現(xiàn)
- ds18b20數(shù)字溫度計的設(shè)計
- 基于ds18b20的單總線數(shù)字溫度計畢業(yè)設(shè)計
- 基于ds18b20的溫度計設(shè)計
- 基于ds18b20溫度傳感器的數(shù)字溫度計設(shè)計畢業(yè)設(shè)計
- 基于ds18b20溫度傳感器的數(shù)字溫度計設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---ds18b20數(shù)字溫度計(含外文翻譯)
- 課程設(shè)計--ds18b20數(shù)字溫度計
- 課程設(shè)計-基于ds18b20數(shù)字溫度計的設(shè)計
- ds18b20數(shù)字溫度計設(shè)計課程設(shè)計
- 畢業(yè)設(shè)計---ds18b20做溫度傳感器的數(shù)字溫度計
- 基于c51,ds18b20溫度計畢業(yè)設(shè)計
- 基于arm7與ds18b20的數(shù)字溫度計設(shè)計
- 畢業(yè)設(shè)計---基于c51,ds18b20溫度計的設(shè)計
- ds18b20 數(shù)字溫度計外文翻譯
- 外文翻譯---ds18b20 數(shù)字溫度計
- ds18b20溫度計課程設(shè)計
- 基于ds18b20數(shù)字式溫度計課程設(shè)計
評論
0/150
提交評論