基于stc89c52,ds18b2的電子溫度計課設(shè)_第1頁
基于stc89c52,ds18b2的電子溫度計課設(shè)_第2頁
基于stc89c52,ds18b2的電子溫度計課設(shè)_第3頁
基于stc89c52,ds18b2的電子溫度計課設(shè)_第4頁
基于stc89c52,ds18b2的電子溫度計課設(shè)_第5頁
免費預覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡介

1、正文1. 設(shè)計內(nèi)容和要求。隨著社會的進步和工業(yè)技術(shù)的發(fā)展, 人們越來越重視溫度因素,許多產(chǎn)品對 溫度范圍要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時有溫度信息傳遞不及時、精度不夠的缺點,不利于工業(yè)控制者根據(jù)溫度變化及 時做出決定。在這樣的形式下,開發(fā)一種能夠同時測量多點,并且實時性高、精 度高,能夠綜合處理多點溫度信息的測量系統(tǒng)就很有必要。本課題以STC89C52單片機系統(tǒng)為核心,能對多點的溫度進行實時巡檢。 DS18B2C是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網(wǎng)絡,并可使多點溫度測量電路變得簡單、 可靠。本文結(jié)合實際

2、使用經(jīng)驗,介紹了 DS18B2C數(shù)字溫度傳感器在單片機下的硬 件連接及軟件編程,并通過LCD1602顯示當前溫度,實現(xiàn)實時溫度測量。2、系統(tǒng)總體結(jié)構(gòu)系統(tǒng)的系統(tǒng)設(shè)計方框圖如圖1-1所示,它主要由三部分組成:控制部分主 芯片采用單片機STC89C52顯示部分采用LCD1602以動態(tài)掃描方式實現(xiàn)溫度 顯示;溫度采集部分的溫度傳感器采用 DS18B20智能溫度溫度傳感器。DS18B20 進行溫度采集和轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機的 P3.7 口 ,單片機通過P2 口將數(shù)據(jù)掃描到LCD1602顯示屏上。STC89C52DS18B20圖2-13、硬件設(shè)計3.1控制模塊本設(shè)計采用單片機

3、基于數(shù)字溫度傳感器DS18B20的系統(tǒng)。單片機STC89C52具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè) 計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用。 溫度傳感器DS18B20利用單總線的 特點可以方便的實現(xiàn)多點溫度的測量,組建傳感器網(wǎng)絡,且系統(tǒng)的抗干擾性好、 設(shè)計靈活、方便,而且能在惡劣的環(huán)境下進行現(xiàn)場溫度檢測。3.2溫度采集模塊這一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機的接口部分組成。DS18B20智能溫度溫度傳感器進行溫度采集和 轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機的P3.7 口,單片機接受溫度并存儲。DS

4、18B20是美國DALLAS半導體公司最新推出的一種單線智能溫 度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號直接轉(zhuǎn)換為數(shù)字信號,實現(xiàn)了與單片機的直接接口,從而省去了信號調(diào)理和A/D轉(zhuǎn)換等 復雜模/數(shù)轉(zhuǎn)換電路。DS18B20構(gòu)成的溫度采集模塊電路簡單、功能可靠、測量 效率高,很好地彌補了傳統(tǒng)溫度測量方法的不足可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有集成度高、模擬輸 入數(shù)字輸出、抗干擾能力強、體積小、接口方便、傳輸距離遠測溫誤差小等特點。 如圖3-1.7DS18B2O*1I o圖3-13.3溫度顯示模塊本課程設(shè)計的顯示模塊采用LCD16

5、02液晶顯示器顯示溫度數(shù)據(jù),整數(shù)進 行顯示,從P0 口送數(shù),P2 口掃描。顯示當前測量的溫度。3.4電源220V的交流變壓器經(jīng)過變壓器轉(zhuǎn)換成 10V的交流電,經(jīng)過整流電路得到 5V 的直流電,供給電路使用。4軟件設(shè)計按照硬件設(shè)計中的模塊劃分,軟件設(shè)計業(yè)可分為三部分:DS18B20莫塊程序設(shè)計,LCD1602驅(qū)動程序設(shè)計,單片機主程序設(shè)計。其中前兩部分是本例軟件設(shè) 計的關(guān)鍵,而相比較,主程序設(shè)計則比較簡單。下面分別為主程序流程圖, DS18B20 流程圖和LCD1602液晶模塊程序流程圖。如圖4-1.4.1 單片機主程序開始DS18B20初始化圖4-14.2 DS18B20模塊程序設(shè)計While

6、在主程序流程圖中,先初始化液晶模塊,然后延時幾百微秒,進入循環(huán),先初始化DS18B20然后啟動溫度轉(zhuǎn)換,讀取轉(zhuǎn)換后的溫度值,并進行處 理,最終將溫度顯示在LCD屏幕上。DS18B20是 1-wire單線器材,即在一根數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸,這就需要嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。單片機操作單線器材DS18B20的流程圖如圖4-2所示。跳過ROM匹配溫度轉(zhuǎn)換延時,等待溫度轉(zhuǎn)換完成跳過ROM匹配讀暫存器轉(zhuǎn)換為顯示碼圖 4-2首先DS18B20初始化。復位DS18B20然后單片機等待 DS18B20勺應答脈沖,一旦單片機監(jiān)測到應答脈沖,變發(fā)起跳過ROM匹配操作命令。成功執(zhí)行了R

7、OM操作命令后,就可以使用內(nèi)存操作命令,啟動溫度轉(zhuǎn)換,延時一段時間后,等待 溫度轉(zhuǎn)換完成。再發(fā)起跳過ROME配操作命令,然后讀暫存器,將轉(zhuǎn)換結(jié)果讀出, 并轉(zhuǎn)換為顯示碼,送液晶顯示。需要注意的是:復位要求主CPU各數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20 收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU攵 到此信號表示復位成功。4.3 LCD1602驅(qū)動程序設(shè)計用LCD1602液晶顯示模塊顯示字符或字符串之前必須對其進行初始化, LCD1602液晶顯示模塊的初始化程序流程圖如圖 4-3所示。寫指令38H延時5ms顯示模式設(shè)置LCD空閑?Y圖4-3上電復位以后,延時

8、15ms寫3次38H指令,寫指令前不監(jiān)測忙標志位。 當3次寫38H指令完成后,開始進行顯示模式設(shè)置操作,此時必須先監(jiān)測忙標志 位,只有當其為空閑時,才能進行顯示模式設(shè)置。伺候依次為顯示關(guān)閉。顯示清 屏,顯示光標移動設(shè)置和顯示開關(guān)及光標設(shè)置。 同寫顯示模式設(shè)置一樣,每次寫 之前,都必須先檢測忙標志位。5,系統(tǒng)調(diào)試5.1綜述單片機應用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的.許多硬件故障只有通過 軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件故障后才和軟件 一起聯(lián)調(diào)。常見的硬件故障.5.2常見問題邏輯錯誤樣機硬件的邏輯錯誤是由于設(shè)計錯誤和加工過程中的工藝錯誤而造成 的,包括錯線、開路、短路、相

9、位錯誤、時序錯誤等,其中最常見的是短路故障。2元器件錯誤元器件錯誤的原因有器件損壞或性能不符合要求,電解電容、二極管的 極性接反或集成塊裝反等。3可靠性差應用系統(tǒng)可靠性差的原因很多,如金屬化孔、接插件接觸不良、內(nèi)部和 外部的干擾、電壓紋波系數(shù)過大、器件負載過重等均會造成系統(tǒng)的可靠性差。另 外,走線和布置的不合理也會造成系統(tǒng)可靠性差。4電源故障電源故障包括:電壓值不符合設(shè)計要求、電源功率不足、負載能力差、 紋波太重等。5.3 硬件調(diào)試力法(1) 脫機調(diào)試脫機調(diào)試是在加電前,先用萬用表等工具,按圖紙仔細核對樣機線路是 否正確,并對元器件的安裝、型號、規(guī)格等進行仔細檢查,特別注意印制板加工和 焊接時

10、有無走線之間相互短路等。(2) 聯(lián)機調(diào)試聯(lián)機前先切斷電源,把仿真插頭插到樣機的單片機插座上,檢查一下開 發(fā)機與樣機之間的電源、接地是否良好。一切正常后 ,即可打開電源。通電后執(zhí) 行開發(fā)機讀/寫 指令,對用者樣機的存儲器I /O 口進行讀/寫操作,進行邏輯 檢查。若有故障,可用示波器觀察有關(guān)點的波形,尋找和分析故障原因,并進一步 排除故障。在用者系統(tǒng)的樣機(主機部分)調(diào)試好后,便可按入用者系統(tǒng)的其它外圍 部件,如鍵盤、顯示器等,再進一步進行調(diào)試。5.4軟件調(diào)試方法:軟件調(diào)試與所選用的軟件結(jié)構(gòu)有關(guān),如果采用模塊程序設(shè)計技術(shù),則逐 個模塊調(diào)好后再進行系統(tǒng)程序總調(diào)。如果采用實時多任務操作系統(tǒng) ,一般是

11、逐個 任務進行調(diào)試。對于模塊結(jié)構(gòu)程序要一個個子程序分別調(diào)試。調(diào)試時,一定要符合入 口條件和出口條件,調(diào)試可用單步運行和斷點運行方式,通過檢查用者系統(tǒng)的CPU現(xiàn)場情況、RAM的內(nèi)容和I /O 口的狀態(tài),檢測程序執(zhí)行結(jié)果是否符合設(shè)計要 求,有無循環(huán)錯誤、有無機器碼錯誤以及轉(zhuǎn)移地址的錯誤 ,同時,還可以發(fā)現(xiàn)用者 系統(tǒng)中存在的 硬件設(shè)計錯誤和軟件算法錯誤。各程序模塊通過后,則可以把相關(guān)功能塊連在一起進行總調(diào)。這個階段 若有故障,可以考慮各子程序運行時是 否破壞了現(xiàn)場,緩沖單元、工作寄存器是 否發(fā)生沖突,標志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài) 是否正常等等,若用者系統(tǒng)是在開發(fā)機的

12、監(jiān)控程序下運行時,還要考慮用者緩沖 單元是否和監(jiān)控程序的工作單元發(fā)生沖突。單步和斷點調(diào)試后,還應進行連續(xù)調(diào)試,用以確定定時精度、CPU的實時 響應等問題。對于實時多任務操作系統(tǒng)的調(diào)試方法和模塊結(jié)構(gòu)的調(diào)試方法類似 , 只是需逐個任務進行調(diào)試,在調(diào)試某一個任務時,同時也調(diào)試相關(guān)的子程序、中斷 服務程序。逐個任務調(diào)試好后,再使各個任務同時運行。當全部調(diào)試和修改完成后,將用者程序固化到 EPROMS,插入用者樣機后,用 者系統(tǒng)即能獨立工作,至此,單片機應用系統(tǒng)研制完成。6,設(shè)計小結(jié)本設(shè)計使用的溫度控制器結(jié)構(gòu)簡單、測溫準確,具有一定的實際應用價值。該智能溫度控制器只是DS18B20在溫度控制領(lǐng)域的一個簡

13、單實例,還有許多需要 完善的地方,例如可以將測得的溫度通過單片機與通訊模塊相連接, 以手機短消 息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進行監(jiān)控。此外,還能廣泛地應用 于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲等行業(yè)。本溫度控制系統(tǒng)可以應用于多 種場合,像花房的多點溫度、育嬰房的溫度、水溫的檢測與控制。用戶可靈活選 擇本設(shè)計的用途,有很強的實用價值。由衷感謝我們的老師,教予了我諸多傳感器的理論知識。指導了我順利的獨 立地完成了這一次的課程設(shè)計。期間,讓我學到了許多在實踐中需注意的問題。 怎樣思考問題,然后如何去收集整理資料。再次特別感謝莊老師對我們的幫助, 以及平日對我們的諄諄教誨。7:參考文獻及資

14、料1肖洪兵跟我學用單片機M北京:北京航空航天大學出版社,2002.82何立民.單片機高級教程.第1版M北京:北京航空航天大學出版社, 20013趙曉安.MCS-51單片機原理及應用m天津:天津大學出版社,2001.34李廣第.單片機基礎(chǔ).第1版M北京:北京航空航天大學出版社,19995徐惠民、安德寧.單片微型計算機原理接口與應用M第1版.北京: 北京郵電大學出版社,1996 何立民從Cygnal 80C51F看8位單片機發(fā)展之路J單片機與嵌入式 系統(tǒng)應用,2002年,第5期:P587常敏,51單片機應用程序開發(fā)與實踐M電子工業(yè)出版社2009.3四,附錄1)元器件清單序號名稱型號,參數(shù)備注價格數(shù)

15、量1CPUSTC89C52DIP40封裝712管座DIP-400.513晶振12MHz49S型0.514整流橋2W102A圓橋115穩(wěn)壓ICLM7805TO-220116元片電容30pf0.527電解電容1000uf/16V0.518電解電容470uf/16V0.519電解電容10uf/16V0.5110獨石電容0.47uf0.5211自鎖開關(guān)8*8自鎖開關(guān)-6P8mn 8mm1112電阻10K/0.25W金屬膜1/4W0.5113單排排針直針1*402.54mm2414杜邦線53015溫度傳感器DS18B205116LCD顯示屏LCD160220117變壓器溫州升龍變壓12118焊錫絲511

16、9單排座1120短路子跳線帽2.54mm2若干成本總價57元2)原理圖LI1R5TFOTTHP?P&FMFZ.DiABF2.1MF2.2WLWP2.31*LE*FZ.BfAOPi .am蓋如解 FZ.7fA3P3 DARXDEM細Pi .7PS 2/IHTD科幀刑Pi .4P3.-VTOP1.SPi aRdiXTJM.1POWAJMIPD 1/AJD1 PD2JIWD2 KTAiLEPDSWJ&mF0 4W& 環(huán)PO W.W5POWAJMIP1.7P3.7/R&細:21斗 超1日 TiTATBQC52SI Idt- e fi F ? r a L u r e !-LL-tU23)程序清單#in

17、clude#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit DQ=P3A7;/ds18b20 與單片機連接口sbit RS=P3A0;sbit RW=P3A1;sbit EN=P3A2;un sig ned char code str1=temperature: ;un sig ned char code str2=;uchar data disdata5;ui nt tvalue;/溫度值uchar tflag;/溫度正負標志*程序延時 1 毫秒(不夠精確的)void delay1ms(unsigned int ms

18、)/ unsigned int i,j;for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; / 給脈沖信號 dat=1;DQ = 1; / 給脈沖信號 if(DQ) dat|=0x80; delay_18B20(10);return(dat);void ds1820wr(uchar wdata)/* 寫數(shù)據(jù) */ unsigned char i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/* 讀取溫度值并轉(zhuǎn)換 */uchar a,b;ds18

19、20rst();ds1820wr(0xcc);/*跳過讀序列號 */ds1820wr(0x44);/*啟動溫度轉(zhuǎn)換 */ds1820rst();ds1820wr(0xcc);/*跳過讀序列號 */ds1820wr(0xbe);/*讀取溫度 */a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)#include#define uchar unsigned char#define uint unsigned intsbit DQ=P3A7;/ds18b20 與單片機連接口 sbit RS=P3A0

20、;sbit RW=P3A1;sbit EN=P3A2;unsigned char code str1=temperature: ; unsigned char code str2=;uchar data disdata5;uint tvalue;/溫度值uchar tflag;/溫度正負標志lcd1602程序延時 1 毫秒(不夠精確的)void delay1ms(unsigned int 1ms)/ unsigned int i,j;for(i=0;ims;i+) for(j=0;j0;i-) DQ = 0; / 給脈沖信號 dat=1;DQ = 1; / 給脈沖信號 if(DQ) dat|=

21、0x80; delay_18B20(10);return(dat); void ds1820wr(uchar wdata)/* 寫數(shù)據(jù) */ unsigned char i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/* 讀取溫度值并轉(zhuǎn)換 */uchar a,b;ds1820rst();ds1820wr(0xcc);/*跳過讀序列號 */ds1820wr(0x44);/*啟動溫度轉(zhuǎn)換 */ds1820rst();ds1820wr(0xcc);/*跳過讀序列號 */ds

22、1820wr(0xbe);/*讀取溫度 */a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);/ 溫度值擴大 10倍,精確到 1 位小數(shù) return(tvalue);*/ void ds1820disp()/ 溫度值顯示 uchar flagdat;disdata0=tvalue/1000+0x30;/ 百位數(shù) disdata1=tvalue%1000/100+0x30;/ 十位數(shù) disdata2=tvalue%100/10+0x30;/ 個位數(shù) disdata3=tvalue%10+0x30;/ 小數(shù)位if(tflag=0)flagdat=0x20;/ 正溫度不顯示符號elseflagdat=0x2d;/ 負溫度顯示負號 :-if(disdata0=0x30)disdata0=0x20;/ 如果百位為 0 ,不顯示 if(disdata1=0x30)disdat

溫馨提示

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

評論

0/150

提交評論