單片機(jī)DS1820單總線數(shù)字溫度計(jì)單片機(jī)課程設(shè)計(jì)方案_第1頁
單片機(jī)DS1820單總線數(shù)字溫度計(jì)單片機(jī)課程設(shè)計(jì)方案_第2頁
單片機(jī)DS1820單總線數(shù)字溫度計(jì)單片機(jī)課程設(shè)計(jì)方案_第3頁
單片機(jī)DS1820單總線數(shù)字溫度計(jì)單片機(jī)課程設(shè)計(jì)方案_第4頁
單片機(jī)DS1820單總線數(shù)字溫度計(jì)單片機(jī)課程設(shè)計(jì)方案_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機(jī)課程設(shè)計(jì)DS1820單總線數(shù)字溫度計(jì)一統(tǒng)設(shè)計(jì)目的,用途,功能1,目的:.S1820溫度傳感器控制溫度,熟悉芯片的使用,溫度傳感器的功能,實(shí)驗(yàn)電路板的焊接,數(shù)碼顯示管的使用,匯編語言的設(shè)計(jì)。鍛煉團(tuán)隊(duì)合作能力,動手設(shè)計(jì)能力以及發(fā)現(xiàn)問題并且解決問題的能力。2,用途:溫度是工業(yè)控制中主要的被控參數(shù)之一。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。

3,功能.:DS1820溫度傳感器溫度的精確度高達(dá)0.1度,在許多工業(yè)控制中已經(jīng)足夠??梢詽M足從-55攝氏度到+125攝氏度測量范圍,在一秒內(nèi)把溫度轉(zhuǎn)化成數(shù)字,測得的溫度值的存儲在兩個八位的RAM中,單片機(jī)直接從中讀出數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制就是溫度,使用方便。

從用途上講,該單片機(jī)類似于溫度計(jì),但用途又不僅僅集限于溫度計(jì),由于蜂鳴器的使用,編寫程序后,超過預(yù)設(shè)溫度后,蜂鳴器發(fā)出蜂鳴聲,為工業(yè)控制的安全保駕護(hù)航。二試驗(yàn)原原理DS1820單總線數(shù)字溫度計(jì)引腳圖DS1820單總線數(shù)字溫度計(jì)一般說明:

DS1820數(shù)字溫度計(jì)提供9位溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DS1820或從DS1820送出因此從中央處理器到DS1820僅需連接一條

線和地讀寫和完成溫度變換所需的電源可以由數(shù)據(jù)線本身提供而不需要外部電源因?yàn)槊恳粋€DS1820有唯一的系列號siliconserialnumber因此多個DS1820可以存在于同一條單線總線上這允許在許多不同的地方放置溫度靈敏器件此性的應(yīng)用范圍包括HVAC環(huán)境控制建筑物設(shè)備或機(jī)械內(nèi)的溫度檢測以及過程監(jiān)視控制中的溫度檢測特性獨(dú)特的單線接口只需1個接口引腳即可通信多點(diǎn)multidro能力使分布式溫度檢測應(yīng)用得以簡化不需要外部元件可用數(shù)據(jù)線供電不需備份電源圖1的方框圖表示DS1820的主要部件DS1820有三個主要的數(shù)據(jù)部件164位激光laseredROM;2溫度靈敏元件和3非易失性溫度告警觸發(fā)器TH和TL64位激光ROM

每一DS1820包括一個唯一的64位長的ROM編碼開紿的8位是單線產(chǎn)品系列編碼

DS1820編碼是10h接著的48位是唯一的系列號最后的8位是開始56位CRC見圖564位ROM和ROM操作控制部分允許DS1820作為一個單線器件工作并循單線總線系統(tǒng)一節(jié)中所詳述的單線協(xié)議直到ROM操作協(xié)議被滿足DS1820控制分的功能是不可訪問的此協(xié)議在ROM操作協(xié)議流程圖圖6中敘述單線總線主機(jī)必須首先操作五種ROM操作命令之一1ReadROM(讀ROM),2)MatchROM(匹配ROM),3)SearchROM(搜索ROM),4)SkipROM(跳過ROM),或5)AlarmSearch告警搜索在成功地執(zhí)行了ROM操作序列之后DS1820特定的功能便可訪問然后總線上主機(jī)可提供六個存貯器和控制功能命令之一

DS1820內(nèi)部結(jié)構(gòu)框圖如圖1所示。

DS1820測溫原理如圖2所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。

在正常測溫情況下,DS1820的測溫分辯率為0.5℃以9位數(shù)據(jù)格式表示,其中最低有效位(LSB)由比較器進(jìn)行0.25℃比較,當(dāng)計(jì)數(shù)器1中的余值轉(zhuǎn)化成溫度后低于0.25℃時,清除溫度寄存器的最低位(LSB),當(dāng)計(jì)數(shù)器1中的余值轉(zhuǎn)化成溫度后高于0.25℃,置位溫度寄存器的最低位(LSB),如-25.5℃對應(yīng)的9位數(shù)據(jù)格式如下:

2提高DS1820測溫精度的途徑

2.1DS1820高精度測溫的理論依據(jù)

DS1820正常使用時的測溫分辨率為0.5℃,這對于水輪發(fā)電機(jī)組軸瓦溫度監(jiān)測來講略顯不足,在對DS1820測溫原理詳細(xì)分析的基礎(chǔ)上,我們采取直接讀取DS1820內(nèi)部暫存寄存器的方法,將DS1820的測溫分辨率提高到0.1℃~0.01℃.

DS1820內(nèi)部暫存寄存器的分布如表1所示,其中第7字節(jié)存放的是當(dāng)溫度寄存器停止增值時計(jì)數(shù)器1的計(jì)數(shù)剩余值,第8字節(jié)存放的是每度所對應(yīng)的計(jì)數(shù)值,這樣,我們就可以通過下面的方法獲得高分辨率的溫度測量結(jié)果。首先用DS1820提供的讀暫存寄存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實(shí)際溫度整數(shù)部分T整數(shù),然后再用BEH指令讀取計(jì)數(shù)器1的計(jì)數(shù)剩余值M剩余和每度計(jì)數(shù)值M每度,考慮到DS1820測量溫度的整數(shù)部分以0.25℃、三溫度傳感器ds1820的匯編程序

這是關(guān)于DS18B20的讀寫程序,數(shù)據(jù)腳P3.4,晶振12MHZ

溫度傳感器18B20匯編程序,采用器件默認(rèn)的12位轉(zhuǎn)化,最大轉(zhuǎn)化時間750微秒

可以將檢測到的溫度直接顯示到連接到AT89C2051的兩個數(shù)碼管上

顯示溫度00到99度,很準(zhǔn)確哦~~無需校正!ORG

0000H

;單片機(jī)內(nèi)存分配申明!

TEMPER_L

EQU

29H

;用于保存讀出溫度的低8位

TEMPER_H

EQU

28H

;用于保存讀出溫度的高8位

FLAG1

EQU

38H

;是否檢測到DS1820標(biāo)志位

A_BIT

EQU

20H

;數(shù)碼管個位數(shù)存放內(nèi)存位置

B_BIT

EQU

21H

;數(shù)碼管十位數(shù)存放內(nèi)存位置

MAIN:

LCALL

GET_TEMPER;調(diào)用讀溫度子程序

;顯示范圍00到99度,顯示精度為1度

;因?yàn)?2位轉(zhuǎn)化時每一位的精度為0.0625度,我們不要求顯示小數(shù)所以可以拋棄29H的低4位

;將28H中的低4位移入29H中的高4位,這樣獲得一個新字節(jié),這個字節(jié)就是實(shí)際測量獲得的溫度

;這個轉(zhuǎn)化溫度的方法非常簡潔,無需乘于0.0625系數(shù)

MOV

A,29H

MOV

C,40

;將28H中的最低位移入C

RRC

A

MOV

C,41H

RRC

A

MOV

C,42H

RRC

A

MOV

C,43H

RRC

A

MOV

29H,A

LCALL

DISPLAY

;調(diào)用數(shù)碼管顯示子程序

AJMP

MAIN

;這是DS18B20復(fù)位初始化子程序

INIT_1820:SETB

P3.4

NOP

CLR

P3.4

;主機(jī)發(fā)出延時537微秒的復(fù)位低脈沖

MOV

R1,#3

TSR1:

MOV

R0,#107

DJNZ

R0,$

DJNZ

R1,TSR1

SETB

P3.4

;然后拉高數(shù)據(jù)線

NOP

NOP

NOP

MOV

R0,#25H

TSR2:

JNB

P3.4,TSR3;等待DS1820回應(yīng)

DJNZ

R0,TSR2

;延時

LJMP

TSR4

TSR3:

SETB

FLAG1

;置標(biāo)志位,表示DS1820存在

LJMP

TSR5

TSR4:

CLR

FLAG1

;清標(biāo)志位,表示DS1820不存在

LJMP

TSR7

TSR5:

MOV

R0,#117

TSR6:

DJNZ

R0,TSR6

;時序要求延時一段時間

TSR7:

SETB

P3.4

RET

;讀出轉(zhuǎn)換后的溫度值

GET_TEMPER:SETB

P3.4

LCALL

INIT_1820;先復(fù)位DS1820

JB

FLAG1,TSS2

RET

;判斷DS1820是否存在?若DS1820不存在則返回

TSS2:

MOV

A,#0CCH

;跳過ROM匹配

LCALL

WRITE_1820

MOV

A,#44H

;發(fā)出溫度轉(zhuǎn)換命令

LCALL

WRITE_1820

;這里通過調(diào)用顯示子程序?qū)崿F(xiàn)延時一段時間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒

LCALL

DISPLAY

LCALL

INIT_1820;準(zhǔn)備讀溫度前先復(fù)位

MOV

A,#0CCH

;跳過ROM匹配

LCALL

WRITE_1820

MOV

A,#0BEH

;發(fā)出讀溫度命令

LCALL

WRITE_1820

LCALL

READ_18200;將讀出的溫度數(shù)據(jù)保存到35H/36H

RET

;寫DS18B20的子程序(有具體的時序要求)

WRITE_1820:MOV

R2,#8

;一共8位數(shù)據(jù)

CLR

C

WR1:

CLR

P3.4

MOV

R3,#6

DJNZ

R3,$

RRC

A

MOV

P3.4,C

MOV

R3,#23

DJNZ

R3,$

SETB

P3.4

NOP

DJNZ

R2,WR1

SETB

P3.4

RET

;讀DS1820的程序,從DS1820中讀出兩個字節(jié)的溫度數(shù)據(jù)

READ_18200:MOV

R4,#2

;將溫度高位和低位從DS1820中讀出

MOV

R1,#29H

;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:

MOV

R2,#8

;數(shù)據(jù)一共有8位

RE01:

CLR

C

SETB

P3.4

NOP

NOP

CLR

P3.4

NOP

NOP

NOP

SETB

P3.4

MOV

R3,#9

RE10:

DJNZ

R3,RE10

MOV

C,P3.4

MOV

R3,#23

RE20:

DJNZ

R3,RE20

RRC

A

DJNZ

R2,RE01

MOV

@R1,A

DEC

R1

DJNZ

R4,RE00

RET

;顯示子程序

DISPLAY:

MOV

A,29H

;將29H中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制

MOV

B,#10

;10進(jìn)制/10=10進(jìn)制

DIV

AB

MOV

B_BIT,A

;十位在a

MOV

A_BIT,B

;個位在b

MOV

DPTR,#NUMTAB

;指定查表啟始地址

MOV

R0,#4

DPL1:

MOV

R1,#250

;顯示1000次

DPLOP:

MOV

A,A_BIT

;取個位數(shù)

MOVC

A,@A+DPTR

;查個位數(shù)的7段代碼

MOV

P1,A

;送出個位的7段代碼

CLR

P3.7

;開個位顯示

ACALL

D1MS

;顯示1ms

SETB

P3.7

MOV

A,B_BIT

;取十位數(shù)

MOVC

A,@A+DPTR

;查十位數(shù)的7段代碼

MOV

P1,A

;送出十位的7段代碼

CLR

P3.5

;開十位顯示

ACALL

D1MS

;顯示1ms

SETB

P3.5

DJNZ

R1,DPLOP

;250次沒完循環(huán)

DJNZ

R0,DPL1

;4個250次沒完循環(huán)

RET

;1MS延時(按12MHZ算)

D1MS:

MOV

R7,#80

DJNZ

R7,$

RET

;7段數(shù)碼管0~9數(shù)字的共陽顯示代碼

NUMTAB:

DB081H,0CFH,092H,086H,0CCH,0A4H,0A0H,08FH,080H,084H

END

溫度控制流程圖四:總結(jié)及體會在DS1820測溫程序設(shè)計(jì)中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)計(jì)時也要給予一定的重視。經(jīng)過一個學(xué)期的學(xué)習(xí)和實(shí)踐,我們終于做出了這個項(xiàng)目。由于剛接

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論