版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 說 明 書</p><p> 題目: 熱敏電阻測溫顯示系統(tǒng) </p><p> 2013年 7月7日</p><p> 課程設(shè)計(論文)任務(wù)書</p><p> 院(系):電氣工程學院 基層教學單位:儀器科學與工程系 </p&
2、gt;<p> 說明:此表一式四份,學生、指導教師、基層教學單位、系部各一份。</p><p><b> 目 錄</b></p><p><b> 第一章 摘要2</b></p><p> 第二章 總體設(shè)計4</p><p> 2.1 理論分析4<
3、;/p><p> 2.2 過程分析4</p><p> 第三章 硬件電路設(shè)計5</p><p> 3.1 傳感器電路模塊5</p><p> 3.2 A/D變換電路模塊9</p><p> 3.3 八段數(shù)碼管顯示12</p><p> 3.4 8051芯片介紹15
4、</p><p> 3.5 電源電路16</p><p> 第四章 壓力傳感器實驗數(shù)據(jù)采集、顯示及程序16</p><p> 4.1 數(shù)據(jù)采集及顯示17</p><p> 4.2 程序設(shè)計17</p><p> 拓展 DS18B20芯片測溫顯示系統(tǒng)......................
5、...................................23</p><p> 第六章 心得體會29</p><p> 參考文獻資料 30</p><p><b> 第一章 摘要</b></p><p> 隨著以知識經(jīng)濟為特征的信息化時代的到來人們對儀器儀表的認識更加深入,溫度作為一個重要的
6、物理量,是工業(yè)生產(chǎn)過程中最普遍,最重要的工藝參數(shù)之一。隨著工業(yè)的不斷發(fā)展,對溫度的測量的要求也越來越高,而且測量的范圍也越來越廣,對溫度的檢測技術(shù)的要求也越來越高,因此,溫度測量及其測量技術(shù)的研究也是一個很重要的課題。</p><p> 目前溫度計按測使用的溫度計種類繁多,應(yīng)用范圍也比較廣泛,大致可以包括以下幾種方法:</p><p> 1 利用物體熱脹冷縮原理制成的溫度計&l
7、t;/p><p> 2 利用熱電效應(yīng)技術(shù)制成的溫度檢測元件</p><p> 3 利用熱阻效應(yīng)技術(shù)制成的溫度計</p><p> 4 利用熱輻射原理制成的高溫計</p><p> 5 利用聲學原理進行溫度測量</p><p> 本系統(tǒng)的溫度測量采用的就是熱阻效應(yīng)。本文設(shè)計一個采用熱
8、敏電阻為敏感元件的溫度測量顯示系統(tǒng),溫度顯示范圍為0-100,顯示分辨率為0.1。通過熱敏電阻溫度傳感器、A\D模數(shù)轉(zhuǎn)換器、LED顯示電路并利用匯編語言編寫程序,最終實現(xiàn)溫度測量系統(tǒng)。測溫電橋的主要部分是熱敏電阻。</p><p> 熱敏電阻的主要特點是:①靈敏度較高,其電阻溫度系數(shù)要比金屬大10~100倍以上,能檢測出10-6℃的溫度變化;②工作溫度范圍寬,常溫器件適用于-55℃~315℃,高溫器件適用溫度高
9、于315℃(目前最高可達到2000℃),低溫器件適用于-273℃~55℃;③體積小,能夠測量其他溫度計無法測量的空隙、腔體及生物體內(nèi)血管的溫度;④使用方便,電阻值可在0.1~100kΩ間任意選擇;⑤易加工成復雜的形狀,可大批量生產(chǎn);⑥穩(wěn)定性好、過載能力強。</p><p> 溫度是表征物體冷熱程度的物理量,常見的溫度傳感器有熱電阻傳感器、 熱敏電阻傳感器、 熱電偶溫度 傳感器、 集成溫度傳感器。熱敏電阻本身是一
10、個利用其電阻值隨溫度變化而 變化的溫度傳感元件, 而且其靈敏度高、 體積小、 使用方便、 結(jié)構(gòu)簡單等 優(yōu)點, 因此利用熱敏電阻制成的溫度計廣泛應(yīng)用于航空、 醫(yī)學、 工業(yè)及 家用電器等方面做測溫、 控制、 溫度補償、 流速測量、 液面指示等。采用 以單片機為核心的熱敏電阻溫度計能很容易地減小上述影響,并且讀 數(shù)方便, 精確度高, 更顯數(shù)字化。</p><p> 本設(shè)計采用全橋測量電路,使系統(tǒng)產(chǎn)生的誤差更小,輸出的
11、數(shù)據(jù)更精確。而運算放大電路的作用就是把傳感器輸出的微弱的模擬信號進行一定倍數(shù)的放大,以滿足A/D轉(zhuǎn)換器對輸入信號電平的進行各種轉(zhuǎn)換處理的要求。ADC0809 的A/D轉(zhuǎn)換作用是進行模數(shù)轉(zhuǎn)換把模擬信號轉(zhuǎn)變成數(shù)字信號,然后把數(shù)字信號輸送到顯示電路中去,由六位(本實驗采用四位)八段數(shù)碼管顯示出測量結(jié)果。</p><p> 關(guān)鍵字:溫度傳感器 熱敏電阻 A/D數(shù)模轉(zhuǎn)換 數(shù)碼管動態(tài)顯示</p><
12、;p><b> 第二章 總體設(shè)計</b></p><p><b> 2.1 理論分析</b></p><p> 溫度測量模塊主要為溫度測量電橋,當溫度發(fā)生變化時,電橋失去平衡,從而在電橋輸出端有電壓輸出,但該電壓很小。經(jīng)過集成放大器放大,將放大后的信號輸入AD轉(zhuǎn)換芯片, 進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,
13、就可以將被測溫度顯示出來。</p><p> ↑ </p><p><b> 圖1—1系統(tǒng)框圖 </b></p><p> 圖2.1.1 系統(tǒng)硬件原理圖如圖1—1</p><p><b> 2.2 過程分析</b></p><p>
14、 該溫度傳感器系統(tǒng)硬件原理圖如圖1—1所示,由熱電阻傳感器測得外界溫度,經(jīng)過信號放大,然后送給模數(shù)轉(zhuǎn)換,將原有的模擬信號轉(zhuǎn)換為可以被單片機識別和運算的數(shù)字信號,然后再通過軟件編程由顯示電路顯示出來當前所測得的溫度。</p><p> 它的各部分電路說明如下:</p><p><b> (1).測溫模塊:</b></p><p> 該部分
15、電路主要使用測溫電橋,當溫度變化時,電橋處于不平衡狀態(tài),從而輸出不平衡電壓,為測溫的基礎(chǔ)。</p><p> (2).信號處理部分:</p><p> 該部分電路包括電壓信號的放大和AD轉(zhuǎn)換,實現(xiàn)模數(shù)變換,以及硬件濾波。</p><p><b> (3)單片機部分:</b></p><p> 本實驗采用8051單
16、片機,其工作在最小模式下,主要任務(wù)有:控制AD0809進行模數(shù)轉(zhuǎn)換、形成必要的時序、進行數(shù)據(jù)計算以及控制數(shù)碼管顯示。</p><p> (4).電源電路部分:</p><p> 該部分電路負責將輸入的9V~12V直流電,分別轉(zhuǎn)換為穩(wěn)定的9V、5V、-9V直流電,給傳感器,放大電路,單片機,AD0809等供電。</p><p><b> (5).顯示電
17、路:</b></p><p> 顯示電路的作用是將測量的溫度利用動態(tài)數(shù)碼管實時顯示出來。</p><p> 第三章 硬件電路設(shè)計</p><p> 3.1傳感器電路模塊</p><p> 1 測溫電橋及信號放大電路</p><p> 圖3.1.1 測溫電橋及信號放大電路</p>
18、<p> 上圖是一個比較常用的溫度測量電路,大致分為電源,電阻電橋,運放,輸出部分。電源由R4,R6,C1,U1B組成,R4,R6為分壓電路,C1主要濾除VCC中紋波,U1B為LM324運算放大器,工作于電壓跟隨器方式,其特點是具有高輸入阻抗低輸出阻抗,為后級電橋提供較穩(wěn)定的電流。電橋由R1,R2,R3,R13及熱敏電阻組成,通過調(diào)節(jié)R13使電橋平衡,當溫度發(fā)生變化時,熱敏電阻變化,電橋產(chǎn)生電壓差。運放電路由R7,R8,
19、R9,R10及U1A組成,調(diào)節(jié)R14可以調(diào)節(jié)輸出電壓幅值。D1主要用于防止輸出負電壓,保護后級A/D電路。</p><p><b> 2.測溫電橋</b></p><p> 圖3.1.2 測溫電橋</p><p> 如上圖所示,熱敏電阻RT和RA1,RB1,RC1,以及可變電阻R2組成一個測溫電橋,在溫度為20度時,調(diào)節(jié)R2使電橋達到平衡
20、。當溫度升高時,熱敏電阻的阻值變大,電橋失去平衡,電橋輸出的不平衡電壓,經(jīng)過濾波后,輸入運算放大器,進行放大處理。</p><p><b> 電橋的分析</b></p><p> 圖3.1.3 電橋原理圖</p><p> (1)電橋輸出電壓:</p><p><b> =</b><
21、/p><p> (2)電橋平衡條件:</p><p> 當各橋臂發(fā)生微小變化時,電橋失去平衡,其輸出為:</p><p> 一般R很小,即R<<R,又電橋開始平衡,即</p><p><b> 所以</b></p><p> 實際使用中,為了簡化橋路設(shè)計,同時也為了得到電橋的最大
22、靈敏度,往往取橋臂電阻相等。</p><p><b> 4.放大電路</b></p><p> 最后經(jīng)過放大部分,如圖3.2.3,為壓力傳感器的微弱電壓輸出的放大電路。分析它是一個差分放大電路,其放大倍數(shù)為,那么放大后的電壓值為,因為和溫度T有一定的線性關(guān)系,A/D轉(zhuǎn)換器的最大輸入電壓為5v,因此對應(yīng)A/D輸出的電壓,與熱敏電阻感知的外界溫度具有一定的線性關(guān)系。&
23、lt;/p><p> 圖4.1.3放大電路</p><p> 3.2 A/D變換電路模塊</p><p> ADC0809是M美國國家半導體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換,是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。</p&g
24、t;<p><b> 1主要特性:</b></p><p> ?。?)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位</p><p> (2)具有轉(zhuǎn)換啟??刂贫?lt;/p><p> (3)轉(zhuǎn)換時間為100us(時鐘為640kHZ時),130us(時鐘為500KHZ時)</p><p> ?。?)它由單一
25、+5V電源供電,片內(nèi)帶有鎖存功能的8路模擬多路開關(guān),ADC0809可對0V—5V的雙極性模擬信號進行轉(zhuǎn)換。</p><p> ?。?),引腳圖如圖4.2.1 所示。各引腳功能說明如下:</p><p> :8位數(shù)字量輸出引腳,由最低引腳到最高引腳。</p><p> IN0—IN7:8路模擬量輸入引腳。</p><p><b>
26、 ?。?5V工作電壓。</b></p><p><b> GND:地。</b></p><p> REF(+):參考電壓正端。</p><p> REF(—):參考電壓負端。</p><p> START:A/D轉(zhuǎn)換啟動信號輸入端。</p><p> ALE:地址鎖存允許信號
27、輸入端。以上兩個信號用于啟動A/D轉(zhuǎn)換。</p><p> EOC:轉(zhuǎn)換結(jié)束信號輸出引腳。開始轉(zhuǎn)換時為低電平,轉(zhuǎn)換結(jié)束時為高電平。</p><p> OE:輸出允許控制端。用以打開三態(tài)數(shù)據(jù)輸出鎖存器。</p><p> CLK:時鐘信號輸入端。</p><p> ADDA、ADDB、ADDC:地址輸入線。經(jīng)譯碼后可選通IN0—IN7
28、8個通道的一個通道進行轉(zhuǎn)換。</p><p> 圖3.2.1 ADC0809各引腳圖</p><p> 實驗電路及接線如下圖示 :</p><p> 圖3.2.2 接線框圖 </p><p> A/D轉(zhuǎn)換器的結(jié)構(gòu)及連線圖如上圖所示,AD0809的工作過程如下:首先用指令選擇0809的一個模擬輸入通道,當執(zhí)行M
29、OVX @DPTR,A時,產(chǎn)生一個啟動信號給START引腳送入脈沖,開始對選中通道轉(zhuǎn)換。當轉(zhuǎn)換結(jié)束后發(fā)出結(jié)束信號,置EOC引腳信號為高電平,該信號可以作為中斷申請信號,當讀允許信號到,OE端有高電平,則可以讀出轉(zhuǎn)換的數(shù)字量,利用MOVX A,@DPTR把該通道轉(zhuǎn)換結(jié)果讀到累加器A中。轉(zhuǎn)換電壓為0—5V,調(diào)節(jié)橋路中的電位器,使其輸出電壓為0—5V,可以在較小范圍內(nèi)波動,當滿量程輸出時對應(yīng)八個1的輸出,由于前邊計算的電壓變化和電阻變化成正比
30、關(guān)系,而且電阻變化和應(yīng)變成正比,進而得出的壓力和電壓是成正比的。傳感器橋路輸出的電壓經(jīng)過比例變換后轉(zhuǎn)換成二進制碼的形式送入P0口。其程序框圖如下:</p><p> 圖3.2.3A/D轉(zhuǎn)換電路程序框圖</p><p> 3.3八段數(shù)碼管顯示</p><p> 1.實驗線路及接線如下 </p><p> 圖3.3.1 接口圖</
31、p><p> 2.動態(tài)顯示數(shù)碼管接線部分</p><p> 圖3.3.2 數(shù)碼管電路接線圖</p><p> 用6 位8 段碼LED 顯示電路,只要按地址輸出相應(yīng)數(shù)據(jù),就可以實現(xiàn)對顯示器的控制。顯示共有6 位,用動態(tài)方式顯示。8 位段碼、6 位位碼是由兩片74LS374 輸出。位碼經(jīng)MC1413 或ULN2003 倒相驅(qū)動后,選擇相應(yīng)顯示位。 本實驗儀中 8 位
32、段碼輸出地址為0X004H,位碼輸出地址為 0X002H。此處X 是由KEY/LED CS 決定,參見地址譯碼。做LED 實驗時,需將KEY/LED CS 接到相應(yīng)的地址譯碼上。以便用相應(yīng)的地址來訪問。例如,將KEY/LED CS 接到CS0 上,則段碼地址為08004H,位碼地址為08002H 七段數(shù)碼管的字型顯示表如下: </p><p> 顯示過程如下:經(jīng)過單片機P0輸出的八位二進制碼,變換成BCD碼,在
33、數(shù)碼管上顯示,經(jīng)過段選信號和位選信號的控制,最后在相應(yīng)數(shù)碼管上顯示出相應(yīng)的溫度值。程序框圖</p><p><b> 如下:</b></p><p> 圖3.3.3 數(shù)碼管程序框圖</p><p> 圖3.3.4 地址碼插孔及對應(yīng)地址范圍</p><p> 3.4 8051芯片介紹</p><
34、p> 本實驗采用8051單片機,其管腳圖如下:</p><p> 圖3.4.1 80C51的引腳圖</p><p><b> 1.電源</b></p><p> ?。?)VCC - 芯片電源,接+5V; </p><p> ?。?)VSS - 接地端; </p><p><b&
35、gt; 2.時鐘</b></p><p> XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 </p><p><b> 3.控制線(4根)</b></p><p> (1)ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖。</p><p> ?、?ALE功能:用來鎖存P0口送出的低
36、8位地址。</p><p> ② PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 </p><p> (2)PSEN:外ROM讀選通信號。</p><p> (3)RST/VPD:復位/備用電源。 </p><p> ?、?RST(Reset)功能:復位信號輸入端。 </p>&
37、lt;p> ?、?VPD功能:在Vcc掉電情況下,接備用電源。</p><p> ?。?)EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> ?、?EA功能:內(nèi)外ROM選擇端。 </p><p> ② Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 </p><p><b&g
38、t; 4.I/O線 </b></p><p> 80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。P3口還有 第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。</p><p><b> 3.5 電源電路</b></p><p> 電源是整套系統(tǒng)工作的基礎(chǔ)
39、,要實現(xiàn)溫度的精確測量與顯示跟一個合適的穩(wěn)定的電源是密不可分的,由系統(tǒng)組成可知,系統(tǒng)要正常工作需要一個穩(wěn)定的+5V電源,用來給測溫電橋,單片機,顯示模塊,AD模塊供電,要實現(xiàn)信號的放大還需要給放大模塊提供穩(wěn)定的+9V ,-9V電源。</p><p> 第四章 溫度傳感器實驗數(shù)據(jù)采集、顯示及程序</p><p> 4.1 數(shù)據(jù)采集及顯示</p><p> 數(shù)
40、據(jù)處理子程序是整個程序的核心。主要用來調(diào)整輸入值系數(shù),使輸出滿足量程要求。另外完成A/D的采樣結(jié)果從十六進制數(shù)向十進制數(shù)形式轉(zhuǎn)化。系數(shù)轉(zhuǎn)換在IN0輸入的數(shù)最大為5V,要求壓力80N對應(yīng)的是5V,為十六進制向十進制轉(zhuǎn)換方便,將系數(shù)進行一定倍數(shù)的變換,并用小數(shù)點位置的變化體現(xiàn)這一過程。數(shù)制之間的轉(zhuǎn)換:在二進制數(shù)制中,每向左移一位表示數(shù)增加兩倍。要求壓力80N對應(yīng)的是5V,而壓力與電壓的變換是線性關(guān)系,對應(yīng)AD轉(zhuǎn)換器的輸出為八個1,當有一定的
41、壓力值輸入時,對應(yīng)這個關(guān)系轉(zhuǎn)化成相應(yīng)的二進制代碼送入P0口。然后再反過來應(yīng)用這個變化關(guān)系,經(jīng)最終得到的數(shù)值進行二進制到BCD碼轉(zhuǎn)化,然后逐位在LED數(shù)碼管上顯示。</p><p> 數(shù)據(jù)采集用A/D0809芯片來完成,主要分為啟動、讀取數(shù)據(jù)、延時等待轉(zhuǎn)換結(jié)束、讀出轉(zhuǎn)換結(jié)果、存入指定內(nèi)存單元、繼續(xù)轉(zhuǎn)換(退出)幾個步驟。ADC0809初始化后,就具有了將某一通道輸入的0~5模擬信號轉(zhuǎn)換成對應(yīng)的數(shù)字量00H—FFH,
42、然后再存入存儲器的指定單元中。在控制方面有所區(qū)別??梢圆捎贸绦虿樵兎绞?,延時等待方式和中斷方式。</p><p> 顯示子程序是字符顯示,首先調(diào)用事先編好數(shù)碼管顯示子程序。初始化命令,然后輸出顯示命令。在顯示過程中一定要調(diào)用延時子程序。當輸入通道采集了一個新的過程參數(shù),當有壓力信號輸入時,調(diào)用顯示子程序在數(shù)碼管上顯示。</p><p> 4.2 程序的設(shè)計</p>&
43、lt;p> ADC EQU 41H</p><p> LED3 EQU 31H</p><p> LED2 EQU 32H</p><p> LED1 EQU 33H</p><p> LED0 EQU 34H</p><p><b> ORG 0000H</b></p&g
44、t;<p><b> LJMP MAIN</b></p><p> MAIN:MOV LED0,#00H</p><p> MOV LED1,#00H</p><p> MOV LED2,#00H</p><p> MOV LED3,#00H</p><p> LOOP:
45、MOV DPTR,#08000H</p><p> MOV A,#00H</p><p> MOVX @DPTR,A</p><p> LCALL DELAY</p><p> MOV DPTR,#08000H</p><p> MOVX A,@DPTR</p><p><b&
46、gt; MOV B,A</b></p><p> MOV A,#0FFH</p><p><b> CLR C</b></p><p><b> SUBB A,B</b></p><p><b> MOV ADC,A</b></p><
47、p> TRSL:MOV A,ADC</p><p><b> MOV R0,A</b></p><p> XRL A,#0FFH</p><p><b> JZ MAX</b></p><p><b> MOV A,R0</b></p><p
48、><b> MOV B,#10</b></p><p><b> MUL AB</b></p><p><b> MOV R0,A</b></p><p><b> MOV A,B</b></p><p> MOV DPTR,#TABLE&
49、lt;/p><p> MOVC A,@A+DPTR</p><p> MOV LED2,A</p><p><b> MOV A,R0</b></p><p><b> MOV B,#10</b></p><p><b> MUL AB</b>&l
50、t;/p><p><b> MOV R0,A</b></p><p><b> MOV A,B</b></p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p> ADD A,#80H</p><
51、;p> MOV LED1,A</p><p><b> MOV A,R0</b></p><p><b> MOV B,#10</b></p><p><b> MUL AB</b></p><p><b> MOV A,B</b><
52、/p><p> MOV DPTR,#TABLE</p><p> MOVC A,@A+DPTR</p><p> MOV LED0,A</p><p> LCALL SMXS</p><p><b> SJMP LOOP</b></p><p> SMXS:MOV
53、R0, #LED3</p><p><b> MOV R1,#4</b></p><p> MOV R2, #00100000B</p><p> SMXS1:MOV DPTR,#09002H</p><p> MOV A,#00H</p><p> MOVX @DPTR,A </
54、p><p><b> MOV A,@R0</b></p><p> MOV DPTR,#09004H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#09002H</p><p><b> MOV A,R2</b></p>
55、<p> MOVX @DPTR,A </p><p> LCALL DELAY</p><p><b> MOV A,R2</b></p><p><b> RR A</b></p><p><b> MOV R2,A</b></p>
56、<p><b> INC R0</b></p><p> DJNZ R1,SMXS1</p><p> MOV DPTR,#09002H</p><p> MOV A,#00H</p><p> MOVX @DPTR,A</p><p><b> RET<
57、/b></p><p> DELAY:MOV R7,#10</p><p> DELAY1:MOV R6,#12</p><p><b> NOP</b></p><p><b> DJNZ R6,$</b></p><p> DJNZ R7,DELAY1&l
58、t;/p><p><b> RET</b></p><p> MAX:MOV LED3,#06H</p><p> MOV LED2,#3FH</p><p> MOV LED1,#3FH</p><p> MOV LED0,#3FH</p><p> TABLE:
59、db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h</p><p> db 7fh,6fh,77h,7ch,39h,5eh,79h,71h</p><p><b> 拓展</b></p><p> DS18B20芯片測溫顯示系統(tǒng)</p><p> DS18B20數(shù)字單線溫度計以9位數(shù)字量的形式反
60、映器件的溫度值。DS18B20通過一個單線接口發(fā)送或接收信息,因此在中央微處理器和DS18B20 之間僅需一條連接線(加上地線)。用于讀寫和溫度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部源。因為每個DS18B20都有一個獨特的片序列號,所以多只DS18B20可以同時連在一根單線總線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在HVAC環(huán)境控制、探測建筑物、儀器或機器的溫度以及過程監(jiān)測和控制等方面非常有用。</p>
61、<p> DS18B20依靠一個單線端口通訊。在單線端口條件下,必須先建立ROM操作協(xié)議,才能進行存儲器和控制操作。因此,控制器必須首先提供下面5個ROM操作命令之一:1)讀ROM,2)匹配ROM,3)搜索ROM,4)跳過ROM,5)報警搜索。這些命令對每個器件的激光ROM部分進行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條ROM 操作序列后,即可
62、進行存儲器和控制操作,控制器可以提供6條存儲器和控制操作指令中的任一條。</p><p> 一條控制操作命令指示DS18B20完成一次溫度測量。測量結(jié)果放在DS18B20的暫存器里,用一條讀暫存器內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報警觸發(fā)器TH和TL各由一個EEPROM字節(jié)構(gòu)成。如果沒有對DS18B20使用報警搜索命令,這些寄存器可以做為一般用途的用戶存儲器使用??梢杂靡粭l存儲器操作命令對TH和T
63、L 進行寫入,對這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進行讀寫。B不過與熱敏電阻類似的,DS18B20也必須連接A/D轉(zhuǎn)換器,以實現(xiàn)模擬與數(shù)字之間的轉(zhuǎn)換,接線如下圖:</p><p> 與80c51單片機的接線部分,可以在單片機的最小系統(tǒng)中實現(xiàn),我們連線時只需要連接我們需要的線路就可以了單片機最小系統(tǒng)如下:</p><p> 顯示采用八段數(shù)碼管顯示(實際上只
64、會用到四段數(shù)碼管)如圖:</p><p> DS18B20測溫程序如下:(由于水平有限故在此采用C語言程序)</p><p> #include<REG52.H></p><p> #include<math.h></p><p> #include<INTRINS.H></p>&l
65、t;p> #define uchar unsigned char</p><p> #define uint unsigned int;</p><p> /*****************************************************************************/</p><p> //sbit s
66、eg1=P1^0;</p><p> //sbit seg2=P1^1;</p><p> //sbit seg3=P1^2;</p><p> sbit DQ=P2^7;//ds18b20 端口</p><p> sfr dataled=0x80;//顯示數(shù)據(jù)端口</p><p> /***********
67、***********************************************************/ </p><p> uchar temp;</p><p> uchar flag_get,count,num,minute,second;</p><p> uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x
68、66,0x6d,0x7d,0x07,0x7f,0x6f};//7段數(shù)碼管段碼表共陰</p><p> uchar a,b;</p><p> /***********************************************************************/</p><p> void delay1(uchar MS);<
69、/p><p> unsigned char ReadTemperature(void);</p><p> void Init_DS18B20(void);</p><p> unsigned char ReadOneChar(void);</p><p> void WriteOneChar(unsigned char dat);<
70、;/p><p> void delay(unsigned int i);</p><p> /************************************************************************/</p><p><b> main()</b></p><p><b&g
71、t; {</b></p><p> TMOD|=0x01;//定時器設(shè)置</p><p><b> TH0=0xef;</b></p><p><b> TL0=0xf0;</b></p><p><b> IE=0x82;</b></p>
72、<p> TR0=1;//啟動定時器</p><p><b> P1=0x00;</b></p><p><b> count=0;</b></p><p><b> while(1)</b></p><p><b> {</b><
73、;/p><p> // str[2]=0x39;//顯示C符號</p><p> a=tab[temp/10]; //十位溫度</p><p> b=tab[temp%10]; //個位溫度</p><p> if(flag_get==1) //定時讀取當前溫度</p><p><b> {<
74、/b></p><p> temp=ReadTemperature()-1;</p><p> flag_get=0;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
75、;/p><p> void tim(void) interrupt 1 using 1//中斷,用于數(shù)碼管掃描和溫度檢測間隔</p><p><b> {</b></p><p> TH0=0xef;//定時器重裝值</p><p><b> TL0=0xf0;</b></p>&
76、lt;p><b> num++;</b></p><p> if (num==50)</p><p><b> {num=0;</b></p><p> flag_get=1;//標志位有效</p><p><b> second++;</b></p>
77、;<p> if(second>=60)</p><p> {second=0;</p><p> minute++; </p><p><b> }</b></p><p><b> }</b></p><p><b> coun
78、t++;</b></p><p> if(count==1)</p><p><b> {P1=0xfe;</b></p><p> dataled=a;}//數(shù)碼管掃描</p><p> if(count==2)</p><p><b> {P1=0xfd;<
79、;/b></p><p> dataled=b;count=0;}</p><p> /*if(count==3)</p><p><b> { P1=2;</b></p><p> dataled=str[2];</p><p> count=0;}*/</p>&
80、lt;p><b> }</b></p><p> /*************************************************************************************/</p><p> void delay(unsigned int i)//延時函數(shù)</p><p><
81、b> {</b></p><p> while(i--);</p><p><b> }</b></p><p> /***************************************************************************************/</p>&
82、lt;p> //18b20初始化函數(shù)</p><p> void Init_DS18B20(void)</p><p><b> {</b></p><p> unsigned char x=0;</p><p> DQ = 1; //DQ復位</p><p> delay
83、(8); //稍做延時</p><p> DQ = 0; //單片機將DQ拉低</p><p> delay(80); //精確延時 大于 480us</p><p> DQ = 1; //拉高總線</p><p> delay(10);</p><p> x=DQ; //稍做延時后
84、如果x=0則初始化成功 x=1則初始化失敗</p><p><b> delay(5);</b></p><p><b> }</b></p><p><b> //讀一個字節(jié)</b></p><p> unsigned char ReadOneChar(void)&l
85、t;/p><p><b> {</b></p><p> unsigned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b> {</b></p&
86、gt;<p> DQ = 0; // 給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p>
87、<p><b> delay(5);</b></p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p><b> //寫一個字節(jié)</b></p>
88、<p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> for (i=8; i>0; i--)</p><p><b> {</b>
89、</p><p><b> DQ = 0;</b></p><p> DQ = dat&0x01;</p><p><b> delay(5);</b></p><p><b> DQ = 1;</b></p><p><b>
90、 dat>>=1;</b></p><p><b> }</b></p><p><b> delay(5);</b></p><p><b> }</b></p><p><b> //讀取溫度</b></p>
91、;<p> unsigned char ReadTemperature(void)</p><p><b> {</b></p><p> unsigned char a=0;</p><p> unsigned char b=0;</p><p> unsigned char t=0;</
92、p><p> //float tt=0;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); // 跳過讀序號列號的操作</p><p> WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換</p><p> delay(200);</p>
93、;<p> Init_DS18B20();</p><p> WriteOneChar(0xCC); //跳過讀序號列號的操作 </p><p> WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度</p><p> a=ReadOneChar();</p><p> b=
94、ReadOneChar();</p><p><b> b<<=4;</b></p><p> b+=(a&0xf0)>>4;</p><p><b> t=b;</b></p><p> //tt=t*0.0625;</p><p>
95、 //t= tt*10+0.5; //放大10倍輸出并四舍五入</p><p> return(t);</p><p><b> }</b></p><p><b> 第六章 心得體會</b></p><p> 為期一周的單片機課程設(shè)計,讓我在很多方面都有了相當大的收獲。不僅有數(shù)模轉(zhuǎn)換和
96、單片機編程部分的知識,還有動態(tài)數(shù)碼管的顯示,以及由熱敏電阻構(gòu)成的溫度傳感器的相關(guān)知識。</p><p> 此次單片機課程設(shè)計綜合了傳感器,運算放大器等,聯(lián)系到很多方面的知識,讓我們充分聯(lián)系平時所學知識,全力以赴。它不僅是我鞏固了之前所學的知識,加深了對學過知識的印象,還使我發(fā)現(xiàn)了自己對理論知識掌握還不夠扎實,對一些知識點存在著錯誤的認識。為今后的學習和工作都奠定了良好的基礎(chǔ)。在完成課設(shè)的過程中,每一處都凝聚了老
97、師和同學對我的幫助,所有的成果都是大家共同努力的成果。</p><p> 在整個設(shè)計過程中,我懂得了許多東西,也培養(yǎng)了自己獨立工作的能力,樹立了對自己工作能力的信心。充分體會了在創(chuàng)造過程中探索的艱難和成功時的喜悅。</p><p> 在最后,回想整個課程設(shè)計,我們看到了同學們專心研究,忙碌的身影,看到了學院領(lǐng)導和老師對我們嚴厲的監(jiān)督和熱情的指導??傊@次課程設(shè)計讓我收獲頗豐,在以后的
98、學習生活中,我一定會更加努力,滿懷激情去面對!</p><p><b> 參考文獻</b></p><p> 〔1〕張淑清.單片機原理及應(yīng)用技術(shù)[M] . 國防工業(yè)出版社 2010</p><p> 〔2〕蔡朝洋.單片機控制實習與專題制作[M] .北京航空航天大學出版社 2006</p><p&g
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計---熱敏電阻測溫
- 熱敏電阻測溫顯示系統(tǒng)課程設(shè)計
- 熱敏電阻及測溫系統(tǒng)課程設(shè)計
- 熱敏電阻測溫課程設(shè)計課案
- 熱敏電阻測溫課程設(shè)計課案
- 基于單片機熱敏電阻溫度采集
- 單片機課程設(shè)計論文 基于熱敏電阻的數(shù)字溫度計設(shè)計
- 單片機課程設(shè)計-- 簡易測溫系統(tǒng)
- 單片機lcd系統(tǒng)顯示課程設(shè)計
- 單片機課程設(shè)計--電容、電阻參數(shù)單片機測試系統(tǒng)的設(shè)計
- 單片機課程設(shè)計--顯示電路
- lcd顯示設(shè)計單片機課程設(shè)計
- 單片機課程設(shè)計--- 單片機動態(tài)掃描顯示
- 單片機顯示系統(tǒng)課程設(shè)計報告-基于51內(nèi)核的單片機為主控芯片的單片機顯示系統(tǒng)
- 基于熱敏電阻的數(shù)字溫度計課程設(shè)計
- 單片機課程設(shè)計(led顯示管)
- 單片機課程設(shè)計---單片機數(shù)字顯示溫度計
- 課程設(shè)計---基于單片機的lcd顯示系統(tǒng)設(shè)計
- ntc熱敏電阻
- 單片機課程設(shè)計--矩陣鍵盤 led顯示
評論
0/150
提交評論