基于STC89C52,DS18B20電子溫度計課設(shè)_第1頁
基于STC89C52,DS18B20電子溫度計課設(shè)_第2頁
基于STC89C52,DS18B20電子溫度計課設(shè)_第3頁
基于STC89C52,DS18B20電子溫度計課設(shè)_第4頁
基于STC89C52,DS18B20電子溫度計課設(shè)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、合實際使用經(jīng)驗,介紹了DS18B20數(shù)字溫度傳感器在單片機下的硬件連接及軟件編程,并通過LCD1602顯示當(dāng)前溫度,實現(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顯示屏上。LCD顯示單 片 機驅(qū)動控制DS18B20傳感器圖2-13、硬件設(shè)計3.1 控制模塊本設(shè)計采

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

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

5、示,從P0口送數(shù),P2口掃描。顯示當(dāng)前測量的溫度。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單片機主程序開始液晶模塊初始化延時While(1)溫度值處理讀取溫度值Ds18b20溫度轉(zhuǎn)換DS18B20初始化 溫度值顯示圖4-14.2 DS1

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

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

8、 延時5ms寫指令38H延時5ms寫指令38HLCD1206延時15ms 寫指令38H N Y顯示模式設(shè)置LCD空閑? N N LCD空閑?顯示關(guān)閉 YLCD空閑?顯示清屏 N Y N 顯示開關(guān)及光標(biāo)位置 LCD空閑?顯示光標(biāo)移動設(shè)置 Y N YLCD空閑? N Y結(jié)束圖4-3上電復(fù)位以后,延時15ms,寫3次38H指令,寫指令前不監(jiān)測忙標(biāo)志位。當(dāng)3次寫38H指令完成后,開始進行顯示模式設(shè)置操作,此時必須先監(jiān)測忙標(biāo)志位,只有當(dāng)其為空閑時,才能進行顯示模式設(shè)置。伺候依次為顯示關(guān)閉。顯示清屏,顯示光標(biāo)移動設(shè)置和顯示開關(guān)及光標(biāo)設(shè)置。同寫顯示模式設(shè)置一樣,每次寫之前,都必須先檢測忙標(biāo)志位。5,系統(tǒng)調(diào)試

9、5.1綜述單片機應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的許多硬件故障只有通過軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件故障后才和軟件一起聯(lián)調(diào)。常見的硬件故障.5.2常見問題邏輯錯誤 樣機硬件的邏輯錯誤是由于設(shè)計錯誤和加工過程中的工藝錯誤而造成的,包括錯線、開路、短路、相位錯誤、時序錯誤等,其中最常見的是短路故障。2元器件錯誤 元器件錯誤的原因有器件損壞或性能不符合要求,電解電容、二極管的極性接反或集成塊裝反等。3可靠性差 應(yīng)用系統(tǒng)可靠性差的原因很多,如金屬化孔、接插件接觸不良、內(nèi)部和外部的干擾、電壓紋波系數(shù)過大、器件負(fù)載過重等均會造成系統(tǒng)的可靠性差。另外,走線和布置的不合理也會造成

10、系統(tǒng)可靠性差。4電源故障 電源故障包括:電壓值不符合設(shè)計要求、電源功率不足、負(fù)載能力差、紋波太重等。5.3硬件調(diào)試力法(1)脫機調(diào)試 脫機調(diào)試是在加電前,先用萬用表等工具,按圖紙仔細(xì)核對樣機線路是否正確,并對元器件的安裝、型號、規(guī)格等進行仔細(xì)檢查,特別注意印制板加工和焊接時有無走線之間相互短路等。(2)聯(lián)機調(diào)試 聯(lián)機前先切斷電源,把仿真插頭插到樣機的單片機插座上,檢查一下開發(fā)機與樣機之間的電源、接地是否良好。一切正常后,即可打開電源。通電后執(zhí)行開發(fā)機讀寫 指令,對用者樣機的存儲器IO口進行讀寫操作,進行邏輯檢查。若有故障,可用示波器觀察有關(guān)點的波形,尋找和分析故障原因,并進一步排除故障。 在用

11、者系統(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)。如果采用實時多任務(wù)操作系統(tǒng),一般是逐個任務(wù)進行調(diào)試。 對于模塊結(jié)構(gòu)程序要一個個子程序分別調(diào)試。調(diào)試時,一定要符合入口條件和出口條件,調(diào)試可用單步運行和斷點運行方式,通過檢查用者系統(tǒng)的CPU現(xiàn)場情況、 RAM的內(nèi)容和IO口的狀態(tài),檢測程序執(zhí)行結(jié)果是否符合設(shè)計要求,有無循環(huán)錯誤、有無機器碼錯誤以及轉(zhuǎn)移地址的錯誤,同時,還可以發(fā)現(xiàn)用者系統(tǒng)中存在的 硬件設(shè)計錯誤和軟件算法錯誤。 各程序模

12、塊通過后,則可以把相關(guān)功能塊連在一起進行總調(diào)。這個階段若有故障,可以考慮各子程序運行時是 否破壞了現(xiàn)場,緩沖單元、工作寄存器是否發(fā)生沖突,標(biāo)志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài)是否正常等等,若用者系統(tǒng)是在開發(fā)機的 監(jiān)控程序下運行時,還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。 單步和斷點調(diào)試后,還應(yīng)進行連續(xù)調(diào)試,用以確定定時精度、CPU的實時響應(yīng)等問題。對于實時多任務(wù)操作系統(tǒng)的調(diào)試方法和模塊結(jié)構(gòu)的調(diào)試方法類似,只是需逐個任務(wù)進行調(diào)試,在調(diào)試某一個任務(wù)時,同時也調(diào)試相關(guān)的子程序、中斷服務(wù)程序。逐個任務(wù)調(diào)試好后,再使各個任務(wù)同時運行。當(dāng)全部調(diào)試和修改完成后,將用者程

13、序固化到EPROM中,插入用者樣機后,用者系統(tǒng)即能獨立工作,至此,單片機應(yīng)用系統(tǒng)研制完成。6,設(shè)計小結(jié)本設(shè)計使用的溫度控制器結(jié)構(gòu)簡單、測溫準(zhǔn)確,具有一定的實際應(yīng)用價值。該智能溫度控制器只是DS18B20在溫度控制領(lǐng)域的一個簡單實例,還有許多需要完善的地方,例如可以將測得的溫度通過單片機與通訊模塊相連接,以手機短消息的方式發(fā)送給用戶,使用戶能夠隨時對溫度進行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域,如建筑,倉儲等行業(yè)。本溫度控制系統(tǒng)可以應(yīng)用于多種場合,像花房的多點溫度、育嬰房的溫度、水溫的檢測與控制。用戶可靈活選擇本設(shè)計的用途,有很強的實用價值。由衷感謝我們的老師,教予了我諸多傳感器的理

14、論知識。指導(dǎo)了我順利的獨立地完成了這一次的課程設(shè)計。期間,讓我學(xué)到了許多在實踐中需注意的問題。怎樣思考問題,然后如何去收集整理資料。再次特別感謝莊老師對我們的幫助,以及平日對我們的諄諄教誨。7:參考文獻及資料1肖洪兵. 跟我學(xué)用單片機M北京:北京航空航天大學(xué)出版社,2002.82 何立民. 單片機高級教程 第1版M北京:北京航空航天大學(xué)出版社,2001 3趙曉安. MCS-51單片機原理及應(yīng)用m 天津:天津大學(xué)出版社,2001.3 4李廣第 單片機基礎(chǔ) 第1版M北京:北京航空航天大學(xué)出版社,1999 5徐惠民、安德寧 單片微型計算機原理接口與應(yīng)用M 第1版 北京:北京郵電大學(xué)出版社,1996

15、6何立民從Cygnal 80C51F看8位單片機發(fā)展之路J 單片機與嵌入式系統(tǒng)應(yīng)用,2002年,第5期:P58 7常敏 ,51單片機應(yīng)用程序開發(fā)與實踐M 電子工業(yè)出版社 2009.3四,附錄1) 元器件清單序號名稱型號,參數(shù)備注價格數(shù)量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)-

16、6P8mm8mm1112電阻10K/0.25W金屬膜1/4W0.5113單排排針直針1*402.54mm2414杜邦線53015溫度傳感器DS18B205116LCD顯示屏LCD160220117變壓器溫州升龍變壓12118焊錫絲5119單排座1120短路子跳線帽2.54mm2若干成本總價57元2) 原理圖3) 程序清單#include#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20與單片機連接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char co

17、de str1=temperature: ;unsigned char code str2= ; uchar data disdata5;uint tvalue;/溫度值uchar tflag;/溫度正負(fù)標(biāo)志/*lcd1602程序*/ void delay1ms(unsigned int ms)/延時1毫秒(不夠精確的) 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

18、 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);/*跳過讀序列號*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd(

19、); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) #include#define uchar unsigned char#define uint unsigned intsbit DQ=P37;/ds18b20與單片機連接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char code str1=temperature: ;unsigned char code str2= ; uchar data disdata5;uint tvalue;/溫度值uchar

20、 tflag;/溫度正負(fù)標(biāo)志/*lcd1602程序*/ void delay1ms(unsigned int 1ms)/延時1毫秒(不夠精確的) 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&0x0

21、1; delay_18B20(10); DQ = 1; wdata=1; read_temp()/*讀取溫度值并轉(zhuǎn)換*/ uchar a,b; ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ ds1820wr(0x44);/*啟動溫度轉(zhuǎn)換*/ ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ ds1820wr(0xbe);/*讀取溫度*/ a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tval

22、ue=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;/正溫度不顯示符號 else flagdat=0x2d;/負(fù)溫度顯示負(fù)號:- if(disdata0=0x30) disdata0=0x20;/如果百位為0

溫馨提示

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

最新文檔

評論

0/150

提交評論