2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、12、溫度顯示實(shí)驗(yàn),普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20簡介DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨(dú)特的優(yōu)點(diǎn):     ( 1 )采用單總線的接口方式 與微處理器連接時(shí) 僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),

2、適合于惡劣環(huán)境的現(xiàn)場溫度測量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。     ( 2 )測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范圍內(nèi),精度為 ± 0.5°C 。     ( 4 )持多點(diǎn)組網(wǎng)功能 多個(gè) DS1

3、8B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測溫。     ( 5 )供電方式靈活 DS18B20 可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而 使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。     ( 6 )測量參數(shù)可配置 DS18B20 的測量分辨率可通過程序設(shè)定 9~12 位。  &

4、#160;  DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,單線總線特點(diǎn)單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成。單總線通常要求外接一個(gè)約為 4.7K—10K 的上拉電阻

5、,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。,原理圖解析,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20單總線的工作方式,DS18B20的初始化,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,主機(jī)首先發(fā)出一個(gè)480-960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,?/p>

6、在隨后的480微秒時(shí)間內(nèi)對總線進(jìn)行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答?! ∽鰹閺钠骷腄S18B20在一上電后就一直在檢測總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測到就一直在檢測等待。,普中科技 單片機(jī)開發(fā)儀視

7、頻教程,,www.prechin.comwww.prechin.net,初始化時(shí)序圖,/****************************************************************************** 函數(shù)名 : Ds18b20Init* 函數(shù)功能 : 初始化* 輸入 : 無* 輸出 : 初始化成功返回1,失敗返回0*

8、****************************************************************************/unsigned char Ds18b20Init(){unsigned int i;DSIO=0; //將總線拉低480us~960usi=70;while(i--);//延時(shí)642usDSIO=1;//然后拉高總線,若DS18B20做出反應(yīng)會(huì)將在15

9、us~60us后將總線拉低i=0;while(DSIO)//等待DS18B20拉低總線{i++;if(i>50000)//等待>50MSreturn 0;//初始化失敗}return 1;//初始化成功},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,普中科技 單片

10、機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,主機(jī)發(fā)出各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取0或1的過程。因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫1、讀0和讀1的。寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機(jī)先把總線拉低1微秒表示寫周期開始。隨后若主機(jī)想寫0,則將總線置為低電平,若主機(jī)想寫1,則將總線置為高電平,持續(xù)時(shí)間最少60

11、微秒直至寫周期結(jié)束,然后釋放總線為高電平至少1微秒給總線恢復(fù) 。而DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,讀操作時(shí)序圖,/***************************************

12、***************************************** 函數(shù)名 : Ds18b20WriteByte* 函數(shù)功能 : 向18B20寫入一個(gè)字節(jié)* 輸入 : com* 輸出 : 無*******************************************************************************/

13、void Ds18b20WriteByte(unsigned char dat){unsigned int i,j;for(j=0;j>=1;}},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,對于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。讀周期是從主機(jī)把單總線拉低1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)

14、傳輸?shù)絾慰偩€上。作為從機(jī)DS18B20在檢測到總線被拉低1微秒后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完成對總線進(jìn)行采樣檢測,采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過程,至少需要60微秒才能完成,普中科技 單片機(jī)開發(fā)儀視

15、頻教程,,www.prechin.comwww.prechin.net,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,寫操作時(shí)序圖,/******************************************************************************** 函數(shù)名 : Ds18b20ReadByt

16、e* 函數(shù)功能 : 讀取一個(gè)字節(jié)* 輸入 : com* 輸出 : 無*******************************************************************************/unsigned char Ds18b20ReadByte(){unsigned char byte,bi;unsigned int i,j;

17、for(j=8;j>0;j--){DSIO=0;//先將總線拉低1usi++;DSIO=1;//然后釋放總線i++;i++;//延時(shí)6us等待數(shù)據(jù)穩(wěn)定bi=DSIO; //讀取數(shù)據(jù),從最低位開始讀取byte=(byte>>1)|(bi<<7); /*將byte左移一位,然后與上右移7位后的bi,注意移動(dòng)之后移掉那位補(bǔ)0。*/ i=4;

18、//讀取完之后等待48us再接著讀取下一個(gè)數(shù)while(i--);}return byte;},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20的操作步驟,DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。其工作時(shí)序包括:初始化時(shí)序?qū)憰r(shí)序讀時(shí)序,普中科技

19、 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻 ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器 TH 和 TL 、配置寄存器。光刻 ROM 中的 64 位序列號(hào)是出廠前被光刻好的,它可以

20、看作是該 DS18B20 的地址序列碼。 64 位光刻 ROM 的排列是:開始 8 位(地址: 28H )是產(chǎn)品類型標(biāo)號(hào),接著的 48 位是該 DS18B20 自身的序列號(hào),并且每個(gè) DS18B20 的序列號(hào)都不相同,因此它可以看作是該 DS18B20 的地址序列碼;最后 8 位則是前面 56 位的循環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1 )。由于每一個(gè) DS18B20 的 ROM 數(shù)據(jù)都各不相同,因此微控制器就可以通過單總線對多

21、個(gè) DS18B20 進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20 的目的。,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20的存儲(chǔ)器由一個(gè)高速暫存RAM和一個(gè)非易失性、電可擦除(E2)RAM組成。,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,配置寄存

22、器,其中配置寄存器的格式如下:,出場設(shè)置默認(rèn)R0、R1為11。也就是12位分辨率,也就是1位代表0.0625攝氏度。,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,DS18B20經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。所以當(dāng)我們只想簡單的讀取溫度值的時(shí)候,只用讀取暫存器中的第0和第1個(gè)字節(jié)就可以了。簡單的讀取溫度值的步

23、驟如下:跳過ROM操作發(fā)送溫度轉(zhuǎn)換命令跳過ROM操作發(fā)送讀取溫度命令讀取溫度值,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,/********************************************

24、****************************** 函數(shù)名 : Ds18b20ReadTemp* 函數(shù)功能 : 讀取溫度* 輸入 : com* 輸出 : 無*************************************************************************/int Ds18b20ReadTemp(){

25、unsigned int temp=0;unsigned char tmh,tml;Ds18b20ChangTemp();//先寫入轉(zhuǎn)換命令Ds18b20ReadTempCom();//然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令tml=Ds18b20ReadByte();//讀取溫度值共16位,先讀低字節(jié)tmh=Ds18b20ReadByte();//再讀高字節(jié)temp=tmh;temp<<=8;

26、temp|=tml;return temp;},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,/************************************************************* 函數(shù)名 : Ds18b20ChangTemp* 函數(shù)功能 : 讓18b20開始轉(zhuǎn)換溫度* 輸入

27、 : com* 輸出 : 無************************************************************/void Ds18b20ChangTemp(){Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);//跳過ROM操作命令 Ds18b20WriteByte(0x44);

28、 //溫度轉(zhuǎn)換命令Delay1ms(100);},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,/************************************************************* 函數(shù)名 : Ds18b20ReadTempCom* 函數(shù)功能 : 發(fā)送讀取溫度命令* 輸入

29、 : com* 輸出 : 無************************************************************/void Ds18b20ReadTempCom(){Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc); //跳過ROM操作命令Ds18b20WriteByte(0xbe); /

30、/發(fā)送讀取溫度命令},普中科技 單片機(jī)開發(fā)儀視頻教程,,www.prechin.comwww.prechin.net,什么是補(bǔ)碼正數(shù)的補(bǔ)碼是正數(shù)本身負(fù)數(shù)的補(bǔ)碼是原碼取反,然后再加1。DS18B20存儲(chǔ)的溫度值是以補(bǔ)碼的形式存儲(chǔ)的,所以讀出來的溫度值是實(shí)際溫度值的補(bǔ)碼,要把的轉(zhuǎn)換為原碼。正溫度的話,原碼就是補(bǔ)碼本身,所以在12位分辨率下,溫度的計(jì)算公式是:溫度值=讀取值*0.0625負(fù)溫度

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論