DS18B20溫度傳感器與單片機的接口電路_第1頁
DS18B20溫度傳感器與單片機的接口電路_第2頁
DS18B20溫度傳感器與單片機的接口電路_第3頁
DS18B20溫度傳感器與單片機的接口電路_第4頁
DS18B20溫度傳感器與單片機的接口電路_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、最佳答案 第2章 硬件電路詳細設計DS18B20的性能特點:1、采用單總線專用技術,既可通過串行口線,也可通過其它I/O口線與微機接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進制數(shù),含符號位),2、測溫范圍為-55-+125,測量分辨率為0.0625,3、內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM,4、適配各種單片機或系統(tǒng)機,5、用戶可分別設定各路溫度的上、下限,6、內(nèi)含寄生電源。溫度傳感器DS18B20連接方式:在寄生電源供電方式下,DS18B20從單線信號線上汲取能量,在信號線DQ處于高電平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄

2、生電源(電容)充電。如圖2.3所示。2.4 復位電路的設計本設計采用人工復位,將一個按扭開關并聯(lián)于上電自動復位電路按一下開關就在RST端出現(xiàn)一段時間的高電平,即器件復位。2.5 晶振電路的設計2.6 DS18B20溫度傳感器與單片機的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間

3、最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。2.7 溫度測量系統(tǒng)整體硬件電路Wei1 BIT P3.0 ;數(shù)碼管第1位Wei2 BIT P3.1 ;數(shù)碼管第2位Wei3 BIT P3.2 ;數(shù)碼管第3位Wei4 BIT P3.3 ;數(shù)碼管第4位Dian EQU 20H ;小數(shù)點狀態(tài)狀態(tài)保存字節(jié)DisData1 EQU 30H ;第1位顯示數(shù)據(jù)DisData2 EQU 31H ;第2位顯示數(shù)據(jù)DisData3 EQU 32H ;第3位顯示數(shù)據(jù)DisData4 EQU 33H ;第4位顯示數(shù)據(jù)DisTime EQU 34H ;設置顯示幾次后讀

4、取溫度值;溫度數(shù)據(jù)存儲單元標號定義TempL EQU 35H ;溫度高位TempH EQU 36H ;溫度低位;與DS18B20通迅部分存儲單元及標號定義DS18B20 BIT P1.0 ;與DS18B20通迅的位地址RFail BIT 21H.0 ;復位失敗標記Var EQU 22H ;變量字節(jié),溫度數(shù)據(jù)處理時用到Var2 EQU 3FH ;變量字節(jié) 主程序部分: ORG 00H LJMP START ORG 100HSTART: ;-初始化 MOV SP,#60H ;初始化堆棧指針Set18B20:;-DS18B20初始化 ;DS18B20復位 ACALL Reset JB RFail,L

5、OOP ;復位失敗則直接跳至顯示部分 ;對DS18B20發(fā)出Skip ROM命令 MOV A,#0CCH ACALL Write ;對DS18B20發(fā)出溫度轉(zhuǎn)換命令 MOV A,#44H ACALL WriteSetDisT:MOV DisTime,#3 ;設置下一個循環(huán)體的循環(huán)8次LOOP: ACALL Display ;顯示 JB RFail,Set18B20 ;DS18B20復位失敗時,在顯示完一次后重新復位 DJNZ DisTime,LOOP JNB DS18B20,$ ;判斷DS18B20是否已完成溫度轉(zhuǎn)換 ACALL GetTemp ;從DS18B20讀出溫度值 ACALL Dea

6、lTemp ;溫度值處理 ACALL SendDisDT ;根據(jù)當前系統(tǒng)狀態(tài)設置顯示內(nèi)容 SJMP SetDisT ;根據(jù)當前狀態(tài)給顯示模塊設置顯示參數(shù)SendDisDT: MOV Dian,#7FH ;最高位為0代表顯示小數(shù)點 ;傳送溫度值 MOV A,TempH ;送高位數(shù)據(jù) MOV VAR,TempL ;送低位數(shù)據(jù) ACALL TransData RET;A中保存高位值,Var中保存低位值TransData: ;取個位值 MOV B,#10 DIV AB MOV DisData2,B ;取十位值 JZ HavNot1 ;判斷商是否為0 MOV B,#10 DIV AB MOV DisDa

7、ta3,B JZ HavNot2 ;判斷商是否為0 MOV DisData4,A SJMP XiaoShu ;跳至百位符號處理部分HavNot1:MOV DisData3,#10 ;十位開始沒有數(shù)字HavNot2:MOV DisData4,#10 ;百位開始沒有數(shù)字SignJudge:;符號處理部分 JNB VAR.7,XiaoShu ;當為負數(shù)顯示符號 MOV A,#10 CJNE A,DisData3,BWSign MOV DisData3,#11 ;負號在十位 SJMP XiaoShuBWSign:MOV DisData4,#11 ;負號在百位XiaoShu:;小數(shù)處理部分,用查表法獲取

8、小數(shù)值,精確到小數(shù)點后1位 MOV A,VAR ANL A,#0FH MOV DPTR,#XSTab MOVC A,A+DPTR MOV DisData1,ARTransTemp: RETXSTab: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DS18B20通迅模塊組-復位模塊Reset: ;3微秒高電平 SETB DS18B20 MOV R7,#250 CLR RFail ;清0復位失敗標記 CLR DS18B20 ;延遲501uS DJNZ R7,$ SETB DS18B20 ;釋放總線(拉高數(shù)據(jù)線) ;等待DS18B20作出復位成功反應,最大等待時間為69uS

9、MOV R7,#17 Wait: JNB DS18B20,RReset ;若DS18B20在作出復位成功反應,不再等待 DJNZ R7,Wait SETB RFail ;70uS內(nèi)DS18B20作出復位成功反應,置1復位失敗標記 RReset: ;延遲350Us MOV R7,#174 DJNZ R7,$ SETB DS18B20 RET/;-向DS18B20寫一個字的模塊,要寫的內(nèi)容提前裝入ACC中Write: MOV R6,#8 ;寫8位 WriteBit: ;2微秒高電平 SETB DS18B20 MOV R7,#3 ;7微秒低電平 CLR DS18B20 DJNZ R7,$ ;ACC低

10、位送至DS18B20 RRC A MOV DS18B20,C ;延遲60Us MOV R7,#28 DJNZ R7,$ ;是否已寫完8位 DJNZ R6,WriteBitRWrite: SETB DS18B20 RET; /;-從DS18B20讀回一個字節(jié)的內(nèi)容,讀回的內(nèi)容裝入ACC中Read: MOV R6,#8 ;讀回8位 MOV A,#0 ;讀回的內(nèi)容裝入ACC中 ReadBit: ;2微秒高電平 SETB DS18B20 MOV R7,#7 ;2微秒低電平 CLR DS18B20 NOP ;16微秒高電平 SETB DS18B20 DJNZ R7,$ ;讀回一位數(shù)據(jù)放入ACC中 MOV

11、 C,DS18B20 RRC A ;延遲66Us MOV R7,#33 DJNZ R7,$ ;是否已讀完8位 DJNZ R6,ReadBitRRead: SETB DS18B20 RET/;-與DS18B20通迅,讀回兩字節(jié)溫度值,并裝入ACC中TempL和TempH中GetTemp: ACALL Reset ;復位 JB RFail,RGetTemp ;判斷復位是否成功 ;復位成功 ;對DS18B20發(fā)出Skip ROM命令 MOV A,#0CCH ACALL Write ;對DS18B20發(fā)出讀命令 MOV A,#0BEH ACALL Write ;從DS18B20讀回低8位溫度值 ACA

12、LL Read MOV TempL,A ;從DS18B20讀回高8位溫度值 ACALL Read MOV TempH,A ACALL Reset ;復位 JB RFail,RGetTemp ;判斷復位是否成功 ;對DS18B20發(fā)出Skip ROM命令 MOV A,#0CCH ACALL Write ;對DS18B20發(fā)出溫度轉(zhuǎn)換命令 MOV A,#44H ACALL WriteRGetTemp: RET溫度數(shù)據(jù)處理模塊DealTemp: ;將整數(shù)的二進制數(shù)部分移到一個字節(jié),符號位和小數(shù)部分移到一個字節(jié) MOV R1,#Var MOV Var,TempH MOV A,TempL XCHD A,

13、R1 ;符號位、小數(shù)部分至VAR(R1),整數(shù)部分至ACC SWAP A ;整數(shù)部分處理 JNB Var.7,NotNeg ;判斷是否為負數(shù) CPL A ;為負數(shù),取反后加1得其絕對值 ;小數(shù)部分取反 XRL Var,#1FH ; INC Var NotNeg: MOV TempH,A MOV TempL,Var RET 顯示模塊-顯示DisData(30H)從開始的三個字節(jié)保存顯示信息Display: MOV DPTR,#Tab ;*顯示小數(shù)部分 MOV A,DisData1 MOVC A,A+DPTR MOV P2,A CLR Wei1 ACALL Delay SETB Wei1 ;*顯示個位 MOV A,DisData2 MOVC A,A+DPTR ;小數(shù)點處理 ANL A,Dian MOV P2,A CLR Wei2 ACALL Delay SETB Wei2 ;*顯示十位 MOV A,DisData3 MOVC A,A+DPTR MOV P2,A CLR Wei3 ACALL Delay SETB Wei3 ;*顯示百位 MOV A,DisData4 MOVC A,A+DPTR MOV P2,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論