全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章 系統(tǒng)程序的設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)內(nèi)容系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計(jì)算溫度子程序、測(cè)量序列號(hào)子程序、顯示數(shù)據(jù)刷新子程序等。4.1.1主程序 主程序主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出處理DS18B20的測(cè)量溫度值。主程序流程圖如圖4-1所示:開(kāi)始調(diào)用顯示子程序顯示當(dāng)前四路溫度初始化讀取并顯示序列號(hào)圖4-1 主程序流程圖4.1.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié)。在讀出時(shí)須進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。讀出溫度子程序流程圖如圖4-2所示: 開(kāi)始復(fù)位DS18B20發(fā)跳過(guò)ROM命令發(fā)出溫度轉(zhuǎn)換命令轉(zhuǎn)換完畢復(fù)位DS18B20發(fā)匹配ROM命令發(fā)1個(gè)DS18B20序列號(hào)讀溫度值存入儲(chǔ)存器指向下一個(gè)延時(shí)NY圖4-2 讀出溫度子程序流程圖4.1.3 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí),轉(zhuǎn)換時(shí)間約為750ms。在本程序設(shè)計(jì)中,采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖4-3所示:發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)ROM命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束圖4-3 溫度轉(zhuǎn)換命令子程序流程圖4.1.4計(jì)算溫度子程序 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定。計(jì)算溫度子程序流程圖如圖4-4所示:開(kāi)始溫度零下?溫度值取補(bǔ)碼置“-”標(biāo)志位計(jì)算小數(shù)位溫度BCD值計(jì)算小數(shù)位溫計(jì)算小數(shù)位溫度BCD值度BCD值結(jié)束置“+”標(biāo)志NY圖4-4 計(jì)算溫度子程序流程圖4.1.5 溫度數(shù)據(jù)的計(jì)算處理方法 從DS18B20讀取出的二進(jìn)制值必須轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。DS18B20的轉(zhuǎn)換精度為912位,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。通過(guò)觀察表4-1可以發(fā)現(xiàn),一個(gè)十進(jìn)制與二進(jìn)制間有很明顯的關(guān)系,就是把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個(gè)字節(jié)的二進(jìn)制化為十進(jìn)制后,就是溫度值的百、十、個(gè)位字節(jié),所以二進(jìn)制值范圍是0F,轉(zhuǎn)換成十進(jìn)制小數(shù)就是0.0625的倍數(shù)(015倍)。這樣需要4位的數(shù)碼管來(lái)表示小數(shù)部分。實(shí)際應(yīng)用不必這么高的精度,采用1位數(shù)碼管來(lái)顯示小數(shù),可以精確到0.1。表4.5 二進(jìn)制與十進(jìn)制的近似對(duì)應(yīng)關(guān)系表小數(shù)部分二進(jìn)制值0123456789ABCDEF十進(jìn)制值00112334556678894.2 源程序4.2.1 DS18B20的各條ROM命令 (1)Read ROM33H。這條命令允許總線控制器獨(dú)到DS18B20的8位系列編碼、唯一的序列號(hào)和8位CRC碼。只要在總線上存在單只DS18B20時(shí),才能使用該命令。如果總線上有不止一個(gè)從機(jī),則當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路連在一起形成相“與”的效果)。(2)Match ROM55H.這是一條匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點(diǎn)總線上定位一只特定的DS18B20.只有與64位ROM序列完全匹配的DS18B20才能響應(yīng)隨后的存儲(chǔ)器操作.所有與64位ROM序列不匹配的從機(jī)都將等待復(fù)位脈沖.這條命令在總線上有單個(gè)或多個(gè)器件時(shí)都可以使用.(3)Skip ROM0CCH.這條命令允許總線控制器不用提供64位ROM編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間.如果總線上不止一個(gè)從機(jī),則在Skip ROM命令之后跟著發(fā)一條讀命令.由于多個(gè)從機(jī)同時(shí)傳送信號(hào),所以總線上就會(huì)發(fā)生數(shù)據(jù)沖突(漏極開(kāi)路下拉效果相當(dāng)于相“與”)。(4)Search ROM0F0H。當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能并不知道單線總線上有多少個(gè)器件或它們的64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從機(jī)的64位編碼。(5)Alarm Search0ECH。這條命令的流程與Search ROM相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況下,DS18B20才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件。(6)Write Scratchpad4EH。這條命令向DS18B20的暫存器TH和TL中寫(xiě)入數(shù)據(jù)??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。(7)Read Scratchapad0BEH。這條命令讀取暫存器的內(nèi)容。讀取將從第一字節(jié)開(kāi)始,一直進(jìn)行下去,直到第九字節(jié)(CRC)讀完。如果不想讀完所有字節(jié),則控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。(8)Copy Scratchpad48H。這條命令把暫存器的內(nèi)容拷貝到DS18B20的EPROM存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于把暫存器拷貝到EPROM存儲(chǔ)器,則DS18B20就會(huì)輸出一個(gè)0;如果拷貝結(jié)束,則DS18B20輸出1。如果使用寄生電源,則總線控制器必須在這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。(9)Convert T44H。這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行后DS18B20保持等待狀態(tài)。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做時(shí)間轉(zhuǎn)換,則DS18B20將在總線上輸出0;如果溫度轉(zhuǎn)換成功,則輸出1。如果使用寄生電源,則總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并保持500ms以上時(shí)間。(10)Recall E0B8H。這條命令把報(bào)警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存器里馬上就存在有效
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度船舶建造與船舶設(shè)計(jì)咨詢(xún)合同3篇
- 2025年度個(gè)人汽車(chē)貸款擔(dān)保債務(wù)重組合同范本3篇
- 2025年魯人新版七年級(jí)物理上冊(cè)月考試卷
- 2025年粵人版選修3生物下冊(cè)月考試卷含答案
- 2025年外研版2024八年級(jí)歷史上冊(cè)月考試卷
- 2025年人教版選擇性必修1化學(xué)下冊(cè)階段測(cè)試試卷
- 2025常用版電子設(shè)備買(mǎi)賣(mài)合同樣書(shū)
- 2025場(chǎng)地租賃合同簡(jiǎn)單版
- 2025二手房的買(mǎi)賣(mài)標(biāo)準(zhǔn)合同書(shū)
- 2025版智慧社區(qū)快遞柜場(chǎng)地租賃及快遞配送服務(wù)協(xié)議3篇
- 項(xiàng)目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計(jì)
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動(dòng)控制的先進(jìn)性說(shuō)明
- 《企業(yè)管理課件:團(tuán)隊(duì)管理知識(shí)點(diǎn)詳解PPT》
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)二 軟文的寫(xiě)作
- 英語(yǔ)詞匯教學(xué)中落實(shí)英語(yǔ)學(xué)科核心素養(yǎng)
- 《插畫(huà)設(shè)計(jì)》課程標(biāo)準(zhǔn)
- 高中英語(yǔ)名詞性從句講解
- 尤單抗注射液說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論