項(xiàng)目3 智能溫度計(jì)設(shè)計(jì)與調(diào)試_第1頁
項(xiàng)目3 智能溫度計(jì)設(shè)計(jì)與調(diào)試_第2頁
項(xiàng)目3 智能溫度計(jì)設(shè)計(jì)與調(diào)試_第3頁
項(xiàng)目3 智能溫度計(jì)設(shè)計(jì)與調(diào)試_第4頁
項(xiàng)目3 智能溫度計(jì)設(shè)計(jì)與調(diào)試_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、項(xiàng)目3 智能溫度計(jì)的設(shè)計(jì)與調(diào)試任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化一、任務(wù)說明 單片機(jī)控制1片溫度傳感器DS18B20和1個(gè)報(bào)警指示燈,編寫溫度傳感器的復(fù)位程序,復(fù)位成功時(shí),指示燈閃爍。任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化二、任務(wù)分析1.硬件分析(1) DS18B20簡介DS18B20 是單線數(shù)字溫度傳感器,具有獨(dú)特的優(yōu)點(diǎn):u 采用單總線的接口方式,與微處理器連接時(shí)僅需要一條口線。u測溫范圍為 -55 + 125 ; 在 -10+ 85C 范圍內(nèi),精度為 0.5C 。u 在使用中不需要任何外圍元件。u 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)

2、多點(diǎn)測溫。u測量分辨率可通過程序設(shè)定 912 位。u內(nèi)部含有 EEPROM,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化(2)DS18B20管腳排列u GND為電源 地;u DQ為數(shù)字信號輸入輸出端;要求外接一個(gè)約為 4.7K10K 的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。uVDD為外接供電電源輸入端任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化(3)DS18B20內(nèi)部結(jié)構(gòu) 主要由4部分組成:64 位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。ROM中的64位序列號是出廠前被光刻好的,它可以看作 是該DS18

3、B20的地址序列碼,可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20。任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化(4)復(fù)位時(shí)序數(shù)據(jù)線下拉 500us ,然后釋放, DS18B20 收到信號后等待 16us60us 左右,然后發(fā)出 60us240us 的存在低脈沖,主 CPU 收到此信號后表示復(fù)位成功。任務(wù)任務(wù)1 電路圖電路圖任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化2.軟件分析主函數(shù)調(diào)用DS18B20的初始化函數(shù),然后循環(huán)執(zhí)行指示燈報(bào)警。任務(wù)任務(wù)1 溫度傳感器的初始化溫度傳感器的初始化三.任務(wù)實(shí)施任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)一、任務(wù)說明 單片機(jī)控制1片溫度傳感器DS18B20,

4、編寫程序,完成溫度測量和溫度數(shù)據(jù)讀取,并將溫度值的整數(shù)部分顯示在數(shù)碼管上。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)二、任務(wù)分析1.硬件分析 溫度測量流程DS18B20的ROM指令集DS18B20的存儲器指令集任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)向DS18B20寫1位數(shù)據(jù)的時(shí)序拉低15us 寫一位延時(shí)45us拉高數(shù)據(jù)線。連續(xù)寫入時(shí)先低位后高位。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)從DS18B20讀1位數(shù)據(jù)的時(shí)序(先寫入讀數(shù)指令0 xBE才能開始讀數(shù))數(shù)據(jù)線拉低數(shù)據(jù)線拉高讀入一位延時(shí)45us 拉高數(shù)據(jù)線。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)溫度數(shù)據(jù)處理 DS18B20中的溫度傳感器完成

5、對溫度的測量,用16位二進(jìn)制形式提供,形式表達(dá),其中S為符號位。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)溫度數(shù)據(jù)處理例 如125的數(shù)字輸出為0 x07D0-55的數(shù)字輸出為 0 xFC90任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)溫度數(shù)據(jù)處理讀出2字節(jié)溫度數(shù)據(jù)后,需要進(jìn)行數(shù)據(jù)拼裝:將低字節(jié)的高4位(2320)右移4位、將高字節(jié)的低4位( S24 )左移4位,然后拼裝成8位數(shù)據(jù)。S26252423222120若S=0,溫度數(shù)據(jù)為原碼,可直接求10進(jìn)制顯示值,同時(shí)將標(biāo)志變量清零;若S=1,溫度數(shù)據(jù)為補(bǔ)碼,需要取反加1后(補(bǔ)碼求絕對值)再求10進(jìn)制顯示值,同時(shí)將標(biāo)志變量置1。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)

6、整數(shù)顯示溫度計(jì)2.軟件分析-函數(shù)構(gòu)成任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-變量定義#includesbit dq=P30;/ds18b20sbit led=P31;/指示燈unsigned char t,tl,th,flag=0;/t溫度,flag標(biāo)志unsigned char seg10=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;/共陽極七段碼任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-主函數(shù)流程任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-溫度讀取函數(shù)Void ds18b20()

7、完成傳感器初始化、溫度測量、溫度數(shù)據(jù)讀取。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-溫度數(shù)據(jù)轉(zhuǎn)換函數(shù)void temp_convert()完成溫度數(shù)據(jù)拼接和溫度符號定義。任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-寫1字節(jié)循環(huán)8次Void write (int dat)完成向DS18B20寫入1字節(jié)命令,寫入順序?yàn)橄鹊秃蟾?。任?wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-讀1字節(jié)循環(huán)8次int read ()完成從DS18B20讀出1字節(jié)溫度數(shù)據(jù),讀數(shù)順序?yàn)橄鹊秃蟾?。任?wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)2.軟件分析-溫度數(shù)據(jù)顯示Void display()完成溫

8、度數(shù)據(jù)和符號的顯示第三位顯示流程任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)三、任務(wù)實(shí)施任務(wù)任務(wù)2 整數(shù)顯示溫度計(jì)整數(shù)顯示溫度計(jì)四、任務(wù)拓展1.如何增加溫度單位顯示?2.如何實(shí)現(xiàn)多余顯示位的消隱?3.如何增加顯示溫度值小數(shù)部分(保留1位小數(shù))?任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì)一、任務(wù)說明 單片機(jī)控制1片溫度傳感器DS18B20,編寫程序,完成溫度測量和溫度數(shù)據(jù)讀取,并將溫度值精確到小數(shù)點(diǎn)后1位,顯示在數(shù)碼管上。任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì)二、任務(wù)分析 從溫度數(shù)據(jù)格式可知,若要取得溫度值小數(shù)點(diǎn)后1位的值,就需要將低字節(jié)溫度數(shù)據(jù)(tl)的低4位數(shù)值乘以0.0625,然后擴(kuò)大10倍,

9、再取個(gè)位即可。1.溫度數(shù)據(jù)轉(zhuǎn)換部分原理分析任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì)2.溫度數(shù)據(jù)轉(zhuǎn)換部分程序流程在任務(wù)在任務(wù)2voidtemp_covert()中增加以下部分。中增加以下部分。任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì) 十位顯示值消隱的做法:判斷百位和十位上的顯示數(shù)字是否為零,若為零就消隱十位顯示值(P0=0 xff),若不為零則正常顯示數(shù)值。3.溫度顯示部分原理分析任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì)三、任務(wù)實(shí)施任務(wù)任務(wù)3 小數(shù)顯示溫度計(jì)小數(shù)顯示溫度計(jì)四、任務(wù)拓展利用單片機(jī)項(xiàng)目板實(shí)測溫度計(jì),程序需要做什么修改?任務(wù)任務(wù)4 數(shù)字溫度計(jì)數(shù)字溫度計(jì)一、任務(wù)說明 利用單片機(jī)項(xiàng)目板實(shí)現(xiàn)

10、數(shù)字溫度計(jì),要求顯示溫度單位、溫度數(shù)據(jù)精確到小數(shù)點(diǎn)后1位。任務(wù)任務(wù)4 數(shù)字溫度計(jì)數(shù)字溫度計(jì)二、任務(wù)分析1.硬件部分修改 查看項(xiàng)目板上DS18B20的數(shù)據(jù)線dq實(shí)際連接情況,并修改程序變量定義。項(xiàng)目板上LED燈利用P3.7連接,修改程序中變量定義。按照項(xiàng)目板硬件資源,將任務(wù)3做如下修改任務(wù)任務(wù)4 數(shù)字溫度計(jì)數(shù)字溫度計(jì)二、任務(wù)分析2.軟件部分修改(1)顯示部分 由于項(xiàng)目板上的數(shù)碼管公共端都連接了三極管反向放大器(增大公共端電壓,提高數(shù)碼管顯示亮度),所以程序總凡是選中數(shù)碼管的語句,都需要將控制字按二進(jìn)制取反(如:0X010XFE、0X080XF7等) ,否則數(shù)碼管不能點(diǎn)亮。任務(wù)任務(wù)4 數(shù)字溫度計(jì)數(shù)字溫度計(jì)二、任務(wù)分析2.軟件部分(2)DS18B20時(shí)序部分 由于項(xiàng)目板上的單片機(jī)(STC12C5A89S2)是一款高速單片機(jī),指令提速6-12倍,而DS18B20的復(fù)位、讀、寫操作都對時(shí)序敏感,因此需要將上述三個(gè)子函數(shù)里所有延時(shí)部分的參數(shù)擴(kuò)大10倍,如delayus(5)delayu

溫馨提示

  • 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

提交評論