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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  數(shù)字濕度計(jì)設(shè)計(jì)</b></p><p><b>  一、設(shè)計(jì)任務(wù)</b></p><p>  設(shè)計(jì)一個(gè)以單片機(jī)為核心的濕度測(cè)量系統(tǒng),可實(shí)現(xiàn)的功能為:</p><p>  能實(shí)時(shí)測(cè)量所處環(huán)境的濕度值,誤差0.5%;</p><p>  系統(tǒng)可有用戶(hù)預(yù)設(shè)濕度值,測(cè)濕范圍0—

2、100%;</p><p>  如若超出預(yù)設(shè)值時(shí),系統(tǒng)會(huì)自動(dòng)報(bào)警,即發(fā)光二極管亮,同時(shí)蜂鳴器發(fā)出報(bào)警;</p><p>  系統(tǒng)采用數(shù)碼管顯示,能顯示設(shè)定溫度值和測(cè)得的實(shí)際值;</p><p>  設(shè)計(jì)出原理圖和實(shí)際電路板圖。</p><p><b>  二、設(shè)計(jì)方案</b></p><p>  

3、按照系統(tǒng)設(shè)計(jì)攻能要求,確定系統(tǒng)有5個(gè)模塊組成:主控制器,數(shù)字濕度傳感器,報(bào)警電路,按鍵電路及驅(qū)動(dòng)先是電路。</p><p>  主控制器的功能有單片機(jī)來(lái)完成,主要負(fù)責(zé)處理由數(shù)字濕度傳感器送來(lái)的數(shù)據(jù),并把處理好的數(shù)據(jù)送向顯示模塊。數(shù)字濕度傳感器主要來(lái)采集周?chē)h(huán)境參數(shù),并把所采集來(lái)的數(shù)據(jù)送向主控制器。按鍵電路主要用來(lái)完成單片機(jī)的復(fù)位操作和濕度初始值的設(shè)定。由于單片機(jī)輸出電流太?。▋H有幾毫安),所以增加驅(qū)動(dòng)電路主要用來(lái)

4、驅(qū)動(dòng)八位數(shù)碼管發(fā)光的。</p><p><b>  三、硬件電路設(shè)計(jì)</b></p><p><b>  Pc板圖</b></p><p><b>  元器件的選則</b></p><p><b>  濕度傳感器</b></p><p&

5、gt;  濕度傳感器的溫度系數(shù)。濕敏元件除對(duì)環(huán)境濕度敏感對(duì)溫度都十分敏感,而且在不同的相對(duì)濕度下其溫度系數(shù)是有差異的。溫漂非線(xiàn)性,我們需要在電路上加溫度補(bǔ)償式。濕度傳感器溫漂曲線(xiàn)的線(xiàn)性化直接影響到補(bǔ)償?shù)男Ч蔷€(xiàn)性的溫漂補(bǔ)償不出較好的效果,采用單片機(jī)軟件補(bǔ)償,或者無(wú)溫度補(bǔ)償?shù)臐穸葌鞲衅饕彩潜WC不了全溫范圍的精度,只有采用硬件溫度跟隨性補(bǔ)償才會(huì)獲得真實(shí)的補(bǔ)償效果。應(yīng)注意的是多數(shù)濕敏元件在40℃以上的環(huán)境是無(wú)法正常工作。</p>

6、<p>  DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性?xún)r(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT11傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在OTP內(nèi)存中,傳感器

7、內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線(xiàn)制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá)20米以上,使其成為各類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶(hù)需求而提供。</p><p><b>  實(shí)物圖</b></p><p><b>  引腳說(shuō)明</b>

8、;</p><p>  通信過(guò)程 </p><p>  總線(xiàn)空閑狀態(tài)為高電平,主機(jī)把總線(xiàn)拉低等待DHT11響應(yīng),主機(jī)把總線(xiàn)拉低必須大于18毫秒,保證DHT11能檢測(cè)到起始信號(hào)。DHT11接收到主機(jī)的開(kāi)始信號(hào)后,等待主機(jī)開(kāi)始信號(hào)結(jié)束,然后發(fā)送80us低電平響應(yīng)信號(hào).主機(jī)發(fā)送開(kāi)始信號(hào)結(jié)束后,延時(shí)等待20-40us后, 讀取DHT11的響應(yīng)信號(hào),主機(jī)發(fā)送開(kāi)始信號(hào)后,可以切換到輸入

9、模式,或者輸出高電平均可, 總線(xiàn)由上拉電阻拉高。 </p><p><b>  LCD</b></p><p>  液晶顯示器1602液晶也叫1602字符型液晶它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行1615 個(gè)字

10、符液晶模塊(顯示字符和數(shù)字)。目前市場(chǎng)上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。</p><p><b>  四、軟件設(shè)計(jì)</b></p><p><b>  軟件任務(wù),程序框圖</b></p><p><b&g

11、t;  程序:</b></p><p>  #include<reg52.h></p><p>  #include<math.h></p><p>  #include<INTRINS.H></p><p>  #define uint unsigned int</p><

12、p>  #define uchar unsigned char</p><p>  sbit seg1=P2^0;</p><p>  sbit seg2=P2^1;</p><p>  sbit seg3=P2^2;</p><p>  sbit DQ=P1^3;//ds18b20 端口</p><p>  s

13、fr dataled=0x80;//顯示數(shù)據(jù)端口</p><p>  Ucharcode duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};</p><p>  uchar code we[]={0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xf

14、e,0xff,}; uchar huanchong[]={0,0,0,0,0,0,0,0,};</p><p>  uchar dispcount,T0count,time,temp[8];</p><p>  sbit led=P1^2;</p><p><b>  bit flag;</b></p><p>  ui

15、nt temp1;</p><p>  uchar flag_get,count,num,minute,second;</p><p>  unsigned long x;</p><p>  void delay1(uchar MS);</p><p>  unsigned int ReadTemperature(void);</p&

16、gt;<p>  void Init_DS18B20(void);</p><p>  unsigned char ReadOneChar(void);</p><p>  void WriteOneChar(unsigned char dat);</p><p>  void delay(uint z)</p><p><

17、;b>  {</b></p><p>  while(z--);</p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>  uchar TempH,TempL;&l

18、t;/p><p><b>  uchar i;</b></p><p><b>  EA=1;</b></p><p>  TMOD=0x15;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b

19、></p><p>  TH1=(65536-4000)/256;</p><p>  TL1=(65536-4000)%256;</p><p><b>  TR1=1;</b></p><p><b>  TR0=1;</b></p><p><b>  

20、ET0=1;</b></p><p><b>  ET1=1;</b></p><p><b>  count=0;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p>&

21、lt;p>  P2=we[7];P0=duan[huanchong[0]];delay(250); P2=we[6];P0=duan[huanchong[1]];delay(250); P2=we[5];P0=duan[huanchong[2]];delay(250); P2=we[4];P0=duan[huanchong[3]];delay(250); P2=we[3];P0=duan[12];delay(250);</

22、p><p>  P2=we[2];P0=duan[TempL];delay(250);</p><p>  P2=we[1];P0=duan[(TempH%100)%10]|0x80;delay(250); P2=we[0];P0=duan[(TempH%100)/10];delay(250); if(flag

23、_get==1) //定時(shí)讀取當(dāng)前溫度</p><p><b>  {</b></p><p>  temp1=ReadTemperature();</p><p>  if(temp1&0x8000)</p><p><b>  {</b></p><p>  P2

24、=we[0];P0=0x40;//負(fù)號(hào)標(biāo)志</p><p>  temp1=~temp1; // 取反加1</p><p>  temp1 +=1;</p><p><b>  }</b></p><p><b>  else</b></p><p>  P2=we[0];P

25、0=0;</p><p>  TempH=temp1>>4;</p><p>  TempL=temp1&0x0F;</p><p>  TempL=TempL*6/10;//小數(shù)近似處理</p><p>  flag_get=0;</p><p><b>  }</b><

26、;/p><p>  if(flag==1)</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p>  x=T0count*65536+TH0*256+TL0;</p><p>  for(i=0;i<4;i++)<

27、/p><p><b>  {</b></p><p>  temp[i]=0;</p><p><b>  }</b></p><p><b>  i=0;</b></p><p>  while(x/10)</p><p><

28、b>  {</b></p><p>  temp[i]=x%10; x=x/10;</p><p><b>  i++;}</b></p><p>  temp[i]=x;</p><p>  for(i=0;i<4;i++)</p><p><b>  {<

29、;/b></p><p>  huanchong[i]=temp[i]; }</p><p><b>  time=0;</b></p><p>  T0count=0;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0

30、;</b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void t0(v

31、oid)interrupt 1 using 0</p><p><b>  {</b></p><p>  T0count++;</p><p><b>  }</b></p><p>  void t1(void)interrupt 3 using 0</p><p>&l

32、t;b>  {</b></p><p>  TH1=(65536-4000)/256;</p><p>  TL1=(65536-4000)%256;</p><p>  time++;num++;</p><p>  if(time==250)</p><p><b>  {</b&

33、gt;</p><p><b>  led=~led;</b></p><p><b>  TR0=0;</b></p><p><b>  time=0;</b></p><p><b>  flag=1;</b></p><p>

34、;<b>  }</b></p><p>  if (num==50)</p><p><b>  {num=0;</b></p><p>  flag_get=1;//標(biāo)志位有效</p><p><b>  second++;</b></p><p>

35、  if(second>=60)</p><p><b>  {</b></p><p><b>  second=0;</b></p><p><b>  minute++;</b></p><p><b>  }</b></p>&

36、lt;p><b>  }</b></p><p><b>  }</b></p><p>  void Init_DS18B20(void)</p><p><b>  {</b></p><p>  unsigned char x=0;</p><p

37、>  DQ = 1; //DQ復(fù)位</p><p>  delay(8); //稍做延時(shí)</p><p>  DQ = 0; //單片機(jī)將DQ拉低</p><p>  delay(80); //精確延時(shí) 大于 480us</p><p>  DQ = 1; //拉高總線(xiàn)</p><p>  delay(10);&

38、lt;/p><p>  x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay(5);</p><p><b>  }</b></p><p>  /******************************************************************/ /* 讀一個(gè)字節(jié) */ /*****

39、*************************************************************/ unsigned char ReadOneChar(void)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  unsigned char dat =

40、 0;</p><p>  for (i=8;i>0;i--)</p><p><b>  {</b></p><p>  DQ = 0; // 給脈沖信號(hào)</p><p><b>  dat>>=1;</b></p><p>  DQ = 1; // 給脈

41、沖信號(hào)</p><p><b>  if(DQ)</b></p><p>  dat|=0x80;</p><p><b>  delay(5);</b></p><p><b>  }</b></p><p>  return(dat);</p&

42、gt;<p><b>  }</b></p><p>  /******************************************************************/ /* 寫(xiě)一個(gè)字節(jié) */ /******************************************************************/ void WriteO

43、neChar(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  for (i=8; i>0; i--)</p><p><b>  {</b></p><p>&l

44、t;b>  DQ = 0;</b></p><p>  DQ = dat&0x01;</p><p><b>  delay(5);</b></p><p><b>  DQ = 1;</b></p><p><b>  dat>>=1;</b&

45、gt;</p><p><b>  }</b></p><p><b>  delay(5);</b></p><p><b>  }</b></p><p>  /********************************************************

46、**********/ /* 讀取濕度度 */ /******************************************************************/ unsigned int ReadTemperature(void)</p><p><b>  {</b></p><p>  unsigned char a=0;</p>

47、;<p>  unsigned int b=0;</p><p>  unsigned int t=0;</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); // 跳過(guò)讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0x44); // 啟動(dòng)濕度度轉(zhuǎn)換&l

48、t;/p><p>  delay(200);</p><p>  Init_DS18B20();</p><p>  WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作</p><p>  WriteOneChar(0xBE); //讀取濕度寄存器等(共可讀9個(gè)寄存器) a=ReadOneChar(); //低位</p>

49、<p>  b=ReadOneChar(); //高位</p><p><b>  b<<=8;</b></p><p><b>  t=a+b;</b></p><p>  return(t);</p><p>  }// 前兩個(gè)就是濕度</p><p

50、>  五、電路測(cè)試與問(wèn)題解決方法</p><p>  首先是測(cè)試顯示電路的正確性,根據(jù)寫(xiě)好的程序,寫(xiě)入單片機(jī)中。安裝好硬件,上電,顯示正常,達(dá)到預(yù)期效果,則證明顯示電路是正常的。按下復(fù)位按鍵,LCD無(wú)顯示,松開(kāi),顯示正常,證明復(fù)位電路是正常的。然后測(cè)試得到濕度程序,將初始化程序,ADC0804正常工作的初始化程序、寫(xiě)ADC0804程序、讀ADC0804程序,有了濕度子程序,濕度轉(zhuǎn)換子程序,數(shù)據(jù)轉(zhuǎn)換子程序,顯

51、示子程序正確編排后寫(xiě)入單片機(jī)中,上電,顯示不正常。重新讀取源程序,經(jīng)檢查后發(fā)現(xiàn)問(wèn)題出在ADC0804初始化程序有錯(cuò),修改后重新編譯并寫(xiě)入單片機(jī)。上電后,顯示當(dāng)前濕度。證明ADC0804工作是正常的,各部分子程序都運(yùn)行正常。最后是按鍵子程序及報(bào)警子程序的調(diào)試,將正確編排后的按鍵子程序及報(bào)警子程序?qū)懭雴纹瑱C(jī)中,上電后,各個(gè)部分工作正常,在測(cè)得當(dāng)前濕度超出設(shè)定濕度上下限后,蜂鳴器發(fā)出報(bào)警聲,調(diào)試基本成功。但按鍵反應(yīng)遲緩是否是由于顯示程序占用時(shí)

52、間過(guò)長(zhǎng)造成的呢,還是在于按鍵程序采用掃描方式。我們先考慮采用中斷方式解決此問(wèn)題,又因?yàn)锳DC0804正常工作有嚴(yán)格的時(shí)序限制,中斷在很大可能上會(huì)影到ADC0804正常工作。在嘗試并采用中斷方式后,決定仍采</p><p><b>  六、功能測(cè)試與結(jié)論</b></p><p>  在硬件和軟件單獨(dú)調(diào)試成功后進(jìn)行軟硬件綜合調(diào)試,它可以分成以下三個(gè)步驟:</p>

53、;<p>  第一步,濕度傳感器有信號(hào)傳出;</p><p>  第二步,使單片機(jī)獲得中斷信號(hào),計(jì)算出轉(zhuǎn)速值并且存儲(chǔ);</p><p>  第三步,通過(guò)LCD1602顯示屏把測(cè)量的數(shù)據(jù)顯示出來(lái)。</p><p>  七、設(shè)計(jì)總結(jié)與 體會(huì)</p><p>  本系統(tǒng)是基于單片機(jī)AT89S52的處理,可以完美的實(shí)現(xiàn)對(duì)濕度的監(jiān)測(cè)??梢?/p>

54、說(shuō)傳感器是實(shí)現(xiàn)測(cè)量與控制的首要環(huán)節(jié),是測(cè)控系統(tǒng)的關(guān)鍵部件。近來(lái)傳感器所檢測(cè)的信號(hào)顯著地增加,因而其品種也極其繁多。為了對(duì)各種各樣的信號(hào)進(jìn)行檢測(cè)、控制,就必須獲得盡量簡(jiǎn)單易于處理的信號(hào)。電信號(hào)能較容易地進(jìn)行放大、反饋、濾波、微分、存貯、遠(yuǎn)距離操作等。所以只有電信號(hào)能夠滿(mǎn)足這樣的要求。作為一種功能塊的傳感器可狹義的定義為:“將外界的輸入信號(hào)變換為電信號(hào)的一種元件。用計(jì)算機(jī)控制的自動(dòng)化裝置來(lái)代替人的勞動(dòng),我們可以說(shuō)電子計(jì)算機(jī)就相當(dāng)于人的大腦,

55、那么傳感器則相當(dāng)于人的五官。傳感器是獲取自然領(lǐng)域中信息的主要途徑與手段。換句話(huà)說(shuō)如果不進(jìn)行傳感器的開(kāi)發(fā),電子計(jì)算機(jī)將處于一種不能適應(yīng)實(shí)際需要的狀態(tài)。同時(shí)要求傳感器、電子計(jì)算機(jī)和執(zhí)行器三者都能相互協(xié)調(diào)。如此一來(lái),傳感器就成了現(xiàn)代科學(xué)的中樞神經(jīng)系統(tǒng),并且日益受到人們的普遍重視,現(xiàn)代傳感器技術(shù)的應(yīng)用已成為必然趨勢(shì)。有了傳感器對(duì)原始被測(cè)信號(hào)進(jìn)行準(zhǔn)確可靠的捕捉和轉(zhuǎn)換一切準(zhǔn)確的測(cè)量和控制都可以實(shí)現(xiàn),并且是設(shè)備和系統(tǒng)都正常運(yùn)行在最佳狀態(tài),從而保證生產(chǎn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論