![數(shù)字溫度計(jì)3609526732_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/b8e2449f-e342-4b1a-ace4-5f7b79132687/b8e2449f-e342-4b1a-ace4-5f7b791326871.gif)
![數(shù)字溫度計(jì)3609526732_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/b8e2449f-e342-4b1a-ace4-5f7b79132687/b8e2449f-e342-4b1a-ace4-5f7b791326872.gif)
![數(shù)字溫度計(jì)3609526732_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/b8e2449f-e342-4b1a-ace4-5f7b79132687/b8e2449f-e342-4b1a-ace4-5f7b791326873.gif)
![數(shù)字溫度計(jì)3609526732_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/b8e2449f-e342-4b1a-ace4-5f7b79132687/b8e2449f-e342-4b1a-ace4-5f7b791326874.gif)
![數(shù)字溫度計(jì)3609526732_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/26/b8e2449f-e342-4b1a-ace4-5f7b79132687/b8e2449f-e342-4b1a-ace4-5f7b791326875.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)課程設(shè)計(jì)報(bào)告數(shù)字溫度計(jì)1 設(shè)計(jì)要求基本范圍-50-110精度誤差小于0.5LED數(shù)碼直讀顯示2 擴(kuò)展功能實(shí)現(xiàn)語(yǔ)音報(bào)數(shù)可以任意設(shè)定溫度的上下限報(bào)警功能數(shù)字溫度計(jì)摘要:隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的數(shù)字溫度計(jì),本溫度計(jì)屬于多功能溫度計(jì),可以設(shè)置上下報(bào)警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)時(shí),可以報(bào)警。 關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字控制,溫度計(jì), DS18B20,AT89S511 引言隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例
2、子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)AT89S51,測(cè)溫傳感器使用DS18B20,用3位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。2 總體設(shè)計(jì)方案2.1數(shù)字溫度計(jì)設(shè)計(jì)方案論證2.1.1方案一由于本設(shè)計(jì)是測(cè)溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測(cè)溫度變化的電壓或電流采集過
3、來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。 方案二 進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡(jiǎn)單,軟件設(shè)計(jì)也比較簡(jiǎn)單,故采用了方案二。2.2方案二的總體設(shè)計(jì)框圖溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖1所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)
4、據(jù)實(shí)現(xiàn)溫度顯示。主 控 制 器LED顯 示溫 度 傳 感 器單片機(jī)復(fù)位時(shí)鐘振蕩報(bào)警點(diǎn)按鍵調(diào)整 圖1總體設(shè)計(jì)方框圖2.2.1 主控制器單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。2.2.2 顯示電路顯示電路采用3位共陽(yáng)LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。2.2.3溫度傳感器DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B
5、20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以或位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作; DS18B20采用腳PR35封裝或腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2所示。C64 位ROM和單線接口高速緩存存儲(chǔ)器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器8位CRC發(fā)生器Vdd I/O圖2 DS18B20內(nèi)部結(jié)構(gòu)64位RO
6、M的結(jié)構(gòu)開始位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有48位,最后位是前面56位的CRC檢驗(yàn)碼,這也是多個(gè)DS18B20可以采用一線進(jìn)行通信的原因。溫度報(bào)警觸發(fā)器和,可通過軟件寫入戶報(bào)警上下限。DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3所示。頭個(gè)字節(jié)包含測(cè)得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低位一直為,是工作
7、模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為,用戶要去改動(dòng),R1和0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC圖3 DS18B20字節(jié)定義由表1可見,DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存的第、字節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶
8、符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第、字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表1 DS18B20溫度轉(zhuǎn)換時(shí)間表 DS18B20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與RAM中的TH、T字節(jié)內(nèi)容作比較。若TH或TTL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出的報(bào)警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64
9、位ROM的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器、溫度寄存器中
10、,計(jì)數(shù)器和溫度寄存器被預(yù)置在55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器的預(yù)置值減到時(shí),溫度寄存器的值將加,減法計(jì)數(shù)器的預(yù)置將重新被裝入,減法計(jì)數(shù)器重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。表2一部分溫度對(duì)應(yīng)值表溫度/二進(jìn)制表示十六進(jìn)制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+2
11、5.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作按協(xié)議進(jìn)行。操作
12、協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。圖4 DS18B20與單片機(jī)的接口電路2.3 DS18B20溫度傳感器與單片機(jī)的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖4 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對(duì)總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只
13、有一根線,因此發(fā)送接口必須是三態(tài)的。2.4 系統(tǒng)整體硬件電路2.4.1 主板電路系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等,如圖5 所示。圖5中有三個(gè)獨(dú)立式按鍵可以分別調(diào)整溫度計(jì)的上下限報(bào)警設(shè)置,圖中蜂鳴器可以在被測(cè)溫度不在上下限范圍內(nèi)時(shí),發(fā)出報(bào)警鳴叫聲音,同時(shí)LED數(shù)碼管將沒有被測(cè)溫度值顯示,這時(shí)可以調(diào)整報(bào)警上下限,從而測(cè)出被測(cè)的溫度值。圖5 中的按健復(fù)位電路是上電復(fù)位加手動(dòng)復(fù)位,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。2.4.2 顯示電路顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源
14、比較少,只用p3口的RXD,和TXD,串口的發(fā)送和接收,四只數(shù)碼管采用74LS164右移寄存器驅(qū)動(dòng),顯示比較清晰。 圖5 單片機(jī)主板電路圖6 溫度顯示電路3系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖7所示。Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束NNY初始化調(diào)用顯示子程序1S到
15、?初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYNY圖7 主程序流程圖圖8讀溫度流程圖 3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖8示發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束圖9 溫度轉(zhuǎn)換流程圖3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖9所示3.4 計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BC
16、D碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖10所示。 開始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志計(jì)算小數(shù)位溫度BCD值 計(jì)算整數(shù)位溫度BCD值 結(jié)束置“+”標(biāo)志NY溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束NNYY 圖10計(jì)算溫度流程圖 圖11顯示數(shù)據(jù)刷新流程圖3.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖11。參考文獻(xiàn)1李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).杭州:北京航空航天大學(xué)出版社,19982李廣弟.單片機(jī)基礎(chǔ).北京:
17、北京航空航天大學(xué)出版社,19943閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,19894廖常初.現(xiàn)場(chǎng)總線概述J.電工技術(shù),1999.數(shù)字溫度計(jì)程序清單S1OK EQU 5FHTEMPUTER EQU 39H TEMPH EQU 5EH TEMPLEQU 5DH MS50 EQU 5CHSIGN EQU 5BH S1 BIT P1.0 S2 BIT P1.1 S3 BIT P1.2 S4 BIT P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TOIT ORG 0030HMAIN: MOV SP, #60H MOV TMOD, #01H MOV TH
18、0, #3CH MOV TL0, #0B0H SETB ET0 SETB TR0 SETB EA MOV TEMPH, #30 MOV TEMPL, #9 MOV TEMPUTER, #15 ;溫度最始值 MOV S1OK, #00H MOV SIGN, #00H MOV 38H, #0BH MOV 37H, #0CH MOV 36H, #0BH ACALL DISP ACALL T1S; *; 主程序START: JB S1, NET1 ACALL T12MS JB S1, NET1 JNB S1, $ INC SIGN MOV A, SIGN CJNE A, #1, TIAO ACALL
19、TIAOTL TIAO:CJNE A, #2, NET1 MOV SIGN, #0 ACALL TIAOTH; * NET1: MOV A, S1OK CJNE A, #1, START MOV A, TEMPUTER SUBB A, TEMPH JNB ACC.7, ALEM MOV A, TEMPUTER SUBB A, TEMPL JB ACC.7, ALEM SETB P2.1 ACALL WENDU ACALL DISP MOV S1OK, #00H AJMP START ALEM: MOV 36H, #0CH MOV 37H, #0CH MOV 38H, #0CH CLR P2.1
20、 ACALL DISP ACALL T1S LCALL WENDU LCALL DISP MOV S1OK, #00H SJMP START;*TIAOTL:MOV 50H, TEMPUTER MOV 37H, TEMPL ACALL BIN_BCD ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS MOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD1 AC
21、ALL T12MS JB S2, ADD1 JNB S2, $ INC TEMPL MOV A, TEMPL CJNE A, #100, ADD1 MOV TEMPL, #0 ADD1: JB S3, ADD2 ACALL T12MS JB S3, ADD2 JNB S3, $ DEC TEMPL MOV A, TEMPL CJNE A, #00 , ADD2 MOV TEMPL,#100 ADD2: JB S4, TIAOTL ACALL T12MS JB S4, TIAOTL JNB S4, $ MOV TEMPUTER, 50H LJMP START ; 高位調(diào)整; *TIAOTH:MO
22、V 50H, TEMPUTER MOV 37H, TEMPH ACALL BIN_BCD ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS MOV 36H, #0AH MOV 37H, #0AH MOV 38H, #0AH ACALL DISP ACALL T12MS ACALL T12MS ACALL T12MS ACALL T12MS JB S2, ADD11 ACALL T12MS JB S2, ADD11 JNB S2, $ INC TEMPH MOV A, TEMPH CJNE A, #100, ADD11 MOV
23、TEMPH, #0 ADD11: JB S3, ADD22 ACALL T12MS JB S3, ADD22 JNB S3, $ DEC TEMPH MOV A, TEMPH CJNE A, #00 , ADD22 MOV TEMPH,#100 ADD22: JB S4, TIAOTH ACALL T12MS JB S4, TIAOTH JNB S4, $ MOV TEMPUTER, 50H LJMP START; 一秒定時(shí)中段; *TOIT: PUSH PSW PUSH ACC MOV TH0, #3CH MOV TL0, #0B0H INC MS50 MOV A, MS50 CJNE A,
24、 #14H, RETURN MOV S1OK, #1 MOV MS50, #00H RETURN:POP ACC POP PSW RETI; *;溫度總子程序; *wendu: ACALL INIT_1820 ACALL RE_CONFIG ACALL GET_TEMPER ACALL TEMPER_COV RET; *;DS18B20初始化程序; * INIT_1820: SETB P2.0 NOP CLR P2.0 MOV R0,#06BH MOV R1,#03HTSR1: DJNZ R0,TSR1 ; 延時(shí) MOV R0,#6BH DJNZ R1,TSR1 SETB P2.0 NOP N
25、OP NOP MOV R0,#25HTSR2: JNB P2.0,TSR3 DJNZ R0,TSR2 LJMP TSR4 ; 延時(shí)TSR3: SETB 20H.1 ; 置標(biāo)志位,表示DS1820存在 LJMP TSR5TSR4: CLR 20H.1 ; 清標(biāo)志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#06BH MOV R1,#03HTSR6:DJNZ R0,TSR6 ; 延時(shí) MOV R0,#6BH DJNZ R1,TSR6TSR7:SETB P2.0 RET; *; 重新寫DS18B20暫存存儲(chǔ)器設(shè)定值; *RE_CONFIG:JB 20H.1,RE_CONF
26、IG1 ; 若DS18B20存在,轉(zhuǎn)RE_CONFIG1 RETRE_CONFIG1: MOV A,#0CCH ; 發(fā)SKIP ROM命令 LCALL WRITE_1820 MOV A,#4EH ; 發(fā)寫暫存存儲(chǔ)器命令 LCALL WRITE_1820 MOV A,#00H ; TH(報(bào)警上限)中寫入00H LCALL WRITE_1820 MOV A,#00H ; TL(報(bào)警下限)中寫入00H LCALL WRITE_1820 MOV A,#1FH ; 選擇9位溫度分辨率 LCALL WRITE_1820 RET; *; 讀出轉(zhuǎn)換后的溫度值; *GET_TEMPER: SETB P2.0 ;
27、 定時(shí)入口 LCALL INIT_1820 JB 20H.1,TSS2 RET ; 若DS18B20不存在則返回TSS2: MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE_1820 LCALL INIT_1820 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發(fā)出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 MOV 37H,A ; 將讀出的溫度數(shù)據(jù)保存 RET; *; 寫DS18B20的程序; *WRITE_1820: MOV R2,#8 CLR CWR1:CLR P2.0 NOP NOP NOP NOP RRC A MOV P2.0,C MOV R3,#35 DJNZ R3,$ SETB P2.0 NOP DJNZ R2,WR1 SETB P2.0 RET; *; 讀DS18B20的程序,從DS18B20中讀出兩個(gè)字節(jié)的溫度數(shù)據(jù); *READ_18200: MOV R4,#2 ; 將溫度高位和低位DS18B20中讀 RE00:MOV R2,#8RE01:CLR C SETB P2.0 NOP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025委托招標(biāo)代理合同
- 2025【合同范本】建筑工程施工合同示本
- 2025二手空調(diào)購(gòu)銷合同范本
- 長(zhǎng)城遺址修繕方案
- 促銷活動(dòng)合同范例
- 2024年六年級(jí)品社下冊(cè)《去中學(xué)看看》說課稿2 蘇教版
- 配件報(bào)價(jià)實(shí)施方案
- 2024年五年級(jí)英語(yǔ)下冊(cè) Unit 4 Did You Have a Nice Trip Lesson 19 Li Ming Goes Home說課稿 冀教版(三起)
- 貴州籠式球場(chǎng)護(hù)欄施工方案
- 砂石加工賬目處理方案
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購(gòu)?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購(gòu)管理辦法及實(shí)施細(xì)則(試行)
- 初中英語(yǔ)-Unit2 My dream job(writing)教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 廣州市勞動(dòng)仲裁申請(qǐng)書
- 江西省上饒市高三一模理綜化學(xué)試題附參考答案
- 23-張方紅-IVF的治療流程及護(hù)理
- 頂部板式吊耳計(jì)算HGT-20574-2018
- 因數(shù)和倍數(shù)復(fù)習(xí)思維導(dǎo)圖
- LY/T 2986-2018流動(dòng)沙地沙障設(shè)置技術(shù)規(guī)程
- 三級(jí)教育考試卷(電工)答案
評(píng)論
0/150
提交評(píng)論