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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  智能風扇設計報告</b></p><p><b>  學院:信息工程學院</b></p><p>  專業:自 動 化</p><p><b>  班級: </b></p><p><b>  姓名: </b></p

2、><p>  日期:2012年6月14日</p><p>  基于單片機的智能電風扇控制系統</p><p><b>  引 言 </b></p><p>  電風扇曾一度被認為是空調產品沖擊下的淘汰品,其實并非如此,市場人士稱,家用電風扇并沒有隨著空調的普及而淡出市場,近兩年反而出現了市場銷售復蘇的態勢。其主要原因:一是

3、風扇和空調的降溫效果不同——空調有強大的制冷功能,可以快速有效地降低環境溫度,但電風扇的風更溫和,更加適合老人兒童和體質較弱的人使用;二是電風扇有價格優勢,價格低廉而且相對省電,安裝和使用都非常簡單。</p><p>  盡管電風扇有其市場優勢,但傳統電風扇還是有許多地方應當進行改良的,最突出的缺點是它不能根據溫度的變化適時調節風力大小,對于夜間溫差大的地區,人們在夏夜使用電風扇時可能遇到這樣的問題:當凌晨降溫的

4、時候電風扇依然在工作,可是人們因為熟睡而無法察覺,既浪費電資源又容易引起感冒,傳統的機械定時器雖然能夠控制電風扇在工作一定后關閉,但定時范圍有限,且無法對溫度變化靈活處理。鑒于以上方面的考慮,我們需要設計一種智能電風扇控制系統來解決這些問題。</p><p>  1.1 智能電風扇控制系統概述 </p><p>  傳統電風扇是220V交流電供電,電機轉速分為幾個檔位,通過人為調整電機轉

5、速達到改變風力大小的目的,亦即,每次風力改變,必然有人參與操作,這樣勢必帶來諸多不便。</p><p>  本設計中的智能電風扇控制系統,是指將電風扇的電機轉速作為被控制量,由單片機分析采集到的數字溫度信號,再通過可控硅對風扇電機進行調速。從而達到無須人為控制便可自動調整風力大小的效果。</p><p><b>  設計任務和主要內容</b></p>&

6、lt;p>  本設計以MCS51單片機為核心,通過溫度傳感器對環境溫度進行數據采集,從而建立一個控制系統,使電風扇隨溫度的變化而自動變換檔位,實現“溫度高,風力大,溫度低,風力弱”的性能。另外,通過鍵盤控制面板,用戶可以在一定范圍內設置電風扇的最低工作溫度,當溫度低于所設置溫度時,電風扇將自動關閉,當高于此溫度時電風扇又將重新啟動。</p><p>  本設計主要內容如下:</p><p

7、>  風速設為從高到低6個檔位,可由用戶通過鍵盤手動設定。</p><p> ?、?當溫度每降低3℃則電風扇風速自動下降一個檔位。</p><p> ?、?當溫度每升高3℃則電風扇風速自動上升一個檔位。</p><p>  10℃最低工作溫度,當低于該溫度時,電風扇自動停轉。</p><p><b>  自動與手動的切換<

8、;/b></p><p>  系統主要硬件電路設計 </p><p><b>  總體硬件設計</b></p><p>  系統總體設計框圖如圖2-1所示</p><p>  圖2-1 系統原理框圖</p><p>  對于單片機中央處理系統的方案設計,根據要求,我們可以選用具有4KB片內E

9、2PROM的AT89C51單片機作為中央處理器。作為整個控制系統的核心,AT89C51內部已包含了定時器、程序存儲器、數據存儲器等硬件,其硬件能符合整個控制系統的要求,不需要外接其他存儲器芯片和定時器件,方便地構成一個最小系統。整個系統結構緊湊,抗干擾能力強,性價比高。是比較合適的方案</p><p><b>  溫度傳感器模塊設計</b></p><p>  溫度傳

10、感器可以選用LM324A的運算放大器,將其設計成比例控制調節器,輸出電壓與熱敏電阻的阻值成正比,但這種方案需要多次檢測后方可使采樣精確,過于煩瑣。所以我采用更為優秀的DS18B20數字溫度傳感器,它可以直接將模擬溫度信號轉化為數字信號,降低了電路的復雜程度,提高了電路的運行質量。</p><p>  2.2.1 溫度傳感器模塊組成</p><p>  本模塊以DS18B20作為溫度傳感器,

11、AT89C51作為處理器,配以溫度顯示作為溫度控制輸出單元。整個系統力求結構簡單,功能完善。電路圖如圖2-2所示。</p><p><b>  系統工作原理如下:</b></p><p>  DS18B20進行現場溫度測量,將測量數據送入AT89C51的P3.7口,經過單片機處理后顯示溫度值,并與設定溫度值的上下限值比較,若高于設定上限值或低于設定下限值則控制電機轉速

12、進行調整。</p><p><b>  電路圖見附錄。</b></p><p>  電機調速與控制模塊設計</p><p>  電機調速是整個控制系統中的一個重要的方面。通過4905,使輸出端電壓發生改變,從而使施加在電風扇的輸入電壓發生改變,以調節風扇的轉速,實現各檔位風速的無級調速。</p><p>  2.3.1

13、電機調速原理</p><p>  可控硅的導通條件如下:</p><p>  1)陽-陰極間加正向電壓;</p><p>  2)控制極-陰極間加正向觸發電壓;</p><p>  3)陽極電流IA 大于可控硅的最小維持電流IH。</p><p>  電風扇的風速設為從高到低6、5、4、3、2、1檔,各檔風速都有一個限

14、定值。在額定電壓、額定功率下,以最高轉速運轉時, </p><p>  2.3.2 電機控制模塊硬件設計</p><p><b>  電路圖見附錄。</b></p><p>  溫度顯示與控制模塊設計</p><p>  溫度的顯示通過LED燈來顯示其變化,在表盤上,共有8個LED指示燈。分別為自動或手動,1級風蘇、2級

15、風速等。LED會隨著溫度以及操作的不同會進行相應的顯示。</p><p>  鍵盤控制系統模塊設計</p><p>  矩陣鍵盤是3*3的,接在P2口進行相應的控制,主要的操作是進行手動自動切換、風速手動調節等,同時,在相應的鍵盤操作下,在LED顯示部分,進行相應的操作顯示。這樣做的目地可以簡化操作,并且很簡單的便可以達到控制目的。</p><p><b>

16、;  電路圖見附錄。</b></p><p>  穩壓電路 模塊的設計</p><p>  為了保證單片機在正常電壓下正常工作,我們采用7805來進行5V的穩壓工作。電路原理圖如下:</p><p><b>  電路圖見附錄。</b></p><p>  第三節 系統軟件設計</p><p

17、>  在程序設計上,我們主要設計了四個模塊,主程序模塊、溫度掃描模塊、電機控制模塊和鍵盤掃描模塊。</p><p>  主程序主要涉及到對溫度采集及鍵盤采集回來的數據進行綜合性的處理。溫度掃描模塊,則結合溫度傳感器的原理,寫出了采集溫度用的函數。電機控制,通過延時實現了模擬的PWM波,對速度進行了分檔。鍵盤掃描,則采用定時中斷的方法,隔100ms時間進行一次掃描。具體思想見附錄1.</p>&

18、lt;p><b>  結 束 語</b></p><p>  首先,通過這次應用系統設計,在很大程度上提高了自己的獨立思考能力和單片機的專業知識,也深刻了解寫一篇應用系統的步驟和格式,有過這樣的一次訓練,相信在接下來的日子我們都會了,而且會做得更好。</p><p>  我所寫的系統主要根據目前節智能化電風扇技術的發展趨勢和國內實際的應用特點和要求,采用了自動化

19、的結構形式,實現對電風扇轉速的自動控制。</p><p>  系統以單片機AT89C51為核心部件,單片機系統完成對環境溫度信號的采集、處理、顯示等功能;用Protel軟件繪制電路原理圖和PCB電路印刷板圖,由Protues軟件進行訪真測試,利用MCS51匯編語言編制,運行程序該系統的主要特點是:</p><p>  1)適用性強,用戶只需對界面參數進行設置并啟動系統正常運行便可滿足不同用

20、戶對最適合溫度的要求,實現對最適溫度的實時監控。</p><p>  2)系統成本低廉,操作非常簡單,隨時可以根據軟件編寫新的功能加入產品。操作界面可擴展性強,只要稍加改變,即可增加其他按鍵的使用功能。</p><p>  本系統在當今提倡人性化設計和健康產品的環境下具有非常好的市場前景。 </p><p>  本設計在模擬檢測中運行較好,但采樣據不太穩定。功

21、能上的缺憾是對于兩個檔之間的臨界溫度處理不好,并且檔位太少。還有待改進。</p><p><b>  附錄1:</b></p><p><b>  主程序:</b></p><p>  #include<reg52.h></p><p>  #defineuchar unsigned

22、char</p><p>  #define uint unsigned int</p><p>  #include "wendu.h"</p><p>  #include "dianji.h"</p><p>  #include "jianpan.h"</p>

23、<p>  //extern uint speed;</p><p>  //extern unit anjian[9];</p><p><b>  main()</b></p><p><b>  { </b></p><p><b>  uint tmp;</b&g

24、t;</p><p><b>  EA=0;</b></p><p><b>  P0=0xff;</b></p><p>  dianji_kou=1;//dian ji chu shi wei gao</p><p>  anjian_clear1();</p><p>

25、;  anjian[0]=1;</p><p>  anjian_dingshi_init(); </p><p>  EA=1; //EA shi neng</p><p><b>  while(1)</b></p><p><b>  {</b></p><p&

26、gt;  anjian_saomiao_1();</p><p>  if(anjian[0]==1){</p><p>  tmp=DS18B20_Tmp_Read();</p><p>  if(tmp<=0x00a0){</p><p>  P0=0x00;//<10c</p><p>  spe

27、ed_0();</p><p><b>  }</b></p><p>  else if(tmp>0x00a0&&tmp<=0x0140){</p><p>  P0=0x7f; //10--20c </p><p>  speed_2();</p><p>

28、;<b>  }</b></p><p>  else if(tmp>0x0140&&tmp<=0x0170){</p><p>  P0=0xbd;//20--23c</p><p>  speed_3();</p><p><b>  }</b></p>

29、<p>  else if(tmp>0x0170&&tmp<=0x0190){</p><p>  P0=0xdd;//23--26c </p><p>  speed_4();</p><p><b>  }</b></p><p>  else if(tmp>0x0

30、190&&tmp<=0x01d0){</p><p>  P0=0xed; //26--29c </p><p>  speed_5();</p><p><b>  }</b></p><p>  else if(tmp>0x01d0&&tmp<=0x0200){&

31、lt;/p><p>  P0=0xf5; //29--32c </p><p>  speed_6();</p><p><b>  }</b></p><p><b>  else {</b></p><p>  P0=0xf9; //>35c&l

32、t;/p><p>  speed_7();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(anjian[1]==1){</p><p><b>  P0=0xfe;</b></p>&

33、lt;p>  anjian_saomiao_1();</p><p>  if(anjian[3]==1){</p><p>  P0=0x7e;//<10c</p><p>  speed_1();</p><p><b>  } </b></p><p>  else if(a

34、njian[4]==1){</p><p>  P0=0xbe; //10--20c </p><p>  speed_2();;</p><p><b>  }</b></p><p>  else if(anjian[5]==1){</p><p>  P0=0xde;//20-

35、-25c</p><p>  speed_3();</p><p><b>  }</b></p><p>  else if(anjian[6]==1){</p><p>  P0=0xee; //25--30c </p><p>  speed_4();</p><p&

36、gt;<b>  }</b></p><p>  else if(anjian[7]==1){</p><p>  P0=0xf6; //30--35c </p><p>  speed_5();</p><p><b>  }</b></p><p>  else if

37、(anjian[8]==1){</p><p>  P0=0xfa; //>35c</p><p>  speed_6();</p><p><b>  } </b></p><p>  else speed_0();</p><p><b>  }</b

38、></p><p>  else { P0=0xff; speed_0();}</p><p><b>  } </b></p><p><b>  } </b></p><p><b>  溫度采集程序:</b></p><p>  //

39、/sbit TMDAT= P3^7;</p><p>  /////////////////////////dian ji/////////////////////////////////////</p><p>  sbit TMDAT= P3^7;</p><p>  void Delay(int useconds)</p><p>&l

40、t;b>  {</b></p><p><b>  int s;</b></p><p>  for (s=0;s<useconds;s++);</p><p><b>  }</b></p><p>  uchar Reset_Bus(void)</p>&l

41、t;p><b>  {</b></p><p>  uchar presence;</p><p><b>  TMDAT=0;</b></p><p>  Delay(29);</p><p><b>  TMDAT=1;</b></p><p>

42、;<b>  Delay(3);</b></p><p>  presence=TMDAT;</p><p>  Delay(25);</p><p>  return(presence);</p><p><b>  }</b></p><p>  void Write_B

43、it(char bitval)</p><p><b>  {</b></p><p><b>  TMDAT=0;</b></p><p>  if(bitval==1) TMDAT=1;</p><p><b>  Delay(5);</b></p><

44、p><b>  TMDAT=1;</b></p><p><b>  }</b></p><p>  void Write_Byte(char val)</p><p><b>  {</b></p><p><b>  uchar i;</b>&l

45、t;/p><p>  uchar temp;</p><p>  for (i=0;i<8;i++) </p><p><b>  {</b></p><p>  temp=val>>i;</p><p>  temp&=0x01;</p><p>

46、  Write_Bit(temp);</p><p><b>  }</b></p><p><b>  Delay(5);</b></p><p><b>  }</b></p><p>  uchar Read_Bit(void) </p><p>

47、<b>  {</b></p><p><b>  uchar i;</b></p><p><b>  TMDAT=0;</b></p><p><b>  TMDAT=1;</b></p><p>  for(i=0;i<3;i++);</

48、p><p>  return(TMDAT);</p><p><b>  }</b></p><p>  uchar Read_Byte(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p&g

49、t;<p>  uchar value=0;</p><p>  for (i=0;i<8;i++)</p><p><b>  {</b></p><p>  if(Read_Bit()) value|=0x01<<i;</p><p><b>  Delay(6);&

50、lt;/b></p><p><b>  }</b></p><p>  return(value);</p><p><b>  }</b></p><p>  uint DS18B20_Tmp_Read(void)</p><p><b>  {</

51、b></p><p>  uint TEMP;</p><p>  uchar TEMP_LSB,TEMP_MSB;</p><p>  Reset_Bus();</p><p>  Write_Byte(0xCC);</p><p>  Write_Byte(0x44);</p><p>

52、;<b>  Delay(5);</b></p><p>  Reset_Bus();</p><p>  Write_Byte(0xCC);</p><p>  Write_Byte(0xBE);</p><p>  TEMP_LSB=Read_Byte();</p><p>  TEMP_MS

53、B=Read_Byte();</p><p>  TEMP=TEMP_MSB;</p><p>  TEMP=TEMP<<8;</p><p>  TEMP=TEMP|TEMP_LSB;</p><p>  return(TEMP);</p><p><b>  }</b></p

54、><p><b>  電機調速程序:</b></p><p>  sbit dianji_kou=P3^6; //P3^6控制電機</p><p>  void sudu(uint x){</p><p><b>  uint i;</b></p><p>  dian

55、ji_kou=0;</p><p>  for(i=0;i<5001;i++){</p><p>  if(i==x){dianji_kou=~dianji_kou;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  

56、void speed_0(void){</p><p><b>  sudu(0);</b></p><p><b>  }</b></p><p>  void speed_1(void){</p><p>  sudu(500);</p><p><b>  }

57、</b></p><p>  void speed_2(void){</p><p>  sudu(700);</p><p><b>  }</b></p><p>  void speed_3(void){</p><p>  sudu(800);</p><p

58、><b>  }</b></p><p>  void speed_4(void){</p><p>  sudu(1000);</p><p><b>  }</b></p><p>  void speed_5(void){</p><p>  sudu(1200)

59、;</p><p><b>  }</b></p><p>  void speed_6(void){</p><p>  sudu(1500);</p><p><b>  }</b></p><p>  void speed_7(void){</p><

60、;p>  sudu(1800);</p><p><b>  }</b></p><p>  sbit dianji_kou=P3^6; //P3^6控制電機</p><p>  void sudu(uint x){</p><p><b>  uint i;</b></p&g

61、t;<p>  dianji_kou=0;</p><p>  for(i=0;i<5001;i++){</p><p>  if(i==x){dianji_kou=~dianji_kou;}</p><p><b>  }</b></p><p><b>  }</b><

62、/p><p>  void speed_0(void){</p><p><b>  sudu(0);</b></p><p><b>  }</b></p><p>  void speed_1(void){</p><p>  sudu(500);</p>&l

63、t;p><b>  }</b></p><p>  void speed_2(void){</p><p>  sudu(700);</p><p><b>  }</b></p><p>  void speed_3(void){</p><p>  sudu(800

64、);</p><p><b>  }</b></p><p>  void speed_4(void){</p><p>  sudu(1000);</p><p><b>  }</b></p><p>  void speed_5(void){</p>&l

65、t;p>  sudu(1200);</p><p><b>  }</b></p><p>  void speed_6(void){</p><p>  sudu(1500);</p><p><b>  }</b></p><p>  void speed_7(vo

66、id){</p><p>  sudu(1800);</p><p><b>  }</b></p><p><b>  鍵盤采集程序:</b></p><p><b>  /*</b></p><p>  p2^0 p2^1 p2^2</p&

67、gt;<p><b>  p2^3</b></p><p><b>  p2^4</b></p><p><b>  p2^5</b></p><p><b>  */</b></p><p>  sbit KeyIn1 = P2^3;<

68、;/p><p>  sbit KeyIn2 = P2^4;</p><p>  sbit KeyIn3 = P2^5;</p><p>  sbit KeyOut1 = P2^0;</p><p>  sbit KeyOut2 = P2^1;</p><p>  sbit KeyOut3 = P2^2;</p>

69、<p>  uint anjian[9];</p><p>  void anjian_dingshi_init(){ </p><p>  TMOD=0x11;</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256; //100MS<

70、;/p><p>  // EA=1; //KAI ZONG ZHONG DUAN</p><p>  TR0=1; //T0 YUN XU</p><p><b>  }</b></p><p>  void anjian_clear1(void){</p><

71、;p><b>  char i;</b></p><p>  for(i=0;i<9;i++){</p><p>  anjian[i]=0;</p><p><b>  }</b></p><p><b>  }</b></p><p> 

72、 void anjian_clear2(void){</p><p><b>  char i;</b></p><p>  for(i=3;i<9;i++){</p><p>  anjian[i]=0;</p><p><b>  }</b></p><p><

73、;b>  }</b></p><p>  void anjian_saomiao_1(void){</p><p>  KeyOut1 = 0;</p><p>  KeyOut2 = 1;</p><p>  KeyOut3 = 1;</p><p>  if (KeyIn1 == 0){anjia

74、n_clear1();anjian[0]=1;}</p><p>  if (KeyIn2 == 0){anjian_clear1();anjian[1]=1;}</p><p>  if (KeyIn3 == 0){anjian_clear1();}</p><p>  while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);&l

75、t;/p><p>  KeyOut1 = 1;</p><p>  KeyOut2 = 0;</p><p>  KeyOut3 = 1;</p><p>  if (KeyIn1 == 0){anjian_clear2();anjian[3]=1;}</p><p>  if (KeyIn2 == 0){anjian_c

76、lear2();anjian[4]=1;}</p><p>  if (KeyIn3 == 0){anjian_clear2();anjian[5]=1;}</p><p>  while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);</p><p>  KeyOut1 = 1;</p><p>  KeyO

77、ut2 = 1;</p><p>  KeyOut3 = 0;</p><p>  if (KeyIn1 == 0){anjian_clear2();anjian[6]=1;}</p><p>  if (KeyIn2 == 0){anjian_clear2();anjian[7]=1;}</p><p>  if (KeyIn3 == 0)

78、{anjian_clear2();anjian[8]=1;}</p><p>  while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);</p><p><b>  }</b></p><p>  void timer0() interrupt 1</p><p><b> 

79、 {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p>  anjian_saomiao_1();</p><p><b>  }</b></p><p><b>  附

溫馨提示

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

評論

0/150

提交評論