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

下載本文檔

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

文檔簡介

1、 課程設(shè)計報告引言隨著電子技術(shù)的不斷發(fā)展,我們能應(yīng)用到的電子產(chǎn)品也越來越多。而生活中我們用的很多電子產(chǎn)品都越來越輕巧,價格也越來越便宜利用電子芯片實現(xiàn)的東西也越來越來越多,比如數(shù)字溫度計。當然,非電子產(chǎn)品的常用溫度計也很便宜。此次課設(shè)論文所介紹的是自己動手制作的一個高精度數(shù)字溫度計。本次課設(shè)不但豐富了課余生活,還從實踐中學(xué)到并了很多新知識,并從中鞏固了以前的知識。用Protel 99軟件來設(shè)計制作電路板PCB(Printed circuit Bound)。在PCB上,布置一系列的芯片、電阻、電容等元件,通過PCB上的導(dǎo)線相連,構(gòu)成電路,一起實現(xiàn)一定的功能。電路通過連接器或者插槽進行輸入/輸出,

2、有時還有顯示部分(如發(fā)光二極管LED、.數(shù)碼顯示器等)。可以說,PCB是一塊連接板,它的主要目的是為元件提供連接,為整個電路提供輸入輸出端口和顯示,電氣連接通性是PCB最重要的特性之一。PCB在各種電子設(shè)備中有如下功能:(1)提供集成電路等各種電子元件固定、裝配的機械支撐。(2)實現(xiàn)集成電路等各種電子元件之間的布線和電氣連接或電絕緣,提供所要的電氣特性。(3)為電動裝配提供阻焊徒刑,為元器件插裝、檢查、維修提供識別符和圖形。做本課題的所用到的知識是我們學(xué)過的模擬電子電路以及數(shù)字邏輯電路等,當然還用到了剛剛學(xué)過不久的單片機知識。本次課設(shè)是把理論和實踐結(jié)合起來,這不但可以鍛煉自己的動手能力,而且還

3、可以加深對數(shù)字邏輯電路和模擬電子電路的學(xué)習和理解。同時也激起了我學(xué)好單片機的斗志。為了全面清晰的表達,本論文用圖文并茂的方式,盡可能詳細的地介紹此次設(shè)計的全過程。1 設(shè)計務(wù)任和要求1.1、基本范圍-201001.2、精度誤差小于0.51.3、LED 數(shù)碼直讀顯示1.4、可以任意設(shè)定溫度的上下限報警功能2. 系統(tǒng)總體方案及硬件設(shè)計2.1數(shù)字溫度計設(shè)計方案論證2.1.1方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進行A/D 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D 轉(zhuǎn)換電路

4、,其中還涉及到電阻與溫度的對應(yīng)值的計算,感溫電路比較麻煩。而且在對采集的信號進行放大時容易受溫度的影響從而出現(xiàn)較大的偏差。2.1.2 方案二考慮到用溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,電路簡單,精度高,軟硬件都以實現(xiàn),而且使用單片機的接口便于系統(tǒng)的再擴展,滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,費用較低,可靠性高,軟件設(shè)計也比較簡單,故采用了方案二。2.2系統(tǒng)總體設(shè)計溫度計電路設(shè)計總體設(shè)計方框圖如圖2.1所示,控制器采用單片機STC89

5、C52,溫度傳感器采用DS18B20,用4位LED 數(shù)碼管以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。圖2.1有了總體設(shè)計方案后,下面就是原理圖的制作了。原理圖如下圖2.2及圖2.3示。為了降低繪制PCB是的麻煩度,特意將數(shù)碼管電路與主控制電路分開畫,最后兩者是用導(dǎo)線連接。數(shù)碼管位選接P20P23,段選接P0口。圖2.2數(shù)碼管電路圖2.3單片機控制電路2.3模塊簡介系統(tǒng)由單片機最小系統(tǒng)、顯示電路、按鍵、溫度傳感器等組成。2.3.1 主控制器單片機STC89C52 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。晶振采用12MHZ

6、。復(fù)位電路采用上電加按鈕復(fù)位。 圖2.4晶振電路 圖2.5復(fù)位電路2.3.2 顯示電路顯示電路采用4 位共陰極LED 數(shù)碼管,P0 口由上拉電阻提高驅(qū)動能力,作為段碼輸出并作為數(shù)碼管的驅(qū)動。P2 口的低四位作為數(shù)碼管的位選端。采用動態(tài)掃描的方式顯示。2.3.3溫度傳感器DS18B20 溫度傳感器是美國DALLAS 半導(dǎo)體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20 的性能特點如下:1、獨特的單線接口僅需要一個端口引腳進行通信;2、多個DS18B20 可以并聯(lián)在惟一的三線上,實

7、現(xiàn)多點組網(wǎng)功能3、無須外部器件;4、可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;5、零待機功耗;6、溫度以或位數(shù)字;7、用戶可定義報警設(shè)置;8、報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;9、負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;DS18B20 可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20 的1 腳接地,2 腳作為信號線,3 腳接電源。為保證在有效的DS18B20 時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET 管來完成對總線的上拉。當DS18B20 處于寫存儲器操作和溫度A/D 轉(zhuǎn)換操作時,總線上必須有強的上拉,上拉開啟時間最

8、大為10us。采用寄生電源供電方式時VDD 端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。圖2.6溫度傳感器與單片機的連接2.3.4報警溫度調(diào)整按鍵本系統(tǒng)設(shè)計三個按鍵,采用查詢方式,一個用于選擇切換設(shè)置報警溫度和當前溫度,另外兩個分別用于設(shè)置報警溫度的加和減。均采用軟件消抖。圖2.7按鍵電路3. 系統(tǒng)軟件算法分析系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序,按鍵掃描處理子程序等。3.1主程序流程圖主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20 的測量的當前溫度值,溫度測量每1s 進行一次。這樣可以在一秒之內(nèi)測量一次被測

9、溫度,其程序流程見圖3.1 所示。圖3.1 主程序流程圖3.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM 中的9 字節(jié),在讀出時需進行CRC 校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3.2 示3.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當采用12 位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s 顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖3.3 所示 圖3.2讀文讀流程圖 圖3.3溫度轉(zhuǎn)換流程圖3.4 計算溫度子程序計算溫度子程序?qū)AM 中讀取值進行BCD 碼的轉(zhuǎn)換運算,并進行溫度值正負的判定,其程序流程圖如圖3.4 所示

10、。3.5 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對分離后的溫度顯示數(shù)據(jù)進行刷新操作,當標志位位為1時將符號顯示位移入第一位。程序流程圖如圖3.5。圖3.4 計算溫度流程圖 圖3.5顯示數(shù)據(jù)刷新流程圖3.6按鍵掃描處理子程序按鍵采用掃描查詢方式,設(shè)置標志位,當標志位為1 時,顯示設(shè)置溫度,否則顯示當前溫度。如下圖3.6 示。 圖3.6按鍵掃描處理流程圖4. 電路仿真通過仿真軟件驗證該原理圖的可行性。采用protues軟件對電路仿真,可以得到預(yù)期效果。因protues軟件中沒有STC89C52故用AT89C52代替。仿真圖如圖4.1示。 圖4.1電路仿真圖 右圖4.2為溫度傳感器的仿真效果圖,

11、此圖驗證了傳感器的溫度與數(shù)碼管顯示的數(shù)字一致。 當按下SET 鍵一次時,進入溫度報警上線調(diào)節(jié),此時顯示軟件設(shè)置的溫度報警上線,按ADD或DEC 分別對報警溫度進行加一或減一。當再次按下SET 鍵時,進入溫度報警下線調(diào)節(jié),此時顯示軟件設(shè)置的溫度報警下線,按ADD或DEC 分別對報警溫度進行加一或減一。當?shù)谌伟聪耂ET 鍵時,退出溫度報警線設(shè)置。顯示當前溫度。驗證了電路圖正確性后,下面就進入PCB的繪制了5. 電路板制作過程隨著計算機技術(shù)的發(fā)展,電路設(shè)計中的很多工作都可以交由計算機來完成。Protel 99SE系統(tǒng)是一套建立在PC環(huán)境下的EDA電路集成設(shè)計系統(tǒng),由于其高度的集成性與擴展性,很快就

12、成為PC平臺上最流行的電子設(shè)計自動化軟件。在完成本課程設(shè)計過程中,充分運用了Protel99SE的電路及PCB設(shè)計功能加快了設(shè)計進程,下面將就電路板的制作過程做詳細闡述。Protel進行電路設(shè)計有兩個步驟如下圖所示:圖5.1 PROTEL設(shè)計步驟5.1 原理圖編輯原理圖的設(shè)計是整個電路設(shè)計的基礎(chǔ),它決定了后面工作的進展。原理圖的設(shè)計過程可以按下圖所示的設(shè)計流程進行。圖5.2 設(shè)計流程圖(1)圖紙設(shè)置是繪制電路圖的第一步,必須根據(jù)實際電路的大小來選擇合的圖紙設(shè)置圖紙的大小包括設(shè)置圖紙尺寸、網(wǎng)絡(luò)和光標的設(shè)置等等。(2)加載元器件庫,在Protel 99 SE中,原理圖中的元器件符號均存放在不同的原

13、理圖元件庫中,在繪制電路原理圖之前,必須將所需的原理圖元件庫裝入原理圖編輯器。(3)放置元器件,即將所需的元件符號從元件庫中調(diào)入原理圖中。(4)調(diào)整元器件布局,將各個元件用具有電氣性能的導(dǎo)線連接起來并進一步調(diào)整元器件的位置、元器件標注的位置及連線等。(5)最后打印存盤。5.2 PCB制作 在繪制好原理圖的情況下要想得到一塊電路板還需要繪制一張PCB版圖,PCB做的好壞將直接影響電路板的美觀和性能,所以要盡量把PCB做的合理。我們可以按以下流程來完成PCB的繪制。 開始規(guī)劃電路板設(shè)置參數(shù)裝入元件網(wǎng)表及封裝 保存及打印 手動調(diào)整 布線 元件布局 結(jié)束 圖5.3 PCB設(shè)計流程圖 整個過程中元器件的

14、布局是關(guān)鍵,布局直接影響到最后做板的元件格局,所以在整個過程中要不斷的調(diào)整直至最終合理。圖5.4是本課程設(shè)計的最終PCB印刷電路,USB母座放在邊上便于插拔電源線。 圖5.4電路PCB圖6. 電路調(diào)試過程電路板的設(shè)計在經(jīng)過了原理圖的引用分析,元件的選取和電路原理的仿真驗證后,通過PROTEL99便可以制作成對應(yīng)的原理圖,然后完成PCB的版圖設(shè)計,最后便制作成完整的電路板。電路板的制作完成只是占課題的一小部分,接下來將進入比較棘手也是較為需要耐心和細心的電路調(diào)試環(huán)節(jié)。說實在的,對于電路調(diào)試實在有點怕,上一次課設(shè)調(diào)板的陰影還沒散去呢。調(diào)試,要的就是耐性,毅力外加細心。看似完美無缺的電路板,檢查了之

15、后卻是漏洞百出,斷線的,虛焊的。不過這些都不是大問題,有了多次電路設(shè)計經(jīng)驗后這些故障很快就解決了。接下來最棘手的應(yīng)該是軟件編程了。編程向來都是我的軟肋,不過還好,在廣大網(wǎng)友的支持下,最后還是搞定了。7. 總結(jié)與體會本次課程設(shè)計即將進入尾聲,回想這兩周來的電子設(shè)計制作經(jīng)歷,我感觸甚是深刻。通過本次課程設(shè)計,使我對電子設(shè)計及制作產(chǎn)生了較為濃厚的興趣,這不僅加強了自己對理論知識的理解和鞏固,還能提高自己的動手能力,可以說受益匪淺。當然更重要的是,激起了我學(xué)好單片機的斗志。本次課程設(shè)計主要分為四部分:設(shè)計、仿真、制作及調(diào)試。這四個步驟在整個課程設(shè)計過程中起著重要的作用。本次課程設(shè)計的任務(wù)是:根據(jù)老師給

16、出的設(shè)計題目的要求選擇合適的電路,確定元件參數(shù),對原理圖進行電路仿真,制作PCB圖等。在整個設(shè)計制作過程中用到了兩個軟件,PROTUES仿真軟件和Protel99SE做板軟件??梢哉f,在此之前自己未曾使用過protues軟件。而且Protel99SE用起來也是相當?shù)哪吧?,畢竟已隔將近半年多沒用此軟件做板了。本次課設(shè)讓我學(xué)到了如何去運用protues軟件對電路進行仿真,仿真出來的效果與理論上的效果以及與實物做出來的效果有何不同或相似。而在使用Protel99SE軟件設(shè)計時,我也有了不少的學(xué)習應(yīng)用心得。首先,在制作原理圖的時候一定要非常細心,一個小錯誤都可能影響往后的制板工作。其次,在做PCB時,

17、本人不提倡應(yīng)用自動布線工具。雖然手動布線很煩人,但這可以提高你的動手能力,同時也可以提升你的耐力??傊趯W(xué)習和運用設(shè)計電路軟件時遇到了不少問題,在向老師和同學(xué)請教后得到了解決,也在這個過程中學(xué)到了不少解決問題的方法。做板可是說是在考驗一個人的耐力以及動手能力。電路設(shè)計完之后就是開始真正的做板了。做板大致來說有六個步驟:買元件>印銅>腐蝕>打孔>安裝元器件>焊接。買元件時要注意元件的管腳要與封裝一致,比如電位器有很多種,在選擇時要注意管腳與自己銅板銅孔對應(yīng)。印銅時要注意熨斗的溫度,溫度不夠時印銅很容易失敗。而腐蝕過程中腐蝕藥品的量以及水的溫度則直接影響到腐蝕時間的

18、長短,這就要自己合理把握了。打孔時最好使用口徑稍微大一點的針頭,在打芯片的孔時要注意將孔打在一條直線上,以免在插芯片時有困難。在安裝元器件時一定要做到對號入座,且有些器件要注意正負極,如若不然電路不通是小事,元件爆炸就危險了。焊接時一定要做到細心+耐心,不要急于求成。當然對于一個初學(xué)者而言,剛開始焊出來的板子確實談不上美觀,不過當熟練之后,焊出美觀的板來就不成什么問題了。最能體現(xiàn)一個人的耐心程度,也最能學(xué)到東西的階段還是在調(diào)試過程。在整個過程中既要求熟練掌握設(shè)計的原理,懂得運用所學(xué)電學(xué)的基本理論,還要求善于查錯,改錯。如果在調(diào)試過程中無法達到預(yù)期結(jié)果,就要從整個設(shè)計制作過程中認真分析,細心查找

19、錯誤,一步一步仔細排查。在找到錯誤之后,切不可馬上放棄這塊板子重新做,如果不懂如何做,可以請教在這方面能力較強的同學(xué),盡量做到以較少的改動來改正錯誤。這樣可以節(jié)約時間以及做板的成本。當調(diào)板不成功,尤其是花了很久時間都未能成功的時候,大多數(shù)人都會顯得相當急燥,而我就是其中一個。后來我去請教同學(xué)和老師,在他們的開導(dǎo)和講解之下,我靜下心來重新開始分析,當檢查到電路板時才發(fā)現(xiàn),原來有一根銅線與周邊所附的銅被一點點沒腐蝕掉的銅點連在了一起,雖然這只是一小點的銅點,卻能造成了比較大的錯誤,導(dǎo)致有整個電路處于短路狀態(tài)。幸虧沒把主控芯片給燒咯。在修改之后,終于,一直期盼出現(xiàn)的結(jié)果出來了。本次課程設(shè)計的大概題目

20、是老師給出,當然我們也可以自由選擇。我在學(xué)校圖書館以及網(wǎng)上查閱了相關(guān)資料之后,確定了一個與目前我所學(xué)的知識比較接近且相對而言比較熟悉的題目。可以說從確定題目,尋找原理圖,制作sch、pcb,到焊接調(diào)試,每一個步驟都付出了努力,傾注了我兩周的心血,也從中積累了寶貴的經(jīng)驗,最后終于大抵上完成了設(shè)計任務(wù)。從總體上看,這次電路設(shè)計制作還是比較成功的,板子的調(diào)試結(jié)果與仿真得出的效果圖還是比較接近的。拿著自己調(diào)試好的板子,心里總有些許的“成就感”,這也只有真正是自己動過手的人才能體會到其中的喜悅。本次課程設(shè)計給我的第一大感覺就是:要成功,就要有付出。從這一次制作過程的心得體會當中,我意識到在以后的設(shè)計中我

21、還需要做到再細心、再耐心、再專心?;叵霃闹谱鏖_始到結(jié)束,沒有哪一步不是注入了自己的心血,心情就激動不已,此次課程設(shè)計必將讓自己的理論水平和實踐能力上升到一個新的臺階,同時也讓自己認識到實踐的重要性。參考資料1 閻石.數(shù)字電子技術(shù)基礎(chǔ).高等教育出版社,20062 王衛(wèi)東.模擬電子電路基礎(chǔ)M.西安:西安電子科技大學(xué)出版社,20033 曹丙霞,趙艷華.PROTEL 99SE原理圖與PCB設(shè)計.電子工業(yè)出版社,20074 李群芳,張士軍,黃建.單片機微型計算機與接口技術(shù).電子工業(yè)出版社,20085 趙世強.電子電路EDA技術(shù)M.西安:西安電子科技大學(xué)出版社,20006 郭天祥.新概念51單片機C語言教

22、程.電子工業(yè)出版社,2009程序源代碼#include "reg52.h"#include "intrins.h" /_nop_();延時函數(shù)用#define dm P0 /段碼輸出口#define uchar unsigned char#define uint unsigned intsbit DQ=P27; /溫度輸入口sbit w0=P20; /數(shù)碼管4sbit w1=P21; /數(shù)碼管3sbit w2=P22; /數(shù)碼管2sbit w3=P23; /數(shù)碼管1sbit beep=P17; /蜂鳴器和指示燈sbit set=P26; /溫度設(shè)置切換鍵

23、sbit add=P24; /溫度加sbit dec=P25; /溫度減int temp1=0; /顯示當前溫度和設(shè)置溫度的標志位為0 時顯示當前溫度uint h;uint temp;uchar r;uchar high=35,low=20;uchar sign;uchar q=0;uchar tt=0;uchar scale;/*溫度小數(shù)部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/小數(shù)斷碼表uchar code table

24、_dm12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共陰LED 段碼表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-"uchar table_dm1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,

25、0xff,0xef; /個位帶小數(shù)點的斷碼表uchar data temp_data2=0x00,0x00; /讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00; /顯示單元數(shù)據(jù),共4 個數(shù)據(jù)和一個運算暫用/*11us 延時函數(shù)*/void delay(uint t)for (;t>0;t-);void scan()int j;for(j=0;j<4;j+)switch (j)case 0: dm=table_dmdisplay0;w0=0;delay(50);w0=1;/xiaoshucase 1: dm=table_dm1di

26、splay1;w1=0;delay(50);w1=1;/geweicase 2: dm=table_dmdisplay2;w2=0;delay(50);w2=1;/shiweicase 3: dm=table_dmdisplay3;w3=0;delay(50);w3=1;/baiwei/ elsedm=table_dmb3;w3=0;delay(50);w3=1;/*DS18B20 復(fù)位函數(shù)*/ow_reset(void)char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();/從高拉倒低DQ=0;delay(50)

27、; /550 usDQ=1;delay(6); /66 uspresence=DQ; /presence=0 復(fù)位成功,繼續(xù)下一步delay(45); /延時500 uspresence=DQ;DQ=1; /拉高電平/*DS18B20 寫命令函數(shù)*/向1-WIRE 總線上寫1 個字節(jié)void write_byte(uchar val)uchar i;for(i=8;i>0;i-)DQ=1;_nop_();_nop_(); /從高拉倒低DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 usDQ=val&0x01; /最低位移出delay(6); /6

28、6 usval=val/2; /右移1 位DQ=1;delay(1);/*DS18B20 讀1 字節(jié)函數(shù)*/從總線上取1 個字節(jié)uchar read_byte(void)uchar i;uchar value=0;for(i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 usDQ=1;_nop_();_nop_();_nop_();_nop_(); /4 usif(DQ)value|=0x80;delay(6); /66 usDQ=1;return(value)

29、;/*讀出溫度函數(shù)*/read_temp()ow_reset(); /總線復(fù)位delay(200);write_byte(0xcc); /發(fā)命令write_byte(0x44); /發(fā)轉(zhuǎn)換命令ow_reset();delay(1);write_byte(0xcc); /發(fā)命令write_byte(0xbe);temp_data0=read_byte(); /讀溫度值的第字節(jié)temp_data1=read_byte(); /讀溫度值的高字節(jié)temp=temp_data1;temp<<=8;temp=temp|temp_data0; / 兩字節(jié)合成一個整型變量。return temp;

30、 /返回溫度值/*溫度數(shù)據(jù)處理函數(shù)*/二進制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個/字節(jié)的二進制轉(zhuǎn)換為十進制后,就是溫度值的百、十、個位值,而剩/下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進制后,就是溫度值的小數(shù)部分/*/work_temp(uint tem)uchar n=0;if(tem>6348) / 溫度值正負判斷tem=65536-tem;n=1; / 負溫度求補碼,標志位置1display4=tem&0x0f; / 取小數(shù)部分的值display0=ditabdisplay4; / 存入小數(shù)部分顯示值display4=tem>>4; / 取中間八位,即整數(shù)部分的值display3=display4/100; / 取百位數(shù)據(jù)暫存display1=display4%100; / 取后兩位數(shù)據(jù)暫存display2=display1/10; / 取十位數(shù)據(jù)暫存display1=display1%10; /個位數(shù)據(jù)r=display1+display2*10+display3*100;/符號位顯示判斷/if(!display3)display3=0x0a; /最高位為0 時不顯示if(!display2)display2=0x0a; /次高位為0 時不顯示if(n)display3=0x0b; /負溫度時最高位顯示"-"voi

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論