紅外遙控系統畢業設計基于單片機的紅外遙控系統設計_第1頁
紅外遙控系統畢業設計基于單片機的紅外遙控系統設計_第2頁
紅外遙控系統畢業設計基于單片機的紅外遙控系統設計_第3頁
紅外遙控系統畢業設計基于單片機的紅外遙控系統設計_第4頁
紅外遙控系統畢業設計基于單片機的紅外遙控系統設計_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機設計課程設計題 目: 基于單片機的紅外遙控系統設計 專 業: 電氣工程系 班 級:姓 名:學號:指導老師:小組成員:成 績:摘要隨著社會的發展、科技的進步以及人們生活水平的逐步提高,各種方便于生活的遙控系統開始進入了人們的生活。采用單片機進行遙控系統的應用設計,具有編程靈活多樣、操作碼個數可隨便設定等優點。由于單片機具有集成度高、體積小、可靠性高、價格便宜等優點,其在機電一體化、工業控制、儀器儀表和家用電器等領域得到了廣泛應用。當前單片機對家用電器控制呈現出外形簡單化、功能多樣化、產品智能化的發展趨向。紅外遙控技術具有使用方便、功耗低、抗干擾能力強、價格便宜的特點, 因此它的應用前景十分

2、廣闊。本課題以延伸紅外無線遙控技術為目的,提出了一種紅外遙控器集中控制的方案,核心是設計出一個紅外接收系統。本設計以紅外線作為傳遞信息的載體,可對受控對象的工作狀態進行短距離無線控制,適用于遙控工業、醫療、家用電器等設備的開閉狀態。并含有設備計數模塊,可對處于工作狀態的設備進行計數,并顯示出來。課題的重點在于通過軟件實現二進制數據的解碼工作,然后通過紅外收發頭進行數據傳輸控制系統。關鍵詞:紅外遙控;單片機控制;顯示模塊目 錄1 引言- 4 -1.1 課題研究的目的- 4 -1.2基于單片機的紅外遙控系統概述- 4 -2設計任務及要求- 5 -2.1紅外遙控系統的設計與實現任務,主要完成:- 5

3、 -2.2 紅外遙控系統的設計要求:- 5 -3 紅外遙控系統的硬件設計- 6 -3.1 本設計方案思路- 6 -3.2 研發方向和技術關鍵- 6 -3.3系統硬件電路的總體設計- 7 -3.3.1紅外遙控系統- 7 -3.3.3 紅外接收模塊- 11 -3.3.4 LED模擬外圍設備模塊- 12 -3.3.5液晶顯示模塊- 13 -4 紅外遙控系統的軟件設計- 14 -4.1 主控程序- 14 -4.2 遙控發射部分- 14 -4.3 遙控接收處理部分- 15 -5 測試結果及分析- 15 -5.1 實驗儀與計算機的連接- 15 -5.2 硬件系統的調試- 16 -5.3 軟件系統的調試-

4、16 -6 總結與體會- 16 -參考文獻- 17 -7附錄 程序代碼- 18 -1 引言1.1 課題研究的目的本設計主要研究并設計一個基于單片機的紅外發射及接收系統,實現對溫度控制、蜂鳴器、LED燈的隔離控制。控制系統主要是由 MCS-51 系列單片機、集成紅外發射遙控器、紅外接收電路、LCD 顯示電路,溫度控制電路等部分組成,發射遙控信號經紅外接收處理傳送給單片機,單片機根據不同的信息碼控制溫度報警,并完成相應的狀態指示。紅外遙控是一種無線、非接觸控制技術、具有抗干擾能力強,信息傳輸可靠,功耗低,成本低,易于實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用。1.2基于單片機的紅外遙控系

5、統概述當今社會科學技術的發展與日俱增,人們生活水平也是日益提高,為了減少人們的工作量,所以對各種家用電器、電子器件的非人工控制的要求越來越高,針對這種情況,設計出一種集成度比較高的控制體系是必然的。現代科技的飛速發展在許多危險、不可近場合也對遠程控制提出了越來越高的要求。單片機是指一個集成在一塊芯片上的完整計算機系統。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統,目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統集成在一塊芯片上。使

6、用紅外線做信號載波的優點很多:成本低、傳播范圍和方向可以控制、不產生電磁輻射干擾,也不受干擾等等。因此被廣泛地應用在各種技術領域中。由于紅外線為不可見光,因此對環境影響很小,再由紅外光波動波長遠小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影響臨近的無線電設備。最典型的應用就是家電遙控器。紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設計家用電器的紅外線遙控器時,不必要像無線電遙控器那樣,每套(發射器和接收器)要有不同的遙控頻率或編碼(否則,就會隔墻控制或干擾鄰居的家用電器)。同類產品的紅外線遙控器,也可以有相同的遙控頻率或編碼,而不會出現遙控信號“串

7、門”的情況。這對于大批量生產以及在家用電器上普及紅外線遙控提供了極大的方面。2設計任務及要求2.1紅外遙控系統的設計與實現任務,主要完成:(1) 對紅外遙控溫度系統進行硬件設計和軟件流程設計,分為主程序設計,數據處理,溫度顯示程序設計、LED燈和蜂鳴器的開關控制程序設計等;(2)設計LED燈和蜂鳴器的開關控制(3) 軟件的調試,功能仿真,畫出紅外遙控系統的電路原理圖。(4) 完成實物,實現功能2.2 紅外遙控系統的設計要求:本設計主要研究并設計一個基于單片機的紅外發射及接收系統,實現對溫度控制的隔離控制。控制系統主要是由 MCS-51 系列單片機、集成紅外發射遙控器、紅外接收電路、LCD 顯示

8、電路,溫度控制電路等部分組成,發射遙控信號經紅外接收處理傳送給單片機,單片機根據不同的信息碼控制溫度報警,并完成相應的狀態指示。(2) 溫度傳感器對周圍環境溫度進行檢測;(3) 遙控最遠距離8到10m;(4) 工作頻率為 38KHz,即紅外發射和接收的載頻為 38KHz;(5) 接收端可顯示受控狀態以及輸入控制數據;(5) 顯示程序的設計,用4位數碼管顯示所測得的溫度值;(6) LED燈和蜂鳴器控制程序設計,根據按鍵進行相應的處理。3 紅外遙控系統的硬件設計3.1 本設計方案思路本設計主控芯片采用目前比較通用的MCS-51系列單片機。此類單片機的運算能力強,軟件編程靈活,自由度大,市場上比較多

9、見,價格便宜且技術比較成熟容易實現。紅外傳輸利用載波對信號進行調制從而減少信號傳輸過程中的光波干擾,提高數據傳輸效率。由遙控器將鍵盤信息及系統識別碼等數據調制在紅外載波上經紅外發射頭發射出去。接收方由紅外一體化接收頭實現對接收信號的放大解調并還原為數據流,經由單片機解碼后對相關IO口進行操作(如圖 1)。按鍵編碼和調制紅外發射紅外接收解碼并響應紅外遙控器紅外接收圖 1 紅外線遙控系統框圖3.2 研發方向和技術關鍵(1)合理設計硬件電路,使各模塊功能協調;(2)紅外接收信號的脈沖波形;(3)紅外接收信號的編解碼;(4)單片機對IO口的操作;3.3系統硬件電路的總體設計3.3.1紅外遙控系統紅外遙

10、控系統是集中集光、電于一體的系統。其工作原理是用戶按鍵信號經單片機編碼處理后轉化為脈沖信號,經由紅外發射頭發送出去;接收端由紅外一體化接收頭實現對接收信號的放大解調并還原為數據流,經由單片機解碼后對相關IO口進行操作,從而完成整個遙控操作。整個系統主要是由51單片機基本電路、紅外接收電路、LCD 顯示電路,溫度控制電路等部分組成。系統硬件由以下幾部分組成:紅外數據發射遙控器。紅外數據接收則是采用 HX1838 一體化紅外接收頭,內部集成紅外接收、數據采集、解碼的功能,只要在接收端 INT0 檢測頭信號低電平的到來,就可完成對整個串行的信號進行分析得出當前控制指令的功能。然后根據所得的指令去操作

11、相應的用電器件工作,如圖 2所示。LED發射管編碼調制編碼調制遙控按鍵紅 外 傳 輸圖2 系統總體結構框圖紅外一體化接收頭單片機解碼執行部分3.3.1 單片機最小系統單片機的最小系統主要包括:晶振電路、復位電路等。(1) 晶振電路,即為時鐘振蕩器,本設計采用12Mhz的晶振。如圖2-1所示。(2)圖3-1 晶振電路(2) RST:復位輸入。如圖3-2所示。圖3-2 單片機復位電路(3) 單片機系統。如圖3-3所示。3.3.2 紅外遙控發射模塊原理通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路芯片來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接

12、收部分包括光、電轉換放大器、解調、解碼電路。 遙控發射器專用芯片很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類,這里我們以運用比較廣泛,解碼比較容易的脈沖寬度調制來加以說明,組成發射電路編碼原理。當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:圖2 遙控碼“0”和“1”采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”。上述“0”和“1”組成的42位二進制碼經38kHz的載頻進行二次調制以提高發射效

13、率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射,7461產生的遙控編碼是連續的42位二進制碼組,其中前26位為用戶識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數據是否接收準確。圖3 紅外發射碼當遙控器上任意一個按鍵按下超過36ms時,芯片的振蕩器使芯片激活,將發射一個特定的同步碼頭,對于接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以后可以開始接收數據。3.3.3 紅外接收模塊遙控接收器是根據接收到的不同頻率的紅外光信號,由CPU轉化為對應的控制功能對

14、控制電路實施控制。當接收電路接收到第一個紅外線脈沖時,中斷INT1被觸發,啟動定時器1和計數器0。定時器1作為計數時間控制器,計數器0作為在規定記數時間內所記得的紅外脈沖數。接收信號端接至P3.3和P3.4口,該兩引腳為復用引腳,P3.3引腳復用為外部中斷1請求輸入端;P3.4引腳復用為定時器/計數器0計數脈沖輸入端。圖 紅外接收器紅外編碼標準發射端所發射的一幀碼含有一個引導碼、8位用戶碼、8位用戶反碼,8位鍵數據碼、8位鍵數據反碼。引導碼由一個9ms的高電平和4.5ms的低電平組成。當按下持續時間超過108ms時,則發送簡碼(簡碼由9ms高電平和2.25ms的低電平組成)來告之接收端是某一個

15、按一直按著,象電視的音量和頻道切換鍵都有此功能,簡碼與簡碼之間相隔是108ms。“1”和“0”的區分采用脈沖位置調制方式(PPM)。二進制信號的調制二進制信號的調制仍由發送單片機來完成,如圖9所示,A是二進制信號的編碼波形,B 是頻率為38KHz (周期為26s) 的連續脈沖,C 是經調制后的間斷脈沖串(相當于C = A ×B) ,用于紅外發射二極管發送的波形。圖9 中,待發送的二進制數據為101。二進制信號的解調二進制信號的解調由一體化紅外接收頭VS1838B來完成,它把接收到的紅外信號(圖10 中波形D ,也是圖9 中波形C) 經內部處理并解調復原,在輸出腳輸出圖10 中波形E

16、(正好是對圖9 中波形A 的取反) ,VS1838B 的解調可理解為:在輸入有脈沖串時,輸出端輸出低電平,否則輸出高電平。可直接與單片機串行輸入口及外中斷相聯,以實現隨時接收遙控信號并產生中斷,然后由單片機對編碼還原。圖10 紅外接收頭接收及輸出波形二進制信號的解碼二進制信號的解碼由接收單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,還原出發送端發送的數據。如圖10 ,把波形E 解碼還原成原始二進制數據信息101。3.3.4 LED模擬外圍設備模塊發光二極管(LED)在電路及儀器中作為指示燈。74HC573八進制 3 態非反轉透明鎖存器。輸入是和標準 CMOS 輸出兼容的;加上拉電阻

17、,他們能和 LS/ALSTTL 輸出兼容。當鎖存使能端LE為高時,這些器件的鎖存對于數據是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數據會被鎖存。3.3.5液晶顯示模塊1602字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD。1602LCD主要技術參數主要技術參數主要技術參數主要技術參數: 顯示容量:16×2個字符 芯片工作電壓:4.55.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標

18、志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。 圖:1602液晶顯示模塊元件清單序號元器件數量數值作用1R1110k復位電阻2C1110uF電解電容(復位)3C2,C3230pF振蕩瓷片電容4晶振112MHz晶振5STC89C521單片機芯片6活動IC座(40腳)17排阻18HXD蜂鳴器1模擬外圍器件9LED燈4模擬外圍器件10R1-R44100LED限流電阻1116021顯示模塊12HX18381紅外接收器4 紅外遙控系統的軟件設計4.1 主控程序主控程序很簡單,主程序主要是對軟硬件環境進行初始化,如在中斷服務入口地址添加跳轉,跳轉到所

19、需要執行的中斷服務程序、對所用到的P1,P2口進行初始化,設置外部中斷0為下降沿觸發,并開中斷,然后循環等待外部中斷。4.2 遙控發射部分紅外遙控信號的發射是由LC7461芯片組成發射電路嵌入在遙控器中,本設計的重點在于對它發射的紅外信號進行解碼識別,進而完成相應的控制。其中發射部分程序固化在遙控器芯片中,當我們按鍵,會自動執行編碼程序,并進行調制和發射。本遙控發射器采用脈沖寬度調制方式,當不同的指令鍵被按下時,指令信號電路產生不同脈沖編碼的指令信號,也就是進行編碼,然后經調制電路調制,用不同的脈寬來區分“0”和“1”,產生連續42位二進制碼組,其中前26為用戶識別碼,能區別不同的紅外遙控設備

20、,后16位為8位的操作碼和8位的操作反碼用于區別按鍵,再由驅動電路驅動紅外發射器發射紅外信號。整體過程如下:指令鍵指令編碼調制驅動紅外發射圖3.1遙控發射部分過程圖4.3 遙控接收處理部分當解碼成功之后,內存單元1AH中存放的就是我們所按鍵的鍵值,根據鍵值我們查表取出控制字,可以轉移到相應的控制程序,這里為了簡便,用控制字開控制開關,當紅色開關鍵時,調用子程序來開關系統,當按下數字鍵時,對應的小燈會亮,如按鍵1,則第一個小燈亮。5 測試結果及分析5.1 實驗儀與計算機的連接將實驗儀與計算機通過串行口COM1進行連接,并進行相應的配置,設置波特率,編寫簡單的程序,如果能夠通過計算機對實驗儀進行操

21、作,可表示連接正確。可以往下進行試驗。5.2 硬件系統的調試要檢查我們要使用的一些硬件資源是否完好,是否可用。檢查所用到的小燈,蜂鳴器是不是能夠控制,檢查P2口,P1口,P3口是不是能夠控制輸入輸出,檢查紅外接收器是不是能夠實現接收,檢查P3.2口是不是能引發外部中斷。對于本試驗要用到的遙控器,也要確定是否可用,是否能正確的發射紅外信號。通過簡單的調試,確定所用資源都可用時,可接著進行軟件系統的調試。5.3 軟件系統的調試當編寫好程序之后,運行不能達到所要的效果,就要檢查是不是程序出了問題,通過設置斷點,單步運行,了解程序的走向,找出出錯的地方,進行修改。通過不斷地試驗修改,程序終于可以實現所

22、預期的效果。6 總結與體會通過這次的課程設計,讓我明白到,理論和實操是兩個不同的概念。我們不能一味的依照原本的原理圖來操作,要根據實際情況對電路圖進行修改。這次課程設計是以自己動手動腦,并親手設計、制作、組裝與調試為特色的。它將基本技能訓練,基本工藝知識和創新啟蒙有機結合,培養我們的實踐能力和創新精神,作為信息時代的大學生,僅會書本理論是不夠的,基本的動手能力是一切工作和創造的基礎和必要條件。這次課程設計中我主要負責方案設計、仿真及后期調試。通過proteus軟件對電路進行設計,仿真。在這一次的課程設計中,我們小組分工合作,良好地完成了紅外控制系統設計。在最后的組裝和調試中,則讓我們深刻意識到

23、,理論上能行到,到了實踐的時候很有可能就會出各種問題,比如這次,我們的程序在開發板上能正常運行,但到了自己焊接的板上就運行不了,最后踩發現原來是外部中斷的端口設置出了問題。此外調試的時候雖然是最困難的,也是一個比較煩的環節,由于誤差等各方面的原因,顯示模塊濃度調試出現了較大的問題,難以調出理想的顯示,最后經過努力,基本能顯示。總的來說,這一次的試訓獲益良多,首先是培養了我們小組合作的精神,其次是加深了對單片機功能的認識,也讓自己編程能力得到了提高,最重要的是提高了自己的動手能力,能讓自己學到的知識用到現實的成品中,讓我對這個專業更加有興趣,使我以后學校更加有動力。這次課程設計,讓我了解到那些實

24、操的理論也只是紙上談兵,真正實操起來,很多的知識都不夠扎實,所以遇到問題的時候我們不斷地翻閱書本,詢問老師,在這過程中,學習到了不少的新知識。感謝王哲老師的悉心指導,多次與我們開座談會,同時為我們搜集提供了重要資料,使得課程設計的圓滿成功。老師辛苦了,我衷心地感謝老師您。參考文獻1 基于Proteus的單片機應用技術主編:江世明 (電子工業出版社)2009.6251單片機開發與應用基礎教程(c語言版)主編:劉劍劉奇穗(中國電力出版社)2011.103數字電子技術基礎主編:余孟嘗 (高等教育出版社)2009.74傳感器原理與應用主編:黃賢武鄭筱霞(高等教育出版社)2008.77附錄 程序代碼/本

25、解碼程序適用于NEC的upd6121及其兼容芯片的解碼,支持大多數遙控器 實驗板采用11.0592MHZ晶振#include<reg52.h> /包含單片機寄存器的頭文件#include<intrins.h> /包含_nop_()函數定義的頭文件#include"lcd_1602.h" /1602頭文件#include"beep.h" /蜂鳴器響一聲頭文件#include"Digital-18B20.h" /包含18B20頭文件sbit IR=P32; /將IR位定義為P3.2引腳sbit du=P26;/57

26、3鎖存器鎖存?sbit D1=P10;/白色燈sbit D2=P12;/綠色燈sbit D3=P14;/藍色燈sbit D4=P16;/紅色燈unsigned char a4; /儲存用戶碼、用戶反碼與鍵數據碼、鍵數據反碼unsigned int LowTime,HighTime; /儲存高、低電平的寬度 /*函數功能:對4個字節的用戶碼和鍵數據碼進行解碼說明:解碼正確,返回1,否則返回0出口參數:dat*/bit DeCode(void) unsigned char i,j;unsigned char temp; /儲存解碼出的數據for(i=0;i<4;i+) /連續讀取4個用戶碼和

27、鍵數據碼for(j=0;j<8;j+) /每個碼有8位數字 temp=temp>>1; /temp中的各數據位右移一位,因為先讀出的是高位數據TH0=0; /定時器清0 TL0=0; /定時器清0 TR0=1; /開啟定時器T0 while(IR=0) /如果是低電平就等待 ; /低電平計時 TR0=0; /關閉定時器T0 LowTime=TH0*256+TL0; /保存低電平寬度 TH0=0; /定時器清0 TL0=0; /定時器清0 TR0=1; /開啟定時器T0 while(IR=1) /如果是高電平就等待 ; TR0=0; /關閉定時器T0 HighTime=TH0*

28、256+TL0; /保存高電平寬度 if(LowTime<400)|(LowTime>600) return 0; /如果低電平長度不在合理范圍,則認為出錯,停止解碼 if(HighTime>400)&&(HighTime<600) /如果高電平時間在560微秒左右,即計數5601.085516次 temp=temp&0x7f; /(520-100=420, 520+100=620),則該位是0 if(HighTime>1300)&&(HighTime<1700) /如果高電平時間在1680微秒左右,即計數16801.

29、0851548次 temp=temp|0x80; /(1550-250=1300,1550+250=1800),則該位是1 ai=temp;/將解碼出的字節值儲存在ai if(a2=a3) /驗證鍵數據碼和其反碼是否相等,一般情況下不必驗證用戶碼return 1; /解碼正確,返回1/*-二進制碼轉換為壓縮型BCD碼,并顯示-*/void two_2_bcd(unsigned char date) unsigned char temp; /temp臨時存放待轉碼數據 temp=date; date&=0xf0; date>>=4; /右移四位得到高四位碼 date&

30、=0x0f; /與0x0f相與確保高四位為0 if(date<=0x09) WriteData(0x30+date); /lcd顯示鍵值高四位 else date=date-0x09; WriteData(0x40+date); date=temp; date&=0x0f; if(date<=0x09)/小于9,+30H為ASC碼0-9 WriteData(0x30+date); /lcd顯示低四位值 else date=date-0x09; /大于9,A以上,-09H 求補,再加40H 對應 WriteData(0x40+date); /ASC碼 大寫字母 WriteDa

31、ta(0x48); /顯示字符'H' /*函數功能:1602LCD顯示*/void Disp(void) WriteAddress(0x40); / 設置顯示位置為第二行的第1個字 two_2_bcd(a0); WriteData(0x20); /寫入空白符做間隔 two_2_bcd(a1); WriteData(0x20); two_2_bcd(a2); WriteData(0x20); two_2_bcd(a3);/*函數功能:LED閃爍 LED_Flash 入口參數:unsigned char a*/void LED_Flash(unsigned char a) if(a

32、=0x16)/按的是0則亮四個燈 /16H為按鍵解碼后的代碼 du=1; /開控制端 P1=0xaa; /單片機接收到數據后執行的指令 du=0; /若全部LED點亮后需點亮某盞燈需先全部關閉 else if(a=0x0c)du=1;D1=!D1;du=0; /白色亮滅 '1' else if(a=0x18)du=1;D2=!D2;du=0; /綠色亮滅 '2' else if(a=0x5e)du=1;D3=!D3;du=0; /藍色亮滅 '3' else if(a=0x08)du=1;D4=!D4;du=0;/紅色亮滅 '4'

33、else if(a=0x19)du=1;P1=0xff;du=0;/全滅 '100+' /*函數功能:18B20處理*/void B20_chuli(unsigned char wendu)if(wendu=0x0d)if(Init_DS18B20()=1)display_error();display_explain();display_symbol(); /顯示溫度說明display_dot(); /顯示溫度的小數點display_cent(); /顯示溫度的單位flag=0;ReadyReadTemp(); /讀溫度準備TL=ReadOneChar(); /先讀的是溫度值

34、低位TH=ReadOneChar(); /接著讀的是溫度值高位if(TH&0xf8)!=0x00)/判斷高五位 得到溫度正負標志flag=1;TL=TL; /取反TH=TH; /取反tltemp=TL+1; /低位加1TL=tltemp;if(tltemp>255) TH+; /如果低8位大于255,向高8位進1TN=TH*16+TL/16; /實際溫度值=(TH*256+TL)/16,即:TH*16+TL/16 /這樣得出的是溫度的整數部分,小數部分被丟棄了TD=(TL%16)*10/16; /計算溫度的小數部分,將余數乘以10再除以16取整,TN=TH*16+TL/16; /實際溫度值=(TH*256+TL)/16,即:TH*16+TL/16 /這樣得出的是溫度的整數部分,小數部分被丟棄了TD=(TL%16)*10/16; /計算溫度的小數部分,將余數乘以10再除以16取整, /這樣得到的是溫度小數部分的第一位數字(保留1位小數)display_temp1(TN); /顯示溫度的整數部分display_t

溫馨提示

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

評論

0/150

提交評論