畢業(yè)設計--數(shù)字溫度計設計_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p>  題 目:數(shù)字溫度計設計</p><p>  系(分院)機械電子工程系 </p><p>  學生姓名 </p><p>  學 號 08115099 </p><p>  專業(yè)

2、名稱 應用電子 </p><p>  指導教師 </p><p>  2010 年 11 月 22 日</p><p>  畢業(yè)設計(論文)任務書</p><p>  題目:數(shù)字溫度計設計</p><p>  [摘要] 本論文介紹了一種以單片機為主要控制器件,以DS18

3、B20為溫度傳感器的新型數(shù)字溫度計。主要包括硬件電路的設計和系統(tǒng)程序的設計。硬件電路主要包括主控制器,測溫電路和顯示電路等,主控制器采用單片機AT89C2051,溫度傳感器采用美國DALLAS半導體公司生產的DS18B20,顯示電路采用4位共陽極LED數(shù)碼管以動態(tài)掃描法直讀顯示。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。此外,還介紹了系統(tǒng)的調試和性能分析。由于采用了改進型智能溫度

4、傳感器DS18B20作為檢測元件,與傳統(tǒng)的溫度計相比,本數(shù)字溫度計減少了外部的硬件電路,具有低成本和易使用的特點。DS18B20溫度計還可以在高溫報警、遠距離多點測溫控制等方面進行應用開發(fā),具有很好的發(fā)展前景。關鍵詞:單片機,主控制器,溫度傳感器,DS18B20,AT89C51, 顯示電路,數(shù)字溫度計</p><p><b>  目 錄</b></p><p>

5、  第一節(jié) 引言………………………………………………………7</p><p>  1.1 DS18B20引腳功能…………………………………………………7</p><p>  第二節(jié) DS18B20數(shù)字溫度計的硬件結構設計…………………8</p><p>  2.1 總體設計框圖………………………………………………………9</p><p>  

6、2.1.1 主控制器…………………………………………………………9</p><p>  2.1.2 顯示電路…………………………………………………………10</p><p>  2.1.3 溫度傳感器………………………………………………………10</p><p>  2.2 DS18B20溫度傳感器與單片機的借口電路………………………11</p>&l

7、t;p>  2.3 系統(tǒng)整體硬件電路…………………………………………………11</p><p>  2.3.1 主板電路…………………………………………………………11</p><p>  2.3.2 系統(tǒng)板上硬件連接………………………………………………12</p><p>  第三節(jié) 軟件設計…………………………………………………12</p>

8、<p>  3.1 主程序3.2 讀出溫度子程序…………………………………………13</p><p>  3.3 溫度轉換命令子程序…………………………………………………13</p><p>  3.4 計算溫度子程序………………………………………………………13</p><p>  3.5 顯示數(shù)據(jù)刷新子程序…………………………………………………13&l

9、t;/p><p>  第附錄 匯編源程序代碼.………………………………………14</p><p>  四節(jié) 總結與體會………………………………………………20</p><p>  致謝………………………………………………………………20</p><p>  參考文獻…………………………………………………………20</p><

10、p>  DS18B20數(shù)字溫度計的設計</p><p><b>  第一節(jié) 引言</b></p><p>  隨著電子技術的迅速發(fā)展,計算機已深入的滲透到我們的生活中,就51系列而言,由于Intel公司將其內核使用權以專利互換或出售的形式轉給世界許多著名IC制造商,隨著計算機技術的不斷發(fā)展,在工業(yè)測量控制領域內單片機的應用越來越廣泛。同時,隨著超大規(guī)模集成電路

11、工藝和集成制造技術的不斷完善,單片機的硬件集成度也不斷提高,已經出現(xiàn)了能滿足各種不同需求、具有各種特殊功能的單片機,這類單片機具有集成度高、性能價格比優(yōu)越、貨源充足等優(yōu)點,在工業(yè)測量領域內獲得了極為廣泛的應用價值。</p><p>  溫度是一個十分重要的物理量,對它的測量與控制有十分重要的意義。隨著現(xiàn)代工農業(yè)技術的發(fā)展及人們對生活環(huán)境要求的提高,人們也迫切需要檢測與控制溫度。在人類的生活環(huán)境中,溫度扮演著極其重

12、要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫度的因素。溫度對于工業(yè)如此重要,由此推進了溫度傳感器的發(fā)展。</p><p>  本應用系統(tǒng)設計的目的是通過在“單片機原理及應用”課堂上學習的知識,以及查閱資料,培養(yǎng)一種自學的能力。并且引導一種創(chuàng)新的思維,把學到的知識應用到日常生活當中。在設計的過程中,不斷

13、的學習,思考和同學間的相互討論,運用科學的分析問題的方法解決遇到的困難,掌握單片機系統(tǒng)一般的開發(fā)流程,學會對常見問題的處理方法,積累設計系統(tǒng)的經驗,充分發(fā)揮教學與實踐的結合。全能提高個人系統(tǒng)開發(fā)的綜合能力,開拓了思維,為今后能在相應工作崗位上的工作打下了堅實的基礎。</p><p>  本課題研究的內容就是以單片機為主要控制元件,通過溫度傳感器實現(xiàn)對溫度的測量,并通過數(shù)碼管直接顯示所測溫度。由于本人所學知識有限,

14、設計過程中難免出現(xiàn)錯誤,還請各位老師批評指正。</p><p>  1.1 DS18B20引腳功能</p><p>  TO-92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1。 </p><p><b> ?。ǖ滓晥D)圖1 </b></p><p>  表1 DS18B20詳細引腳功能描述 </p&g

15、t;<p>  DS18B20數(shù)字溫度計的硬件結構設計</p><p>  2.1 總體設計框圖</p><p>  溫度計電路設計總體設計方框圖如圖2所示,控制器采用單片機AT89C51,溫度傳感器采用DS18B20,用LED數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。</p><p>  圖2 總體設計方框圖</p><p>  2.

16、1.1 主控制器</p><p>  單片機AT89C51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。</p><p>  2.1.2 顯示電路</p><p>  顯示電路采用共陽LED數(shù)碼管,從P1.0—P1.7串口輸出段碼。</p><p>  2.1

17、.3 溫度傳感器</p><p>  DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9--12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p> ?。?)、只要求一個端口即可實現(xiàn)通信;</p><p>  (2)、在D

18、S18B20中的每個器件上都有獨一無二的序列號;</p><p> ?。?)、實際應用中不需要外部任何元器件即可實現(xiàn)測溫;</p><p> ?。?)、測量溫度范圍在-55。C到+125。C之間;</p><p> ?。?)、數(shù)字溫度計的分辨率用戶可以從9位到12位選擇;</p><p>  (6)、內部有溫度上、下限告警設置;</p&

19、gt;<p>  DS18B20采用3腳PR--35封裝或8腳SOIC封裝,其內部結構框圖如圖3所示。</p><p>  圖3 DS18B20內部結構</p><p>  2.2 DS18B20溫度傳感器與單片機的借口電路</p><p>  DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳座位信號線,3

20、腳接電源。另一種是寄生電源供電方式,如圖4所示單片機端口接單線總線,為保證在有效地DS18B20時鐘周期內提供足夠的電源,可用一個MOSFET管來完成對總線的上拉。</p><p>  當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us.采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p>

21、;  圖4 DS18B20與單片機的接口電路</p><p>  2.3 系統(tǒng)整體硬件電路</p><p>  2.3.1 主板電路</p><p>  系統(tǒng)整體硬件電路包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機主板電路等,如圖5所示。</p><p>  2.3.2 系統(tǒng)板上硬件連接</p><p>  .把“單

22、片機系統(tǒng)”區(qū)域中的P0.0--P0.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端子上。</p><p>  .把“單片機系統(tǒng)”區(qū)域中的P2.0--P2.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的 S1S2S3S4S5S6S7S8端子上。</p><p>  .把DS18B20芯片插入“四路單總線”區(qū)域中的任一個插座中,注意電源與地信號不要接反。</p><

23、;p>  .把“四路單總線”區(qū)域中的對應的DQ端子連接到“單片機系統(tǒng)”區(qū)域中的P3.7/RD端子上。</p><p><b>  軟件</b></p><p>  系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。</p><p><b>  3.1 主程序</b>&l

24、t;/p><p>  主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖6所示。</p><p>  圖6 主程序流程圖 圖7 讀溫度流程圖</p><p>  3.2 讀出溫度子程序</p><p>

25、;  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖7所示。</p><p>  圖8 溫度轉換流程圖</p><p>  3.3 溫度轉換命令子程序</p><p>  溫度轉換命令子程序主要是溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時

26、法等待轉換的完成。溫度轉換命令子程序流程圖如上圖8所示。</p><p>  3.4 計算溫度子程序</p><p>  計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖9所示。</p><p>  圖9 計算溫度流程圖 圖10 顯示數(shù)據(jù)刷新流程圖</p>&l

27、t;p>  3.5 顯示數(shù)據(jù)刷新子程序</p><p>  顯示數(shù)據(jù)刷新子程序主要是對現(xiàn)實緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖10所示。</p><p>  附錄 匯編源程序代碼</p><p>  ORG 00H</p><p>  TMPL EQU 29H

28、 ;用于保存讀出溫度的低8位</p><p>  TMPH EQU 28H ;用于保存讀出溫度的高8位</p><p>  FLAG1 EQU 38H ;是否檢測到DS18B20標志位27H.0</p><p>  DATAIN BIT P3.7</p><p>  MAIN: LCALL

29、GET_TEMPER ;調用讀溫度子程序</p><p>  LCALL CVTTMP</p><p>  LCALL DISP1</p><p>  AJMP MAIN ;DS18B20復位初始化子程序</p><p>  INIT_1820: SETB DATAIN</p><

30、;p><b>  NOP</b></p><p>  CLR DATAIN ;主機發(fā)出延時537ms的復位低脈沖</p><p>  MOV R1,#3</p><p>  TSR1: MOV R0,#107</p><p>  DJNZ R0,$</p>

31、;<p>  DJNZ R1,TSR1</p><p>  SETB DATAIN ;然后拉高數(shù)據(jù)線</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b><

32、;/p><p>  MOV R0,#25H</p><p>  TSR2: JNB DATAIN,TSR3 ;等待DS18B20回應</p><p>  DJNZ R0,TSR2</p><p>  CLR FLAG1 ;清標志位,表示DS18B20不存在</p><

33、p>  SJMP TSR7</p><p>  TSR3: SETB FLAG1 ;置標志位,表示DS18B20存在</p><p>  CLR P1.7 ;檢測到DS18B20就點亮P1.7LED</p><p>  MOV R0,#117</p><p>  T

34、SR6: DJNZ R0,$ ;時序要求延時一段時間</p><p>  TSR7: SETB DATAIN</p><p>  RET ;讀出轉換后的溫度值</p><p>  GET_TEMPER:SETB DATAIN</p><p>  LCA

35、LL INIT_1820 ;先復位DS18B20</p><p>  JB FLAG1,TSS2</p><p><b>  NOP</b></p><p>  RET ;判斷DS18B20是否存在?若DS18B20不存在,則返回</p><p>  TSS2:

36、 MOV A,#0CCH ;跳過ROM匹配</p><p>  LCALL WRITE_1820</p><p>  MOV A,#44H ;發(fā)出溫度轉換命令</p><p>  LCALL WRITE_1820</p><p>  ACALL DISP1</p>&

37、lt;p>  LCALL INIT_1820 ;準備讀溫度前先復位</p><p>  MOV A,#0CCH ;跳過ROM匹配</p><p>  LCALL WRITE_1820 </p><p>  MOV A,#0BEH ;發(fā)出溫度轉換命令</p><p>  LCAL

38、L WRITE_1820</p><p>  LCALL READ_18200 ;將讀出的溫度數(shù)據(jù)保存到35H/36H</p><p>  RET ;寫DS18B20的子程序(有具體的時序要求)</p><p>  WRITE_1820:MOV R2,#8 ;一共8位數(shù)據(jù)</p>

39、;<p><b>  CLR C</b></p><p>  WR1: CLR DATAIN</p><p>  MOV R3,#6</p><p>  DJNZ R3,$</p><p><b>  RRC A</b></p>&

40、lt;p>  MOV DATAIN,C</p><p>  MOV R3,#23</p><p>  DJNZ R3,$</p><p>  SETB DATAIN</p><p><b>  NOP</b></p><p>  DJNZ R2,WR1</p&g

41、t;<p>  SETB DATAIN</p><p>  RET ;讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數(shù)據(jù)</p><p>  READ_18200:MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出</p><p>  MOV R1,#29H

42、 ;低位存入29H(TEMP_L)中,高位存入28H(TEMPH)中</p><p>  RE00: MOV R2,#8 ;數(shù)據(jù)一共有8位</p><p>  RE01: CLR C</p><p>  SETB DATAIN</p><p><b>  NOP<

43、;/b></p><p><b>  NOP</b></p><p>  CLR DATAIN</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b&

44、gt;</p><p>  SETB DATAIN</p><p>  MOV R3,#9</p><p>  RE10: DJNZ R3,RE10</p><p>  MOV C,DATAIN</p><p>  MOV R3,#23</p><p>  R

45、E20: DJNZ R3,RE20</p><p><b>  RRC A</b></p><p>  DJNZ R2,RE01</p><p>  MOV @R1,A</p><p><b>  DEC R1</b></p><p>  

46、DJNZ R4,RE00</p><p><b>  RET</b></p><p>  CVTTMP: MOV A,TMPH</p><p>  ANL A,#80H</p><p>  JZ TMPC1</p><p><b>  CLR C<

47、;/b></p><p>  MOV A,TMPL</p><p><b>  CPL A</b></p><p>  ADD A,#1</p><p>  MOV TMPL,A</p><p>  MOV A,TMPH</p><p>

48、<b>  CPL A</b></p><p>  ADDC A,#0</p><p>  MOV TMPH,A</p><p>  MOV 73H,#0BH ;顯示負號”-“ </p><p>  SJMP TMPC11 </p><p>  TMPC

49、1: MOV 73H,#0AH ;正數(shù)符號不顯示</p><p>  TMPC11: MOV A,TMPL</p><p>  ANL A,#0FH</p><p>  MOV DPTR,#TMPTAB</p><p>  MOVC A,@A+DPTR</p><p&g

50、t;  MOV 70H,A ;小數(shù)部分</p><p>  MOV A,TMPL</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV TMPL,A</p><p>  MOV

51、A,TMPH</p><p>  ANL A,#0FH</p><p><b>  SWAP A </b></p><p>  ORL A,TMPL</p><p>  H2BCD: MOV B,#100</p><p><b>  DIV AB<

52、;/b></p><p>  JZ B2BCD1</p><p>  MOV 73H,A ;百位不等于0時,保存</p><p>  B2BCD1: MOV A,#10</p><p>  XCH A,B</p><p><b>  DIV AB&

53、lt;/b></p><p>  MOV 72H,A ;十位</p><p>  MOV 71H,B ;個位</p><p>  TMPC12: NOP</p><p>  DISBCD: MOV A,73H</p><p>  ANL A,

54、#0FH</p><p>  CJNE A,#1,DISBCD0</p><p>  SJMP DISBCD1 ;百位為1,個位、十位不管是不是0,都要顯示</p><p>  DISBCD0: MOV A,72H ;百位不為1,就是0A不顯示,0B為負號</p><p>  ANL A

55、,#0FH ;十位是0時,正數(shù)只顯示個位</p><p>  JNZ DISBCD1 ;十位是0時,負數(shù)的負號移到十位的位置上</p><p>  MOV A,73H ;此時百位不顯示,為0BH</p><p>  MOV 72H,A</p><p>  MOV 73H,

56、#0AH</p><p>  DISBCD1: RET</p><p>  TMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9</p><p>  DISP1: MOV R1,#70H</p><p>  MOV R5,#0FEH</p><p>  PL

57、AY: MOV P1,#0FFH</p><p>  MOV A,R5</p><p>  MOV P2,A</p><p>  MOV A,@R1</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><

58、;p>  MOV P1,A</p><p>  MOV A,R5</p><p>  JB ACC.1,LOOP1</p><p>  CLR P1.7 ;顯示小數(shù)點</p><p>  LOOP1: LCALL DL1MS</p><p><b>

59、;  INC R1</b></p><p>  MOV A,R5</p><p>  JNB ACC.3,ENDOUT</p><p><b>  RL A</b></p><p>  MOV R5,A</p><p>  SJMP PLAY<

60、/p><p>  ENDOUT: MOV P1,#0FFH ;關顯示,消串影</p><p>  MOV P2,#0FFH</p><p><b>  RET</b></p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H</p><p

61、>  DB 92H,82H,0F8H,80H,90H,0FFH,0BFH</p><p>  DL1MS: MOV R6,#14H</p><p>  DL1: MOV R7,#100</p><p>  DJNZ R7,$</p><p>  DJNZ R6,DL1</p><

62、;p><b>  RET</b></p><p><b>  END</b></p><p><b>  總結與體會</b></p><p>  經過這段時間的努力,終于完成了我的DS18B20數(shù)字溫度計的設計,雖然沒有完全達到設計要求,但從心底里說,還是非常開心的,高興之余不得不深思呀!<

63、;/p><p>  在本次設計的過程中,我發(fā)現(xiàn)很多問題,雖然以前也做過這樣類似的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙地程序算法,雖然以前寫過幾次程序,但我覺得寫好一個程序并不是一件簡單的事。舉個例子,以前寫的那幾次,數(shù)據(jù)加減時我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只要我們去試著做了,才能

64、真正的掌握,只學習理論有些東西是很難理解的,更說不上掌握。</p><p>  從這次的設計中,我真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單片機更應該這樣,程序只有在經常地寫與讀的過程中才能提高,這就是我在這次設計中的最大收獲。</p><p><b>  致謝</b></p><p>  經過長

65、時間的撰寫,此篇畢業(yè)論文終于完成了。由于時間倉促等原因,這篇文章中還是有很多的不足之處。本文在撰寫過程中參考了大量資料,也得到我的指導教師周靈彬的精心指導。在此我要感謝在這篇論文的撰寫過程當中給過我建議及幫助的老師和同學,特別是我的指導老師周靈彬老師,在她的幫助下,我才得已順利完成此文,在此表示衷心感謝!</p><p><b>  參考文獻:</b></p><p>

66、;  劉國榮 主編, 單片機型計算機技術,北京機械工業(yè)出版社,2000。</p><p>  祁偉 楊亭 編著,單片機51程序設計教程與實驗,北京航海天大學出版社,2006</p><p>  侯玉寶 陳忠平 李成群 編著,基于proteus的51系列單片機設計與仿真,電子工業(yè)出版社。</p><p>  何立民 編著單片機高級教程——應用與設計(第2版),北京航海

溫馨提示

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

評論

0/150

提交評論