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

下載本文檔

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

文檔簡介

1、<p>  機電學院課程設計說明書</p><p><b>  目 錄</b></p><p><b>  1 總體設計方案</b></p><p>  1.1 系統(tǒng)設計任務</p><p>  1.2 系統(tǒng)設計的基本要求</p><p>  1.3 總體設計方案

2、</p><p><b>  2 系統(tǒng)器件選擇</b></p><p>  2.1 AT89S52單片機介紹</p><p>  2.2 溫度傳感器DS18B20芯片介紹</p><p>  2.3 光電雙向可控硅MOC3081介紹</p><p><b>  3 系統(tǒng)硬件設計</

3、b></p><p><b>  3.1 單片機電路</b></p><p>  3.2 上下限溫度設置電路</p><p>  3.3 溫度顯示部分</p><p>  3.4 后級驅動電路</p><p><b>  4 軟件設計</b></p>&l

4、t;p><b>  4.1主程序流程圖</b></p><p>  4.2 DS18B20溫度傳感器使用步驟</p><p>  4.2.1 DS18B20溫度傳感器初始化</p><p>  4.2.2 讀溫度子程序</p><p>  4.2.3 讀寫時序</p><p><

5、b>  5 課程設計總結</b></p><p>  基于AT89S52單片機的溫度控制系統(tǒng)</p><p><b>  1 總體設計方案</b></p><p>  1.1 系統(tǒng)設計任務</p><p>  設計一個基于數(shù)字式溫度傳感器DS18B20的溫度控制系統(tǒng),配合硬件實現(xiàn)溫度實時采集和自動調控溫

6、度,顯示當前溫度等功能,實現(xiàn)單片機的閉環(huán)控制系統(tǒng)。該系統(tǒng)能在溫度高于或低于設置的溫度值時自動開啟風扇或加熱器,使其溫度在規(guī)定的值內。</p><p>  1.2 系統(tǒng)設計的基本要求</p><p>  實現(xiàn)單片機閉環(huán)控制系統(tǒng):系統(tǒng)內部能夠自動的調節(jié)。</p><p>  自動啟動空調或加熱器功能:當DS18B20的溫度高于設定的的最高溫度時,系統(tǒng)能夠自動的驅動風扇散

7、熱;當DS18B20的溫度低于設定的最低溫度時,系統(tǒng)能夠自動的驅動加熱管加熱。</p><p>  設置溫度范圍控制功能:系統(tǒng)在設計過程能實現(xiàn)上下限溫度的按鍵設置。</p><p>  溫度顯示:在整個系統(tǒng)中可以直觀的顯示當前的溫度和用戶設定的上下限溫度。</p><p>  1.3 總體設計方案</p><p>  綜合考慮,本設計采用基于

8、AT89S52單片機與DS18B20溫度傳感器、加熱制冷部分構成機箱監(jiān)控系統(tǒng)硬件設計,其總體框架圖如圖1-1。</p><p>  圖1-1 總體設計框圖</p><p><b>  2 系統(tǒng)器件選擇</b></p><p>  2.1 AT89S52單片機介紹</p><p><b>  本部分未填寫<

9、/b></p><p>  2.2 溫度傳感器DS18B20芯片介紹</p><p>  DS18B20是美國DALLAS公司生產的數(shù)字溫度傳感器芯片,具有結構簡單、體積小、功耗小、抗干擾能力強、使用方便等優(yōu)點。可以在三根線上同時并聯(lián)多個溫度傳感器,每臺分機上可以連接多根電纜,每根電纜上可以并聯(lián)幾十個點,構成串行總線工作方式。由于18B20芯片送出的溫度信號是數(shù)字信號,因此簡化了A/

10、D轉換的設計,提高了測量效率和精度;并且芯片的ROM中存有其唯一標識碼,即不存在相同標識碼的DS18B20,特別適合與微處理芯片構成多點溫度測控系統(tǒng)。</p><p>  DS18B20的性能特點:</p><p>  適用電壓范圍:3.0—5.5V; </p><p>  測溫范圍:-55—+125℃,精度為±0.5℃;</p><p

11、>  無須外部器件,獨特的單線接口僅需要一個端口引腳進行通信; </p><p>  多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)多點組網功能;</p><p><b>  零待機功耗;</b></p><p>  用戶可定義的EEPROM,設定的報警溫度存在非易失存儲器中;</p><p>  報警搜索命令識別

12、并標志超過程序限定溫度(溫度報警條件)的器件;</p><p>  可編程的分辨率為9—12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃;</p><p>  負壓特性:電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。 </p><p>  圖2-1 DS18B20引腳分布圖</p><p><b

13、>  引腳定義: </b></p><p>  1.GND為電源地;</p><p>  2.DQ為數(shù)字信號輸入/輸出端; </p><p>  3.VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。</p><p>  DS18B20的測溫原理</p><p>  DS18B20的測溫原理如圖

14、2-5所示。用一個高溫度系數(shù)的振蕩器確定一個門周期,內部計數(shù)器在這個門周期內對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值。計數(shù)器被預置到對應于﹣55℃的一個值。如果計數(shù)器在門周期結束前到達0,則溫度寄存器的值增加,表明溫度大于﹣55℃。同時,計數(shù)器被復位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期未結束,將重復這一過程。斜率累加器用于補償和修正測溫過

15、程中的非線性,其輸出用于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直到溫度寄存器達到被測溫度值。</p><p>  圖2-2 DS18B20測溫原理圖</p><p>  應該注意的是:由于DS18B20單線通信功能是時分完成的,它嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命

16、令發(fā)存儲器操作命令處理數(shù)據(jù)。</p><p>  根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500us,然后釋放,DS18B20收到信號后等待16~60us左右,后發(fā)出60~240us的低脈沖,主CPU收到此信號表

17、示復位成功。</p><p>  當溫度轉換命令發(fā)布后,經轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。</p><p>  對應的溫度計算:當符號位S=0時,表示測得的溫度值為正值,可直接將二進制位轉換為十進制;當S=1時,表示測得的溫度值為負值,要先將補碼變?yōu)樵?/p>

18、碼,再計算十進制值。 </p><p>  DS18B20與單片機的接口電路</p><p>  DS18B20可以采用電源供電方式(如圖2-3),此時DS18B20的1腳接地,2腳作為信號線,3腳接+5V電源。</p><p>  圖2-3 DS18B20采用電源供電方式</p><p>  當DS18B20處于寫存儲器操作和溫度

19、A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>  2.3 光電雙向可控硅MOC3081介紹</p><p>  當傳感器把數(shù)據(jù)傳送給單片機后,單片機把信號發(fā)送給后級驅動電路,讓其做出相應的開啟或關閉風扇或加熱器的動作,這個模塊部分接的是220V的電壓,所以還必須用到光

20、電雙向可控硅(MOC3081)對電路進行保護隔離。其電路圖如圖2-4:</p><p>  圖2-4 后級驅動電路結構框圖</p><p>  MOC3081的性能特點:</p><p>  1.適用最大電壓范圍:800V,耐壓高,安全可靠; </p><p>  2.工作溫度范圍:-40—+100℃;</p><p>

21、;  3.6引腳交叉光隔離器TRIAC驅動輸出電壓峰 ;</p><p>  4. 輸入端正向電流最大值為50mA;反向電壓為6V</p><p>  5. 輸出端正向電流最大值為1.2A,耐壓800V;</p><p><b>  6. 過零點觸發(fā)</b></p><p>  光耦以光信號為媒介來實現(xiàn)電信號的耦合與傳遞

22、,輸入與輸出在電氣上完全隔離,具有抗干擾性能強的特點。對于既包括弱電控制部分,又包括強電控制部分的工業(yè)應用測控系統(tǒng),采用光耦隔離可以很好地實現(xiàn)弱電和強電的隔離,達到抗干擾目的。</p><p><b>  3 系統(tǒng)硬件設計</b></p><p><b>  3.1 單片機電路</b></p><p>  圖3-1 單片機

23、電路圖</p><p>  說明:該部分硬件是單片機模塊,用來處理C語言程序,并控制后級的驅動電路和數(shù)碼的顯示部分。</p><p>  3.2 上下限溫度設置電路</p><p>  圖3-2 上下限溫度設置電路</p><p>  說明:該電路是上下限溫度設置部分,主要是用來調整系統(tǒng)內部已經定好的上下限溫度的值。</p>&

24、lt;p>  3.3 溫度顯示部分</p><p>  下圖是溫度顯示部分的的設計框圖,該圖能清楚明了地讓我們知道該系統(tǒng)硬件的基本連接方法</p><p>  圖3-3溫度顯示部分</p><p>  上圖中的P3.0到P3.3時對上下限報警溫度調節(jié)端口,其中P3.0設置是否進入上下限溫度調節(jié)端口;P3.1端口控制調節(jié)上限報警溫度還是調節(jié)下限報警溫度;P3.2

25、和P3.3分別是加減控制端口。</p><p>  3.4 后級驅動電路</p><p>  圖3-4 后級驅動電路</p><p>  說明:該電路是后級驅動電路,該電路通過單片機的控制使DS18B20在設定的溫度范圍內工作。當溫度高于上限報警溫度,單片機給P1.2低電平,驅動風扇工作;當溫度低于下限報警溫度,單片機給P1.3低電平,驅動加熱棒工作。</p&

26、gt;<p><b>  4 軟件設計</b></p><p><b>  4.1主程序流程圖</b></p><p>  DS18B20是可編程器件,在是使用時必須經過以下三個步驟:初始化、寫操作、讀操作。每一次讀寫操作之前都要先將DS18B20初始化復位,復位成功后才能對DS18B20進行預定的操作,三個步驟缺一不可。在編寫相應

27、的應用程序時,必須先掌握DS18B20的通信協(xié)議和時序控制要求。</p><p>  由于DS18B20是利用一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議由幾種單線上信號類別型組成:復位脈沖,存在脈沖,寫0,寫1,讀0和讀1。</p><p>  主程序流程圖如圖4-1:</p>&l

28、t;p>  圖4-1 主程序流程圖</p><p>  4.2 DS18B20溫度傳感器使用步驟</p><p>  4.2.1 DS18B20溫度傳感器初始化</p><p>  主機總線 to 時刻應先向DS18B20送出(TX)發(fā)送一復位脈沖(最短為 480us 的低電平信號即由主機將數(shù)據(jù)線拉低并保持480us~960us) ,接著在 tl 時刻釋放

29、總線并進入接收狀態(tài)(RX),DSl820 在檢測到總線的上升沿之后等待 15~60us,接著 DS1820 在 t2 時刻發(fā)出存在脈沖(低電平,持續(xù) 60~240 us) 如下圖中虛線所示。</p><p>  圖4-2 DS18B20初始化DQ狀態(tài)時序圖</p><p>  圖4-3為DS18B20的初始化子程序流程圖。</p><p>  圖4-3 初始化子程序

30、流程圖</p><p>  4.2.2 讀溫度子程序</p><p>  讀出溫度子程序的主要功能讀出RAM中的9個字節(jié)移入溫度暫存器,啟動溫度轉換。由于溫度測量只有一只DS18B20,因此我們在讀出溫度時并不進行CRC校驗。其程序流程圖如圖4-4所示。</p><p>  圖4-4 讀溫度子程序</p><p>  4.2.3 讀寫時序&

31、lt;/p><p>  圖4-5 讀寫時隙時序圖</p><p>  寫時序:對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。當主機總線 t o 時刻從高拉至低電平時,就產生寫時間隙,從 to 時刻開始 15us 之內應將所需寫的位送到總線上 。DSl820 在 t o后15~60us間對總線采樣。若低電平 寫入的位是 0;若高電平 寫入的位是 1。連續(xù)寫 2 位間的間隙應大于

32、1us。DS18B20寫入子程序流程圖如圖4-6所示。</p><p>  讀時序:主機總線t0時刻從高拉至低電平時,總線只需保持低電平1us,之后在t1時刻將總線拉高,產生讀時間隙,讀時間隙在t1時刻后t2時刻前有效。t2距t0為15us,也就是說,t2時刻前主機必須完成讀位,并在 DS18B20讀出子程序流程圖如圖4-7所示。</p><p>  圖4-6 DS18B20寫入子程序流程

33、圖 圖4-7 DS18B20讀出子程序流程圖</p><p><b>  5 課程設計總結</b></p><p>  在工業(yè)生產和日常生活中,對溫度控制系統(tǒng)的要求,主要是保證溫度在一定溫度范圍內變化,穩(wěn)定性好,不振蕩,對系統(tǒng)的快速性要求不高。在論文中簡單分析了單片機溫度控制系統(tǒng)設計過程及實現(xiàn)方法。本系統(tǒng)的測溫范圍為-40℃~100℃,控制溫度

34、值在0℃~40℃變化,溫度檢測系統(tǒng)可以根據(jù)用戶設定的溫度范圍完成一定范圍的溫度控制。</p><p>  由于時間的原因在設計過程中不能很好的做出我們課程設計所要達到的要求,對于以上的不足,我們只有通過以后的努力不斷的提升。在設計中我們基本實現(xiàn)了溫度的讀取和上下限報警溫度的調節(jié)。另外,由于能力有限,后級驅動電路部分我們只能盡量實現(xiàn),在這方面我相信在以后的學習生涯中能得到解決。</p><p&g

35、t;  感謝我們的全組同學,在大家的通力合作下我們做好了本學期基于DS18B20溫度控制系統(tǒng)的課程設計,祝所有老師及同學身體健康。</p><p><b>  參考文獻</b></p><p>  [1]吳炳勝等.80C51單片機原理與應用技術.冶金工業(yè)出版社.</p><p>  [2]李華.MCS-51系列單片機實用接口技術[M].北京:北

36、京航空航天大學出版社.</p><p>  [3]新概念51單片機C語言教程:入門、提高、開發(fā)、拓展全攻略.北京:電子工業(yè)出版社,2009.1.</p><p>  [4]孫育才 王榮興 孫華芳.ATMEL新型AT89S52系列單片機及其應用.北京.清華大學出版社,2005.</p><p><b>  附錄</b></p>&l

37、t;p><b>  附錄A 硬件原理圖</b></p><p><b>  附錄B 程序清單</b></p><p>  #include<reg51.h></p><p>  #include <INTRINS.H></p><p>  #define uchar u

38、nsigned char</p><p>  #define uint unsigned int</p><p>  sbit ds=P1^7; //溫度傳感器信號線</p><p>  sbit hi_led=P1^0; //高溫報警指示燈</p><p>  sbit lo_led=P1^1; //低溫

39、報警指示燈</p><p>  sbit gao_fs=P1^2; //控制驅動風扇</p><p>  sbit di_jrg=P1^3; //控制驅動加熱管</p><p>  sbit tz_key=P3^0; //進入按鍵設置溫度按鍵</p><p>  sbit kz_key=P3^1; //控制高低溫加減設

40、置按鍵</p><p>  sbit jia_key=P3^2; //加溫度按鍵</p><p>  sbit jian_key=P3^3; //減溫度按鍵</p><p>  uint num=0,num1=0;</p><p>  //*********共陽數(shù)碼管段選值***************/</p>

41、<p>  unsigned char code dispcode[]={ </p><p>  0xc0,0xf9,0xa4,0xb0,</p><p>  0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0xff}; // 0xff 滅 </p><p

42、>  //溫度小數(shù)點對照表</p><p>  uchar code df_table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};</p><p>  uchar currentT=0; //當前溫度的整數(shù)部分</p><p>  char alarm_temp_hl[2]={80,2

43、5}; //溫度的控制幅度</p><p>  uchar temp_value[]={0x00,0x00}; //DS18B20讀取的溫度值低8位高8位</p><p>  uchar display_digit[8]={0,0,0,0,0,0,0,0};//待顯示的溫度的每個位</p><p>  bit hi_alarm=0,lo_alarm=0;

44、 //高低溫報警標志位</p><p>  bit DS18B20_is_ok=1; //傳感器正常標志位//--------------------------------------------------</p><p><b>  // 延時函數(shù)</b></p><p>  //

45、--------------------------------------------------</p><p>  void delay(uint num)</p><p><b>  {</b></p><p>  while( --num );</p><p><b>  }</b><

46、;/p><p>  //---------------------------------------------------</p><p>  //初始化DS18B20</p><p>  //---------------------------------------------------</p><p>  uchar dsreset

47、()</p><p><b>  {</b></p><p>  uchar status;</p><p>  ds=1;delay(8);</p><p>  ds=0;delay(90);</p><p>  ds=1;delay(8);</p><p>  s

48、tatus=ds;</p><p>  delay(100);</p><p><b>  ds=1;</b></p><p>  return status;</p><p><b>  }</b></p><p>  //-----------------------

49、----------------------------</p><p><b>  //讀一字節(jié)</b></p><p>  //---------------------------------------------------</p><p>  uchar readonebyte()</p><p><b

50、>  {</b></p><p>  uchar i,dat=0;</p><p>  ds=1;_nop_();</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p>  ds=0;dat>>=1;ds=

51、1;_nop_();_nop_();</p><p><b>  if(ds)</b></p><p>  dat|=0x80;</p><p>  delay(30);ds=1;</p><p><b>  }</b></p><p>  return dat;</p

52、><p><b>  }</b></p><p>  //---------------------------------------------------</p><p><b>  //寫一字節(jié)</b></p><p>  //----------------------------------

53、-----------------</p><p>  void writeonebyte(uchar dat)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for(i=0;i<8;i++)</p><p

54、><b>  {</b></p><p>  ds=0;ds=dat&0x01;</p><p><b>  delay(5);</b></p><p>  ds=1;dat>>=1;</p><p><b>  }</b></p>&l

55、t;p><b>  }</b></p><p>  //---------------------------------------------------</p><p><b>  //讀取溫度值</b></p><p>  //-----------------------------------------

56、----------</p><p>  void read_temperature()</p><p><b>  {</b></p><p>  if(dsreset()==1) //DS18B20故障</p><p>  DS18B20_is_ok=0;</p><p><b&

57、gt;  Else</b></p><p><b>  {</b></p><p>  writeonebyte(0xcc);</p><p>  writeonebyte(0x44);</p><p>  dsreset(); writeonebyte(0xcc); writeonebyt

58、e(0xbe); temp_value[0]=readonebyte(); //溫度低8位 temp_value[1]=readonebyte(); //溫度高8位 DS18B20_is_ok=1;</p><p><b>  }</b></p><p><b>  }</

59、b></p><p>  //-------------------------------------------------</p><p>  //設置DS18B20溫度報警值</p><p>  //-------------------------------------------------</p><p>  void

60、set_alarm_temp_value()</p><p><b>  {</b></p><p>  dsreset();</p><p>  writeonebyte(0xcc); //跳過系列號</p><p>  writeonebyte(0x4e); //將設定

61、的溫度報警值寫入DS18B20</p><p>  writeonebyte(alarm_temp_hl[0]); //寫TH</p><p>  writeonebyte(alarm_temp_hl[1]); //寫TL</p><p>  writeonebyte(0x7f); //12位精度</p><p

62、>  dsreset();</p><p>  writeonebyte(0xcc);//跳過系列號</p><p>  writeonebyte(0x48); //溫度報警值存入DS18B20</p><p><b>  }</b></p><p>  //-------------

63、------------------------------------</p><p><b>  //數(shù)碼管顯示溫度</b></p><p>  //-------------------------------------------------</p><p>  void display_temperature()</p>

64、<p><b>  {</b></p><p><b>  uchar i;</b></p><p>  uchar t=150;</p><p>  //查表得到小數(shù)部分</p><p>  display_digit[0]=df_table[temp_value[0]&0x

65、0f]; </p><p><b>  //獲取正溫度</b></p><p>  currentT=((temp_value[0]&0xf0)>>4)|((temp_value[1]&0x07)<<4);</p><p>  hi_alarm=currentT>=alarm_temp_hl[0

66、]?1:0;</p><p>  lo_alarm=currentT<=alarm_temp_hl[1]?1:0;</p><p><b>  //整數(shù)部分分離</b></p><p>  display_digit[7]=alarm_temp_hl[0]/10;</p><p>  display_digit[6

67、]=alarm_temp_hl[0]%10;</p><p>  display_digit[5]=alarm_temp_hl[1]/10;</p><p>  display_digit[4]=alarm_temp_hl[1]%10;</p><p>  display_digit[2]=currentT/10;</p><p>  dis

68、play_digit[1]=currentT%10;</p><p>  P0=0X9c; P2=0x01; delay(t); P2=0x00;//顯示。</p><p>  P0=dispcode[display_digit[0]];//小數(shù)位</p><p>  P2=0x02; delay(t); P2=0x00;</p><p>

69、;  P0=(dispcode[display_digit[1]])&0x7f;//各位和小數(shù)點</p><p>  P2=0x04; delay(t); P2=0x00;</p><p>  P0=dispcode[display_digit[2]];//十位</p><p>  P2=0x08; delay(t); P2=0x00;</p>

70、;<p>  P0=dispcode[display_digit[4]]; </p><p>  P2=0x10; delay(t); P2=0x00;</p><p>  P0=dispcode[display_digit[5]];</p><p>  P2=0x20; delay(t); P2=0x00;</p><p> 

71、 P0=dispcode[display_digit[6]];</p><p>  P2=0x40; delay(t); P2=0x00;</p><p>  P0=dispcode[display_digit[7]];</p><p>  P2=0x80; delay(t); P2=0x00;</p><p><b>  }<

72、;/b></p><p>  //--------------------------------------------------</p><p>  //按鍵程序 (num=1,進入按鍵溫度設置,num1=1進行最高溫度設置,num1=2進行最低溫度設置)</p><p>  //-------------------------------------

73、-------------</p><p>  void KeyScan()</p><p><b>  {</b></p><p>  if(tz_key==0)</p><p><b>  {</b></p><p>  display_temperature();

74、 //消斗</p><p>  if(tz_key==0) //二次判斷</p><p><b>  {</b></p><p><b>  num++; </b></p><p>  if(num==2)</p>

75、<p><b>  num=0; </b></p><p>  while(tz_key==0); //等待按鍵放開</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==1)</p

76、><p><b>  {</b></p><p>  if(kz_key==0)</p><p><b>  {</b></p><p>  display_temperature();</p><p>  if(kz_key==0)</p><p>&l

77、t;b>  {</b></p><p><b>  num1++;</b></p><p>  if(num1==3)</p><p><b>  num1=0;</b></p><p>  while(kz_key==0);</p><p><b&g

78、t;  }</b></p><p><b>  }</b></p><p>  if(num1==1)</p><p><b>  {</b></p><p>  if(jia_key==0)</p><p><b>  {</b></

79、p><p>  display_temperature();</p><p>  if(jia_key==0)</p><p><b>  {</b></p><p>  alarm_temp_hl[0]++; //增大最高報警溫度</p><p>  while(jia_key=

80、=0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(jian_key==0)</p><p><b>  {</b></p><p>  display_temperature();<

81、/p><p>  if(jian_key==0)</p><p><b>  {</b></p><p>  alarm_temp_hl[0]--; //減小最高報警溫度</p><p>  while(jian_key==0);</p><p><b>  }</

82、b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num1==2)</p><p><b>  {</b></p><p>  if(jia_key==0)</p><

83、;p><b>  {</b></p><p>  display_temperature();</p><p>  if(jia_key==0)</p><p><b>  {</b></p><p>  alarm_temp_hl[1]++; //增加最低報警溫度</p>&

84、lt;p>  while(jia_key==0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(jian_key==0)</p><p><b>  {</b></p><p>  di

85、splay_temperature();</p><p>  if(jian_key==0)//減小最低報警溫度</p><p><b>  {</b></p><p>  alarm_temp_hl[1]--;</p><p>  while(jian_key==0);</p><p><

86、;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //----

87、----------------------------------------------</p><p><b>  //主程序</b></p><p>  //--------------------------------------------------</p><p>  void main(void)</p>&l

88、t;p><b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  KeyScan();</p><p>  set_alarm_temp_value();</p><p&g

89、t;  read_temperature();</p><p>  if(DS18B20_is_ok)</p><p><b>  {</b></p><p>  KeyScan();</p><p>  display_temperature();</p><p>  if(hi_alarm==

90、1)</p><p><b>  {</b></p><p>  hi_led=~hi_led; lo_led=1; gao_fs=0; }</p><p>  else {hi_led=1; gao_fs=1;}</p><p>  if(lo_alarm==1)</p><p><b&g

91、t;  {</b></p><p>  lo_led=~lo_led; hi_led=1; di_jrg=0;}</p><p>  else {lo_led=1; di_jrg=1;}</p><p><b>  } </b></p><p><b>  }</b><

溫馨提示

  • 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

提交評論