基于單片機的數(shù)字溫度計的設計論文_第1頁
基于單片機的數(shù)字溫度計的設計論文_第2頁
基于單片機的數(shù)字溫度計的設計論文_第3頁
基于單片機的數(shù)字溫度計的設計論文_第4頁
基于單片機的數(shù)字溫度計的設計論文_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . . . 基于單片機的數(shù)字溫度計設計引言隨著現(xiàn)代信息技術的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn)能夠獨立工作的溫度檢測和顯示系統(tǒng)應用于諸多領域。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準確度低,檢測系統(tǒng)也有一定的誤差。與傳統(tǒng)的溫度計相比,這里設計的數(shù)字溫度計具有讀數(shù)方便,測溫圍廣,測溫精確,數(shù)字顯示,適用圍寬等特點。選用AT89C51型單片機作為主控制器件,DSl8B20作為測溫傳感器通過4位共陽極LED數(shù)碼管串口傳送數(shù)據(jù),實現(xiàn)溫度顯示。通過DSl8B20直接讀取被測溫度值,進行數(shù)據(jù)轉換,該器件的物理化學性能穩(wěn)定,線性度較好,在0

2、100最大線性偏差小于0.1。該器件可直接向單片機傳輸數(shù)字信號,便于單片機處理與控制。另外,該溫度計還能直接采用測溫器件測量溫度,從而簡化數(shù)據(jù)傳輸與處理過程。2 系統(tǒng)硬件設計方案根據(jù)系統(tǒng)功能要求,構造圖1所示的系統(tǒng)原理結構框圖。圖1 系統(tǒng)原理結構框圖2.1 單片機的選擇AT89C51作為溫度測試系統(tǒng)設計的核心器件。該器件是INTEL公司生產的MCS一5l系列單片機中的基礎產品,采用了可靠的CMOS工藝制造技術,具有高性能的8位單片機,屬于標準的MCS51的CMOS產品。不僅結合了HMOS的高速和高密度技術與CHMOS的低功耗特征,而且繼承和擴展了MCS48單片機的體系結構和指令系統(tǒng)。單片機小系

3、統(tǒng)的電路圖如圖2所示。圖2 單片機小系統(tǒng)電路AT89C51單片機的主要特性:(1)與MCS-51 兼容,4K字節(jié)可編程閃爍存儲器;(2)靈活的在線系統(tǒng)編程,掉電標識和快速編程特性;(3)壽命為1000次寫/擦周期,數(shù)據(jù)保留時間可10年以上;(4)全靜態(tài)工作模式:0Hz-33Hz;(5)三級程序存儲器鎖定;(6)128*8位部RAM,32可編程I/O線;(7)兩個16位定時器/計數(shù)器,6個中斷源;(8)全雙工串行UART通道,低功耗的閑置和掉電模式;(9)看門狗(WDT)與雙數(shù)據(jù)指針;(9)片振蕩器和時鐘電路;2.2 溫度傳感器介紹DS18B20可以程序設定912位的分辨率,精度為±0

4、.5°C。可選更小的封裝方式,更寬的電壓適用圍。分辨率設定,與用戶設定的報警溫度存儲在EPROM中,掉電后依然保存。溫度傳感器DS18B20引腳如圖3所示。8引腳封裝 TO92封裝圖3 溫度傳感器引腳功能說明: NC :空引腳,懸空不使用; VDD :可選電源腳,電源電壓圍35.5V。當工作于寄生電源時,此引腳必須接地。 DQ :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。 GND :為電源地DS18B20部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序

5、列碼。64位光刻ROM的排列是:開始8位(28H)是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不一樣,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。 DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/LSB形式表達,其中S為符號位。 這是12位轉化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘

6、于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 DS18B20溫度傳感器的部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結構寄存器。 暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結構寄存器的易

7、失性拷貝,這三個字節(jié)的容在每一次上電復位時被刷新。第六、七、八個字節(jié)用于部計算。第九個字節(jié)是冗余檢驗字節(jié)。 該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如表1所示:(DS18B20出廠時被設置為12位) 表1 DS18B20溫度轉換時間表R1R0分辨率/位溫度最大轉向時間00993.750110187.510113751112750根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉換必須經過三個步驟:每一

8、次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復位成功。2.3 溫度傳感器與單片機的連接溫度傳感器的單總線(1-Wire)與單片機的P20連接,P20是單片機的高位地址線A8。P2端口是一個帶部上拉電阻的8位雙向IO,其輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對該端口寫“1”,可通過部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因為部存

9、在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時。如執(zhí)行MOVX DPTR指令,則表示P2端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行MOVX RI指令,P2端口容即為特殊功能寄存器(SFR)區(qū)中R2寄存器容,整個訪問期間不改變。在Flash編程和程序校驗時,P2端口也接收高位地址和其他控制信號。圖4為DSl8820部結構。圖5為DSl8820與單片機的接口電路。圖4 DS18B20部結構圖 圖5 DS18B20和單片機的接口連接2.4 復位信號與外部復位電路單片機的P1.6端口是MAX813看門狗電路中喂狗信號的輸入

10、端,即單片機每執(zhí)行一次程序就設置一次喂狗信號,清零看門狗器件。若程序出現(xiàn)異常,單片機引腳RST將出現(xiàn)兩個機器周期以上的高電平,使其復位。該復位信號高電平有效,其有效時間應持續(xù)24個振蕩脈沖周期即兩個機器周期以上。若使用頻率為12 MHz的晶體振蕩器,則復位信號持續(xù)時間應超過2s才完成復位操作。2.5 單片機與報警電路系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成,并與單片機的P1.2端口連接。P1端口的作用和接法與P2端口一樣,不同的是在Flash編程和程序校驗期間,P1接收低8位地址數(shù)據(jù)。2.6 電源電路由于該系統(tǒng)需要穩(wěn)定的5 V電源,因此設計時必須采用能滿足電壓、電流和穩(wěn)定性要求的電源。該電

11、源采用三端集成穩(wěn)壓器LM7805。它僅有輸入端、輸出端與公共端3個引腳,其部設有過流保護、過熱保護與調整管安全保護電路由于所需外接元件少,使用方便、可靠,因此可作為穩(wěn)壓電源。圖6為電源電路連接圖。圖6 電源電路連接圖2.7 顯示電路采用技術成熟的74HCl64實現(xiàn)串并轉換。LED顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)顯示,系統(tǒng)通過單片機的串行口來實現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時,數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號有效時,相隔一個機器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時允

12、許從TXD端輸出移位脈沖。圖7為顯示電路的連接圖。圖7 顯示電路的連接圖2.8 看門狗電路系統(tǒng)中把P1.6作為看門狗的“喂狗”信號;將MAX813的RESET與單片機的復位信號RST連接。由于單片機每執(zhí)行一次程序,就會給看門狗器件一個復位信號,這樣也可以用手工方式實現(xiàn)復位。當按鍵按下時,SWSPST就會在MAX813引腳產生一個超過200 ms的低電平,其實看門狗器件在1.6 s時間沒有復位,使7引腳輸出一個復位信號的作用是一樣的,其連接圖如圖8所示。圖8 看門狗器件的MAX813的連接圖3 軟件設計DSl8820的主要數(shù)據(jù)元件有:64位激光Lasered ROM,溫度靈敏元件和非易失性溫度告

13、警觸發(fā)器TH和TL。DSBl820可以從單總線獲取電源,當信號線為高電平時,將能量貯存在部電容器中;當單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電源為止。此外,還可外接5 V電源,給DSl8820供電。DSl8820的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。圖9為讀取數(shù)據(jù)流程圖。開始DS18B20的初始化啟動溫度轉換讀取溫度寄存器跳過讀序列號的操作跳過讀序列號的操作DS18B20的初始化RETLOW-低八位 HIGH-高八位圖9 讀取數(shù)據(jù)的流程圖讀出溫度數(shù)據(jù)后,LOW的低四位為溫度的小數(shù)部分,可以精確到0.0625,LOW的高四位和HIGH的低四

14、位為溫度的整數(shù)部分,HIGH的高四位全部為1表示負數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進行四舍五入處理:大于0.5的話,向個位進1;小于0.5的時候,舍去不要。當數(shù)據(jù)是個負數(shù)的時候,顯示之前要進行數(shù)據(jù)轉換,將其整數(shù)部分取反加一。還因為DS18B20最低溫度只能為-55,所以可以將整數(shù)部分的最高位換成一個“-”,表示為負數(shù)。圖10為溫度數(shù)據(jù)處理程序的流程圖。開始提取整數(shù)部分存入HT提取小數(shù)部分存入LTLT右移三位,將精度降低到0.5攝氏度HT+將小數(shù)部分整數(shù)化提取符號部分存入signLT是否大于5Sign=?0XF0RET負數(shù)表示flag

15、=1 HT=HT+1YNNY圖10 溫度數(shù)據(jù)處理流程圖4 數(shù)據(jù)測試將溫度傳感器與冰水混合物接觸,經過充分攪拌達到熱平衡后調節(jié)系統(tǒng),使顯示讀數(shù)為0.00(標定0);利用氣壓計讀出當時當?shù)氐拇髿鈮簭?,并根?jù)大氣壓強和當?shù)刂亓铀俣扔嬎愠霎敃r的實際壓強;根據(jù)沸點與壓強的關系查出沸點溫度。把溫度傳感器放入沸水中,待顯示讀數(shù)穩(wěn)定后重新調節(jié),使顯示器顯示讀數(shù)等于當?shù)禺敃r沸點溫度后工作結束。該溫度計的量程為-50150,讀數(shù)精度為0.1,實際使用一般在0100。采用050和50100的精密水銀溫度計作檢驗標準,對設計的溫度計進行測試,其結果表明能達到該精度要求。5 總結與體會作為一名電子信息工程的大四學生,

16、我覺得做單片機課程設計是很有意義的,而且也是必要的。在做這次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的實際資料是十分必要的,也是必不可少的。其次,在這次課程設計中,我們運用了以前學過的專業(yè)課知識,如:proteus仿真、匯編語言、模擬和數(shù)字電路知識等。雖然過去我從未獨立應用過他們,但在學習的過程中帶著問題去學我發(fā)現(xiàn)效率很高,這是我做這次課程設計的又一收獲。最后,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的部結構有一個系統(tǒng)的了解,知道該單片機有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設計程序時,不能妄想一次將整個

17、程序設計好,反復修改、不斷改進是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,這樣為資料的保留和交流提供了方便;在設計中遇到的問題要記錄,以免下次遇到同樣的問題。在這次的課程設計中,我真正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單片機更是如此,程序只有在經常寫與讀的過程中才能提高,這就是這次課程設計的最大收獲。附錄1 仿真圖附錄2 程序源代碼DATA_BUSBITP3.3FLAGBIT00H;標志位TEMP_LEQU 30H;溫度值低字節(jié)TEMP_HEQU31H;溫度值高字節(jié)TEMP_DPEQU32H;溫度小數(shù)TEMP_INTEQU33H;溫度值整數(shù)TEM

18、P_BAIEQU34H;溫度百位數(shù)TEMP_SHIEQU35H;溫度十位數(shù)TEMP_GEEQU36H;溫度個位數(shù)DIS_BAIEQU37H;顯示百位數(shù)DIS_SHIEQU38H;顯示十位數(shù)DIS_GEEQU39H;顯示個位數(shù)DIS_DPEQU3AH;顯示小數(shù)位DIS_ADDEQU3BH;顯示地址ORG 0000H AJMPSTARTORG 0050H;初始化START:MOVSP,#40HMAIN:LCALLREAD_TEMP;調讀溫度程序LCALLPROCESS;調數(shù)據(jù)處理程序AJMPMAIN;讀溫度程序READ_TEMP: LCALLRESET_PULSE ;調用復位脈沖程序MOV A,#

19、0CCH;跳過ROM命令LCALL WRITEMOVA,#44H;讀溫度LCALL WRITELCALLDISPLAY;顯示溫度LCALLRESET_PULSE;調用復位脈沖程序MOVA,#0CCH;跳過ROM命令LCALLWRITEMOVA,#0BEH;讀緩存命令LCALL WRITELCALLREADRET;復位脈沖程序RESET_PULSE:RESET:SETBDATA_BUSNOPNOPCLRDATA_BUSMOVR7,#255DJNZR7,$SETB DATA_BUSMOVR7,#30DJNZR7,$JNB DATA_BUS,SETB_FLAGCLRFLAGAJMPNEXTSETB_

20、FLAG:SETB FLAGNEXT:MOV R7,#120DJNZR7,$SETB DATA_BUSJNBFLAG,RESET RET;寫命令WRITE:SETBDATA_BUSMOVR6,#8CLRCWRITING:CLRDATA_BUSMOVR7,#5DJNZR7,$RRCAMOVDATA_BUS, CMOVR7,#30HDJNZR7,$SETBDATA_BUSNOPDJNZR6,WRITINGRET;循環(huán)顯示段位DISPLAY:MOV R4,#200DIS_LOOP:MOVA,DIS_DPMOVP2,#0FFHMOVP0,A CLRP2.7LCALLDELAY2MSMOVA,DIS_G

21、EMOVP2,#0FFHMOVP0,ASETBP0.7 CLRP2.6LCALLDELAY2MSMOVA,DIS_SHIMOVP2,#0FFHMOVP0,ACLRP2.5 LCALLDELAY2MSMOVA,DIS_BAIMOVP2,#0FFHMOVP0,AMOVA,TEMP_BAICJNEA,#0,SKIPAJMPNEXTTSKIP:CLRP2.4LCALLDELAY2MSNEXTT:NOPDJNZR4,DIS_LOOPRET;讀命令READ:SETBDATA_BUSMOVR0,#TEMP_LMOV R6,#8MOVR5,#2CLRCREADING:CLRDATA_BUSNOPNOPSETBDATA_BUSNOPNOPNOPNOPMOVC,DATA_BUSRRCAMOVR7,#30HDJNZR7,$SETBDATA_BUSDJNZR6,READINGMOVR0,AINC R0MOVR6,#8SE

溫馨提示

  • 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

提交評論