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

下載本文檔

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

文檔簡介

1、<p>  基于單片機(jī)的溫度檢測儀設(shè)計</p><p>  學(xué)生姓名: </p><p>  學(xué)生學(xué)號: </p><p>  院(系): 電氣信息工程學(xué)院 </p><p>  年級專業(yè): 2008級電子信息工程</p><p>  指導(dǎo)教

2、師: </p><p><b>  二〇一一年十二月</b></p><p><b>  目 錄</b></p><p><b>  前 言2</b></p><p><b>  一、引言3</b></p&g

3、t;<p><b>  二、設(shè)計方案4</b></p><p>  三、設(shè)計框圖及流程圖4</p><p><b>  1、主控制器4</b></p><p><b>  2、顯示電路4</b></p><p><b>  3、溫度傳感器4&l

4、t;/b></p><p><b>  4、流程圖5</b></p><p>  四、溫度檢測儀程序6</p><p>  五、電路仿真的設(shè)計與分析10</p><p>  1、Proteus仿真軟件介紹10</p><p><b>  2、仿真圖11</b>

5、</p><p><b>  參考文獻(xiàn)12</b></p><p><b>  致 謝13</b></p><p><b>  前 言</b></p><p>  隨著科技的發(fā)展和“信息時代”的到來,作為獲取信息的手段——傳感器技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域越來越廣泛,

6、對其要求越來越高,需求越來越迫切。因此,了解并掌握各類傳感器的基本結(jié)構(gòu)、工作原理及特性是非常重要的。</p><p>  傳感器主要用于測量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類傳感器的結(jié)構(gòu)、原理及其性能指標(biāo),還必須懂得傳感器經(jīng)過適當(dāng)?shù)慕涌陔娐氛{(diào)整才能滿足信號的處理、顯示和控制的要求,而且只有通過對傳感器應(yīng)用實例的原理和智能傳感器實例的分析了解,才能將傳感器和信息通信與信息處理結(jié)合起來

7、,適應(yīng)傳感器的生產(chǎn)、研制、開發(fā)和應(yīng)用。另一方面,傳感器的被測信號來自于各個應(yīng)用領(lǐng)域,每個領(lǐng)域都為了改革生產(chǎn)力、提高工效和時效,各自都在開發(fā)研制適合應(yīng)用的傳感器,于是種類繁多的新型傳感器及傳感器系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。</p><p><b>  一、引言</b></p><p>  本設(shè)計所介紹

8、的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機(jī)AT89S51,測溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p><b>  二、設(shè)計方案</b></p><p>  用溫度傳感器,在

9、單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。</p><p>  三、設(shè)計框圖及流程圖</p><p><b>  1 主控制器</b></p><p>  單片機(jī)AT89S51具有低電壓供電和體積小等特點,四個端口

10、只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。</p><p><b>  2 顯示電路</b></p><p>  顯示電路采用4位共陽LED數(shù)碼管。</p><p><b>  3溫度傳感器</b></p><p>  DS18B20溫度傳感器是美國

11、DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p>  ●獨特的單線接口僅需要一個端口引腳進(jìn)行通信;</p><p>  ●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;</p><p&

12、gt;<b>  ●無須外部器件;</b></p><p>  ●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b>  ●零待機(jī)功耗;</b></p><p>  ●溫度以9或12位數(shù)字;</p><p>  ●用戶可定義報警設(shè)置;</p><p>  

13、●報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;</p><p>  ●負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; </p><p>  DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如下圖所示。</p><p><b>  4、流程圖</b></p><p&

14、gt;  主程序流程圖: 讀溫度流程圖:</p><p>  讀溫度子程序: 計算溫度子程序:</p><p><b>  四、溫度檢測儀程序</b></p><p>  # include "

15、reg51.h" </p><p>  # include "intrins.h" </p><p>  # define disdata P0</p><p>  # define discan P2</p><p>  # define uchar unsigned char </p>

16、;<p>  # define uint unsigned int </p><p>  sbit DQ = P3^7; //溫度輸入口</p><p>  sbit DIN = P0^7;//led小數(shù)點控制</p><p>  uchar DQ;</p><p><b>  uint h;</b>&

17、lt;/p><p>  uchar code ditab[16]= </p><p>  {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; </p><p>  uchar code dis_7[12]= {0xc0,0xf9,0xa4,0xb0,0x99

18、,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};</p><p>  uchar code scan_con[4]={0xf7,0xfB,0xFD,0xFE};//列掃描控制字 </p><p>  uchar data temp_data[2]={0x00, 0x00,}; //讀出溫度暫存</p><p>  uchar data

19、display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數(shù)據(jù),共4個數(shù)據(jù),1個運算暫存用</p><p>  void delay(uint t) </p><p><b>  { </b></p><p>  for(;t>0;t--); </p><p><b>  

20、}</b></p><p>  /******************************顯示掃描函數(shù)******************************/ </p><p><b>  scan() </b></p><p><b>  { </b></p><p><

21、;b>  char k; </b></p><p>  for(k=0;k<4;k++) //4位LED掃描控制</p><p><b>  { </b></p><p>  disdata=dis_7[display[k]]; </p><p>  if(k==1){DIN=0;} /

22、/當(dāng)K=1時,P0^7為低電平顯示小數(shù)點</p><p>  discan=scan_con[k]; //列掃描</p><p>  delay(30);</p><p>  discan=0xFF; </p><p><b>  } </b></p><p><b>  }</

23、b></p><p>  /*******************************DS復(fù)位函數(shù)******************************/ </p><p>  ow_reset(void) </p><p><b>  { </b></p><p>  char presence=1;

24、</p><p>  while(presence) </p><p><b>  { </b></p><p>  while(presence) </p><p><b>  { </b></p><p>  DQ=1;_nop_();_nop_(); </p>

25、;<p><b>  DQ=0; </b></p><p>  delay(50); //延時550毫秒</p><p><b>  DQ=1; </b></p><p>  delay(6); </p><p>  presence=DQ; </p><p>

26、;<b>  } </b></p><p>  delay(45); </p><p>  presence=~DQ; </p><p><b>  } </b></p><p><b>  DQ=1; </b></p><p><b>  }

27、 </b></p><p>  /*****************************DS寫命令函數(shù)*********************************/ </p><p>  void write_byte(uchar val) //向1-WIRE總線上寫一字節(jié)</p><p><b>  { </b>&l

28、t;/p><p><b>  uchar i;</b></p><p>  for(i=8;i>0;i--) </p><p><b>  { </b></p><p>  DQ=1;_nop_();_nop_(); </p><p>  DQ=0;_nop_();_nop

29、_();_nop_();_nop_();_nop_(); </p><p>  DQ=val&0x01; //最低位移出</p><p>  delay(6); </p><p>  val=val/2; //右移1位</p><p><b>  } </b></p><p><

30、b>  DQ=1; </b></p><p>  delay(1); </p><p><b>  }</b></p><p>  /*******************************DS讀一字節(jié)函數(shù)****************************************************/ <

31、;/p><p>  uchar read_byte(void) </p><p><b>  { </b></p><p><b>  uchar i; </b></p><p>  uchar value=0;</p><p>  for(i=8;i>0;i--) <

32、;/p><p><b>  { </b></p><p>  DQ=1;_nop_();_nop_(); </p><p>  value>>=1;</p><p><b>  DQ=0; </b></p><p>  _nop_();_nop_();_nop_();

33、_nop_();</p><p>  DQ=1;_nop_();_nop_();_nop_();_nop_(); </p><p>  if(DQ) value|=0x80; </p><p>  delay(6); </p><p><b>  } </b></p><p><b> 

34、 DQ=1; </b></p><p>  return(value); </p><p><b>  }</b></p><p>  /******************************讀出溫度函數(shù)*************************************************/ </p>

35、<p>  read_temp() </p><p><b>  { </b></p><p>  ow_reset(); </p><p>  write_byte(0xcc); </p><p>  write_byte(0xbe);</p><p>  temp_data[0]=

36、read_byte(); </p><p>  temp_data[1]=read_byte(); </p><p>  ow_reset(); </p><p>  write_byte(0xcc); </p><p>  write_byte(0x44); </p><p><b>  }</b&g

37、t;</p><p>  /********************************計算溫度子函數(shù)**********************************************/ </p><p>  work_temp() </p><p><b>  { </b></p><p>  uchar

38、 n=0; </p><p>  if(temp_data[1]>127) </p><p>  {temp_data[1]=(255-temp_data[1]);temp_data[0]=(255-temp_data[0]);n=1;} //負(fù)溫度求補(bǔ)碼</p><p>  display[4]=temp_data[0]&0x0f;display[0

39、]=ditab[display[4]]; </p><p>  display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ; </p><p>  display[3]=display[4]/100; </p><p>  display[1]=display[4

40、]%100; </p><p>  display[2]=display[1]/10; </p><p>  display[1]=display[1]%10; </p><p>  if(!display[3]){display[3]=0x0a; </p><p>  if(!display[2]){display[2]=0x0a;}} /

41、/最高位為0時不顯示</p><p>  if(n){display[3]=0x0b;} //負(fù)溫度是最高為顯示“-”</p><p><b>  }</b></p><p>  /*******************************主函數(shù)********************************************

42、**************/ </p><p><b>  main () </b></p><p><b>  { </b></p><p>  disdata=0xff;// 初始化端口</p><p>  discan=0xff;</p><p>  for(h=0;

43、h<4;h++) //開機(jī)顯示“8888”scan();</p><p>  {display[h]=8;}</p><p>  ow_reset(); //開機(jī)先轉(zhuǎn)換一次</p><p>  write_byte(0xcc);//skip ROM </p><p>  write_byte(0x44);//發(fā)轉(zhuǎn)換命令<

44、/p><p>  for(h=0;h<500;h++)//開機(jī)顯示“8888”兩秒 </p><p>  {scan();} </p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  read_temp();

45、//讀出溫度數(shù)據(jù)</p><p>  work_temp(); //處理溫度數(shù)據(jù)</p><p>  for(h=0;h<500;h++) //顯示溫度兩秒</p><p>  {scan();} </p><p><b>  } </b></p><p><b>  }<

46、/b></p><p>  五、電路仿真的設(shè)計與分析</p><p>  1、Proteus仿真軟件介紹</p><p>  Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:①實現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模

47、擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功

48、能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。</p><p><b>  2、仿真圖</b></p><p><b>  參考文獻(xiàn)&

49、lt;/b></p><p>  [1] 李朝青.單片機(jī)原理及接口技術(shù)(簡明修訂版).杭州:北京航空航天大學(xué)出版社,1998</p><p>  [2] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994</p><p>  [3] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,1989</p><p>  [

50、4] 單片機(jī)C語言程序設(shè)計(完全自學(xué)手冊)北京:電子工業(yè)出版社,2008</p><p><b>  致 謝</b></p><p>  在本次課程設(shè)計中,我得到了指導(dǎo)老師以及同學(xué)的熱心指導(dǎo)。幫助解決課程設(shè)計中遇到的許多問題。還不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在課程設(shè)計中學(xué)習(xí)到許多新的知識。通過這次畢業(yè)設(shè)計,使我深刻地認(rèn)識到學(xué)好專

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論