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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  傳感器技術(shù)課程設(shè)計(jì)</b></p><p>  分?jǐn)?shù): </p><p>  題目: 溫度傳感器 </p><p>  完成人: </p><p>  時(shí)間: 二○一一年六月 </p><p>&l

2、t;b>  目錄</b></p><p><b>  一. 封面</b></p><p><b>  內(nèi)容</b></p><p>  1. 技術(shù)指標(biāo).........................3</p><p>  2. 設(shè)計(jì)方案及其比較.................3

3、</p><p>  2.1 方案一........................3</p><p>  2.2 方案二.......................3</p><p>  2.3 方案比較......................3</p><p>  實(shí)現(xiàn)方案.........................4&

4、lt;/p><p>  3.1 組成..........................4</p><p>  3.2 關(guān)于DS18B20的詳細(xì)介紹.............4</p><p>  3.3 工作原理圖.....................7</p><p>  3.4 電路程序.......................8&

5、lt;/p><p>  4. 調(diào)試過程及結(jié)論..................18 </p><p>  5. 心得體會(huì)........................18 </p><p>  6. 參考文獻(xiàn)........................19</p><p><b>  1.技術(shù)指標(biāo)</b></p

6、><p> ?、侏?dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;</p><p> ?、跍y(cè)溫范圍為-55℃-+125℃,測(cè)量分辨率為0.0625℃;</p><p> ?、酃ぷ麟娫? 3~5V;</p><p>  ④適配各種單片機(jī)或系統(tǒng)機(jī);</p><p>

7、 ?、菰谑褂弥胁恍枰魏瓮鈬?</p><p> ?、迌?nèi)含寄生電源。2.設(shè)計(jì)方案及其比較</p><p><b>  2.1 方案一</b></p><p>  采用熱敏電阻,熱敏電阻精度,重復(fù)性,可靠性較差,對(duì)于檢測(cè)1攝氏度的信號(hào)是不適用的,也不能滿足測(cè)量范圍。在溫度測(cè)量系統(tǒng)中,也采用單片溫度傳感器,比如ADS90,LM35等。但這些

8、芯片輸出的都是模擬信號(hào),必須經(jīng)過A/D轉(zhuǎn)換后才能送給計(jì)算機(jī),這樣就使測(cè)溫系統(tǒng)的硬件結(jié)構(gòu)較復(fù)雜。另外,這種測(cè)溫系統(tǒng)難以實(shí)現(xiàn)多點(diǎn)測(cè)溫,也要用到復(fù)雜的算法,一定程度導(dǎo)航也增加了軟件實(shí)現(xiàn)的難度。</p><p><b>  2.2 方案二</b></p><p>  采用單總線數(shù)字溫度傳感器DS18B20溫度測(cè)量溫度,直接輸出數(shù)據(jù)信號(hào)。便于單片機(jī)處理及控制,節(jié)省硬件電路。而且

9、該芯片的物理化學(xué)性很穩(wěn)定,此元件線形性能好,在0-100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號(hào)到微控制器。每只DS18B20具有一個(gè)獨(dú)有的不可修改的64位序列號(hào),根據(jù)序列號(hào)可訪問不同的器件。這樣一條總線上可掛接多個(gè)DS18B20傳感器,實(shí)現(xiàn)多點(diǎn)溫度測(cè)量,輕松的組建傳感網(wǎng)絡(luò)。</p>

10、<p><b>  2.3 方案比較</b></p><p>  綜上所述,選擇方案二3. 實(shí)現(xiàn)方案</p><p>  3.1 組成 采用AT89S52單片機(jī)作為控制核心對(duì)溫度傳感器DS18B20控制,按照系統(tǒng)設(shè)計(jì)的要求,系統(tǒng)由3個(gè)模塊組成:主控制器,測(cè)溫電路和顯示電路。</p><p>  3.2 關(guān)于DS18B20的詳細(xì)

11、介紹</p><p><b>  1 論述</b></p><p>  DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多

12、個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。 2 DS18B20的內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部結(jié)構(gòu)如圖1,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖2所示,DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;

13、VDD為外接供電電源輸入端。ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個(gè)DS18B20的64位序列號(hào)均不相同。64位ROM的排的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個(gè)DS18B20都各</p><p>  3 DS18B20工作原理</p><p>  控制DS18B20指令:</p><p&

14、gt;  33H-讀ROM 55H-匹配ROM F0H-搜索ROM CCH-跳過ROM ECH-告警搜索命令</p><p>  44H-溫度轉(zhuǎn)換 BEH-讀暫存器 4EH-寫暫存器 48H-復(fù)制暫存器 B8H-重調(diào)E2PROM B4H-讀供電方式</p><p>  4 DS18B20工作流程</p><p><b

15、>  初始化 </b></p><p> ?、贁?shù)據(jù)線置高電平1;</p><p><b> ?、谘訒r(shí);</b></p><p>  ③數(shù)據(jù)線拉到低電平0;</p><p><b> ?、苎訒r(shí)750us;</b></p><p>  ⑤數(shù)據(jù)線拉到高電平1;&l

16、t;/p><p> ?、扪訒r(shí)等待;將數(shù)據(jù)線再次拉到高電平后結(jié)束。</p><p><b> ?。?)寫數(shù)據(jù)</b></p><p> ?、贁?shù)據(jù)線置低電平0;</p><p><b> ?、谘訒r(shí)15us;</b></p><p><b> ?、郯l(fā)送數(shù)據(jù);</b>

17、;</p><p><b> ?、苎訒r(shí)45us;</b></p><p> ?、輸?shù)據(jù)線拉到高電平1;</p><p> ?、拗貜?fù)上述步驟,最后將數(shù)據(jù)線拉到1。(3)讀數(shù)據(jù)</p><p> ?、贁?shù)據(jù)線置高電平1;</p><p><b>  ②延時(shí);</b></p&g

18、t;<p> ?、蹖?shù)據(jù)線拉低到0;</p><p><b> ?、苎訒r(shí);</b></p><p> ?、輸?shù)據(jù)線拉到高電平1,延時(shí);</p><p> ?、拮x數(shù)據(jù)線的狀態(tài)并處理,延時(shí),重復(fù)①-⑤。</p><p><b>  圖1</b></p><p><

19、;b>  寫時(shí)序</b></p><p><b>  讀時(shí)序</b></p><p>  3.3 工作原理圖 </p><p><b>  3.4 電路程序</b></p><p>  #include <reg52.h></p><p>  

20、#include <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit led0=P1^0;</p><p>  sbit led1=P1^1;</p><p>

21、;  sbit led2=P1^2;</p><p>  sbit led3=P1^3;</p><p>  sbit DQ = P2^2; //數(shù)據(jù)口define interface</p><p>  sbit dula = P2^6; //數(shù)碼管段選</p>&l

22、t;p>  sbit wela = P2^7; //數(shù)碼管位選</p><p>  sbit beep=P2^3;</p><p>  uint warn_11=340;</p><p>  uint warn_12=300;</p><p>  uint temp;

23、 //溫度值 variable of temperature</p><p><b>  //不帶小數(shù)點(diǎn)</b></p><p>  unsigned char code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,</p><p>  0x07,0x7f,0x6f,0x77,

24、0x7c,0x39,0x5e,0x79,0x71};</p><p><b>  //帶小數(shù)點(diǎn)</b></p><p>  unsigned char code table1[] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};</p><p>  /*************精確延時(shí)

25、函數(shù)*****************/</p><p>  void delay(unsigned char i) </p><p><b>  {</b></p><p>  while(--i); </p><p><b>  }</b></p><p>  /****

26、**************************************</p><p>  此延時(shí)函數(shù)針對(duì)的是12Mhz的晶振</p><p>  delay(0):延時(shí)518us 誤差:518-2*256=6</p><p>  delay(1):延時(shí)7us (原帖寫"5us"是錯(cuò)的)</p><p>  de

27、lay(10):延時(shí)25us 誤差:25-20=5</p><p>  delay(20):延時(shí)45us 誤差:45-40=5</p><p>  delay(100):延時(shí)205us 誤差:205-200=5</p><p>  delay(200):延時(shí)405us 誤差:405-400=5</p><p>  ********

28、***********************************/</p><p>  /*****************DS18B20******************/</p><p>  void Init_Ds18b20(void) //DS18B20初始化send reset and initialization command</p><p

29、><b>  {</b></p><p>  DQ = 1; //DQ復(fù)位,不要也可行。</p><p>  delay(1); //稍做延時(shí)</p><p>  DQ = 0; //單片機(jī)拉低總線</p><

30、;p>  delay(250); //精確延時(shí),維持至少480us</p><p>  DQ = 1; //釋放總線,即拉高了總線</p><p>  delay(100); //此處延時(shí)有足夠,確保能讓DS18B20發(fā)出存在脈沖。</p><p><b&g

31、t;  }</b></p><p>  uchar Read_One_Byte() //讀取一個(gè)字節(jié)的數(shù)據(jù)read a byte date</p><p>  //讀數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)的最低有效位先從總線移出</p><p><b>  {</b></p><p>  uchar i = 0;

32、</p><p>  uchar dat = 0;</p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  DQ = 0; //將總線拉低,要在1us之后釋放總線</p><p>  //單片機(jī)要在此

33、下降沿后的15us內(nèi)讀數(shù)據(jù)才會(huì)有效。</p><p>  _nop_(); //至少維持了1us,表示讀時(shí)序開始</p><p>  dat >>= 1; //讓從總線上讀到的位數(shù)據(jù),依次從高位移動(dòng)到低位。</p><p>  DQ = 1; //釋放總線,此后

34、DS18B20會(huì)控制總線,把數(shù)據(jù)傳輸?shù)娇偩€上</p><p>  delay(1); //延時(shí)7us,此處參照推薦的讀時(shí)序圖,盡量把控制器采樣時(shí)間放到讀時(shí)序后的15us內(nèi)的最后部分</p><p>  if(DQ==1) //控制器進(jìn)行采樣</p><p><b>  {</b>

35、;</p><p>  dat |= 0x80; //若總線為1,即DQ為1,那就把dat的最高位置1;若為0,則不進(jìn)行處理,保持為0</p><p><b>  } </b></p><p>  delay(10); //此延時(shí)不能少,確保讀時(shí)序的長(zhǎng)度60us。</p>

36、;<p><b>  }</b></p><p>  return (dat);</p><p><b>  }</b></p><p>  void Write_One_Byte(uchar dat)</p><p><b>  {</b></p>

37、<p>  uchar i = 0;</p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  DQ = 0; //拉低總線</p><p>  _nop_();

38、 //至少維持了1us,表示寫時(shí)序(包括寫0時(shí)序或?qū)?時(shí)序)開始</p><p>  DQ = dat&0x01; //從字節(jié)的最低位開始傳輸</p><p>  //指令dat的最低位賦予給總線,必須在拉低總線后的15us內(nèi),</p><p>  //因?yàn)?5us后DS18B20會(huì)對(duì)總線采樣。</p>&l

39、t;p>  delay(10); //必須讓寫時(shí)序持續(xù)至少60us</p><p>  DQ = 1; //寫完后,必須釋放總線,</p><p>  dat >>= 1;</p><p><b>  delay(1);</b></p&

40、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  uint Get_Tmp() //獲取溫度get the temperature</p><p><b>  {</b></p><p

41、><b>  float tt;</b></p><p>  uchar a,b;</p><p>  Init_Ds18b20(); //初始化</p><p>  Write_One_Byte(0xcc); //忽略ROM指令</p><p>  Write_On

42、e_Byte(0x44); //溫度轉(zhuǎn)換指令</p><p>  Init_Ds18b20(); //初始化</p><p>  Write_One_Byte(0xcc); //忽略ROM指令</p><p>  Write_One_Byte(0xbe); //讀暫存器指令<

43、/p><p>  a = Read_One_Byte(); //讀取到的第一個(gè)字節(jié)為溫度LSB</p><p>  b = Read_One_Byte(); //讀取到的第一個(gè)字節(jié)為溫度MSB</p><p>  temp = b; //先把高八位有效數(shù)據(jù)賦于temp</p>

44、<p>  temp <<= 8; //把以上8位數(shù)據(jù)從temp低八位移到高八位</p><p>  temp = temp|a; //兩字節(jié)合成一個(gè)整型變量</p><p>  tt = temp*0.0625; //得到真實(shí)十進(jìn)制溫度值</p><p

45、>  //因?yàn)镈S18B20可以精確到0.0625度</p><p>  //所以讀回?cái)?shù)據(jù)的最低位代表的是0.0625度</p><p>  temp = tt*10+0.5; //放大十倍</p><p>  //這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換為可顯示數(shù)字</p><p>  //同時(shí)進(jìn)行一個(gè)四舍五入操

46、作。</p><p>  return temp;</p><p><b>  }</b></p><p>  /****************數(shù)碼碼動(dòng)態(tài)顯示函數(shù)**************/</p><p>  void Display(uint temp) //顯示程序</p><p>

47、<b>  {</b></p><p>  uchar A1,A2,A3;</p><p>  A1 = temp/100; //百位</p><p>  A2 = temp%100/10; //十位</p><p>  A3 = temp%10; //個(gè)位</p><p><

48、;b>  dula = 0;</b></p><p>  P0 = table[A1]; //顯示百位</p><p>  dula = 1; //打開段選,對(duì)應(yīng)74573的鎖存位,高電平不鎖存</p><p><b>  dula = 0;</b></p><p><b>  

49、wela = 0;</b></p><p>  P0 = 0xfe;</p><p>  wela = 1; //打開位選</p><p><b>  wela = 0;</b></p><p><b>  delay(0);</b></p><p>&l

50、t;b>  dula = 0;</b></p><p>  P0 = table1[A2]; //顯示十位,使用的是有小數(shù)點(diǎn)的數(shù)組(因?yàn)閠emp值擴(kuò)大了10倍,雖然是十位,實(shí)際為個(gè)位)</p><p><b>  dula = 1;</b></p><p><b>  dula = 0;</b><

51、;/p><p><b>  wela = 0;</b></p><p>  P0 = 0xfd;</p><p><b>  wela = 1;</b></p><p><b>  wela = 0;</b></p><p><b>  delay

52、(0);</b></p><p>  P0 = table[A3]; //顯示個(gè)位</p><p><b>  dula = 1;</b></p><p><b>  dula = 0;</b></p><p>  P0 = 0xfb;</p><p>&l

53、t;b>  wela = 1;</b></p><p><b>  wela = 0;</b></p><p><b>  delay(0);</b></p><p><b>  }</b></p><p>  void warn(uint s,uchar l

54、ed)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p><b>  i=s;</b></p><p><b>  beep=0;</b></p><p>  P1=~(l

55、ed);</p><p>  delay(100);</p><p><b>  beep=1;</b></p><p><b>  P1=0xff;</b></p><p><b>  i=s;</b></p><p>  delay(100);<

56、;/p><p><b>  }</b></p><p>  void deal(uint t)</p><p><b>  {</b></p><p>  if((t>warn_12)&&(t<=warn_11))</p><p><b> 

57、 {</b></p><p>  warn(40,0x01);}</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  while(1)</b&g

58、t;</p><p><b>  {</b></p><p>  Display(Get_Tmp()); }</p><p><b>  }</b></p><p><b>  調(diào)試過程及結(jié)論</b></p><p>  首先確定所寫程序與單片機(jī)各個(gè)模

59、塊相吻合,因?yàn)樗玫膯纹瑱C(jī)不同I/O口不同,顯示元件不同,程序也不同,每塊程序要根據(jù)DS18B20的工作要求而實(shí)現(xiàn)相應(yīng)的功能,比如程序初始化模塊,讀模塊,寫模塊,都要仔細(xì)考慮,仔細(xì)調(diào)試,通過系統(tǒng)的分析和總結(jié),得出溫室大氣溫度信號(hào)的采集傳感器件所需的測(cè)量程小,精確度不高,抗干擾性較強(qiáng),經(jīng)濟(jì)性較好的結(jié)論.并以此為依據(jù),選用DS18B20數(shù)字溫度傳感器為溫度采集器件,進(jìn)行了溫度采集系統(tǒng)的硬件和軟件設(shè)計(jì),實(shí)現(xiàn)了采集系統(tǒng)分布式采集溫度信號(hào)的功能.

60、同時(shí),通過串行總線完成了采集系統(tǒng)與上位計(jì)算機(jī)的連接,實(shí)現(xiàn)了采集系統(tǒng)的網(wǎng)絡(luò)化監(jiān)控功能。</p><p><b>  心得體會(huì)</b></p><p>  課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。課程設(shè)計(jì)是我們專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不

61、少的過程?!鼻Ю镏惺加谧阆隆?,通過這次課程設(shè)計(jì),我深深體會(huì)到這句千古名言的真正含義。我今天認(rèn)真的進(jìn)行課程設(shè)計(jì),學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)。通過這次課程設(shè)計(jì),我在多方面都有所提高。</p><p>  回顧起此次課程設(shè)計(jì),我感慨頗多,從選題到定稿,從理論到實(shí)踐,在整整兩星期的時(shí)間里,可以說是苦多余甜,但是學(xué)到很多東西。這次學(xué)習(xí)不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多

62、在書本上沒有的知識(shí)。通過這次課程設(shè)計(jì),我得到了一些工程項(xiàng)目知識(shí),懂得了理論與實(shí)際想結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正提高自己的實(shí)際動(dòng)手能力和獨(dú)立的思考的能力。在設(shè)計(jì)的過程中,經(jīng)常會(huì)遇到問題,可以說困難充充,這畢竟是第一次做,難免會(huì)遇到各種各樣的問題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的只是理解不夠深刻,掌握不夠牢固,通過這次課程設(shè)計(jì)之后,一定把以前

63、所學(xué)過的知識(shí)重新溫故。</p><p>  在設(shè)計(jì)中遇到了很多編程方面的調(diào)試問題,問了很多同學(xué)關(guān)于程序的問題,所以在同學(xué)的幫助下,終于迎刃而解。在此對(duì)幫助我的同學(xué)們表示衷心的感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  【1】郭天祥 《51單片機(jī)C語(yǔ)言教程》</p><p> 

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論