單片機(jī)第7講.ppt_第1頁
單片機(jī)第7講.ppt_第2頁
單片機(jī)第7講.ppt_第3頁
單片機(jī)第7講.ppt_第4頁
單片機(jī)第7講.ppt_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、項(xiàng)目七 數(shù)字顯示溫度計(jì),項(xiàng)目學(xué)習(xí)目標(biāo),一、知識目標(biāo) 1. 熟悉單線總線數(shù)字式溫度傳感器DS18B20芯片及其特性。 2. 了解DS18B20溫度傳感器的工作原理。 3. 掌握單片機(jī)對DS18B20溫度傳感器進(jìn)行讀寫控制程序的編寫思路與方法。 二、技能目標(biāo) 1. 能根據(jù)DS18B20溫度傳感器的參數(shù)對其進(jìn)行寫和讀的軟件編制。 2. 能利用AT89S51單片機(jī)和DS18B20設(shè)計(jì)并搭建數(shù)字溫度計(jì)系統(tǒng),完成 溫度的測量并能實(shí)現(xiàn)溫度的顯示。,任務(wù)一 認(rèn)識單線總線溫度傳感器DS18B20,活動1 學(xué)習(xí)DS18B20芯片基礎(chǔ)知識,一、認(rèn)識DS18B20的外形與內(nèi)部結(jié)構(gòu),傳統(tǒng)的溫度測量大多以熱敏電阻為傳感器

2、,但熱敏電阻可靠性差、測量溫度準(zhǔn)確率低,且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號后才能由單片機(jī)進(jìn)行處理??梢姡@種方式真正應(yīng)用起來較為麻煩。因此,目前在更多的場合我們選用具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn)的單線總線數(shù)字溫度傳感器DS18B20,它可以直接將溫度轉(zhuǎn)換為串行數(shù)字信號進(jìn)行處理。,美國的達(dá)拉斯半導(dǎo)體公司(DALLAS SEMICONDUCTOR)推出一項(xiàng)特有的單線總線(1Wire Bus)技術(shù)。它采用單根信號線,既可傳輸時(shí)鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因而這種單線總線技術(shù)具有線路 簡單,硬件開銷少,成本低廉,便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。DS18B20就是

3、DALLAS公司設(shè)計(jì)的世界上第一片采用單線總線技術(shù)的溫度傳感器。,知識貼士: 單片機(jī)的概念,現(xiàn)在就讓我們來認(rèn)識DS18B20。它主要具有以下特點(diǎn): (1)僅需要一根端口線就能完成單片機(jī)與DS18B20的連接及讀/寫信息; (2)可測量溫度的范圍 -55+125; (3)供電電壓 3. 5 V5 V ; (4)測溫精度可以編程設(shè)定為912位,分辨率最高可達(dá)0.0625。,DS18B20芯片有兩種封裝TO-92和SOIC,,(a)TO-92封裝及底視圖 (b)SOIC封裝,其引腳定義如下: GND - 接地 DQ - 數(shù)據(jù)的輸入/輸出端引腳 VDD - 接電源,DS18B20的內(nèi)部結(jié)構(gòu)如圖7-1-

4、2方框圖所示:,圖7-1-2 DS18B20內(nèi)部結(jié)構(gòu),(1)64位光刻ROM里的信息是生產(chǎn)廠家給每一個(gè)DS18B20命名的產(chǎn)品序列號,可以看作是該器件的地址序列號。其作用是使每一個(gè)DS18B20地址序列號都各不相同,這樣,就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。 (2)DS18B20中的溫度靈敏元件完成對溫度的測量,輸出格式為16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼。當(dāng)測溫精度設(shè)置為12位時(shí),分辨率為0.0625,即0.0625LSB。 (3)DS18B20中的低溫觸發(fā)器TL、高溫觸發(fā)器TH用于設(shè)置低溫、高溫的 報(bào)警數(shù)值。 (4)配置寄存器與溫度精度的設(shè)置有關(guān),該字節(jié)各位的定義如下表:,表7-1-

5、1 配置寄存器結(jié)構(gòu),TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。 R1和R0用來設(shè)置溫度精度,如下表所示:,表7-1-2 溫度精度設(shè)置表,(5)高速緩存存儲器由9個(gè)字節(jié)組成,其存儲內(nèi)容分配如表7-1-3所示。,表7-1-3 DS18B20高速緩存存儲器分配,二、學(xué)習(xí)DS18B20的初始化、ROM操作命令、工作命令,DS18B20的工作過程一般遵循以下順序: 初始化ROM操作命令存儲器操作命令處理數(shù)據(jù)。,1. DS18B20的初始化 通過單線總線的所有執(zhí)行(處理)都從初始化開始。初始化包括一個(gè) 由單片機(jī)發(fā)出的復(fù)位脈沖和跟在其后由DS18B20發(fā)出的存在脈沖。存在脈沖 讓單片

6、機(jī)知道DS18B20在總線上且已準(zhǔn)備好操作。 2. ROM操作命令 一旦單片機(jī)檢測到DS18B20的存在,它便可以發(fā)出器件ROM操作命令 之一:(1)讀ROM,(2)匹配ROM,(3)搜索ROM,(4)跳過ROM, (5)報(bào)警搜索。如果一根單線總線上掛接了多個(gè)DS18B20,搜索ROM則 單片機(jī)必須對某一DS18B20先選定再進(jìn)行操作。,ROM操作命令如下表所示:,表7-1-4 ROM操作命令,知識貼士: 單片機(jī)的概念,由于多個(gè)DS18B20可以同時(shí)連接在一根單線總線上,所以在通信過程中需要確認(rèn)是哪個(gè)DS18B20接受數(shù)據(jù),即完成“匹配ROM”命令。但如果系統(tǒng)中僅使用一個(gè)DS18B20(例如本

7、項(xiàng)目),則ROM匹配過程可以省略,ROM操作僅需直接發(fā)送“跳過ROM”命令即可。,3. 存儲器操作命令 單片機(jī)可以向DS18B20發(fā)出存儲器操作命令來進(jìn)行溫度轉(zhuǎn)換、讀取溫度、 設(shè)定上、下限溫度值等。DS18B20存儲器操作命令如下表所列:,表7-1-5 存儲器操作命令,三、學(xué)習(xí)DS18B20的初始化、讀、寫時(shí)序 DS18B20采用的是單線總線協(xié)議方式,即在一根數(shù)據(jù)線上實(shí)現(xiàn)數(shù)據(jù) 的雙向傳輸,而對于AT89S51單片機(jī)來說,硬件上并不支持單線總線協(xié) 議。因此,它必須采用軟件的方法模擬單線總線協(xié)議的時(shí)序來完成對 DS18B20的訪問。 既然DS18B20是在一根I/O線上讀寫數(shù)據(jù),那它對讀寫的數(shù)據(jù)位

8、有 著嚴(yán)格的時(shí)序要求,如此才能保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該 協(xié)議定義了幾種信號的時(shí)序:初始化時(shí)序、讀數(shù)據(jù)時(shí)序、寫數(shù)據(jù)時(shí)序、 控制時(shí)序。所有時(shí)序均是將單片機(jī)作為主機(jī)設(shè)備,DS18B20作為從機(jī)設(shè)備。,1. 初始化時(shí)序:主機(jī)置總線為低電平并保持至少480s,然后拉高電平, 等待從機(jī)重新拉低電平作為響應(yīng),則完成初始化。,圖7-1-3 初始化時(shí)序,2.讀數(shù)據(jù)位:主機(jī)置總線為低電平并保持至少1s,在15s內(nèi)采樣總線 電平獲取從機(jī)的數(shù)據(jù),延時(shí)45s完成讀操作。如果總線為高電平,即為 讀 “1”,如果總線為低電平,即為讀“0”。,圖7-1-4 讀時(shí)序,3. 寫數(shù)據(jù)位0:主機(jī)置總線為低電平并保持至少1

9、5s,然后保持低電平15s45s等待從機(jī)對電平采樣,最后拉高電平完成寫操作。 4. 寫數(shù)據(jù)位1:主機(jī)置總線為低電平并保持1s15s,然后拉高電平 并保持15s45s等待從機(jī)對電平采樣,完成寫操作。,圖7-1-5 寫時(shí)序,技能貼士: DS18B20的寫時(shí)序,DS18B20的寫時(shí)序會由一個(gè)子程序來完成,因此,好好的 解讀一下寫數(shù)據(jù)位0和1的時(shí)序圖對我們后續(xù)的編程很有幫助。 主機(jī)置總線為低電平并持續(xù)時(shí)間最少為1s,就產(chǎn)生寫“0”或“1” 的時(shí)間片。在變?yōu)榈碗娖?5s之后,DS18B20在15s45s 期間對總線采樣,如果總線為高電平,即為寫“1”;如果線為低 電平,即為寫“0”。時(shí)間片應(yīng)有最短為60

10、s的持續(xù)期。,活動2 DS18B20與AT89S51單片機(jī)的連接,DS18B20需要與單片機(jī)的一根I/O線相連,通過單片機(jī)編寫的程序來 模擬DS18B20的控制時(shí)序。我們先把它們連接的電路圖繪制出來。,圖7-1-6 DS18B20與AT89S51單片機(jī)連接的電路圖,對于單片機(jī)實(shí)驗(yàn)箱而言,我們需要做的工作即是將DS18B20模塊與單片機(jī) 主機(jī)模塊進(jìn)行組合,如圖7-1-7。,圖7-1-7 DS18B20模塊與單片機(jī)主機(jī)模塊的連接,活動3 DS18B20測溫的流程圖,作為整個(gè)系統(tǒng)的檢測部分,我們將AT89S51單片機(jī)控制DS18B20測量 溫度的過程模塊化,利用子程序完成,其流程如圖7-1-8所示,

11、包括啟動 溫度轉(zhuǎn)換并讀取溫度值。,圖7-1-8 DS18B20 測量溫度的流程圖,圖7-1-9 DS18B20 初始化流程圖,其中,控制DS18B20的關(guān)鍵操作如初始化、讀/寫操作也均用子程序 完成,便于主程序調(diào)用。它們的流程圖分別按照時(shí)序圖7-1-3圖7-1-5編制。,圖7-1-10 讀DS18B20流程圖,圖7-1-11 寫DS18B20流程圖,活動4 編寫DS18B20測溫程序,對應(yīng)以上各個(gè)子程序的流程圖,參考程序的代碼如下:,DS18B20測量溫度子程序,2. 初始化子程序,3. 讀DS18B20子程序,4. 寫DS18B20子程序,任務(wù)一 數(shù)字顯示溫度計(jì),活動1 構(gòu)建數(shù)字顯示溫度計(jì)系

12、統(tǒng),單片機(jī)從DS18B20讀取的溫度值是二進(jìn)制的,而我們通常在空調(diào)的 液晶顯示面板上觀察到當(dāng)前溫度值的是十進(jìn)制的。也就是說,我們需要 將溫度值作恰當(dāng)?shù)霓D(zhuǎn)換。本項(xiàng)目的顯示部分電路選取四位數(shù)碼管,它們 的應(yīng)用在前面項(xiàng)目中已作過專門介紹,在任務(wù)1的基礎(chǔ)上加入數(shù)碼管的 動態(tài)顯示即可構(gòu)建出數(shù)字顯示溫度計(jì)系統(tǒng)。,活動2 分析數(shù)字顯示溫度計(jì)系統(tǒng)的流程,整個(gè)系統(tǒng)的硬件是由溫度測量電路和數(shù)碼管的顯示電路組成,系統(tǒng) 工作的主程序也必定由這兩部分電路的軟件控制構(gòu)成。我們先畫出系統(tǒng) 的流程圖。,圖7-2-1 數(shù)字顯示溫度計(jì)系統(tǒng)流程圖,接下來需要考慮的是如何將二進(jìn)制的溫度結(jié)果轉(zhuǎn)換為十進(jìn)制。,DS18B20轉(zhuǎn)換的溫度結(jié)果

13、是以二進(jìn)制的形式保存在暫存器中(DS18B20 默認(rèn)的出廠設(shè)置為12位數(shù)據(jù)格式,低字節(jié)的低4位表示小數(shù)部分),溫度值 高低字節(jié)的內(nèi)容如下:,LSB MSB,當(dāng)符號位S=0時(shí),溫度值為正;當(dāng)符號位S=1時(shí),溫度值為負(fù)。 溫度值的十進(jìn)制表示與轉(zhuǎn)換結(jié)果的二進(jìn)制、十六進(jìn)制數(shù)據(jù)的關(guān)系表如下:,表7-2-1 溫度三種進(jìn)制的關(guān)系表,技能貼士:,請你仔細(xì)觀察上表的內(nèi)容,你能發(fā)現(xiàn)這些數(shù)據(jù)之間有什么規(guī)律嗎? MSB的二進(jìn)制轉(zhuǎn)換成十進(jìn)制即溫度值的整數(shù) 部分。LSB的D3位為“1”時(shí),溫度值的小數(shù)部分是0.5。以此類推,其D0位為“1”時(shí),代表0.0625 。 那么,我們?nèi)绾螌⒍M(jìn)制轉(zhuǎn)換為十進(jìn)制呢?,圖7-2-2 溫

14、度的二進(jìn)制結(jié)果轉(zhuǎn)換成十進(jìn)制的流程圖,活動3 編寫主程序和溫度值轉(zhuǎn)換為十進(jìn)制的子程序,1. 主程序參考如下:,2. 溫度值轉(zhuǎn)換為十進(jìn)制的子程序參考如下:,活動4 完善并調(diào)試系統(tǒng),參考項(xiàng)目4中的數(shù)碼管動態(tài)顯示程序編寫顯示子程序,完善整個(gè) 系統(tǒng)的程序。 2. 運(yùn)用實(shí)驗(yàn)箱在線調(diào)試數(shù)字顯示溫度計(jì)系統(tǒng),用手捏DS18B20,觀察 手捏前后顯示現(xiàn)象的變化并記錄數(shù)據(jù)。,創(chuàng)新活動,1. 改變單片機(jī)的I/O口與DS18B20的連接,測量并顯示其溫度值。 2. 修改程序,使該數(shù)字溫度顯示計(jì)能顯示零下的溫度值。,項(xiàng)目知識系統(tǒng)化說明,單線總線數(shù)字溫度傳感器DS18B20具有微型化、低功耗、 高性能、抗干擾能強(qiáng)、易配微處

15、理器等特點(diǎn)。 DS18B20工作過程:初始化ROM操作命令存儲器操作 命令處理數(shù)據(jù)。 AT89S51單片機(jī)必須采用軟件的方法模擬單線總線協(xié)議的時(shí)序 來完成對DS18B20的訪問。,我們知道了新型溫度傳感器DS18B20與單片機(jī)間通信僅需要 一根連接線。 2. 我們學(xué)會了DS18B20控制命令字的使用,關(guān)鍵是按照特定的 時(shí)序來完成,為此必須仔細(xì)閱讀芯片參數(shù)。 3. 我們初步學(xué)會了DS18B20的使用方法,并結(jié)合數(shù)碼管模塊進(jìn)行 應(yīng)用,提高了各模塊的綜合應(yīng)用能力。,項(xiàng)目小結(jié),1. 單線總線技術(shù)的特點(diǎn)是什么?DS18B20具有哪些優(yōu)點(diǎn)? 2. DS18B20芯片的TO-92型封裝三個(gè)引腳的定義分別是什么? 3. DS18B20的工作過

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論