單片機的溫度控制畢業(yè)設計_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機的溫度控制</p><p><b>  設 計 者: </b></p><p><b>  學 號:</b></p><p><b>  班 級: </b></p><p><b>  指導老師: </b><

2、;/p><p>  畢業(yè)設計(論文)任務書</p><p>  專業(yè)(班): 姓名: </p><p>  課題名稱、主要內容和基本要求</p><p><b>  進度安排</b></p><p><b>  指導教師評語</b&g

3、t;</p><p>  指導教師簽名: </p><p><b>  評閱教師評語</b></p><p>  評閱教師簽名: </p><p>  畢業(yè)設計(論文)成績</p><p>  答辯委員會主任簽名:

4、 </p><p><b>  摘要</b></p><p>  本設計的主要內容和特點</p><p>  隨著時代的進步和發(fā)展,人們生活水平的不斷提高,單片機技術已經普及到我們生活,工作,科研,各個領域,已經成為一種比較成熟的技術。</p><p>  本設計所介紹的基于單片機的溫度控制的主要特點是:具有讀數方

5、便,測溫范圍廣,測溫準確,其輸出溫度采用數字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,該設計控制器使用AVR單片機Atmega16L作為控制核心;測溫傳感器使用DS18B20,能更好更方便的讀取外部溫度值;降溫控制系統(tǒng)采用低壓直流電風扇,當溫度高于設定最高限溫度時,LED燈及蜂鳴器便會發(fā)出報警信號,同是降溫風扇也會啟動達到降溫作用;溫度顯示使用液晶模塊來實現(xiàn),這樣就能準確達到以上要求。</p><p>

6、;<b>  外文資料:</b></p><p>  With the era of progress and development, the continuous improvement of people's living standard, SCM technology has spread to our lives, work, research, in various f

7、ields, has become a relatively mature technology.</p><p>  The design presented by the SCM based on the temperature control of the main features are: a reading of convenience, a wide range of temperature mea

8、surement, accurate temperature measurement, using figures show that the output temperature, mainly used for more accurate temperature measurement on the premises, or scientific research Laboratory use, the design control

9、ler use as a control Atmega16L AVR microcontroller core temperature sensors use DS18B20, can be better and more convenient to read t</p><p><b>  目錄</b></p><p>  一.前 言7</p>

10、<p>  二.方案論證與比較8</p><p><b>  1.方案一8</b></p><p><b>  2.方案二8</b></p><p>  三.系統(tǒng)的基本原理及使用說明9</p><p>  四.硬件設計方案9</p><p> 

11、 1.單片機主板電路10</p><p>  2.傳感器數據采集電路10</p><p>  3.溫度顯示電路10</p><p>  4.報警降溫電路11</p><p>  五.軟件設計方案11</p><p><b>  1.主程序12</b></p>

12、<p>  2.讀出溫度子程序13</p><p>  3.溫度轉換命令子程序13</p><p>  六.主要器件介紹14</p><p>  1.主控制器14</p><p>  2.顯示液晶模塊14</p><p>  3.溫度傳感器14</p><p>

13、  4.降溫報警系統(tǒng)18</p><p>  七.調試結果與設計體會19</p><p>  八.參考文獻19</p><p>  1.附1:硬件電路圖20</p><p>  2.附2:軟件源代碼22</p><p>  3.附3:使用說明書27</p><p><

14、;b>  前 言</b></p><p>  隨著電子技術的發(fā)展,特別是隨著大規(guī)模集成電路的產生,給人們的生活帶來了根本性的變化,如果說微型計算機的出現(xiàn)使現(xiàn)代的科學研究得到了質的飛躍,那么可編程控制器的出現(xiàn)則是給現(xiàn)代工業(yè)控制測控領域帶來了一次新的革命。在現(xiàn)代社會中,溫度控制不僅應用在工廠生產方面,其作用也體現(xiàn)到了各個方面。 </p><p>  隨著人們生活質量的提高

15、,酒店廠房及家庭生活中都會見到溫度控制的影子,溫度控制將更好的服務于社會目前,單片機控制器在從生活工具到工業(yè)應用的各個領域,例如生活工具的電梯、電腦、工業(yè)生產中的現(xiàn)場控制儀表、數控機床等。尤其是用單片機控制器改造落后的設備具有性價比高、提高設備的使用壽命、提高設備的自動化程度的特點。 </p><p>  隨著社會的發(fā)展,人們對環(huán)境溫度的控制要求也越來越高,對于高溫的溫度控制也就相應的不斷提高,而我設計的基于單片

16、機的溫度控制就是為了達到這樣的溫度控制要求而進行設計的。我所采用的控制芯片為Atmega16L,此芯片功能強大,能夠滿足設計要求。通過對電路的設計,對芯片的外圍擴展,來達到對溫度的控制和調節(jié)功能</p><p><b>  方案論證與比較</b></p><p><b>  方案一</b></p><p>  由于本設計是

17、控溫測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數據的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。</p><p><b>  方案二 </b></p><p>  進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以

18、這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,(在9位分辨率時最多在93.75MS內把溫度轉換為數 ,)可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。 從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計也比較簡單,故采用了方案二。</p><p>  系統(tǒng)的基本原理及使用說明</p><p>  基于單片機的溫度控制電路設計總體設計

19、方框圖如圖1所示,主控制器采用單片機AVR控制,溫度傳感器采用DS18B20,以蜂鳴器實現(xiàn)報警功能,降溫控制系統(tǒng)采用低壓直流電風扇,用液晶來實現(xiàn)溫度顯示。</p><p><b>  圖1總體設計方框圖</b></p><p>  本數字溫控系統(tǒng)采用了AVR單片機Atmega16L作為控制核心,通過一個溫度傳感器DS18B20把環(huán)境溫度讀取進來,再由液晶模塊將讀取的溫

20、度顯示出來,通過鍵盤按鍵來設定報警溫度值,當溫度達到預設報警溫度值時,利用蜂鳴器、LED指示燈及電機風扇實現(xiàn)高溫報警及降溫功能。</p><p><b>  硬件設計方案</b></p><p>  系統(tǒng)整體硬件電路包括:單片機主板電路,傳感器數據采集電路,溫度顯示電路,報警降溫電路等。(如圖1)</p><p>  圖1中的按鍵復位電路是上電

21、復位加手動復位,使用比較方便,在程序跑飛時,可以手動復位,這樣就不用在重啟單片機電源,就可以實現(xiàn)復位;鍵盤按鍵用來設置報警溫度值從而控制風扇及報警;顯示電路直接用液晶模塊顯示,不但顯示直觀、清晰,在硬件電路設計中還更方便。</p><p><b>  單片機主板電路</b></p><p>  主要是用AVR的最小開發(fā)系統(tǒng)為基礎電路,以Atmega16L作為控制核心來

22、實現(xiàn)(圖1-1)。</p><p><b>  (圖1-1)</b></p><p><b>  傳感器數據采集電路</b></p><p>  主要是通過外接一種改進型智能溫度傳感器DS18B20來實現(xiàn)(圖1-2)。其內部結構已包含了數據采集轉換功能,使用方便,最適合本電路使用。</p><p>

23、<b>  溫度顯示電路</b></p><p>  主要是用一塊16X2字符型液晶顯示模塊來實現(xiàn)(圖1-3)。它以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優(yōu)點,在袖珍式儀表和低功耗應用系統(tǒng)中得到越來越廣泛的應用且使用方便直觀。</p><p>  (圖1-2) (圖1-3) </p><p><b>

24、  報警降溫電路</b></p><p>  主要是通過兩個鍵盤按鍵對其報警溫度的設置,以蜂鳴器及LED燈配合低壓直流電風扇等組合來實現(xiàn)對溫度的報警降溫(圖1-4)。</p><p><b>  (圖1-4)</b></p><p><b>  軟件設計方案</b></p><p>  

25、系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,鍵盤處理子程序,顯示數據刷新子程序等。</p><p><b>  主程序</b></p><p>  主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20測量的當前溫度值,并與設定值相比較從而達到控溫報警效果,其程序流程見圖2所示。</p><p><b>  讀

26、出溫度子程序</b></p><p>  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數據的改寫。其程序流程圖如圖3所示。 </p><p><b>  溫度轉換命令子程序</b></p><p>  溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間

27、約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖4所示</p><p><b>  主要器件介紹</b></p><p><b>  主控制器</b></p><p>  本設計采用了Atmel公司的AVR單片機Atmega16L作為控制核心。AVR單片機的單周期指令能

28、夠保證高的執(zhí)行效率和低成本,是精簡指令集CPU中的高性能器件。AVR單片機可以提供高達16 MIPS的執(zhí)行時間,具有128K字節(jié)的可編程Flash存儲器,同時具備4096字節(jié)的靜態(tài)RAM。這款AVR增強型單片機具有速度快,抗干擾能力強,價格低廉等諸多優(yōu)點。</p><p><b>  顯示液晶模塊</b></p><p>  顯示電路采用了液晶模塊,實現(xiàn)了當前溫度在液

29、晶顯示模塊上實時顯示。液晶顯示模塊占用了單片機Atmega16L的PA0-PA7作為數據接口,采用了單片機的PA0-PA2作為控制端口。PA0引腳選擇液晶顯示模塊的數據存儲器或指令存貯器,PA1引腳表明此次操作是讀液晶顯示模塊還是寫液晶顯示模塊,PA2則構成上升沿與下降沿完成讀寫時序。</p><p><b>  溫度傳感器</b></p><p>  DS18B20

30、溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現(xiàn)9~12位的數字值讀數方式。DS18B20的性能特點如下:●獨特的單線接口僅需要一個端口引腳進行通信;●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網功能;●無須外部器件;●可通過數據線供電,電壓范圍為3.0~5.5V;●零待機功耗;●溫度以9或12位數字

31、;●用戶可定義報警設置;●報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;●負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內部結構框圖如圖5所示。</p><p>  64位ROM的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B2

32、0可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。 DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節(jié)的存儲器,結構如圖3所示。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第5個字節(jié),為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨

33、率轉換為相應精度的溫度數值。該字節(jié)各位的定義如圖6所示。低5位一直為1,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為0,用戶要去改動,R1和R0決定溫度轉換的精度位數,來設置分辨率。</p><p>  由表1可見,DS18B20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。 高速暫

34、存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗數據,從而保證通信數據的正確性。 當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625℃/LSB形式表示。 當符號位S=0時,表示測得的溫度值為正值,

35、可以直接將二進制位轉換為十進制;當符號位S=1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數值。表2是一部分溫度值對應的二進制溫度數據。</p><p>  DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較。若T>TH或T<TL,則將該器件內的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位R

36、OM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數據是否正確。 DS18B20的測溫原理是這這樣的,器件中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1;高溫度系數晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入。器件中還有一個計數門,當計數門打開時,DS18B20就

37、對低溫度系數振蕩器產生的時鐘脈沖進行計數進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55℃所對應的一個基數分別置入減法計數器1、溫度寄存器中,計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。 減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置</p><p>  另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此

38、讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復位脈沖)—發(fā)ROM功能命令—發(fā)存儲器操作命令—處理數據。DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖7所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。 當DS

39、18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p><b>  降溫報警系統(tǒng)</b></p><p>  降溫報警系統(tǒng)采用低壓直流電風扇、蜂鳴器及LED燈等組合來實現(xiàn)報警降溫功能。報警初值設定為40,通過按鍵PC.2加一

40、,PC.3減一的功能來設置報警值,當溫度達到設置報警值時,LED燈及蜂鳴器便會發(fā)出報警信號,同時直流電風扇便會啟動達到降溫效果。</p><p><b>  調試結果與設計體會</b></p><p>  經過這學期的畢業(yè)設計,終于完成了我的基于單片機的溫度控制的設計,雖然還不是很完善,但從心底里說,還是高興的,畢竟這次設計把實物都做了出來,高興之余不得不深思呀!

41、 在本次設計的過程中,我發(fā)現(xiàn)很多的問題,如在程序的調試過程中出事顯示屏幕不斷在閃爍,怎么能使程序正常顯示出當前的溫度以及在益出時如何來解決等等。雖然以前課堂上也做過這樣的設計但這次設計真的讓我長進了很多,我覺得寫好一個程序并不是一件簡單的事。 從這次的畢業(yè)設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這次課

42、程設計中的最大收獲。在這里我要感謝我的指導老師晏凱老師以及所有在這此畢業(yè)設計中幫助過我的同學,正因為有他們的幫助我才能順利的完成這次的作品。</p><p><b>  參考文獻</b></p><p>  [1] 李朝青.單片機原理及接口技術(簡明修訂版).杭州:北京航空航天大學出版社,1998[2] 李廣弟.單片機基礎[M].北京:北京航空航天大學出版社,199

43、4[3] 閻石.數字電子技術基礎(第三版). 北京:高等教育出版社,1989</p><p><b>  附1:硬件電路圖</b></p><p><b>  原理圖:</b></p><p><b>  PCB電路圖:</b></p><p><b>  附2

44、:軟件源代碼</b></p><p>  #include <mega16.h></p><p>  #include <ds18b20_AVR.h></p><p><b>  #asm</b></p><p>  .equ __lcd_port=0x1B ;PORTA</p&

45、gt;<p><b>  #endasm</b></p><p>  #include <lcd.h></p><p>  #include <delay.h></p><p>  #include <stdio.h></p><p>  int wendu,adjust

46、=31;</p><p>  unsigned char buffer[33],buffer1[33]; //定義數組</p><p>  void scan_key(); //聲明溫度值設置子函數</p><p>  void motor_turn(); // 聲明電機轉動子函數</p><p>  void scan_ke

47、y() // 溫度值設置子函數</p><p><b>  {</b></p><p>  if(PIND.3==0)</p><p><b>  {</b></p><p><b>  adjust++;</b></p><p>  de

48、lay_ms(150);</p><p><b>  }</b></p><p>  if(PIND.2==0)</p><p><b>  {</b></p><p><b>  adjust--;</b></p><p>  delay_ms(150

49、);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void motor_turn() //電機轉動子函數</p><p><b>  {</b></p><p>  PORTD.5=1

50、;</p><p><b>  }</b></p><p>  void main(void) //主函數</p><p><b>  {</b></p><p>  PORTC=0x00;</p><p>  DDRC=0xf2;</p>

51、<p>  PORTD=0xff;</p><p>  DDRD=0xf3;</p><p>  PortDS18B20_Init(); //18B20初始化</p><p>  DS18B20_Init(); </p><p>  lcd_init(16); //1602初始化</p&

52、gt;<p><b>  while (1)</b></p><p><b>  {</b></p><p>  scan_key();</p><p>  if(ResetOK_Flag==1) //讀18B20溫度值</p><p><b>  {</

53、b></p><p>  wendu=ReadTemp();</p><p><b>  } </b></p><p><b>  else</b></p><p><b>  {</b></p><p>  DS18B20_Init();

54、 </p><p><b>  }</b></p><p>  scan_key();</p><p>  lcd_clear();</p><p>  lcd_gotoxy(0,0);</p><p>  sprintf(buffer,"the temp is %d",wen

55、du); // </p><p>  lcd_puts(buffer); //顯示當前溫度</p><p>  lcd_gotoxy(0,1);</p><p>  sprintf(buffer1,"the adjust is %d",adjust); //</p><p&g

56、t;  lcd_puts(buffer1); //顯示當前設置溫度</p><p>  delay_ms(10); </p><p>  if(wendu>=adjust) //比較當前溫度與設置溫度</p>

57、;<p><b>  { </b></p><p>  motor_turn(); //電機轉動</p><p>  PORTD.4=1; //驅動蜂鳴器</p><p>  PORTD.1=1;

58、 //LED顯示</p><p>  delay_ms(80);</p><p>  PORTD.4=0;</p><p>  PORTD.1=0; </p><p>  delay_ms(80);</p><p><b>  }</b&g

59、t;</p><p><b>  else</b></p><p>  { </p><p>  PORTD.5=0; //電機停止</p><p>  PORTD.

60、4=0; //關閉蜂鳴器</p><p>  PORTD.1=0; //LED熄滅</p><p><b>  }</b></p><p><b>  };</b></p>&

61、lt;p><b>  }</b></p><p><b>  附3:使用說明書</b></p><p><b>  圖7 </b></p><p>  基于單片機的溫度控制實物圖如圖7所示,本設計在使用上非常簡單,主要是通過外接供給5V電源來驅動Atmega16L芯片運行,使液晶顯示模塊點亮,再

溫馨提示

  • 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

提交評論