18b20溫度傳感器課程設計報告_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  一.設計任務</b></p><p><b>  二.方案論證</b></p><p><b>  三.硬件設計</b></p><p>  3.1 DS18B20簡介 AT8

2、9C51型單片機簡介</p><p>  3.2 總電路的設計圖 </p><p><b>  四. 軟件設計 </b></p><p>  3.1 主程序框圖 </p><p>  3.2 初始化子程序DS18B20的主程序</p><p>  3.3 調(diào)試及運行&l

3、t;/p><p>  五. 課程設計總結 </p><p><b>  一、設計任務</b></p><p>  1. 熟悉電子系統(tǒng)開發(fā)的思路和步驟;</p><p>  2. 熟悉Keil C開發(fā)環(huán)境,并對18B20、LED數(shù)碼管、4*4鍵盤等外圍模塊的驅(qū)動進行編寫調(diào)試,學會基本的驅(qū)動開發(fā)思路,并通過調(diào)試學會定位問題的能力

4、;</p><p>  3. 分別使用匯編語言和C語言編寫調(diào)試整個電子系統(tǒng)的控制程序,學會電子系統(tǒng)的軟件開發(fā)思路;</p><p>  4. 通過protel學會如何繪制原理圖及PCB版圖,從而完成整個電子系統(tǒng)的軟硬件開發(fā);</p><p><b>  二、方案論證</b></p><p>  A、分析本次設計任務可知:

5、</p><p>  1.本設計要利用DS18B20測量溫度,需要用89C51單片機控制DS18B20測量溫度,并將DS18B20測得溫度讀取到單片機中來。</p><p>  2. 本設計要用LED顯示溫度,可用五個共陽極LED,采用動態(tài)掃描法顯示讀取到單片機中的溫度。</p><p>  顯示格式舉例如下:(1)溫度為正值————101.1 、99.2 第四

6、個LED總是顯示點號。</p><p> ?。?)溫度為負值———— -23.1 第一個總是顯示一橫,第四個總是顯示點號。</p><p>  B、經(jīng)以上分析可得:</p><p>  可將本設計功能分為兩大模塊:1、DS18B20設置模塊</p><p>  2、測溫電路及其程序</p><p>  3、顯示電

7、路及其程序</p><p>  3. 在硬件電路上還要加上必要的基礎電路:</p><p><b> ?。?)時鐘電路</b></p><p>  本次設計采用時鐘頻率為:12MHZ</p><p>  (2)按鍵測溫電路及其程序</p><p>  按一次按鈕即測一次溫度并將測得的溫度顯示出來)

8、</p><p><b>  C、系統(tǒng)總體方案</b></p><p><b>  系統(tǒng)原理框圖: </b></p><p>  由圖可知該測量系統(tǒng)由DS18B20組成的測量電路和單片機控制電路組成。系統(tǒng)通過DS18B20采集到的數(shù)據(jù),然后通過單片機微控制芯片經(jīng)過數(shù)據(jù)處理,最后通過數(shù)碼管實時顯示所測空氣的溫度。</

9、p><p>  用單個DS18B20采集溫度采集溫度并將其顯示在LED燈上,溫度只需顯示整數(shù),小數(shù)位位不做要求;設置報警上下限,當按下鍵盤上的SETUP鍵時,DS18B20不工作,從鍵盤上輸入溫度的上下限值,前邊的兩個LED顯示器顯示溫度上線,后邊的兩個LED顯示器顯示溫度下限,當采集的溫度越過上限和低于下限時,P0.4口的發(fā)光二極管燈亮,表示報警;溫度上下限的設置要在30S內(nèi)完成,如果沒完成,溫度傳感器自行工作,設

10、置完成后,按下Enter鍵DS18B20開始采集并顯示溫度。</p><p><b>  總體思路</b></p><p>  對于單個DS18B20的溫度采集,首先要對單片機的各個管腳進行定義,對于我們自己做的開發(fā)板,我們已經(jīng)定義P0.6口連接DS18B20進行單個溫度采集,用P0.4口接發(fā)光二極管顯示越限報警,用P0.5口顯示DS18B20復位成功。按原理圖編寫程

11、序,程序的編寫的好壞就關系到此次課程設計的成敗。</p><p><b>  三、硬件設計</b></p><p>  DS18B20簡介 AT89C51型單片機簡介</p><p>  DS18B20 的主要特征: </p><p>  1.全數(shù)字溫度轉換及輸出。 </p><p>  2.先進

12、的單總線數(shù)據(jù)通信。 </p><p>  3.最高 12 位分辨率,精度可達土 0.5 攝氏度。 </p><p>  4.12 位分辨率時的最大工作周期為 750 毫秒。 </p><p>  5.可選擇寄生工作方式。 </p><p>  6.檢測溫度范圍為–55°C ~+125°C ( –67°F ~+25

13、7°F) </p><p>  7.內(nèi)置EEPROM,限溫報警功能。 </p><p>  8.64 位光刻 ROM,內(nèi)置產(chǎn)品序列號,方便多機掛接。 </p><p>  9.多樣封裝形式,適應不同硬件系統(tǒng)。</p><p>  DS18B20 工作原理及應用: </p><p>  DS18B20 的溫度檢

14、測與數(shù)字數(shù)據(jù)輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理。在講解其工作流程之前我們有必要了解 18B20 的內(nèi)部存儲器資源。18B20 共有三種形態(tài)的存儲器資源,它們分別是ROM 只讀存儲器,用于存放 DS18B20ID 編碼,其前8 位是單線系列編碼(DS18B20 的編碼是19H),后面48 位是芯片唯一的序列號,最后8 位是以上 56 的位的CRC 碼(冗余校驗)。數(shù)據(jù)在出產(chǎn)時設置

15、不由用戶更改。DS18B20 共64 位 ROM。RAM 數(shù)據(jù)暫存器,用于內(nèi)部計算和數(shù)據(jù)存取,數(shù)據(jù)在掉電后丟失,DS18B20 共9 個字節(jié) RAM,每個字節(jié)為8 位。第 1、2 個字節(jié)是溫度轉換后的數(shù)據(jù)值信息,第3、4 個字節(jié)是用戶 EEPROM (常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5 個字節(jié)則是用戶第3 個 EEPROM 的鏡像。第6、7、8 個字節(jié)為計數(shù)寄存器,是為了讓用戶得到更高的溫度分辨率而設計的,同

16、樣也是內(nèi)部溫度轉換、計算的暫存單元。第9 個字節(jié)為前8 個字節(jié)的CRC 碼。EEPROM 非易</p><p>  控制器對 18B20 操作流程: </p><p>  1.復位:首先我們必須對DS18B20 芯片進行復位,復位就是由控制器(單片機)給 DS18B20 單總線至少480uS 的低電平信號。當18B20 接到此復位信號后則會在 15~60uS 后回發(fā)一個芯片的存在脈沖。

17、</p><p>  2.存在脈沖:在復位電平結束之后,控制器應該將數(shù)據(jù)單總線拉高,以便于在 15~60uS 后接收存在脈沖,存在脈沖為一個60~240uS 的低電平信號。至此,通信雙方已經(jīng)達成了基本的協(xié)議,接下來將會是控制器與 18B20 間的數(shù)據(jù)通信。如果復位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設計時要注意意外情況的處理。</p><p>  3.控制器發(fā)送 RO

18、M 指令</p><p>  4.控制器發(fā)送存儲器操作指令:在 ROM 指令發(fā)送給 18B20 之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8 位,共 6 條,存儲器操作指令分別是寫 RAM 數(shù)據(jù)、讀RAM 數(shù)據(jù)、將 RAM 數(shù)據(jù)復制到 EEPROM、溫度轉換、將EEPROM 中的報警值復制到RAM、工作方式切換。存儲器操作指令的功能是命令 18B20 作什么樣的工作,是芯片控制的關鍵。 <

19、;/p><p>  5.執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉換指令則控制器(單片機)必須等待 18B20 執(zhí)行其指令,一般轉換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循18B20 的讀寫時序來操作。</p><p>  AT89C51型單片機簡介</p><p>  這次設計的單片機測

20、溫系統(tǒng)我們使用了AT89C51型號的單片機,我們使用該單片機理由有以下幾條:</p><p>  與MCS-51單片機完全兼容:指令兼容,引腳兼容,因此易學;</p><p>  超強抗干擾能力:電源、I/O口、時鐘均有抗干擾措施,是工程應用的首選:</p><p>  ① 高抗靜電(ESD保護);</p><p>  ② 輕松過2KV/4K

21、V快速脈沖干擾(EFT測試);</p><p>  03. 高可靠性,工程應用的首選:</p><p> ?、?寬電壓范圍,不怕電源波動:5V產(chǎn)品3.4V~6V,3V產(chǎn)品1.9V~4V;</p><p>  ② 寬溫度范圍:-40 oC~85 oC;</p><p>  04. 低電磁輻射:</p><p> ?、?可

22、禁止ALE輸出,降低輻射;</p><p> ?、?可選6時鐘/機器周期,降低晶振頻率,降低輻射;</p><p> ?、?單片機時鐘振蕩器增益可設為1/2;</p><p><b>  05. 超低功耗:</b></p><p> ?、?掉電模式典型功耗:≤01Aμ,可由外中斷喚醒;</p><p&

23、gt; ?、?空閑模式典型功耗:2mA;</p><p>  ③ 正常工作典型功耗:4mA~7mA;</p><p>  06. 在系統(tǒng)可編程,無需編程器,無需仿真器,節(jié)約投資;</p><p>  07. 強驅(qū)動能力:無論拉電流還是灌電流,均優(yōu)于MCS-51單片機;</p><p>  08.高速度:0~80MHz,最高達90 MHz。&l

24、t;/p><p>  09.內(nèi)部資源更豐富。與MCS-51單片機相比,增加了:</p><p> ?、?T2定時/計數(shù)器;</p><p> ?、?內(nèi)部數(shù)據(jù)存儲器RAM增加了1~8倍,空間大小隨型號不同而不同;</p><p> ?、?大部分產(chǎn)品自帶E2PROM,空間大小隨型號不同而不同;</p><p>  ④ 部分產(chǎn)品

25、自帶模數(shù)轉換器A/D和PWM;</p><p> ?、?部分產(chǎn)品有P4口,P5口;</p><p> ?、薏糠之a(chǎn)品有雙串口;</p><p>  但是,用這么多特點的同時,我們在設計的時候還是遇到一些比較值得注意的地方:</p><p>  該單片機實用了12M晶振,和我們學的有點不一樣,同時,里面的分頻也不一樣,所以在計算延時等時間問題上多

26、加注意;</p><p>  3.2 總電路的設計圖</p><p>  1.單片機的開發(fā)板原理圖</p><p><b>  四.軟件設計 </b></p><p>  3.1 主程序框圖</p><p>  3.2 各模塊公用子程序:</p><p> 

27、 初始化子程序、讀字節(jié)子程序、寫子程序</p><p><b>  初始化子程序:</b></p><p>  總線復位時序:總線拉低并保持480-960us,然后拉高電平,在480-960us內(nèi)等待18B20響應(拉成低電平,則復位成功)。</p><p>  ;總線復位和等待應答信號</p><p>  RESET:

28、 PUSH B</p><p>  WAIT: CLR DQ</p><p>  MOV B,#250</p><p>  DJNZ B,$ ;保持500us低電平</p><p><b>  SETB DQ</b></p><p><b>  MOV B,#30</b&g

29、t;</p><p>  DJNZ B,$ ;等待60us</p><p>  MOV R3,#200</p><p>  A22:JNB DQ,A11</p><p>  DJNZ R3,A22</p><p><b>  CLR F0</b></p><p><

30、b>  SJMP A23</b></p><p>  A11: SETB F0</p><p>  MOV R3,#100</p><p><b>  DJNZ R3,$</b></p><p>  A23: POP B</p><p><b>  RET</b&

31、gt;</p><p><b>  發(fā)命令(寫數(shù)據(jù)位)</b></p><p>  寫0:置總線低電平并保持15us,然后保持15-25us,等待18B20對電平采樣,最后拉高電平即完成寫0的操作。</p><p>  寫1:置總線低電平并保持15us,然后拉高電平15-25us,等待18B20對電平采樣,完成寫1的操作。</p>

32、<p>  ;讀一位數(shù)據(jù)放入進位位中</p><p>  DQ BIT P0.6</p><p>  READBIT:PUSH B</p><p><b>  SETB DQ</b></p><p>  CLR DQ;低電平至少1US</p><p><b>  NOP<

33、;/b></p><p><b>  NOP </b></p><p>  SETB DQ;高電平至少1us</p><p><b>  MOV B,#30</b></p><p><b>  NOP</b></p><p><b>

34、;  NOP</b></p><p><b>  MOV C,DQ</b></p><p>  DJNZ B,$;延時45us</p><p><b>  POP B</b></p><p><b>  RET</b></p><p><

35、;b>  ;讀一字節(jié)數(shù)據(jù)</b></p><p>  READBYTE:PUSH B</p><p><b>  MOV B,#8</b></p><p>  LOOP: LCALL READBIT</p><p><b>  RRC A</b></p><

36、;p>  DJNZ B,LOOP</p><p><b>  POP B</b></p><p><b>  RET</b></p><p>  讀8字節(jié)數(shù)據(jù),存放于40H開始的單元</p><p>  READ:PUSH B</p><p>  MOV R1,#ST&

37、lt;/p><p><b>  MOV B,#8</b></p><p>  ST: LCALL READBYTE</p><p><b>  MOV @R1,A</b></p><p><b>  INC R1</b></p><p><b>

38、  DJNZ B,ST</b></p><p><b>  POP B</b></p><p><b>  RET</b></p><p>  讀數(shù)據(jù)位時序:置總線低電平并保持至少1us,然后拉高電平至少1us,在15us內(nèi)采樣總線電平或得數(shù)據(jù),延時45us完成讀位數(shù)據(jù)操作。</p><p&

39、gt;<b>  寫一字;</b></p><p>  WETBYTE:PUSH B</p><p><b>  MOV B,#8</b></p><p>  L2: CLR DQ</p><p><b>  MOV R3,#7</b></p><p&

40、gt;  DJNZ R3,$;低電平15us</p><p>  MOV R3,#20</p><p><b>  RRC A</b></p><p><b>  JNC ZERO</b></p><p><b>  SETB DQ</b></p><p&g

41、t;  DJNZ R3,$;置高電平45us等待18B20采集</p><p><b>  SJMP L1</b></p><p>  ZERO:CLR DQ</p><p>  MOV R3,#20</p><p>  DJNZ R3,$;寫0并持續(xù)45us等待18B20采集</p><p> 

42、 L1:SETB DQ</p><p><b>  NOP</b></p><p><b>  DJNZ B,L2</b></p><p><b>  POP B</b></p><p><b>  RET</b></p><p>

43、  18b20的主程序:</p><p>  試驗中,只用到一個18b20,所以此處編寫總線上只有一個18b20的主程序。</p><p>  編寫主程序前首先要內(nèi)存聲明:</p><p>  ;******************************************************************************</p&g

44、t;<p>  TEMPER_L EQU 40H ;用于保存讀出溫度的低8位</p><p>  TEMPER_H EQU 41H ;用于保存讀出溫度的高8位</p><p>  TMROMVH EQU 42H ;報警上限</p><p>  TMROMVL EQU 43H ;報警下限<

45、/p><p>  FLAG1 EQU 38H ;是否檢測到DS18B20標志位</p><p>  TEMPL EQU 30H ;用于保存讀出溫度的低8位</p><p>  TEMPH EQU 31H ;用于保存讀出溫度的高8位</p><p>  TEMPHC EQU 32

46、H ;溫度轉換寄存器低8位</p><p>  TEMPLC EQU 33H ;溫度轉換寄存器高8位</p><p>  BUF2 EQU 35H ;顯示緩沖寄存器個數(shù)位</p><p>  BUF3 EQU 36H ;顯示緩沖寄存器十數(shù)位</p><p>  BUF4

47、 EQU 37H ;顯示緩沖寄存器百數(shù)位</p><p>  T10MS EQU 29H ;</p><p>  TMSETVL EQU 28H ;溫度下限設定值</p><p>  TMSETVH EQU 27H ;溫度上限設定值</p><p>  DISL_VL

48、EQU 26H ;報警下限個位數(shù)存放內(nèi)存位置</p><p>  DISL_VH EQU 25H ;報警下限十位數(shù)存放內(nèi)存位置</p><p>  DISH_VL EQU 24H ;報警上限個位數(shù)存放內(nèi)存位置</p><p>  DISH_VH EQU 23H ;報警上限十位數(shù)存放內(nèi)存位置</p>

49、;<p>  BT_VL EQU 22H ;比較當前顯示數(shù)據(jù)與設定數(shù)據(jù)寄存器</p><p>  ;**********************************************</p><p>  TEMPDIN BIT P0.6;數(shù)據(jù)腳定義</p><p>  ;**********************

50、************************</p><p>  ; BIT FLAG DEFINATION</p><p>  ;**********************************************</p><p>  TEMPCONV EQU 00H ;</p><p>  TIME1SOK

51、 EQU 01H ;</p><p>  TEMPONEOK EQU 02H ;</p><p>  ;**********************************************</p><p>  內(nèi)存聲明完了之后,就是主程序,主程序會一直調(diào)用子程序來顯示溫度,往復循環(huán),從而實現(xiàn)溫度的實時采集,實時的現(xiàn)實在LED顯示器上

52、。</p><p><b>  調(diào)試及運行</b></p><p>  此次單片機試驗用匯編語言做為編程語言,在manley環(huán)境下編譯調(diào)試,而hex程序則使用SLISP_V1709驅(qū)動裝置下進行運行。</p><p>  編譯調(diào)試:在manley環(huán)境下進行匯編語言的編譯,編譯完成后進行調(diào)試。</p><p>  運行:安

53、裝驅(qū)動環(huán)境SLISP_V1709,將開發(fā)板的輸入口與電腦輸出口用下載線連接,運行驅(qū)動環(huán)境,擦除原有的程序,將現(xiàn)在所要運行的程序下載到開發(fā)板,看LED顯示器是否顯示當前溫度,如不顯示,則再次下載并裝入,如顯示則說明下載成功。</p><p>  檢驗:按下鍵盤上的SETUP鍵時,DS18B20不工作,從鍵盤上輸入溫度的上下限數(shù)值,前兩個LED顯示器顯示溫度上限,后兩個LED顯示器顯示溫度下限,當采集的溫度越過上限或

54、低于下限時,P0.4口的發(fā)光二極管燈亮,表示處于報警狀態(tài);溫度上下限的設置要在30S內(nèi)完成,如果沒完成,則溫度傳感器自行工作。設置完成后,按下Enter鍵,DS18B20開始采集并顯示溫度。如完成上述要求,則說明此次實驗成功,如試驗不成功說明需要對程序進行編譯調(diào)試。</p><p>  五. 課程設計總結 </p><p>  這次課程設計中,我們運用到了以前所學的專業(yè)課知識,如:prot

55、el, 單片機理論,匯編語言,模擬和數(shù)字電路知識等.不僅加深了對單片機理論的理解,以及相關軟件的應用,并將理論很好地應用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應用存在著不小的差距,書本上的知識很多都是理想化后的結論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的

56、理論就輕易得到預想中的結果,有時結果甚至很差別很大。通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,在今后的學習工作中會更加的注重實際。最后,在張明海,徐寧老師那里我學得到很多實用的知識,再次我表示感謝!并且對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝!</p><p><b>  主要參考文獻:</b></p><p>  [1]趙娜.趙剛.于珍珠.

57、郭守清 基于51單片機的溫度測量系統(tǒng) [期刊論文] -微計算機信息2007(2)</p><p>  [2]李廣弟. 單片機基礎(第3版). 北京航空航天大學出版社</p><p>  [3] 何立民. MCS-51系列單片機應用系統(tǒng)設計.北京:北京航空航天大學出版社</p><p>  [4]劉鳴等. 溫度傳感器DS18B20 的特性及程序

溫馨提示

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

評論

0/150

提交評論