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

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

3、(4)復(fù)位時(shí)序數(shù)據(jù)線下拉 500us ,然后釋放, DS18B20 收到信號(hào)后等待 16us60us 左右,然后發(fā)出 60us240us 的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。任務(wù)1 電路圖任務(wù)1 溫度傳感器的初始化2.軟件分析主函數(shù)調(diào)用DS18B20的初始化函數(shù),然后循環(huán)執(zhí)行指示燈報(bào)警。任務(wù)1 溫度傳感器的初始化三.任務(wù)實(shí)施步驟1:在Proteus軟件中建立仿真電路文件。步驟2:在Keil中設(shè)計(jì)程序,匯編無(wú)誤后,生成目標(biāo)文件(.HEX)。步驟3:在Proteus軟件中加載目標(biāo)文件,仿真運(yùn)行觀察結(jié)果。步驟4:結(jié)果無(wú)誤,請(qǐng)求教師檢查、評(píng)價(jià)。步驟5:編制項(xiàng)目報(bào)告。任務(wù)2 整數(shù)顯示溫度

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

5、DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,用16位二進(jìn)制形式提供,形式表達(dá),其中S為符號(hào)位。任務(wù)2 整數(shù)顯示溫度計(jì) 溫度數(shù)據(jù)處理例 如125的數(shù)字輸出為0 x07D0-55的數(shù)字輸出為 0 xFC90任務(wù)2 整數(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ǔ)碼求絕對(duì)值)再求10進(jìn)制顯示值,同時(shí)將標(biāo)志變量置1。任務(wù)2 整數(shù)顯示溫度計(jì)2.

6、軟件分析-函數(shù)構(gòu)成主函數(shù) Void main() 不斷調(diào)用溫度數(shù)據(jù)讀取和動(dòng)態(tài)顯示函數(shù)顯示 Void display() 4位顯示值,最高位顯示符號(hào),低3位顯示溫度值的整數(shù)部分?jǐn)?shù)據(jù)讀取 Void ds18b20() 啟動(dòng)溫度轉(zhuǎn)換,連續(xù)讀取兩字節(jié)數(shù)據(jù)溫度轉(zhuǎn)換 Void temp_convert 溫度數(shù)據(jù)的拼接與顯示值求取寫1字節(jié) Void write (int dat) 向ds18b20寫入1字節(jié)數(shù)據(jù)讀1字節(jié) int read () 從18b20讀取1字節(jié)數(shù)據(jù)初始化 Void initial() Ds18b20初始化延時(shí) Void delayus(int i)延時(shí)12us Void delayms

7、(int i)延時(shí)1ms任務(wù)2 整數(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;/共陽(yáng)極七段碼任務(wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-主函數(shù)流程調(diào)用動(dòng)態(tài)顯示函數(shù)調(diào)用溫度數(shù)據(jù)讀取函數(shù)任務(wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-溫度讀取函數(shù)調(diào)用讀數(shù)子函數(shù),讀出高字節(jié)數(shù)據(jù)調(diào)用讀數(shù)子函數(shù),讀出低字節(jié)數(shù)

8、據(jù)向DS18B20寫入0XBE(讀取溫度數(shù)據(jù))向DS18B20寫入0XCC(跳過(guò)ROM操作)初始化DS18B20向DS18B20寫入0X44(啟動(dòng)溫度測(cè)量)向DS18B20寫入0XCC(跳過(guò)ROM操作)初始化DS18B20Void ds18b20()完成傳感器初始化、溫度測(cè)量、溫度數(shù)據(jù)讀取。任務(wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-溫度數(shù)據(jù)轉(zhuǎn)換函數(shù)溫度數(shù)據(jù)拼接判讀符號(hào)位S=0,flag=0S=1,flag=1,求溫度絕對(duì)值void temp_convert()完成溫度數(shù)據(jù)拼接和溫度符號(hào)定義。任務(wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-寫1字節(jié)命令字右移1位拉高數(shù)據(jù)線延時(shí)60us向數(shù)據(jù)線送命令字最低位延時(shí)12

9、us拉低數(shù)據(jù)線循環(huán)8次Void write (int dat)完成向DS18B20寫入1字節(jié)命令,寫入順序?yàn)橄鹊秃蟾摺H蝿?wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-讀1字節(jié)延時(shí)60us從數(shù)據(jù)線讀1位數(shù)到temp最高位讀數(shù)變量temp右移1位延時(shí)12us拉高數(shù)據(jù)線拉低數(shù)據(jù)線循環(huán)8次int read ()完成從DS18B20讀出1字節(jié)溫度數(shù)據(jù),讀數(shù)順序?yàn)橄鹊秃蟾摺H蝿?wù)2 整數(shù)顯示溫度計(jì)2.軟件分析-溫度數(shù)據(jù)顯示P2=0X04判讀符號(hào)變量flagflag=0顯示百位flag=1顯示 -Void display()完成溫度數(shù)據(jù)和符號(hào)的顯示第三位顯示流程任務(wù)2 整數(shù)顯示溫度計(jì)三、任務(wù)實(shí)施步驟1:在Proteus軟

10、件中建立仿真電路文件。步驟2:在Keil中設(shè)計(jì)程序,匯編無(wú)誤后,生成目標(biāo)文件(.HEX)。步驟3:在Proteus軟件中加載目標(biāo)文件,仿真運(yùn)行觀察結(jié)果。步驟4:結(jié)果無(wú)誤,請(qǐng)求教師檢查、評(píng)價(jià)。步驟5:編制項(xiàng)目報(bào)告。任務(wù)2 整數(shù)顯示溫度計(jì)四、任務(wù)拓展1.如何增加溫度單位顯示?2.如何實(shí)現(xiàn)多余顯示位的消隱?3.如何增加顯示溫度值小數(shù)部分(保留1位小數(shù))?任務(wù)3 小數(shù)顯示溫度計(jì)一、任務(wù)說(shuō)明 單片機(jī)控制1片溫度傳感器DS18B20,編寫程序,完成溫度測(cè)量和溫度數(shù)據(jù)讀取,并將溫度值精確到小數(shù)點(diǎn)后1位,顯示在數(shù)碼管上。任務(wù)3 小數(shù)顯示溫度計(jì)二、任務(wù)分析 從溫度數(shù)據(jù)格式可知,若要取得溫度值小數(shù)點(diǎn)后1位的值,就

11、需要將低字節(jié)溫度數(shù)據(jù)(tl)的低4位數(shù)值乘以0.0625,然后擴(kuò)大10倍,再取個(gè)位即可。1.溫度數(shù)據(jù)轉(zhuǎn)換部分原理分析任務(wù)3 小數(shù)顯示溫度計(jì)2.溫度數(shù)據(jù)轉(zhuǎn)換部分程序流程m=tl低4位m=m*625/1000在任務(wù)在任務(wù)2voidtemp_covert()中增加以下部分。中增加以下部分。任務(wù)3 小數(shù)顯示溫度計(jì) 十位顯示值消隱的做法:判斷百位和十位上的顯示數(shù)字是否為零,若為零就消隱十位顯示值(P0=0 xff),若不為零則正常顯示數(shù)值。3.溫度顯示部分原理分析選中十位數(shù)碼管判讀百位十位是否為0是P0=0 xff否P0=segt%10任務(wù)3 小數(shù)顯示溫度計(jì)三、任務(wù)實(shí)施步驟1:在Proteus軟件中建立

12、仿真電路文件。步驟2:在任務(wù)2程序基礎(chǔ)上修改顯示部分和溫度轉(zhuǎn)換部分,匯編無(wú)誤后,生成目標(biāo)文件(.HEX)。步驟3:在Proteus軟件中加載目標(biāo)文件,仿真運(yùn)行觀察結(jié)果。步驟4:結(jié)果無(wú)誤,請(qǐng)求教師檢查、評(píng)價(jià)。步驟5:編制項(xiàng)目報(bào)告。任務(wù)3 小數(shù)顯示溫度計(jì)四、任務(wù)拓展利用單片機(jī)項(xiàng)目板實(shí)測(cè)溫度計(jì),程序需要做什么修改?任務(wù)4 數(shù)字溫度計(jì)一、任務(wù)說(shuō)明 利用單片機(jī)項(xiàng)目板實(shí)現(xiàn)數(shù)字溫度計(jì),要求顯示溫度單位、溫度數(shù)據(jù)精確到小數(shù)點(diǎn)后1位。任務(wù)4 數(shù)字溫度計(jì)二、任務(wù)分析1.硬件部分修改 查看項(xiàng)目板上DS18B20的數(shù)據(jù)線dq實(shí)際連接情況,并修改程序變量定義。項(xiàng)目板上LED燈利用P3.7連接,修改程序中變量定義。按照項(xiàng)

13、目板硬件資源,將任務(wù)3做如下修改任務(wù)4 數(shù)字溫度計(jì)二、任務(wù)分析2.軟件部分修改(1)顯示部分 由于項(xiàng)目板上的數(shù)碼管公共端都連接了三極管反向放大器(增大公共端電壓,提高數(shù)碼管顯示亮度),所以程序總凡是選中數(shù)碼管的語(yǔ)句,都需要將控制字按二進(jìn)制取反(如:0X010XFE、0X080XF7等) ,否則數(shù)碼管不能點(diǎn)亮。任務(wù)4 數(shù)字溫度計(jì)二、任務(wù)分析2.軟件部分(2)DS18B20時(shí)序部分 由于項(xiàng)目板上的單片機(jī)(STC12C5A89S2)是一款高速單片機(jī),指令提速6-12倍,而DS18B20的復(fù)位、讀、寫操作都對(duì)時(shí)序敏感,因此需要將上述三個(gè)子函數(shù)里所有延時(shí)部分的參數(shù)擴(kuò)大10倍,如delayus(5)delayus(50)等。任務(wù)4 數(shù)字溫度計(jì)三、任務(wù)實(shí)施步驟1:在Proteus軟件中建立仿真電路文件。步驟2:在任務(wù)2程序基礎(chǔ)上修改顯示部分和溫度轉(zhuǎ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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論