畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)1_第1頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)1_第2頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)1_第3頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)1_第4頁
畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)1_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、選題: 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)topic: cipher power switch姓 名:學(xué) 號:專 業(yè):指導(dǎo)教師:完成時間:聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文)是本人在指導(dǎo)教師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。其中除加以標(biāo)注和致謝的地方,以及法律規(guī)定允許的之外,不包含其他人已經(jīng)發(fā)表或撰寫完成并以某種方式公開過的研究成果,也不包含為獲得其他教育機(jī)構(gòu)的學(xué)位或證書而作的材料。其他同志對本研究所做的任何貢獻(xiàn)均已在文中作了明確的說明并表示謝意。本畢業(yè)設(shè)計(jì)(論文)成果是本人在江西師范大學(xué)讀書期間在指導(dǎo)教師指導(dǎo)下取得的,成果歸江西師范大學(xué)所有。特此聲明。聲明人(畢業(yè)設(shè)計(jì)(論文)作者)學(xué)號:聲

2、明人(畢業(yè)設(shè)計(jì)(論文)作者)簽名:簽名日期:年月日摘要本文提出了基于mcs-51系列單片機(jī)的數(shù)字溫度計(jì)的制作電路和編程思想。該數(shù)字溫度計(jì)以宏晶公司的stc89c52 單片機(jī)為主控,配以達(dá)拉斯公司的ds18b20數(shù)字溫度傳感器,采用1602雙行英文字符液晶作顯示。實(shí)現(xiàn)了對溫度的測量,顯示,和報警等功能。關(guān)鍵詞: stc89c52單片機(jī);數(shù)字傳感器ds18b20;顯示器lcd;abstractin this paper, based on mcs-51 series microcontroller digital thermometer circ-uit and the production of

3、 programming ideas. the digital thermometer to macros cry-stal company stc89c52 mcu master, together with the dallas companys ds18b20 digital temperature sensor, using 1602 pairs of lines for the english character lcd display. realize the temperature measurement, display, and alarm functions.key wor

4、ds:singlechip stc89c52, ds18d20,lcd panel目 錄摘要iabstractii1 緒論21.1 選題的背景21.2 數(shù)字溫度計(jì)簡介21.2.1 數(shù)字溫度計(jì)的特征21.2.2 設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)32 數(shù)字溫度計(jì)的方案設(shè)計(jì)42.1 設(shè)計(jì)方案論證與比較42.1.1 顯示電路方案42.1.2 測溫電路方案42.2 系統(tǒng)總體方案43 數(shù)字溫度計(jì)的硬件電路設(shè)計(jì)53.1 控制電路53.1.1 mcu簡介53.2.2 最小系統(tǒng)模塊63.3 溫度傳感器設(shè)計(jì)73.3.1 ds18b20簡介73.3.2 溫度傳感器與單片機(jī)的連接93.3.3 復(fù)位信號及外部復(fù)位電路103.4 單片機(jī)與

5、報警電路103.5 顯示電路104 軟件設(shè)計(jì)124.1 ds18b20的讀操作124.2 ds18b20的溫度數(shù)據(jù)處理134.3 1602顯示部分145 數(shù)據(jù)測試16參考文獻(xiàn)18附錄1 程序源代碼191 緒論1.1 選題的背景隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn)能夠獨(dú)立工作的溫度檢測和顯示系統(tǒng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準(zhǔn)確度低,檢測系統(tǒng)也有一定的誤差。與傳統(tǒng)的溫度計(jì)相比,這里設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。選用stc89c52單片機(jī)作為主控

6、制器件,dsl8b20作為測溫傳感器通過lcd1602并行傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。通過dsl8b20直接讀取被測溫度值,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,該器件的物理化學(xué)性能穩(wěn)定,線性度較好,在-55125最大線性偏差小于0.1。該器件可直接向單片機(jī)傳輸數(shù)字信號,便于單片機(jī)處理及控制。另外,該溫度計(jì)還能直接采用測溫器件測量溫度,從而簡化數(shù)據(jù)傳輸與處理過程。1.2 數(shù)字溫度計(jì)簡介1.2.1 數(shù)字溫度計(jì)的特征溫度是我們?nèi)粘Ia(chǎn)和生活中實(shí)時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統(tǒng)的指針式的溫度計(jì)雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計(jì)的出現(xiàn)可以讓人們直觀的了解自

7、己想知道的溫度到底是多少度。數(shù)字溫度計(jì)采用進(jìn)口芯片組裝精度高、高穩(wěn)定性,誤差0.5%, 內(nèi)電源、微功耗、不銹鋼外殼,防護(hù)堅(jiān)固,美觀精致。數(shù)字溫度計(jì)采用進(jìn)口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內(nèi)置高能量電池連續(xù)工作5年無需敷設(shè)供電電纜,是一種精度高、穩(wěn)定性好、適用性極強(qiáng)的新型現(xiàn)場溫度顯示儀。是傳統(tǒng)現(xiàn)場指針雙金屬溫度計(jì)的理想替代產(chǎn)品,廣泛應(yīng)用于各類工礦企業(yè),大專院校,科研院所。數(shù)字溫度計(jì)采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導(dǎo)體,熱敏電阻等),將溫度的變化轉(zhuǎn)換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關(guān)系,如線性關(guān)系,一定的曲線關(guān)系等,這個電

8、信號可以使用模數(shù)轉(zhuǎn)換的電路即ad轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,數(shù)字信號再送給處理單元,如單片機(jī)或者pc機(jī)等,處理單元經(jīng)過內(nèi)部的軟件計(jì)算將這個數(shù)字信號和溫度聯(lián)系起來,成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如led,lcd或者電腦屏幕等顯示出來給人觀察。這樣就完成了數(shù)字溫度計(jì)的基本測溫功能。數(shù)字溫度計(jì)根據(jù)使用的傳感器的不同,ad轉(zhuǎn)換電路,及處理單元的不同,它的精度,穩(wěn)定性,測溫范圍等都有區(qū)別,這就要根據(jù)實(shí)際情況選擇符合規(guī)格的數(shù)字溫度計(jì)。1.2.2 設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)1) 測溫基本范圍-55125。2) 測溫精度誤差小于或等于0.5。3) 超溫報警。4) lcd屏幕顯示實(shí)時

9、溫度。2 數(shù)字溫度計(jì)的方案設(shè)計(jì)2.1 設(shè)計(jì)方案論證與比較2.1.1 顯示電路方案方案一:采用數(shù)碼管動態(tài)顯示使用七段led數(shù)碼管,采用動態(tài)顯示的方法來顯示各項(xiàng)指標(biāo),此方法雖然價格成本低,但是顯示單一,且功耗較大。方案二:采用lcd液晶顯示采用1602 lcd液晶顯示,此方案顯示內(nèi)容相對豐富,且價格不高。綜合上述原因,采用方案二,使用lcd液晶作顯示電路。2.1.2 測溫電路方案方案一:采用模擬溫度傳感器測溫由于本設(shè)計(jì)是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行a/d轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,

10、這種設(shè)計(jì)需要用到a/d轉(zhuǎn)換電路,感溫電路比較麻煩。方案二:采用數(shù)字溫度傳感器進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器ds18b20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。綜合考慮,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計(jì)也比較簡單,故采用了方案二。2.2 系統(tǒng)總體方案根據(jù)上述方案比較,結(jié)合題目要可以將系統(tǒng)分為主控模塊,顯示模塊,溫度采集模塊和報警模塊,其框圖如下:驅(qū)動顯示報警電路看門狗 mcu ds18b20溫度數(shù)據(jù)采集圖2-1 系統(tǒng)總體設(shè)計(jì)框圖3 數(shù)字溫度計(jì)的硬件電路設(shè)計(jì)3.1 控

11、制電路3.1.1 mcu簡介cpu是整個控制部分的核心。在考慮經(jīng)濟(jì)性和滿足需求的前提下,本系統(tǒng)選用宏晶公司生產(chǎn)的8位stc89c52單片機(jī)作為整個系統(tǒng)的控制中心。stc89c52是宏晶公司生產(chǎn)的低功耗,高性能cmos8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的flash只讀程序存儲器,器件采用宏晶公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳,它集flash存儲器既可在線編輯(isp)也可用傳統(tǒng)方法進(jìn)行編輯及通用8位微處理器于單片芯片中,功能強(qiáng)大stc89c52單片機(jī)可為您提供許多高性價比的應(yīng)用場合。器管腳圖如圖3-2:圖3-1 stc89c52管腳圖在本系統(tǒng)中,stc

12、89c52單片機(jī)內(nèi)部的功能單元已經(jīng)能夠滿足系統(tǒng)設(shè)計(jì)需要,不需要系統(tǒng)擴(kuò)展。stc89c52具有以下的特點(diǎn): 8031 cpu與mcs-51 兼容 壽命:1000寫/擦循環(huán) 4k字節(jié)可編程flash存儲器 全靜態(tài)工作:0-24mhz 三級程序存儲器保密鎖定 128*8位內(nèi)部ram 32條可編程i/o線 兩個16位定時器/計(jì)數(shù)器 6個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘除此之外,stc89c52rc單片機(jī)還具有看門狗內(nèi)部外設(shè)。在工業(yè)控制/汽車電子/航空航天等需要高可靠性的系統(tǒng)中,為了防止“系統(tǒng)在異常情況下,受到干擾,mcu/cpu程序跑飛,導(dǎo)致系統(tǒng)長時間異常工作” ,通常

13、是引進(jìn)看門狗,如果mcu/cpu 不在規(guī)定的時間內(nèi)按要求訪問看門狗,就認(rèn)為mcu/cpu處于異常狀態(tài),看門狗就會強(qiáng)迫mcu/cpu復(fù)位,使系統(tǒng)重新從頭開始按規(guī)律執(zhí)行用戶程序。系統(tǒng)中單片機(jī)stc89c52rc中自帶看門狗電路。其寄存器設(shè)置相關(guān)信息如下:表3-1 stc89c52看門狗寄存器stc89c52單片機(jī)看門狗復(fù)位時間是可以自行選擇和設(shè)置的,其設(shè)置方法是:表3-2 看門狗定時器預(yù)分頻值3.2.2 最小系統(tǒng)模塊本次設(shè)計(jì)中,選用宏晶公司的51系列單片機(jī)stc89c52芯片作為電子密碼電源開關(guān)的數(shù)據(jù)處理及操作控制芯片。只有單片機(jī)芯片無法完成數(shù)據(jù)處理及控制功能,必須有附加的電路,使單片機(jī)芯片組成一

14、個可運(yùn)行的系統(tǒng)才能實(shí)現(xiàn)其功能。本次設(shè)計(jì)中,由stc89c52芯片連同附加電路構(gòu)成的單片機(jī)最小系統(tǒng)作為數(shù)據(jù)處理及控制模塊,其中,使用p0口作為1602液晶的數(shù)據(jù)傳輸口,p2口作1602的命令數(shù)據(jù)控制、時鐘、讀寫控制、和使能控制接口,p3口作按鍵掃描接口,p1.4作ds18b20的總線接口。p1.3作報警控制接口。其電路連接圖3-3如下:圖3-2 數(shù)據(jù)處理及控制模塊3.3 溫度傳感器設(shè)計(jì)3.3.1 ds18b20簡介ds18b20可以程序設(shè)定912位的分辨率,精度為0.5c??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在eprom中,掉電后依然保存。溫度傳感器ds1

15、8b20引腳如圖3-4所示。圖3-3 ds18b20to92封裝溫度傳感器引腳功能說明:vdd :可選電源腳,電源電壓范圍35.5v。當(dāng)工作于寄生電源時,此引腳必須接地。dq :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。gnd :為電源地圖3-4 ds18b20內(nèi)部結(jié)構(gòu)圖ds18b20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和tl、配置寄存器。光刻rom中的64位序列號是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼。64位光刻rom的排列是:開始8位(28h)是產(chǎn)品類型標(biāo)號,接著的48位是該ds18b20自身的序列號,最后8位是前面56位

16、的循環(huán)冗余校驗(yàn)碼(crc=x8+x5+x4+1)。光刻rom的作用是使每一個ds18b20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個ds18b20的目的。 ds18b20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/lsb形式表達(dá),其中s為符號位。 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8比特的ram中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 例如+12

17、5的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為fc90h。 ds18b20溫度傳感器的內(nèi)部存儲器包括一個高速暫存ram和一個非易失性的可電擦除的e2ram,后者存放高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。 暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是th、tl的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計(jì)算。第九個字節(jié)是冗余檢驗(yàn)字節(jié)。 該字節(jié)各位的意

18、義如下:tm r1 r0 1 1 1 1 1低五位一直都是1 ,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時該位被設(shè)置為0,用戶不要去改動。r1和r0用來設(shè)置分辨率,如表1所示:(ds18b20出廠時被設(shè)置為12位)表3-3 ds18b20溫度轉(zhuǎn)換時間表r1r0分辨率/位溫度最大轉(zhuǎn)向時間00993.750110187.510113751112750根據(jù)ds18b20的通訊協(xié)議,主機(jī)控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對ds18b20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,這樣才能對ds18b20進(jìn)行預(yù)

19、定的操作。復(fù)位要求主cpu將數(shù)據(jù)線下拉500微秒,然后釋放,ds18b20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主cpu收到此信號表示復(fù)位成功。3.3.2 溫度傳感器與單片機(jī)的連接溫度傳感器的單總線(1-wire)與單片機(jī)的p20連接,p20是單片機(jī)的高位地址線a8。p2端口是一個帶內(nèi)部上拉電阻的8位雙向io,其輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對該端口寫“1”,可通過內(nèi)部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因?yàn)閮?nèi)部存在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時。如執(zhí)行

20、movx dptr指令,則表示p2端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行movx ri指令,p2端口內(nèi)容即為特殊功能寄存器(sfr)區(qū)中r2寄存器內(nèi)容,整個訪問期間不改變。在flash編程和程序校驗(yàn)時,p2端口也接收高位地址和其他控制信號。圖3-5為dsl8820內(nèi)部結(jié)構(gòu)。圖3-6為dsl8820與單片機(jī)的接口電路。圖3-5 ds18b20和單片機(jī)的接口連接3.3.3 復(fù)位信號及外部復(fù)位電路單片機(jī)的p1.6端口是max813看門狗電路中喂狗信號的輸入端,即單片機(jī)每執(zhí)行一次程序就設(shè)置一次喂狗信號,清零看門狗器件。若程序出現(xiàn)異常,單片機(jī)引腳rst將出現(xiàn)兩個機(jī)器周期以上的

21、高電平,使其復(fù)位。該復(fù)位信號高電平有效,其有效時間應(yīng)持續(xù)24個振蕩脈沖周期即兩個機(jī)器周期以上。若使用頻率為12 mhz的晶體振蕩器,則復(fù)位信號持續(xù)時間應(yīng)超過2s才完成復(fù)位操作。圖3-6 復(fù)位電路3.4 單片機(jī)與報警電路系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成,并與單片機(jī)的p1.2端口連接。p1端口的作用和接法與p2端口相同,不同的是在flash編程和程序校驗(yàn)期間,p1接收低8位地址數(shù)據(jù)。3.5 顯示電路采用技術(shù)成熟的74hcl64實(shí)現(xiàn)串并轉(zhuǎn)換。lcd顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)顯示,系統(tǒng)通過單片機(jī)的串行口來實(shí)現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻

22、率的1/12。當(dāng)器件執(zhí)行任何一條將sbuf作為目的寄存器的命令時,數(shù)據(jù)便開始從rxd端發(fā)送。在寫信號有效時,相隔一個機(jī)器周期后發(fā)送控制端send有效,即允許rxd發(fā)送數(shù)據(jù),同時允許從txd端輸出移位脈沖。圖3-7為顯示電路的連接圖。圖3-7 顯示電路的連接圖4 軟件設(shè)計(jì)4.1 ds18b20的讀操作dsl8b20的主要數(shù)據(jù)元件有:64位激光lasered rom,溫度靈敏元件和非易失性溫度告警觸發(fā)器th和tl。dsl8b20可以從單總線獲取電源,當(dāng)信號線為高電平時,將能量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電源為止。此外,還可外接5

23、v電源,給dsl8b20供電。dsl8b20的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。ds18b20讀寫時序如圖4-14-3:圖4-1 ds18b20的復(fù)位時序圖圖4-2 ds18b20的寫數(shù)據(jù)時序圖圖4-3 ds18b20的讀數(shù)據(jù)時序圖由時序圖可知,ds18b20在復(fù)位時需要480us的低電平,等待15us后mcu將總線拉高,等待ds18b20的響應(yīng)信號;ds18b20在寫數(shù)據(jù)時分為寫“0”和寫“1”操作,寫“0”操作時,ds18b20需要至少60us的總線被拉低,然后在60us內(nèi)將“0”寫入ds18b20中,持續(xù)時間至少1us,寫“1”操作是只需將寫入的“0”改為“1”即可

24、;ds18b20讀操作也分為讀“0”和讀“1”操作,讀“0”操作時,總線需要15us被拉低,再拉高45us,然后再15us內(nèi)將數(shù)據(jù)讀走,讀“1”操作同讀“0”操作。程序流程圖如圖4-4:開始ds18b20的初始化啟動溫度轉(zhuǎn)換讀取溫度寄存器跳過讀序列號的操作跳過讀序列號的操作ds18b20的初始化retlow-低八位 high-高八位圖4-4 ds18b20讀取溫度的流程圖4.2 ds18b20的溫度數(shù)據(jù)處理讀出溫度數(shù)據(jù)后,low的低四位為溫度的小數(shù)部分,可以精確到0.0625,low的高四位和high的低四位為溫度的整數(shù)部分,high的高四位全部為1表示負(fù)數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出

25、來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進(jìn)行四舍五入處理:大于0.5的話,向個位進(jìn)1;小于0.5的時候,舍去不要。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因?yàn)閐s18b20最低溫度只能為-55,所以可以將整數(shù)部分的最高位換成一個“-”,表示為負(fù)數(shù)。圖4-2為溫度數(shù)據(jù)處理程序的流程圖。開始提取整數(shù)部分存入ht提取小數(shù)部分存入ltlt右移三位,將精度降低到0.5攝氏度ht+將小數(shù)部分整數(shù)化提取符號部分存入signlt是否大于5是否為負(fù)數(shù)ret負(fù)數(shù)標(biāo)志flag=1ynny圖4-5 溫度數(shù)據(jù)處理流程圖4.3 1602顯示部分1602的讀寫時序圖如下:圖4-

26、6 1602液晶的讀時序圖圖4-7 1602的寫時序圖根據(jù)以上時序圖可以得出讀寫程序流程圖如下:開始選擇寫數(shù)據(jù)寫命令rs=1|rs=0選擇寫操作rw=1使能en準(zhǔn)備好寫入的數(shù)據(jù)db0db7禁止en結(jié)束開始選擇寫數(shù)據(jù)寫命令rs=1|rs=0選擇讀操作rw=0使能en禁止en結(jié)束圖4-8 1602的寫流程圖圖4-8 1602的讀流程圖5 數(shù)據(jù)測試用手觸屏溫度傳感器,可以發(fā)現(xiàn)溫度大概顯示為32度左右。將溫度傳感器與塑料袋裝的冰水混合物接觸,觀察液晶顯示的溫度是否為零度。6 結(jié)語本文重點(diǎn)介紹了單片機(jī)和數(shù)字傳感器ds18b20的原理和功能,并用ds18b20與stc89c52單片機(jī)、lcd1602組成數(shù)

27、字溫度計(jì),有超溫報警功能。 在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是bcd碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。參考文獻(xiàn)1 謝自美. 電子線路綜合設(shè)計(jì)m. 武漢:華中科技大學(xué)出版社, 2007.2 夏繼強(qiáng). 單片機(jī)應(yīng)用設(shè)計(jì)培訓(xùn)

28、教程實(shí)踐篇m. 北京:北京航空航天大學(xué)出版社, 2008.3 何立明. mcs-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)(系統(tǒng)配置與接口技術(shù))m. 北京:北京航空航天大學(xué)出版社, 2003.4 李廣弟, 朱月秀, 王秀山. 單片機(jī)基礎(chǔ)m. 北京:北京航空航天大學(xué)出版社, 2001.7.5 康華光. 電子技術(shù)基礎(chǔ)(模擬部分)(第五版)m. 武漢:華中科技大學(xué)出版社, 2007.6 王毅. 單片機(jī)器件應(yīng)用手冊m. 人民郵電出版社, 1995.7 孫育才,蘇學(xué)成.單片微型計(jì)算機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)m.南京:東南大學(xué)出版社,1990.118 陳嘉慶等.多國單片機(jī)實(shí)用技術(shù)編輯部,1992.9 吳微,文軍.單片機(jī)原理與制作m

29、.武漢:武漢大學(xué)出版社,1991.310 李勛,林廣艷.單片微型計(jì)算機(jī)大學(xué)讀本m.北京:北京航空航天大學(xué)出版社,1998.811 付家才.單片機(jī)控制工程實(shí)踐基礎(chǔ)m.北京:化學(xué)工業(yè)出版社,2003.212 a bakers dozen:real analog solutions for digital designersj. bonnie baker(美),李喻奎 譯.2006.8.113 zharkovi,podolich,vsaonov,va temperature-controlledsystem for optical m icroscopy in the temperature ran

30、ge800kinstruments and experimental techniques2005,48(5)686689 附錄1 程序源代碼#include #include #define uchar unsigned char#define uint unsigned intsbit dq= p37; /定義ds18b20端口dqbit presence;sbit lcd_rs=p20;sbit lcd_rw=p21;sbit lcd_en=p22;sbit back_led=p24;uchar code disp_1= by zhangwei ;uchar code disp_2= t

31、emper: . c ;uchar code disp_3= ds18b20 err0r ;uchar code disp_4= please check ;uchar data temp_data2=0x00,0x00;uchar data display5=0x00,0x00,0x00,0x00,0x00;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09 ;/*小數(shù)位表,四舍五入*/uchar code mytab8=0x0c,0x12,0x1

32、2,0x0c,0x00,0x00,0x00,0x00;#define delay_nop() _nop_();_nop_();_nop_();_nop_();/*/void delay1(int ms)uchar y;while(ms-)for(y=0;y250;y+)_nop_();_nop_();_nop_();_nop_();/*/*檢查lcd忙狀態(tài) */*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。 */*/bit lcd_busy()bit result;lcd_rs=0;lcd_rw=1;lcd_en=1;delay_nop();result=(b

33、it)(p0&0x80);lcd_en=0;return(result);/*寫指令數(shù)據(jù)到lcd */*rs=l,rw=l,e=高脈沖,d0-d7=指令碼。 */*/void lcd_write_cmd(uchar cmd)while(lcd_busy();lcd_rs=0;lcd_rw=0;lcd_en=0;_nop_();_nop_();p0=cmd;delay_nop();lcd_en=1;delay_nop();lcd_en=0;/*/*寫顯示數(shù)據(jù)到lcd */*rs=h,rw=l,e=高脈沖,d0-d7=數(shù)據(jù)。 */*/void lcd_write_dat(uchar dat)whi

34、le(lcd_busy();lcd_rs=1;lcd_rw=0;lcd_en=0;p0=dat;delay_nop();lcd_en=1;delay_nop();lcd_en=0;/* lcd初始化設(shè)定 */*/void lcd_init() delay1(15); lcd_write_cmd(0x01); /清除lcd的顯示內(nèi)容 lcd_write_cmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay1(5); lcd_write_cmd(0x38); delay1(5); lcd_write_cmd(0x38); delay1(5); lcd_write_cmd(0x0c

35、); /顯示開,關(guān)光標(biāo) delay1(5); lcd_write_cmd(0x06); /移動光標(biāo) delay1(5); lcd_write_cmd(0x01); /清除lcd的顯示內(nèi)容 delay1(5);/* 設(shè)定顯示位置 */*/void lcd_pos(uchar pos)lcd_write_cmd(pos|0x80); /數(shù)據(jù)指針=80+地址變量/*自定義字符寫入cgram */*/void write_cgram() uchar i; lcd_write_cmd(0x40); /寫cgram for (i=0;i0;i-)dq=0; / 給脈沖信號dat=1;dq=1; / 給脈沖

36、信號if(dq)dat|=0x80;delay(4);return (dat);/* 寫一個字節(jié) */*/void write_byte(uchar dat)uchar i=0;for (i=8;i0;i-)dq=0;dq=dat&0x01;delay(5);dq=1;dat=1;/* 讀取溫度 */*/void read_temper(void) init_18b20(); write_byte(0xcc); / 跳過讀序號列號的操作 write_byte(0x44); / 啟動溫度轉(zhuǎn)換 init_18b20(); write_byte(0xcc); /跳過讀序號列號的操作 write_byte(0xbe); /讀取溫度寄存器 temp_data0=read_byte(); /溫度低8位 temp_da

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論