版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 溫度傳感器課程設(shè)計報告</p><p> 專 業(yè):機械電子工程</p><p><b> 姓 名: </b></p><p><b> 學(xué) 號: </b></p><p> 學(xué) 院:機電工程分院</p><p><b
2、> 目錄</b></p><p> 1 引言………………………………………………………………………………..3</p><p> 2 設(shè)計要求…………………………………………………………………………..3</p><p> 3 工作原理…………………………………………………………………………..3</p><p&g
3、t; 4 方案設(shè)計…………………………………………………………………………..4</p><p> 5 單元電路的設(shè)計和元器件的選擇………………………………………………..6</p><p> 5.1微控制器模塊…………………………………………………………………….6</p><p> 5.2溫度采集模塊…………………………………………………………………
4、.....7</p><p> 5.3報警模塊……………………………………………………………………….....9</p><p> 5.4溫度顯示模塊………………………………………………………………….....9</p><p> 5.5其它外圍電路…………………………………………………………………...10</p><p> 6
5、電源模塊…………………………………………………………………………12</p><p> 7 程序設(shè)計…………………………………………………………………………13</p><p> 7.1流程圖…………………………………………………………………………...13</p><p> 7.2程序分析………………………………………………………………………..16<
6、;/p><p> 8. 實例測試…………………………………………………………………………18</p><p> 總結(jié)…………………………………………………………………………………..18</p><p> 參考文獻(xiàn)……………………………………………………………………………..19</p><p><b> 1 引言</b&
7、gt;</p><p> 溫度控制系統(tǒng)廣泛應(yīng)用于社會生活的各個領(lǐng)域 ,如家電、汽車、材料、電力電子等 ,常用的控制電路根據(jù)應(yīng)用場合和所要求的性能指標(biāo)有所不同 , 在工業(yè)企業(yè)中,如何提高溫度控制對象的運行性能一直以來都是控制人員和現(xiàn)場技術(shù)人員努力解決的問題。這類控制對象慣性大,滯后現(xiàn)象嚴(yán)重,存在很多不確定的因素,難以建立精確的數(shù)學(xué)模型,從而導(dǎo)致控制系統(tǒng)性能不佳,甚至出現(xiàn)控制不穩(wěn)定、失控現(xiàn)象。傳統(tǒng)的繼電器調(diào)溫電路簡
8、單實用 ,但由于繼電器動作頻繁 ,可能會因觸點不良而影響正常工作??刂祁I(lǐng)域還大量采用傳統(tǒng)的PID控制方式,但PID控制對象的模型難以建立,并且當(dāng)擾動因素不明確時,參數(shù)調(diào)整不便仍是普遍存在的問題。而采用數(shù)字溫度傳感器DS18B20,因其內(nèi)部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡單,而且減少了溫度測量轉(zhuǎn)換時的精度損失,使得測量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個引腳即可與單片機進(jìn)行通信,大大減少了接線的麻煩,使得單片機更加具有
9、擴展性。由于DS18B20芯片的小型化,更加可以通過單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實用性。更能串接多個</p><p><b> 2 設(shè)計要求</b></p><p> 本設(shè)計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計,并對其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:
10、</p><p> ●利用溫度傳感器(DS18B20)測量某一點環(huán)境溫度</p><p> ●測量范圍為-55℃~+99℃,精度為±0.5℃</p><p> ●用液晶進(jìn)行實際溫度值顯示</p><p> ●能夠根據(jù)需要方便設(shè)定上下限報警溫度</p><p><b> 3 工作原理<
11、/b></p><p> 溫度傳感器 DS18B20 從設(shè)備環(huán)境的不同位置采集溫度,單片機 AT89S51 獲取采集的溫度值,經(jīng)處理后得到當(dāng)前環(huán)境中一個比較穩(wěn)定的溫度值,再根據(jù)當(dāng)前設(shè)定的溫度上下限值,通過加熱和降溫對當(dāng)前溫度進(jìn)行調(diào)整。當(dāng)采集的溫度經(jīng)處理后超過設(shè)定溫度的上限時,單片機通過三極管驅(qū)動繼電器開啟降溫設(shè)備 (壓縮制冷器) ,當(dāng)采集的溫度經(jīng)處理后低于設(shè)定溫度的下時 , 單片機通過三極管驅(qū)動繼電器開啟
12、升溫設(shè)備 (加熱器) 。 </p><p> 當(dāng)由于環(huán)境溫度變化太劇烈或由于加熱或降溫設(shè)備出現(xiàn)故障,或者溫度傳感頭出現(xiàn)故障導(dǎo)致在一段時間內(nèi)不能將環(huán)境溫度調(diào)整到規(guī)定的溫度限內(nèi)的時候,單片機通過三極管驅(qū)動揚聲器發(fā)出警笛聲。 </p><p> 系統(tǒng)中將通過串口通訊連接PC機存儲溫度變化時的歷史數(shù)據(jù),以便觀察整個溫度的控制過程及監(jiān)控溫度的變化全過程。</p><p>
13、<b> 4 方案設(shè)計</b></p><p><b> (一)、方案一</b></p><p> 采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫?zé)崤迹瑹犭娕加蓛蓚€焊接在一起的異金屬導(dǎo)線所組成(熱電偶的構(gòu)成如圖 3.1),熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫差電勢組成。通過將參考結(jié)點保持在已知溫度并測量該電壓,便可推斷出檢
14、測結(jié)點的溫度。數(shù)據(jù)采集部分則使用帶有A/D 通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點,并且這種設(shè)計需要用到A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。</p><p> 圖 4-1熱電偶電路圖<
15、;/p><p> 系統(tǒng)主要包括對A/D0809 的數(shù)據(jù)采集,自動手動工作方式檢測,溫度的顯示等,這幾項功能的信號通過輸入輸出電路經(jīng)單片機處理。此外還有復(fù)位電路,晶振電路,啟動電路等。故現(xiàn)場輸入硬件有手動復(fù)位鍵、A/D 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機構(gòu)有4 位數(shù)碼管、報警器等。系統(tǒng)框圖如圖4-2所示:</p><p> 圖4-2熱電偶溫差電路測溫系統(tǒng)框圖</p><
16、;p><b> ?。ǘ?、方案二</b></p><p> 采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0—100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器A
17、T89S51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多DS18B20</p><p> 控制工作,還可以與PC 機通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用
18、都很成熟。</p><p> 該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設(shè)計中加入時鐘芯片DS1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數(shù)據(jù)進(jìn)行存儲,利用鍵盤來進(jìn)行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與
19、計算機的RS232接口進(jìn)行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。</p><p> 系統(tǒng)框圖如圖4-3所示</p><p> 圖4-3 DS18B20溫度測溫系統(tǒng)框圖</p><p> 從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單,故本次設(shè)計采用了方案二。
20、</p><p> 5 單元電路的設(shè)計和元器件的選擇</p><p><b> 5.1微控制器模塊</b></p><p> AT89S51 是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高
21、密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可
22、編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。</p><p> 此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。&
23、lt;/p><p> 由于系統(tǒng)控制方案簡單 ,數(shù)據(jù)量也不大 ,考慮到電路的簡單和成本等因素 ,因此在本設(shè)計中選用 A TMEL 公司的 A T89S51單片機作為主控芯片。主控模塊采用單片機最小系統(tǒng)是由于 A T89S51芯片內(nèi)含有4 kB的 E2PROM ,無需外擴存儲器 ,電路簡單可靠 ,其時鐘頻率為 0~24 MHz ,并且價格低廉 ,批量價在 10元以內(nèi)。</p><p><b
24、> 主要特性如下</b></p><p> ●與MCS-51 兼容</p><p> ●4K字節(jié)可編程閃爍存儲器</p><p> ●壽命:1000寫/擦循環(huán)</p><p> ●數(shù)據(jù)保留時間:10年</p><p> ●全靜態(tài)工作:0Hz-24Hz</p><p>
25、; ●三級程序存儲器鎖定</p><p> ●128*8位內(nèi)部RAM</p><p> ●32可編程I/O線</p><p> ●兩個16位定時器/計數(shù)器</p><p><b> ●5個中斷源</b></p><p><b> ●可編程串行通道</b></
26、p><p> ●低功耗的閑置和掉電模式</p><p> ●片內(nèi)振蕩器和時鐘電路 AT89S51單片機引腳圖 </p><p><b> 5.2溫度采集模塊</b></p><p> DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,它具有微型化、低功
27、耗、高性能抗干擾能力、強易配處理器等優(yōu)點,特別適合用于構(gòu)成多點溫度測控系統(tǒng),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(按9位二進(jìn)制數(shù)字)給單片機處理,且在同一總線上可以掛接多個傳感器芯片,它具有三引腳TO-92小體積封裝形式,溫度測量范圍-55~+125℃,可編程為9~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,業(yè)可采用寄生電源方式產(chǎn)生,多個DS18B20可以并聯(lián)到三
28、根或者兩根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。從而可以看出DS18B20可以非常方便的被用于遠(yuǎn)距離多點溫度檢測系統(tǒng)。</p><p> 綜上,在本系統(tǒng)中我采用溫度芯片DS18B20測量溫度。該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,且此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。該芯片直接向單片機傳輸數(shù)字信號,便于單
29、片機處理及控制。</p><p> 圖5-2溫度芯片DS18B20</p><p> DS18B20 最大的特點是單總線數(shù)據(jù)傳輸方式,DS18B20 的數(shù)據(jù)I/O 均由同一條線來完成。DS18B20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時, VDD 和GND 均接地, 他在需要遠(yuǎn)程溫度探測和空間受限的場合特別有用, 原理是當(dāng)1 W ire 總線的信號
30、線DQ 為高電平時, 竊取信號能量給DS18B20 供電, 同時一部分能量給內(nèi)部電容充電, 當(dāng)DQ為低電平時釋放能量為DS18B20 供電。但寄生電源方式需要強上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時) , 同時芯片的性能也有所降低。外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強,而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點溫度監(jiān)控系統(tǒng)。因此本設(shè)計采用外部供電方式。如下圖
31、所示:</p><p> 溫度傳感器DS18B20的測量范圍為-55℃~+125℃,在-10℃~+85℃時精度為±0.5℃。因為本設(shè)計只用于測量環(huán)境溫度,所以只顯示0℃~+85℃。</p><p><b> 5.3報警模塊</b></p><p> 本設(shè)計采軟件處理報警,利用有源蜂鳴器進(jìn)行報警輸出,采用直流供電。當(dāng)所測溫度超過獲
32、低于所預(yù)設(shè)的溫度時,數(shù)據(jù)口相應(yīng)拉高電平,報警輸出。(也可采用發(fā)光二級管報警電路,如過需要報警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報警)報警電路硬件連接見圖5-3</p><p> 圖5-3蜂鳴器電路連接圖</p><p><b> 5.4溫度顯示模塊</b></p><p&g
33、t; 本設(shè)計顯示電路采用兩位共陽極LED數(shù)碼管來顯示測量得到的溫度值。LED數(shù)碼管能在低電壓下工作,而且體積小、重量輕、使用壽命長,因次本設(shè)計選用此數(shù)碼管作為顯示器件。</p><p> 一個LED數(shù)碼管只能顯示一位的字符,如果字符位數(shù)不止一位,可以用幾個數(shù)碼管組成,但要控制多位的顯示電路需要有字段控制和字位控制,字段控制是指控制所要顯示的字符是什么,控制電路應(yīng)將字符的七段碼通過輸出口連接到LED的a~g引腳
34、,是某些段點亮,某些段處于熄滅狀態(tài)。字位控制是指控制在多位顯示器中,哪幾位發(fā)光或那幾位不發(fā)光,字位控制則需要通過字位碼作用于LED數(shù)碼管的公共引腳,是某一位或某幾位的數(shù)碼管可以發(fā)光。</p><p> 數(shù)碼管顯示電路分為動態(tài)顯示和靜態(tài)顯示。</p><p> 靜態(tài)顯示方式是指每一個數(shù)碼管的字段控制是獨立的,每一個數(shù)碼管都需要配置一個8位輸出口來輸出該字位的七段碼。因此需要顯示多位時需要
35、多個輸出口,通常片內(nèi)并口不夠用,需要在片外擴展。</p><p> 動態(tài)顯示又稱為掃描顯示方式,也就是在某一時刻只能讓一個字位處于選通狀態(tài),其他字位一律斷開,同時在字段線上發(fā)出該位要顯示的字段碼,這樣在某一時刻某一位數(shù)碼管就會被點亮,并顯示出相應(yīng)的字符。下一時刻改變所顯示的字位和字段碼,點亮另一個數(shù)碼管,顯示另一個字符。繞后一次掃描輪流點亮其他數(shù)碼管,只要掃描速度快,利用人眼的視覺殘留效應(yīng),會使人感覺到幾位數(shù)碼
36、管都在穩(wěn)定的顯示。</p><p> 本設(shè)計采用數(shù)碼管動態(tài)顯示,電路如下圖所示:</p><p><b> 顯示部分電路</b></p><p> 圖中由單片機P1口串接74HC245驅(qū)動兩位共陽極數(shù)碼管,上拉電阻排為10K。由P2.0和P2.1通過PNP型三極管Q1,Q2驅(qū)動其字位。三極管發(fā)射極接高電平,當(dāng)P2.0或P2.1為低電平時使
37、三極管導(dǎo)通選通數(shù)碼管的某一位。</p><p><b> 5.5其它外圍電路</b></p><p> 復(fù)位電路:在單片機的RST引腳引入高電平并保持2個機器周期時,單片機內(nèi)部就執(zhí)行復(fù)位操作。實際應(yīng)用中,復(fù)位操作有兩種形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。如下圖所示</p><p> 上電復(fù)位要求接通電源后,單片機自動實現(xiàn)
38、復(fù)位操作。上電瞬間RST引腳獲得高電平,隨著電容的充電,RST引腳的高電平逐漸下降。只要RST引腳保持兩個機器周期的高電平單片機就可以進(jìn)行復(fù)位操作。該電路參數(shù)為:晶振為12MHz時,電容為10μF,電阻為8.2KΩ;晶振為6MHz時,電容為22μF,電阻為1 KΩ。本設(shè)計采用上電復(fù)位電路,電路參數(shù)為電容10μF,電阻8.2K.。</p><p> 晶振電路:單片機的時鐘信號通常有兩種方式產(chǎn)生:一是內(nèi)部時鐘方式,
39、二是外部時鐘方式。</p><p> 本設(shè)計采用內(nèi)部時鐘方式,在單片機內(nèi)部有一震蕩電路,只要在單片機的XTAL1和XTAL2腳外接石英晶體(簡稱晶振),就構(gòu)成了自己震蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。</p><p> 圖中電容器的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為30pF。晶振CYS的震蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和6MHz。本設(shè)計
40、采用12MHz晶振,電容值為20 pF。</p><p> 在電路總體設(shè)計中,EA\Vpp腳用于是從外部程序存儲器取指還是從內(nèi)部程序存儲器取指的選擇信號。當(dāng)EA\Vpp接高電平時,先從片內(nèi)程序存儲器讀取指令,讀完4KB后,自動改為片外取指。若EA\Vpp接低電平,則所有指令均從片外程序存儲器讀取。ALE腳用于輸出允許地址所存信號。PSEN腳用于外部程序存儲器選通信號,在對外部程序存儲器取指操作時此引腳置低電平有
41、效。在執(zhí)行片內(nèi)程序存儲器取指時PESN腳無效。本設(shè)計無片外程序存儲器擴展,所以將EA\V pp腳接高電平,ALE及PSEN腳懸空。 </p><p><b> 6 電源模塊</b></p><p> 控制系統(tǒng)主控制部分電源需要用5V直流電源供電,其電路如圖6所示,把頻率為50Hz、有效值為220V的單相交流電壓轉(zhuǎn)換為幅值穩(wěn)定的5V直流電壓。其主要原理是把單相交流電
42、經(jīng) 過電源變壓器、整流電路、濾波電路、穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓。
43、 </p><p>
44、由于輸入電壓為電網(wǎng)電壓,一般情況下所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值相差較大,因而電源變壓器的作用顯現(xiàn)出來起到降壓作用。降壓后還是交流電壓,所以需要整流電路把交流電壓轉(zhuǎn)換成直流電壓。由于經(jīng)整流電路整流后的電壓含有較大的交流分量,會影響到負(fù)載電路的正常工作。需通過低通濾波電路濾波,使輸出電壓平滑。穩(wěn)壓電路的功能是使輸出直流電壓基本不受電網(wǎng)電壓波動和負(fù)載電阻變化的影響,從而獲得穩(wěn)定性足夠高的直流電壓。本電路使用集成穩(wěn)壓芯片7805解決了電
45、源穩(wěn)壓問題。</p><p><b> 圖6電源部分連線圖</b></p><p><b> 7 程序設(shè)計</b></p><p> 用匯編語言完成對設(shè)計的軟件編程,程序開始首先對溫度傳感器DS18B20進(jìn)行復(fù)位,檢測是否正常工作;接著讀取溫度數(shù)據(jù),主機發(fā)出CCH指令與在線的DS18B20聯(lián)系,接著向DS18B20發(fā)
46、出溫度A/D轉(zhuǎn)換44H指令,再發(fā)出溫度寄存器的溫度值BEH指令,并反復(fù)調(diào)用復(fù)位,寫入及讀取數(shù)據(jù)子程序,之后再經(jīng)過數(shù)據(jù)轉(zhuǎn)換,由數(shù)碼管顯示出來,不斷循環(huán)。</p><p><b> 7.1 流程圖</b></p><p><b> 7.2 程序分析</b></p><p> ?、賹S18B20進(jìn)行復(fù)位,寫入和讀取溫度數(shù)據(jù)
47、(在溫度傳感器DS18B20內(nèi)部完成,并實現(xiàn)對溫度信息的采集);讀取溫度流程如下:復(fù)位→發(fā)CCH命令(跳過ROM)→發(fā)44H命令→延時1s→復(fù)位→發(fā)CCH命令(跳過ROM)→發(fā)BEH命令(讀內(nèi)部RAM中9字節(jié)內(nèi)容)→連接從總線上讀出2個字節(jié)的數(shù)據(jù)(溫度數(shù)據(jù)的低8位和高8位)→結(jié)束</p><p><b> 部分程序代碼:</b></p><p> ?。?)DS18B
48、20的復(fù)位子程序部分:</p><p> RESET_1820:</p><p><b> SETB DQ;</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> CL
49、R DQ</b></p><p> ??;主機發(fā)出復(fù)位低脈沖</p><p> MOV R1,#3;</p><p> DLY: MOV R0,#107;</p><p> DJNZ R0,$;</p><p> DJNZ R1,DLY;</p><p><b>
50、 ??;拉高數(shù)據(jù)線</b></p><p><b> SETB DQ</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p
51、> ?。坏却鼶S18B20的回應(yīng)</p><p> MOV R0,#25H;</p><p> T2:JNB DQ,T3;</p><p> DJNZ R0,T2;</p><p><b> JMP T4;</b></p><p> ??;標(biāo)志位flag=1,表示DS18B20存
52、在</p><p> T3:SETB FLAG</p><p><b> JMP T5;</b></p><p> ??;標(biāo)志位flag=0,表示DS18B20不存在</p><p> T5:MOV R0,#117;</p><p><b> T4:RET</b>&
53、lt;/p><p> 注:根據(jù)DS18B20的通信協(xié)議,每一次讀寫數(shù)據(jù)之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位要求主機先發(fā)出復(fù)位低脈沖(大于48us);然后釋放,DS18B20收到信號后等待16~60us,然后發(fā)出60~240us的存在低脈沖,主機收到此信號表示復(fù)位成功。</p><p><b> 初始化時序</b></p><p> ?。?)D
54、S18B20的寫入子程序部分:</p><p> WRITE_1820:</p><p> MOV R2,#8 ;一位共8位數(shù)據(jù)</p><p> CLR C ;C=0</p><p><b> WR1:</b></p><p> CLR DQ
55、 ;總線低位,開始寫入</p><p> MOV R3,#7;</p><p> DJNZ R3,$ ;保持16us以上</p><p> RRC A ;把字節(jié)DATA分成8個位,循環(huán)給C</p><p> MOV DQ,C ;寫入一個位;</p><p> MOV
56、 R3,#23;</p><p> DJNE R3,$ ;等待</p><p> SETB DQ ;重新釋放總線;</p><p><b> NOP</b></p><p> DJNZ R2,WR1 ;寫入下一個位;</p><p><b>
57、 SETB DQ</b></p><p><b> RET</b></p><p> 注:當(dāng)主機把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時候,寫時間隙開始。有兩種寫時間隙,寫1 時間隙和寫0 時間隙。所有寫時間隙必須最少持續(xù)60μs,包括兩個寫周期至少1μs 的恢復(fù)時間。I/O線電平變低后,DS18B20 在一個15μs 到60μs 的窗口內(nèi)對I/O 線采
58、樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機要生成一個寫時間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時間隙開始后的15μs 內(nèi)允許數(shù)據(jù)線拉到高電平。主機要生成一個寫0 時間隙,必須把數(shù)據(jù)線拉到低電平并保存60μs。</p><p> 每個讀時隙都由主機發(fā)起,至少拉低總線1us,在主機發(fā)起讀時序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時序至少需要60us。</p><
59、p><b> 寫時序</b></p><p> (3)DS18B20的讀取子程序</p><p> READ_1820:</p><p> MOV R4 ,#2 ;讀取兩個字節(jié)的數(shù)字</p><p> MOV R1,#29H ;低位存入29H,高位存入28H</p><p
60、><b> RE0:</b></p><p> MOV R2,#8 ;數(shù)據(jù)一共有8位</p><p><b> RE1:</b></p><p><b> CLR C</b></p><p><b> SETB DQ</b>&
61、lt;/p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR DQ ;讀前總線保持為低</p><p><b> NOP</b></p><p><b> NOP
62、</b></p><p><b> NOP</b></p><p> SETB DQ ;開始讀總線釋放</p><p> MOV R3,#9;</p><p><b> RE2:</b></p><p> DJNZ R3,RE2
63、 ;延時18us</p><p> MOV C,DQ ;從總線讀到一個位</p><p> MOV R3,#23;</p><p><b> RE3:</b></p><p> DJNZ R3,RE3 ;等待50us</p><p> RR
64、C A ;把讀得的位值循環(huán)移給A</p><p> DJNZ R2,RE1 ;讀取下一位</p><p> MOV @R1,A;</p><p><b> DEC R1</b></p><p> DJNZ R4,RE0;</p><p><
65、b> RET</b></p><p> 注:當(dāng)從DS18B20 讀數(shù)據(jù)時,主機生成讀時間隙。當(dāng)主機把數(shù)據(jù)從高電平拉到低電平時,讀時間隙開始,數(shù)據(jù)線必須保持至少1μs;從DS18B20輸出的數(shù)據(jù)在讀時間隙的下降沿出現(xiàn)后15μs 內(nèi)有效。</p><p> 因此,主機在讀時間隙開始后必須把I/O 腳驅(qū)動拉為的電平保持15μs,以讀取I/O 腳狀態(tài)。在讀時間隙的結(jié)尾,I/
66、O 引腳將被外部上拉電阻拉到高電平。所有讀時間隙必須最少60μs,包括兩個讀周期至少1μs的恢復(fù)時間。</p><p><b> 讀時序</b></p><p> ?、讷@得實際測量溫度(溫度傳感器DS18B20把數(shù)據(jù)信息傳給單片機,完成數(shù)據(jù)信息的傳輸);</p><p> 數(shù)據(jù)轉(zhuǎn)化子程序部分:</p><p><
67、;b> TURN:</b></p><p> ANL 28H,#07H</p><p> ANL 29H,#0F0H</p><p><b> MOV A,28H</b></p><p><b> ORL 29H,A</b></p><p><
68、;b> MOV A,29H</b></p><p><b> SWAP A</b></p><p><b> MOV 29H,A</b></p><p><b> RET</b></p><p> 注:溫度傳感器DS18B20所測得的溫度數(shù)據(jù)低位存入
69、29H,高位存入28H,將28H中的低4位移入29H中的高4位,獲得一個新字節(jié),這個字節(jié)就是實際測量的溫度。</p><p> ?、蹖y量的溫度數(shù)據(jù)在兩位數(shù)碼管上顯示出來(單片機把數(shù)據(jù)信息傳給LED數(shù)碼管顯示器,實現(xiàn)溫度的數(shù)字化顯示)。</p><p> 溫度顯示子程序部分:</p><p><b> DISPLAY:</b></p&
70、gt;<p> MOV A,29H;</p><p> MOV B,#10;</p><p><b> DIV AB</b></p><p> MOV B_bit ,A ;十位在A</p><p> MOV A_bit,B ;個位在B</p><p&
71、gt; MOV DPTR ,#TABLE ;指定查表起始地址</p><p> MOV R0,#4;</p><p><b> DP1:</b></p><p> MOV R1,#250 ;顯示1000次</p><p><b> LOOP:</b></p>
72、<p> MOV A,A_bit ;取個位數(shù)</p><p> MOVC A,@a+DPTR ;查個位數(shù)的7段代碼</p><p> MOV P0,A ;送出個位的7段代碼</p><p> CLR P2.3 ;開個位顯示</p><p> ACALL DEL
73、AY</p><p> SETB P2.3</p><p> MOV A,B_bit ;取十位數(shù)</p><p> MOVC A,@A+DPTR ;查出十位數(shù)的7段代碼</p><p> MOV P0,A ;送出十位的7段代碼</p><p> CLR P2.2
74、 ;開十位顯示</p><p> ACALL DELAY ;顯示1ms</p><p><b> SETB P2.2</b></p><p> DJNZ R1,LOOP ;250次未完循環(huán)</p><p> DJNZ R0,DP1 ;4個250次未完循環(huán)
75、</p><p><b> RET</b></p><p><b> 8 實例測試</b></p><p> 實例測試:將寫入程序的單片機插入實驗板插座內(nèi),檢查溫度傳感器DS18B20連接正常后接通電源,此時,在兩位7段LED數(shù)碼管上將會準(zhǔn)確的顯示環(huán)境溫度,無需作任何調(diào)整。</p><p>
76、 為了觀察溫度傳感器DS18B20對穩(wěn)定變化的靈敏度,可以用手握住DS18B20管,會看到數(shù)碼管上顯示的穩(wěn)定很快上升至人體溫度值,再將手離開DS18B20管,溫度又會很快降至環(huán)境溫度值,溫度傳感器DS18B20的測量范圍為-55℃~+125℃,在-10℃~+85℃時精度為±0.5℃。</p><p> 總結(jié):本課程設(shè)計是在老師的指導(dǎo)下完成的。 培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一
77、件事情。在設(shè)計過程中,和同學(xué)們相互探討,相互學(xué)習(xí),從中學(xué)到了課堂上面學(xué)不到的東西,剛開始以為是很簡單就能做好,后來才知道其實有很多不應(yīng)該出現(xiàn)的小錯誤,讓我了解到最事情要踏踏實實的去做,在這次課程設(shè)計中我的手動能力和專業(yè)技能都有很大的提高。</p><p><b> 參 考 文 獻(xiàn)</b></p><p> 曹巧媛主編. 單片機原理及應(yīng)用(第二版). </p&
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫度傳感器課程設(shè)計報告
- 溫度傳感器課程設(shè)計報告
- 溫度傳感器課程設(shè)計報告
- 課程設(shè)計----溫度傳感器
- 溫度傳感器課程設(shè)計
- 溫度課程設(shè)計報告書--溫度傳感器
- 數(shù)字溫度傳感器課程設(shè)計論文
- 模電溫度傳感器課程設(shè)計
- 傳感器課程設(shè)計---半導(dǎo)體溫度傳感器應(yīng)用設(shè)計
- 18b20溫度傳感器課程設(shè)計報告
- 傳感器課程設(shè)計-數(shù)字溫度計
- 傳感器課程設(shè)計--基于ad590溫度傳感器的溫度系統(tǒng)的設(shè)計
- 二極管溫度傳感器課程設(shè)計報告
- 傳感器課程設(shè)計--利用集成溫度傳感器ad590設(shè)計電阻溫度計
- 傳感器課程設(shè)計
- 傳感器課程設(shè)計
- 傳感器課程設(shè)計
- 單片機課程設(shè)計基于數(shù)字溫度傳感器的數(shù)字溫度計課程設(shè)計報告
- 51單片機溫度傳感器課程設(shè)計報告書
- 傳感器課程設(shè)計
評論
0/150
提交評論