基于arm空調綜合課程設計報告_第1頁
已閱讀1頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

6、部RAM;1個串行中斷;3級加密位。</p><p> ?。?)32個雙向I/O口;2個外中斷口;2個16位可編程定時計數器;2個全雙工串行通信口。</p><p> ?。?)可直接驅動LED;低功耗空閑和掉電模式;軟件設置睡眠和喚醒功能。</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口是從內部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個TTL門電流。 </p><p>  P2口:P2口為內部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個TTL門電流。 </p><p>  P3口:P3口是8個帶內部上拉電阻器的雙向I/O口,可接收和輸出4個T

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

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

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

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

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

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

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

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

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

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

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

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

21、不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298芯片驅動電機,該芯片可以驅動兩臺直流電機。</p><p>  L298內部電路原理圖,如下</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)和數據寄存器(DR)忙標志(BF),顯示數RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計數器RAM(AC)。IR用于寄存指令碼,只

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

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

25、片的振蕩器的主要器件是一個反相放大器,從XTAL1端輸入,從XTAL2端輸出,電路時鐘能夠由內部設備或者外接設備產生,從XTAL1和XTAL2引腳上連接某個定時器件,其內置的振蕩電路就能產生相應的自激振蕩。該系統(tǒng)的并聯(lián)諧振電路采用石英晶體和電容器。電路的晶振頻率選擇的是11.0592MHZ,電容器C1、C2的電容均取值30pF,電容的大小可頻率進行微調。</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),用來顯示溫度測量值跟設

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

28、;p>  2.2.5 電機驅動電路</p><p>  圖2.6電機驅動電路圖</p><p>  2.2.6 火災報警電路</p><p>  圖2.7 火災報警電路圖</p><p><b>  3 軟件設計</b></p><p>  3.1 系統(tǒng)軟件的整體結構</p&g

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

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

31、unsigned int tmpvalue;</p><p>  int value; //存放溫度數值</p><p><b>  float t;</b></p><p>  unsigned char low, high;</p><p>  sendReadCmd();//連續(xù)讀取兩個字節(jié)數據</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度, 即讀 回數據的最低位代表0.0625度</p><p>  t = value * 0.0625;//將它放大100倍,實數變成了整數, 使顯示時可顯示小數點后兩位, 并對小數點后第三進行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); //取絕對值函數<

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

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

43、4,5,6,7,8,9,0}; //按鍵對應數字</p><p>  void scanwendu()//掃描溫度</p><p>  {int hang=0; //有鍵按下的標志</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 為設置的標志位,即表示第一次按鍵結束</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>  掃描兩次按鍵,轉化為溫度</p><p>  void setwendu() //設置溫度</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>  溫度檢測顯示模塊的全部函數在下表列出:</p><p>  表3.2 模式選擇及處理模塊函數表</p><p>  主要介紹獲取選擇模式和溫度處理函數。

52、</p><p>  void selectmodel(int n)//選擇模式</p><p>  { if(n==0)model0(getTmpValue()); //n為scanmode()函數所得到的模式選擇值</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) //智能溫度處理函數</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();//顯示設定溫度</p><p>  writeComm(0xc0);</p><p>

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

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

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

58、簡化處理,只提供了3個定時時間,分別是10分鐘,15分鐘,30分鐘,對應鍵盤的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 // 當達到設定時間,風扇停止旋轉</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溫度設定</b></p><p>

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

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

66、gt;<p>  圖4.4 選擇模式圖</p><p>  當前溫度31,風扇快速旋轉。</p><p>  圖4.5 當前溫度圖 圖4.6 轉速圖</p><p>  當前溫度24,風扇緩慢旋轉。</p><p>  圖4.7 當前溫度圖

67、 圖4.8 轉速圖</p><p>  當前溫度22,風扇停止旋轉</p><p>  圖4.9 當前溫度圖 圖4.10 轉速圖</p><p><b>  5 實驗總結</b></p><p>  用AT89C51和DSB1620

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論