基于單片機(jī)的DS18B20溫度測(cè)量_第1頁(yè)
基于單片機(jī)的DS18B20溫度測(cè)量_第2頁(yè)
基于單片機(jī)的DS18B20溫度測(cè)量_第3頁(yè)
基于單片機(jī)的DS18B20溫度測(cè)量_第4頁(yè)
基于單片機(jī)的DS18B20溫度測(cè)量_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于DS18B20的溫度測(cè)量系統(tǒng) 1. 課題要求測(cè)量環(huán)境中的溫度,以BCD碼的形式在LED上顯示2. 設(shè)計(jì)背景隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能夠獨(dú)立工作的溫度檢測(cè)和顯示系統(tǒng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測(cè)以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號(hào)處理電路,而且可靠性相對(duì)較差,測(cè)溫準(zhǔn)確度低,檢測(cè)系統(tǒng)也有一定的誤差,這里設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。本設(shè)計(jì)選用AT89C51單片機(jī)作為主控制器件,DS18B20作為測(cè)溫傳感器,通過(guò)LM016L實(shí)現(xiàn)溫度顯示。通過(guò)DS18B20直接讀取被測(cè)溫度值,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,該器件的物

2、理化學(xué)性能穩(wěn)定,線性度較好,在0100最大線性偏差小于0.01。該器件可直接向單片機(jī)傳輸數(shù)字信號(hào),便于單片機(jī)處理及控制。另外,該溫度計(jì)還能直接采用測(cè)溫器件測(cè)量溫度,從而簡(jiǎn)化數(shù)據(jù)傳輸與處理過(guò)程。3. 設(shè)計(jì)方案3.1總體設(shè)計(jì)思路方案與系統(tǒng)框圖采用數(shù)字溫度芯片DS18B20測(cè)量溫度,輸出信號(hào)全數(shù)字化。采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和AT89C51單片機(jī)構(gòu)成的溫度測(cè)量裝置,DS18B20的DQ與AT89C51的P3.7口相連,與它直接輸出溫度的數(shù)字信號(hào),采用AT89C51單片機(jī)控制,溫度顯示由四位八段LED顯示屏完成,LED的D0D7為8位雙向數(shù)據(jù)端,與AT89C51的P1口相連,

3、系統(tǒng)框圖如下圖所示。 AT89C51時(shí)鐘電路復(fù)位電路DS18B20數(shù)字溫度傳感器測(cè)溫物體圖1顯示電路 3.2 DS18B20芯片介紹DS18B20引腳定義:(1) DQ為數(shù)字信號(hào)輸入輸出端(2) GND為電源地(3) VDD為外接供電電源輸入端溫度寄存器(0和1字節(jié)) DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號(hào)位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得

4、到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 DS18B20 的溫度操作是使用16 位,也就是說(shuō)分辨率是0.0625。BIT15BIT11 是符號(hào)位,為了就是表示轉(zhuǎn)換的值是正數(shù)還是負(fù)數(shù)。3.3 LED顯示屏(共陰)介紹A,B,C,D,E,F,G,DP管腳是段選引腳,1,2,3,4是位選引腳(低電平有效),字形碼如下: 3.4AT89C51芯片VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/

5、地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部

6、上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.

7、1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖

8、或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保

9、持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。3.5硬件電路圖本系統(tǒng)中通過(guò)溫度傳感器DS18B20的數(shù)據(jù)線DQ與主控芯片51單片機(jī)的P3.7相連接,DS18B20將采集到的數(shù)據(jù)送給單片機(jī),經(jīng)過(guò)單片機(jī)出來(lái)后,顯示在8位數(shù)據(jù)線與單片機(jī)P1口的液晶LED上。位選由P2控制。3.6 程序設(shè)計(jì)AT89C51測(cè)溫部分復(fù)位電路 顯示部分晶振電路 4.仿真與調(diào)試附錄TMPL EQU 29HTMPH EQU 28HDATAIN BIT P3.7ORG 0000HMAIN:

10、 MOV P1,#0FFH;LED顯示清零(空格)LCALL GET_TEMPER;調(diào)用初始化,寫(xiě)指令,讀指令子程序LCALL CVTTMP;十六進(jìn)制轉(zhuǎn)換為BCD碼LCALL DISP1;LED顯示溫度子程序AJMP MAIN;初始化DS18B20INIT_1820:SETB DATAINNOPCLR DATAIN;拉低DQ發(fā)送復(fù)位脈沖MOV R1,#3;延時(shí)TSR1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB DATAIN;拉高DQNOPJB DATAIN,$;等待應(yīng)答脈沖MOV R0,#117;延時(shí)TSR6:DJNZ R0,$TSR7:SETB DATAIN

11、RET;初始化完畢;調(diào)用初始化,寫(xiě)指令,讀指令子程序GET_TEMPER:SETB DATAINLCALL INIT_1820;調(diào)用初始化子程序MOV A,#0CCHLCALL WRITE_1820;寫(xiě)命令,0CCH送入DS18B20,跳過(guò)ROM檢測(cè)MOV A,#44HLCALL WRITE_1820;寫(xiě)命令,把44H送入DS18B20,在DS18B20內(nèi)部進(jìn)行溫度轉(zhuǎn)換。把測(cè)得的數(shù)據(jù)轉(zhuǎn)換成十六進(jìn)制LCALL INIT_1820;調(diào)用初始化子程序MOV A,#0CCHLCALL WRITE_1820;寫(xiě)命令,把0CCH送入DS18B20,跳過(guò)ROM檢測(cè)MOV A,#0BEHLCALL WRITE

12、_1820;讀命令,把0BEH送入DS18B20,準(zhǔn)備讀DS18B20的溫度數(shù)據(jù)(十六進(jìn)制)LCALL READ_18200;讀命令,把溫度數(shù)據(jù)讀入單片機(jī)(以十六進(jìn)制保存)RET;調(diào)用初始化,寫(xiě)指令,讀指令子程序完畢WRITE_1820:;調(diào)用寫(xiě)指令子程序開(kāi)始MOV R2,#8CLR CWR1: CLR DATAINMOV R3,#6DJNZ R3,$RRC AMOV DATAIN,CMOV R3,#23DJNZ R3,$SETB DATAINNOPDJNZ R2,WR1SETB DATAINRET;調(diào)用寫(xiě)指令子程序完畢READ_18200:;調(diào)用讀指令子程序開(kāi)始MOV R4,#2MOV R1

13、,#29HRE00: MOV R2,#8RE01: CLR CCLR DATAINNOPSETB DATAINMOV R3,#9RE10:DJNZ R3,RE10MOV C,DATAINMOV R3,#23RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;調(diào)用讀指令子程序完畢CVTTMP: MOV A,TMPH;調(diào)用溫度轉(zhuǎn)換子程序,十六進(jìn)制轉(zhuǎn)換為BCD碼MOV R0,AANL A,#80HJZ TMPC11MOV A,TMPLCPL AADD A,#1MOV TMPL,AMOV A,TMPHCPL AADDC A,#

14、0MOV TMPH,ATMPC11:MOV A,TMPLANL A,#0FHMOV DPTR,#TMPTABMOVC A,A+DPTRMOV 70H,AMOV A,TMPLANL A,#0F0HSWAP AMOV TMPL,AMOV A,TMPHANL A,#0FHSWAP AORL A,TMPLH2BCD: MOV B,#100DIV ABMOV 73H,AB2BCD1:MOV A,#10XCH A,BDIV ABMOV 72H,AMOV 71H,BMOV A,R0;調(diào)整指令,調(diào)整負(fù)號(hào),空格ANL A,#80HJZ ZHENGMOV A,72HJNZ DIS0MOV 73H,#0AHMOV

15、72H,#0BHSJMP DISBCD1DIS0:MOV 73H,#0BHSJMP DISBCD1ZHENG: MOV A,73HCJNE A,#00H,DISBCD1MOV 73H,#0AHMOV A,72HCJNE A,#00H,DISBCD1MOV 72H,#0AHDISBCD1:RET;溫度轉(zhuǎn)換子程序完畢TMPTAB:DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9DISP1:MOV R1,#70H;顯示子程序開(kāi)始(共陰極)MOV R5,#0FEHPLAY: MOV P1,#00HMOV A,R5MOV P2,AMOV A,R1MOV DPTR ,#TABMOVC A,A+DPTRMOV P1,AMOV A,R5JB ACC.1,L00P1SETB P1.7;第二位小數(shù)點(diǎn)保留,其

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論