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

下載本文檔

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

文檔簡介

1、<p>  題目:利用單片機或ARM(任選)作為主控芯片,根據(jù)實際應(yīng)用狀況設(shè)計家用空氣調(diào)節(jié)器系統(tǒng),功能需包括:系統(tǒng)啟停、溫度檢測、溫度設(shè)定、風(fēng)速選擇和工作模式選擇(配合電機控制)、定時、顯示等。要求:在Proteus平臺下完成硬件電路的設(shè)計,在Keil平臺下完成軟件編程,并與硬件聯(lián)調(diào)。</p><p>  本文主要介紹采用單片機作為主控芯片的空氣調(diào)節(jié)系統(tǒng)。系統(tǒng)采用AT89c51單片機,通過A/D轉(zhuǎn)換器將

2、溫度傳感器采集來的溫度數(shù)據(jù)送入單片機,單片機將采集的數(shù)據(jù)與設(shè)定溫度相比較決定電機的轉(zhuǎn)速,進而調(diào)節(jié)室內(nèi)溫度。1 硬件介紹 </p><p>  本章介紹系統(tǒng)硬件的基本功能,包括主控芯片AT89c51,電機驅(qū)動芯片L298,溫度傳感器DS18B20,以及液晶顯示屏LM016L等。</p><p>  1.1 主控芯片AT89c51</p><p>  1.1.1

3、性能特點</p><p>  【1】AT89C51是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM)。該器件采用ATMEL高密度,非易失存儲技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系

4、統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  AT89C51內(nèi)部有40個引腳,32個外部雙向輸入/輸出(I/O)端口;同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口。AT89C51可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。采用單片AT89C51</p><p

5、>  模塊組成的控制電路,它具有可編程,功能強,控制簡單,集成度高等諸多優(yōu)點。 </p><p>  AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性如下:</p><p>  (1)兼容MCS—51指令系統(tǒng);全靜態(tài)操作0-24MHz;4k可反復(fù)擦寫(>1000次)Flash ROM;可編程串行通道;128 8bit內(nèi)

6、部RAM;1個串行中斷;3級加密位。</p><p>  (2)32個雙向I/O口;2個外中斷口;2個16位可編程定時計數(shù)器;2個全雙工串行通信口。</p><p> ?。?)可直接驅(qū)動LED;低功耗空閑和掉電模式;軟件設(shè)置睡眠和喚醒功能。</p><p>  1.1.2 引腳功能</p><p>  AT89C51有40個引腳,其引腳分布如

7、圖1.1 所示。</p><p>  圖1.1 at89c51引腳圖</p><p><b>  引腳功能如下:</b></p><p>  VCC:接+5V。 </p><p><b>  GND:接地。 </b></p><p>  P0口:P0口為8位漏極開路雙向I/

8、O口,每引腳可吸收8個TTL門電流。 </p><p>  P1口:P1口是從內(nèi)部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個TTL門電流。 </p><p>  P2口:P2口為內(nèi)部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個TTL門電流。 </p><p>  P3口:P3口是8個帶內(nèi)部上拉電阻器的雙向I/O口,可接收和輸出4個T

9、TL門電流,P3口也可作為AT89C51的特殊功能口。 </p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位時,要保持RST引腳2個機器周期的高電平時間。 </p><p>  ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,它可用作

10、對外部輸出的脈沖或用于定時目的。要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過1個ALE脈沖。 </p><p>  PSEN:外部程序存儲器的選通信號。由外部程序存儲器取指期間,每個機器周期2次PSEN有效,但在訪問外部數(shù)據(jù)存儲器時,這2次有效的PSEN信號將不出現(xiàn)。 </p><p>  EA/VPP:當(dāng)EA保持低電平時,外部程序存儲器地址為(0000H-FFFFH)不管是否有內(nèi)部程序存

11、儲器。FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p>  XTAL1:反向振蕩器放大器的輸入及內(nèi)部時鐘工作電路的輸入。 </p><p>  XTAL2:來自反向振蕩器的輸出。 </p><p>  1.1.3 工作原理 </p><p>  AT89C51 P0口為三態(tài)雙向I/O口。對于內(nèi)部有程序存儲器的單

12、片機基本系統(tǒng),P0口可以為輸入/輸出口使用,直接連外部的輸入/輸出設(shè)備;P0口也可以作為系統(tǒng)擴展的地址/數(shù)據(jù)總線口。P0口的輸出驅(qū)動器中有兩個場效應(yīng)管T1和T2,上管導(dǎo)通下管截止時輸出高電平,下管導(dǎo)通上管截止時輸出低電平,上下管都截止時輸出引腳浮空。P0口的輸出驅(qū)動器中也有一個多路電子開關(guān)。輸出驅(qū)動器轉(zhuǎn)接至口鎖存器的Q端時,P0口作為雙響向I/O口使用,P0口的鎖存器為“1”時,輸出驅(qū)動器中的兩個場效應(yīng)管均截止,引腳浮空;而寫入“0”時

13、,下管道導(dǎo)通輸出低電平。一般情況下,P0作為輸入/輸出口時應(yīng)外接拉高電阻。當(dāng)輸出驅(qū)動器轉(zhuǎn)換至地址/數(shù)據(jù)時,P0口作為地址/數(shù)據(jù)總線口使用,分時輸出外部存儲器的低8位地址A0~A7和傳送數(shù)據(jù)D0~D7。低8位地址由地址允許鎖存信號ALE鎖存到外部的地址鎖存器中,接著P0口便輸入/輸出數(shù)據(jù)信息。</p><p>  1.2 溫度傳感器DS18B20</p><p>  【2】DS18B20是

14、由DALLAS公司生產(chǎn)的一種新型的單線數(shù)字溫度傳感器。,其體積小、適用于多種場合、并且適用電壓較寬、更為經(jīng)濟。數(shù)字化溫度傳感器DS18B20是世界上第一種支持“一線總線”接口的溫度傳感器。其溫度測量范圍為-55~+125℃,可編程為9位~12位轉(zhuǎn)換精度,測溫分辨率可達0.0625℃。其分辨率設(shè)定參數(shù)以及手動設(shè)定的恒定溫度值和定時時間值存儲在EEPROM 中,掉電后仍然保存。被測溫度以符號擴展的16位數(shù)字量方式串行輸出,其工作電源既可在遠

15、端引入,也可通過采用寄生電源方式產(chǎn)生。多個DS18B20可以同時并聯(lián)到3根或2根線上,CPU只需要一根端口線就能與諸多DS18B20 進行通信,所占用的微處理器端口較少,可以節(jié)省大量的引線和設(shè)計電路。因此用它來組成一個測溫系統(tǒng),線路簡單,且在一根通信線上可以掛多個這樣的數(shù)字溫度計,使用十分方便。</p><p>  圖12 DS18B20圖</p><p>  1.2.1 DS18B20

16、溫度傳感器工作原理</p><p>  DS18B20的測溫原理:低溫系數(shù)晶振的振蕩率受溫度影響很小,用于產(chǎn)生固定頻率脈沖信號送給計數(shù)器1;高溫系數(shù)晶振隨溫度變化其振蕩頻率改變明顯,所產(chǎn)生的信號作為計數(shù)器2的輸入脈沖。首先計數(shù)器1和溫度寄存器預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。開始時計數(shù)器1對低溫系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減為0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將被重新裝入,隨后計

17、數(shù)器1重新開始對低溫系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0,停止溫度寄存器值的累加,此刻溫度寄存器中的數(shù)值即為所測溫度。</p><p>  1.2.2 DS18B20溫度傳感器工作特點-</p><p>  (1).采用單總線技術(shù),與單片機通信只需要一根I/O線;</p><p>  (2). DS18B20具有一個獨有不變的64位序列號,

18、可以根據(jù)序列號訪問相應(yīng)的器件;</p><p>  (3).低壓供電,供電電源范圍為3~5V,可以直接從數(shù)據(jù)線上轉(zhuǎn)接電源(即為寄生電源方式);</p><p>  (4).測溫范圍為-55℃~+125℃,在-10℃~85℃范圍內(nèi)誤差為±0.5℃;</p><p>  (5).可編程數(shù)據(jù)為9~12位,轉(zhuǎn)換12位溫度最大時間為750ms;</p>

19、<p>  (6).可以自行手動設(shè)定報警上下限溫度;</p><p>  (7).報警搜索命令可識別是否溫度超出預(yù)定值;</p><p>  (8).DS18B20的分辯率可以自行通過EEPROM設(shè)置為9~12位。</p><p>  (9).DS18B20可將測得的溫度值直接轉(zhuǎn)化為數(shù)字量,并可以通過串行通信的方式與主控制器進行數(shù)據(jù)通信。</p&g

20、t;<p>  1.3 電機驅(qū)動芯片L298</p><p>  【3】L298的一種高電壓、大電流電機驅(qū)動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機和步進電動機、繼電器線圈等感性負載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個使能控制端,在

21、不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298芯片驅(qū)動電機,該芯片可以驅(qū)動兩臺直流電機。</p><p>  L298內(nèi)部電路原理圖,如下</p><p>  圖1.3 L298原理圖</p><p>  1.4 液晶顯示屏LM016L</p>

22、<p>  LM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強的指令集,可以實現(xiàn)字符移動,閃爍等功能,LM016L與單片機MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計數(shù)器RAM(AC)。IR用于寄存指令碼,只

23、能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時,液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),DDTAM用來存儲顯示的字符,能存儲80個字符碼.</p><p>  2 硬件系統(tǒng)的整體結(jié)構(gòu)</p><p>  本設(shè)計的統(tǒng)硬件體系可以分為三部分,第一部分為微控制器組成的控制核心電路,第二部分為電動

24、機驅(qū)動模塊組成的電動機接口電路,第三部分為鍵盤輸入模塊和液晶顯示模塊組成用戶接口電路。</p><p>  2.1 系統(tǒng)硬件的整體結(jié)構(gòu)</p><p>  圖2.1系統(tǒng)總體結(jié)構(gòu)圖</p><p>  2.2 基本硬件組成</p><p>  2.2.1 時鐘電路</p><p>  如圖3.4所示,at89c5芯

25、片的振蕩器的主要器件是一個反相放大器,從XTAL1端輸入,從XTAL2端輸出,電路時鐘能夠由內(nèi)部設(shè)備或者外接設(shè)備產(chǎn)生,從XTAL1和XTAL2引腳上連接某個定時器件,其內(nèi)置的振蕩電路就能產(chǎn)生相應(yīng)的自激振蕩。該系統(tǒng)的并聯(lián)諧振電路采用石英晶體和電容器。電路的晶振頻率選擇的是11.0592MHZ,電容器C1、C2的電容均取值30pF,電容的大小可頻率進行微調(diào)。</p><p>  圖2.2 時鐘電路圖</p>

26、;<p>  2.2.2 鍵盤輸入電路</p><p>  本系統(tǒng)采用的是4×4矩陣鍵盤,接到at89c51的P1.0-P1.7口而實現(xiàn)</p><p>  圖2.3 鍵盤輸入電路圖</p><p>  2.2.3 顯示電路</p><p>  顯示電路采用的是LCD功能組件(LM016L),用來顯示溫度測量值跟設(shè)

27、定值。顯示電路如圖所示。</p><p>  圖2.4 顯示電路圖</p><p>  2.2.4 溫度檢測電路</p><p>  本設(shè)計采用的是DS1820傳感器,如圖所示。因為仿真過程不可能實際采樣到溫度,我們才用DS18B20傳感器,通過手動調(diào)節(jié)來仿真溫度。</p><p>  圖2.5 溫度檢測電路圖</p><

28、;p>  2.2.5 電機驅(qū)動電路</p><p>  圖2.6電機驅(qū)動電路圖</p><p>  2.2.6 火災(zāi)報警電路</p><p>  圖2.7 火災(zāi)報警電路圖</p><p><b>  3 軟件設(shè)計</b></p><p>  3.1 系統(tǒng)軟件的整體結(jié)構(gòu)</p&g

29、t;<p>  圖3.1 結(jié)構(gòu)框圖</p><p>  3.2 基本模塊設(shè)計</p><p>  簡單介紹各個模塊基本函數(shù)及原理,LCD顯示、電機驅(qū)動以及報警模塊比較簡單,不再一一贅述。</p><p>  3.2.1 溫度檢測顯示模塊</p><p>  溫度檢測顯示模塊的全部函數(shù)在下表列出:</p>&l

30、t;p>  表3.1 溫度檢測顯示模塊函數(shù)表</p><p>  主要介紹獲取當(dāng)前溫度值和顯示溫度函數(shù)。</p><p>  a)獲取當(dāng)前溫度值 getTmpValue()</p><p>  int getTmpValue()</p><p><b>  {</b></p><p>  

31、unsigned int tmpvalue;</p><p>  int value; //存放溫度數(shù)值</p><p><b>  float t;</b></p><p>  unsigned char low, high;</p><p>  sendReadCmd();//連續(xù)讀取兩個字節(jié)數(shù)據(jù)</p>

32、<p>  low = readByte(); //讀低8位</p><p>  high = readByte();//讀高 8位 //將高低兩個字節(jié)合成一個整形變量</p><p>  tmpvalue = high;</p><p>  tmpvalue <<= 8;</p><p>  tmpvalue |

33、= low;</p><p>  value = tmpvalue;//使用DS18B20的默認分辨率12位, 精確度為0.0625度, 即讀 回數(shù)據(jù)的最低位代表0.0625度</p><p>  t = value * 0.0625;//將它放大100倍,實數(shù)變成了整數(shù), 使顯示時可顯示小數(shù)點后兩位, 并對小數(shù)點后第三進行4舍5入</p><p>  valu

34、e = t * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0減0.5</p><p>  return value;</p><p><b>  }</b></p><p>  b) 顯示溫度display(int v)</p><p>  void display(

35、int v)</p><p><b>  {</b></p><p>  unsigned char count;</p><p>  unsigned char datas[] = {0, 0, 0, 0, 0};</p><p>  unsigned int tmp = abs(v); //取絕對值函數(shù)<

36、/p><p>  datas[0] = tmp / 10000;</p><p>  datas[1] = tmp % 10000 / 1000;</p><p>  datas[2] = tmp % 1000 / 100;</p><p>  datas[3] = tmp % 100 / 10;</p><p>  da

37、tas[4] = tmp % 10;</p><p>  writeComm(0xc0+10); </p><p>  if(v < 0) //首先判斷溫度正負</p><p>  { writeString("- ", 2);</p><p><b>  }</b>&l

38、t;/p><p><b>  else</b></p><p>  { writeString("+ ", 2)</p><p><b>  }</b></p><p>  if(datas[0] != 0)</p><p><b>  {<

39、/b></p><p>  writeData('0'+datas[0]);</p><p><b>  }</b></p><p>  for(count = 1; count != 5; count++)</p><p><b>  {</b></p><

40、;p>  writeData('0'+datas[count]);</p><p>  if(count == 2)</p><p>  {writeData('.') }</p><p><b>  }</b></p><p><b>  }</b></

41、p><p>  3.2.2 鍵盤輸入模塊(溫度設(shè)定模塊)</p><p>  本次設(shè)計中鍵盤輸入起到溫度設(shè)定,模式選擇以及定時等功能。以溫度設(shè)定為例,具體介紹如何從鍵盤輸入數(shù)據(jù)給主控芯片。如圖4*4的鍵盤接到P1.0-P1.7腳</p><p>  圖3.2 鍵盤連接圖</p><p>  我們采用查詢方式進行鍵盤輸入處理,首先判斷有無按鍵按

42、下,即把所有列線P1.0-P1.3置為低電平,然后檢查各行線的狀態(tài),若行線不全為高電平,則表示鍵盤中有鍵按下,反之則沒有。然后查找具體按鍵。同樣先置列線為低電平,檢查行線,記下行線為高的鍵。接著行線置為低電平,檢查列線,記下列線為高的鍵。如此對應(yīng)的鍵即可確定。</p><p>  Int n,m;//n表示行,m表示列</p><p>  uint wendu[4][3]={1,2,3,

43、4,5,6,7,8,9,0}; //按鍵對應(yīng)數(shù)字</p><p>  void scanwendu()//掃描溫度</p><p>  {int hang=0; //有鍵按下的標(biāo)志</p><p>  if(hang==0){P1=0xf0;</p><p>  if(P1!=0xf0) { temp=P1; //置列線為低電平</

44、p><p>  switch(temp)</p><p>  { case 0xe0: n=0;hang=1; break;</p><p>  case 0xd0: n=1;hang=1; break;</p><p>  case 0xb0: n=2;hang=1; break;</p><p>  ca

45、se 0x70: n=3;hang=1;</p><p>  break;}} }</p><p>  if(hang==1){P1=0x0f; //置行線為低電平 </p><p>  if(P1!=0x0f) { temp=P1; //next 為設(shè)置的標(biāo)志位,即表示第一次按鍵結(jié)束</p><p>  switch(temp)<

46、;/p><p>  { case 0x0e: m=3;next=1; break;</p><p>  case 0x0d: m=2;next=1; break;</p><p>  case 0x0b: m=1;next=1; break;</p><p>  case 0x07: m=0;</p><p>

47、;<b>  break;}}</b></p><p><b>  } </b></p><p>  掃描兩次按鍵,轉(zhuǎn)化為溫度</p><p>  void setwendu() //設(shè)置溫度</p><p>  { int count=0; int biaozhi=0; temp=P1;

48、</p><p>  while(biaozhi!=2){</p><p>  while(next!=1){ scanwendu();</p><p>  temp3=wendu[n][m]; </p><p>  tm=temp3; //第一次值保存在tm中</p><p>  writeComm(0xc

49、0+10);//顯示</p><p>  writeData('0'+tm);</p><p><b>  }</b></p><p>  delayMs(2000); </p><p><b>  next=0;</b></p><p>  while(n

50、ext!=1){scanwendu(); temp3=wendu[n][m]; } //第二次值保存在temp3中 </p><p>  writeComm(0xc0+11);</p><p>  writeData('0'+temp3);</p><p>  biaozhi=2;</p><p>  } de

51、layMs(1000);</p><p><b>  }</b></p><p>  3.2.3 模式選擇及處理模塊 </p><p>  溫度檢測顯示模塊的全部函數(shù)在下表列出:</p><p>  表3.2 模式選擇及處理模塊函數(shù)表</p><p>  主要介紹獲取選擇模式和溫度處理函數(shù)。

52、</p><p>  void selectmodel(int n)//選擇模式</p><p>  { if(n==0)model0(getTmpValue()); //n為scanmode()函數(shù)所得到的模式選擇值</p><p>  if(n==1)model1(getTmpValue());</p><p>

53、  if(n==2)model2(getTmpValue());</p><p><b>  }</b></p><p>  void model0(int t) //智能溫度處理函數(shù)</p><p>  { int q;</p><p>  q=tm*10+temp3;//從鍵盤得到輸入溫度</p>

54、;<p><b>  t=t/100; </b></p><p>  writeComm(0x80);writeString(table,10);</p><p>  writeComm(0x89);display1();//顯示設(shè)定溫度</p><p>  writeComm(0xc0);</p><p>

55、;  writeString(table1, 10);</p><p>  delayMs(1000); //溫度轉(zhuǎn)換時間需要750ms以上</p><p>  writeComm(0xc0+10);display(getTmpValue()); //顯示當(dāng)前溫度</p><p>  if(t<q) //如果當(dāng)前溫度小于設(shè)定溫度,則電機不轉(zhuǎn)</p&g

56、t;<p>  { L29B_ENA=0;</p><p><b>  }</b></p><p>  if(t-q>=3){ //如果當(dāng)前溫度比設(shè)定大的多,則電機快速轉(zhuǎn)動,快速降溫</p><p>  L298_forward(20,5); }</p><p>  if(t-q&l

57、t;3&&t-q>=0) { L298_forward(15,15);} // 如果當(dāng)前溫度比設(shè)定高一點,則緩慢降溫</p><p><b>  }</b></p><p>  3.2.5 定時模塊</p><p>  表3.3 定時模塊函數(shù)表</p><p>  設(shè)置時間和設(shè)定溫度基本相似,為

58、簡化處理,只提供了3個定時時間,分別是10分鐘,15分鐘,30分鐘,對應(yīng)鍵盤的1,2,3號鍵 </p><p>  void scantime()//掃描時間</p><p><b>  {</b></p><p><b>  P1=0xef;</b></p><p>  if(P1!=0xef){

59、{temp=P1;</p><p>  switch(temp)</p><p>  { case 0xe7: time=0; break;</p><p>  case 0xeb: time=1; break;</p><p>  case 0xed: time=2; break;</p><p> 

60、 case 0xee: time=3;</p><p>  break;}}}</p><p><b>  }</b></p><p>  采用定時器T0來實現(xiàn)定時 </p><p>  void timer1_init()</p><p>  {TMOD=0x01; //使用定時

61、器T0的模式1</p><p>  if(time==0){ TH0=(65536-50000)/256; // 50ms</p><p>  TL0=(65536-50000)%256;}</p><p><b>  }</b></p><p>  void Time0(void) interrup

62、t 1 using 0 // 當(dāng)達到設(shè)定時間,風(fēng)扇停止旋轉(zhuǎn)</p><p><b>  { int i;</b></p><p><b>  i=i+1;</b></p><p>  if(i=time*1200) L298_forward(0,0);</p><p><b> 

63、 } </b></p><p><b>  4 基本功能演示</b></p><p><b>  4.1按鍵功能圖</b></p><p>  圖4.1 按鍵功能圖</p><p><b>  4.2溫度設(shè)定</b></p><p>

64、  系統(tǒng)啟動后,首先需要用戶輸入設(shè)定溫度,LCD顯示“Please enter the temp”</p><p>  圖4.2 設(shè)定溫度圖</p><p>  通過鍵盤輸入溫度,比如此時先后按下“2”、“3”顯示23,表示已設(shè)定23度</p><p>  圖4.3 設(shè)定溫度23度圖</p><p><b>  4.3 模式選擇

65、</b></p><p>  當(dāng)用戶設(shè)定完溫度,LCD提示選擇功能模式。按下模式選擇鍵進入模式選擇。簡單介紹三個模式:模式0為智能溫度模式,當(dāng)前溫度小于設(shè)定則不啟動風(fēng)扇,高于設(shè)定很多,則快速降溫,高一點則緩慢降溫。模式1為快速降溫,當(dāng)前溫度高于設(shè)定則快速降溫。模式2為定時降溫,當(dāng)達到設(shè)定時間,風(fēng)扇即停止旋轉(zhuǎn)。</p><p>  以選擇模式1為例,設(shè)定溫度23度。</p&

66、gt;<p>  圖4.4 選擇模式圖</p><p>  當(dāng)前溫度31,風(fēng)扇快速旋轉(zhuǎn)。</p><p>  圖4.5 當(dāng)前溫度圖 圖4.6 轉(zhuǎn)速圖</p><p>  當(dāng)前溫度24,風(fēng)扇緩慢旋轉(zhuǎn)。</p><p>  圖4.7 當(dāng)前溫度圖

67、 圖4.8 轉(zhuǎn)速圖</p><p>  當(dāng)前溫度22,風(fēng)扇停止旋轉(zhuǎn)</p><p>  圖4.9 當(dāng)前溫度圖 圖4.10 轉(zhuǎn)速圖</p><p><b>  5 實驗總結(jié)</b></p><p>  用AT89C51和DSB1620

68、溫度傳感器設(shè)計一個簡單的空氣調(diào)節(jié)器。 本次設(shè)計基本實現(xiàn)了課題要求的功能。包括系統(tǒng)啟停、溫度檢測、溫度設(shè)定、風(fēng)速選擇和工作模式選擇(配合電機控制)、定時、顯示等,此外還增加了火災(zāi)報警功能,當(dāng)室內(nèi)溫度過高時(>100度),即會報警。</p><p>  通過本次課程設(shè)計,鞏固了我所學(xué)的專業(yè)知識,也使我把理論與實踐從真正意義上相結(jié)合起來;鍛煉了借助互聯(lián)網(wǎng)搜集、查閱相關(guān)文獻資料,組織材料的能力;從中可以自我測驗,認

69、識到自己哪方面有欠缺、不足,以便于在日后的學(xué)習(xí)和工作中得以改進、提高;通過使用 keil以及Proteus軟件,實現(xiàn)軟硬件聯(lián)調(diào),讓我熟悉了整個設(shè)計流程。</p><p>  在本次設(shè)計的過程中,我遇到最大的困難就是鍵盤輸入,確切的說應(yīng)該是溫度設(shè)定功能的實現(xiàn)。因為輸入溫度時需要兩次(0~9)按鍵,單片機無法識別對第一次按鍵是否結(jié)束,進而進行第二次的輸入。經(jīng)過反復(fù)試驗,除了增加消顫,我還增加了延時以及按鍵標(biāo)志位,最終

70、實現(xiàn)了溫度的輸入。當(dāng)然還有好多不足,比如為了簡化,定時我只設(shè)置了10,15,30,分鐘這樣三種定時。按鍵輸入時,會出現(xiàn)反應(yīng)不靈敏并且每次按鍵必須恢原樣后才能進行下一次按鍵,有些麻煩。不過,我相信如果繼續(xù)反復(fù)調(diào)試修改,一定能夠解決這些問題。</p><p><b>  參 考 文 獻</b></p><p>  [1] 孔超,張瑋 化繁為簡 51單片機應(yīng)該這樣學(xué)[M].

71、 北京: 中國鐵道出版社,2013-5</p><p>  [2] 安特凌電子DS18B20中文資料 [OB/OL] www.aterlin.com/zh-cn/a/8/2333.html </p><p>  [3] 孟英紅,齊婉玉,段學(xué)鋒 用L297,L298組成步進電機驅(qū)動電路 [J]. 天津: 儀器儀表學(xué)報,2003.12-26.</p><p>

72、  [4] 張毅剛等 單片機原理及應(yīng)用[M]. 北京:高等教育出版社,2013-6</p><p>  [5] 蔡建清,徐禹田. 淺談樓宇自控中空調(diào)系統(tǒng)設(shè)計的幾個問題[J]. 智能筑,2007,(05) .</p><p>  [6] 周潤景、袁偉亭、景曉松編著,Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].北京:電子工業(yè)出版社,2006..10.</p>

溫馨提示

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

評論

0/150

提交評論