智能紅外遙控暖風機設計畢業設計_第1頁
智能紅外遙控暖風機設計畢業設計_第2頁
智能紅外遙控暖風機設計畢業設計_第3頁
智能紅外遙控暖風機設計畢業設計_第4頁
智能紅外遙控暖風機設計畢業設計_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、智能紅外遙控暖風機設計學生:XX 指導教師:XX內容摘要:本論文的設計將涉及到單片機主控電路的設計,液晶顯示的驅動,紅外遙控技術的設計實現,溫度的檢測以及控制。這幾個的設計都是日常生活生產中比較典型的應用模塊。例如在智能化家用電器的應用方面:如洗衣機、空調、電視機、錄像機、微波爐、電冰箱、電飯煲,紅外遙控暖風機以及各種視聽設備等等。通過這些設計的過程,我們將系統地學習單片機在日常生產中的設計應用的方法,旨在鍛煉自己的運用理論知識轉換成實際應用的的能力。單片機遙控暖風機控制系統設計是個系統的項目開發,每個環節的設計,每個模塊的設計都將直接影響整個項目的開發進程。通過論文的設計我們將學會對項目的模

2、塊化設計的開發方法。 關鍵詞:紅外遙控 紅外編碼解碼 單片機 Design for vending machine's PLC system Abstract: This paper will be involved in the design of the single chip microcomputer to control circuit design, liquid crystal display driver, infrared remote control technology design and implementation, temperature testing

3、and control. These a few of the design are daily life is typical application in production module. For example in the intelligent household appliances application: such as washing machine, air conditioning, television, video, microwave oven, refrigerators, electric cooker, infrared remote control he

4、ater and various audio-visual equipment and so on. Through the design process, we will system to study the microcomputer in the daily production design application method, is designed to develop their own theory knowledge conversion into actual application ability. Single chip microcomputer control

5、system design is a remote control heater system project development, each link of the design, the design of each module will directly affect the whole project development process. Through the design of the paper we will learn to the project of the modular design method of the development. Keywords:

6、Infrared remote control Infrared coding and decoding Single-chip microcomputer .目 錄前言11 系統分析11.1需求分析11.2需求分析的標準21.3功能性分析21.4 設計目標21.5 系統整體結構31.6 開發工具介紹32 系統設計42.1 系統設計的原則42.2 系統設計的方法43 硬件系統的詳細設計43.1 鍵盤輸入模塊43.2 紅外控制系統模塊53.3 紅外接收處理器電路93.4 液晶顯示模塊114 軟件系統設計144.1 鍵盤掃描的流程圖154.2 定時器的流程圖154.3 主程序的流程圖154.4 主

7、程序的編寫165 結束語39參考文獻40 智能紅外遙控暖風機設計前言 本文利用高溫超導熱霸做制熱材料,利用80C51單片機實現主要電路的處理和控制。此外還利用各種智能芯片完成相應的輔助功能,應用高級C語言編程軟件,完成單片機的事務處理和中斷控制。應用軟件的設計減少硬件的設計的復雜度和減少開發系統的成本。本文應用硬件和軟件的有機結合,實現暖風機的智能控制。溫度的采集和處理,液晶顯示的控制,紅外遙控的控制實現和鍵盤的輸入是本文主要研究的內容。 1 系統分析1.1 需求分析為了開發出真正滿足用戶需求的軟件產品,首先必須知道用戶的需求。對所開發的項目需求進行深入的理解是開發工作獲得成功的前提條件。需求

8、分析的任務還不是確定系統完成它的工作,而是僅僅確定系統必須完成哪些工作,也就是對目標系統提出完整,準確,清晰,具體的要求。需求分析是整個項目開發最重要的步驟。需求分析如果做得不到位,以后的開發進程必定受到影響,甚至出現返工或沒有在計劃的時間內完成開發的任務。1.2 需求分析的標準對于硬件的開發和設計,首先要做的工作就是做好需求分析。開發人員要從實際的情況出發,完全考慮普通用戶的使用習慣和使用的要求,盡量做到所開發的產品能完全滿足用戶的需求。并且使產品盡可能地超出現有的同類或延長使用的周期。 對不同的控制對象,硬件設計的具體要求有所不同,但是基本的標準大體是一樣的: 滿足用戶的要求:硬件設計要滿

9、足用戶的實際要求,使用的方法要符合用戶的使用習慣。 性能需求:指系統要滿足的定時約束,響應時間,信息量,安全性。 可靠性和可用性需求:系統的可靠性與可用性密切相關,它量化用戶的使用程度1.3 功能性分析紅外遙控液晶暖風機系統主要的功能是在一定的范圍實現內無線控制暖風機,并且將溫度的數值實時地顯示在液晶屏幕上。使暖風機可以完成如下的功能:電熱絲加熱。暖風機分檔加熱,可以滿足復雜環境的暖風熱度的要求。吹風/散熱風扇。開機后風扇將電熱絲加熱的空氣吹出,形成熱風;關機時電熱絲停止加熱,30S后停止風扇,防止局部受熱,設備老化。 可控制搖頭。控制暖風機的搖頭,可以自主地對各個方向吹暖風。 液晶實時顯示溫

10、度。利用液晶顯示屏顯示實時工作的暖風機吹風溫度。 可以遙控。利用紅外遙控器讀對暖風機進行遙控控制。 LED報警。當溫度高于某個設定值時候,LED報警啟動。1.4 設計目標 紅外遙控液晶暖風機系統是具有實際使用功能的家庭日常用品設備。系統的實際目標是利用現代的語言開發技術,利用現在集成芯片技術的廣泛應用。利用軟件的輔助開發,降低硬件設計的難度,節約開發產品的勞動力,降低產品的開發成本和減少開發周期。使產品具有更大的市場價值。本系統應達到以下目標: 在硬件方面:硬件設計是系統開發比較重要的步驟。硬件設計的合理科學對軟件的編寫起到促進作用。如果硬件設計順利科學地完成,那么軟件的調試必將大大減少時間。

11、硬件設計主要還是考慮在芯片的選型方面。根據系統的要求,選擇滿足要求的芯片。此外盡量選擇自己熟知的芯片。硬件的設計一定達到簡化電路的設計。盡量降低系統的復雜度。對整個流程進行合理的,有效的劃分,使系統的后期維護更加方便。 在軟件方面:軟件的編寫一定實現模塊化的編程。開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊的獨立性。換句話說,希望設計這樣的軟件結構,使得每個模塊完成一個獨立的特定的字功能,并且和其他的模塊之間的關系很簡單。這就是軟件設計的最終目標,也是軟件設計所能達到的質量要求。其外,要求運用現在流行的開發語言,保證軟件的可讀性和可維護性。1.5 系統整體結構圖1

12、.5-1 系統整體結構示意圖1.6 開發工具介紹對于紅外遙控液晶暖風機系統,開發的工具的選取同樣的重要。首先應考慮軟件的調式環境和硬件的電路設計和仿真。本系統軟件的開發使用的工具有Keil uvision2集成開發環境。uvision 1 是16位的軟件,連接實際上是DOS命令行的,不能在windows NT和windows 2000上使用。后來KEIL 公司推出新的32位的軟件,可以運行在windows NT,windows 2000,windows ME,windows 9X。uvision2 IDE基于Windows的開發平臺,包含一個高效的編輯器,一個項目管理器和一個MAKE工具。uv

13、ision2支持所有的Keil C51工具,包含C編譯器,宏匯編器,連接/定位器,目標代碼到HEX轉換器。Keil C51編譯器具有如下一些優越性:C51源程序經過優化編譯后的代碼,其效率接近與匯編語言生成的代碼.支持851系列單片機,提供對所有外圍硬件部件的操作。無論在有無工作寄存器區轉換的情況下,C51都能產生快速中斷代碼。支持多種衍生單片機產品上的雙數據指針及高速算術單。能夠在整個應用程序中執行全局寄存器優化。所有應用工具均可產生詳細警告信息和錯誤信息,幫助用戶處理難以尋找的問題。支持再入功能和寄存器的獨立代碼,便于中斷服務程序和多任務應用程序的執行。采用分組方式執行代碼分組和調式,用戶

14、程序代碼可以輕松突破64K空間的限制。本系統還使用Easy 51Pro編輯器。使用串口通訊,芯片自動判別,編程過程中的擦除、燒寫、校驗各種操作完全由編程器上的監控芯片89C51控制,不受PC配置及其主頻的影響,因此燒寫成功率高可以達到100,燒寫速度很快并且燒寫速度和微機的檔次無關。2.采用57600高速波特率進行數據傳送,編程速度可以和一般并行編程器相媲美,經測試,燒寫一片4K ROM的AT89C51僅需要9.5S,而讀取和校驗僅需要3.5S4.軟件界面友好,菜單、工具欄、快捷鍵齊全,全中文操作,提供加密功能,可以保護您的創作產權。5.功能完善,具有編程、讀取、校驗、空檢查、擦除、加密等系列

15、功能;6.40pin和20pin鎖緊插座,所有器件全部以第一腳對齊,無附加跳線,對于DIP封裝芯片無需任何適配器;7.采用優質鎖緊插座,和接觸不良等問題徹底說再見,可燒寫40腳單片機芯片和20腳單片機芯片8.改進的燒寫深度確保每一片C51系列芯片的反復燒寫次數都能達到1000以上!內部數據至少保存10年。9.因為采用了9針傳口通訊隨時隨地想燒就燒。 此外還使用到單片機開發板和PROTEL SE 等軟件。在整個系統開發過程中,使用的應用軟件很多,都是專業性比較強的應用軟件。對自己的學習,對自己的知識的積累很大的幫助。2 系統設計2.1 系統設計的原則為了使開發的系統在后期階段易于維護,并且安全可

16、靠,需要遵循一系列的硬件設計原則,才能保障系統的正常完成預期的開發目標。 適應性原則:適應性是系統開發必須遵循的最基本原則。包括兩方面,一是要適應用戶的要求,二是要主動適應現在的技術環境。 遞進原則:紅外遙控液晶暖風機系統是復雜的系統設計,因此只能先做一個總體規劃,然后分步實施,遞進發展。 節約原則:紅外遙控液晶暖風機系統設計以降低硬件成本為目標,發揮硬件和軟件相結合的設計理念。 可靠性原則:系統開發始終堅持可靠性的原則,開發出性能穩定的硬件系統和軟件系統。2.2 系統設計的方法系統設計主要分為硬件系統設計和軟件系統設計。硬件系統是設計涉及到硬件電路的設計和優化,電器電路的設計一定遵循系統設計

17、原則。選擇滿足功能要求的硬件部件。硬件系統的設計是模塊化設計,最終將各個模塊聯合在一起,構成一個完整的電路。3 硬件系統的詳細設計3.1 鍵盤輸入模塊在單片機應用系統中,通常應具有人機對話的功能,能隨時發出各種控制命令和數字輸入以及報告應用系統的運行狀態與運行的結果。數據或命令的輸入方式有多種,有紅外掃描輸入,語言輸入,光電輸入等的個。其中鍵盤輸入是應用最廣泛的一種。鍵盤輸入方便快捷,而且價格低廉。鍵盤可以分為獨立式和矩陣式兩類,每一類按其編碼的方法又分為編碼和非編碼兩類。單片機系統中普遍使用非編碼式鍵盤, 這類鍵盤主要解決以下幾個問題: 鍵的識別; 如何消除鍵的抖動; 鍵的保護。 獨立式按鍵

18、接口電路配置靈活,軟件結構簡單,但每個按鍵必須占一根I/O口線。在按鍵數較多時,I/O線浪費較大,故只在按鍵數量不多時才采用這種按鍵電路。在此電路中按鍵輸入部采用低電平有效,上拉電阻保證了按鍵斷開時,I/O口線有確定的高電平。當I/O口內部有上拉電阻時,外電路可以不配置上拉電阻。 通過I/O口連接。將每個按鍵的一端接到單片機的I/O口,另一端接地,這是最簡單的方法,如下圖所示是實驗板上按鍵的接法,四個按鍵分別接到P3.0 、P3.1、P3.2和P3.3,并在P1口接有8個發光二極管。對于這種鍵程序可以采用不斷查詢的方法,功能就是:檢測是否有鍵閉合,如有鍵閉合,則去除鍵抖動,判斷鍵號并轉入相應的

19、鍵處理。 采用中斷方式:各個按鍵都接到一個與非上,當有任何一個按鍵按下時,都會使與門輸出為低電平,從而引起單片機的中斷,它的好處是不用在主程序中不斷地循環查詢,如果有鍵按下,單片機再去做相應的處理。 在鍵盤中的按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口就可以構成4*4=16個按鍵,比直接將端口線用于鍵盤多出了一倍容量,而且線數越多區別越明顯。比如多加一條線就可以構成20個按鍵。所以按鍵較多時候,采用矩陣方法做鍵盤是合理的。 矩陣式結構的鍵盤顯然要復雜一些,識別也要復雜一些。P1

20、.4P1.7做輸出線,P1.1P1.3做輸入線。列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時候,所有的輸出端都是高電平,代表無按鍵按下。行線輸出是低電平,一旦有按鍵按下,輸入線就會被拉低,這樣,通過讀入線的狀態就可以知道是否有按鍵被按下。 行掃描法又稱為逐行掃描查詢法,是一種最常用的按鍵識別方法,如流程如下。 判斷鍵盤中有無按鍵按下:將全部行線P1.1P1.3置低電平,然后檢測列線的餓狀態。只要有一列電平為低,則表示鍵盤中鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有的列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置:在確認有按鍵按下時候,即可進入確定

21、具體閉合鍵的過程。其方法是依次將行線置為低電平,即在置某根行線為低電平,其他線為高電平。在確定某根行線位置為低電平后,在逐行檢測列線的電平狀態。若某列為低,則該列線與置為低電平線交叉處的按鍵就是閉合的按鍵。 本系統要求有6個按鍵輸入,由于輸入按鍵少,所以選擇獨立式和矩陣式相差無幾。考慮在實現時候軟件設計的復雜度,本系統運用獨立式的鍵盤輸入方式。3.2 紅外控制系統模塊 紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之后,在錄音機、音響設備、空凋機以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業設備中,在高壓

22、、輻射、有毒氣體、粉塵等環境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。 通用紅外遙控系統由發射和接收兩大部分組成。應用編/解碼專用集成電路芯片來進行控制操作。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。圖3.2-1 紅外線遙控系統框圖  紅外控制系統中的紅外發送電路采用NB9148,它是用作通用紅外遙控發射器的CMOS大規模集成電路,與NB9149相配完成10個功能控制;與NB9159相配完成18個功能控制;可發射的指令達75個,其中63個是完成連續的指令,可多鍵組合;12個單發指令,只能單鍵使用。內部結構主要部分功能

23、描述: 振蕩電路 內含CMOS反相器及自偏置電阻,外接陶瓷振蕩器或LC串聯諧振回路即可組成振蕩器。當振蕩頻率設定為455KHz時,則發射載波頻率為38KHz。只有當按鍵操作時才會產生振蕩,以次降低功耗。 鍵輸入 通過K1K6輸入和T1T3的時序輸出可連接6*3鍵盤矩陣,在T1這列內的6個鍵可以任意多鍵組合成63個狀態,輸出連續發射處于T2和T3這兩列的鍵均只能單鍵使用,且每按一次只能發射一組控制脈沖。若一列上的數鍵同時按下,其優先次序為K1,K2,K3,K4,K5,K6。在同一K線上的鍵多鍵功能,若同時按下數鍵,其優先次序為T1,T2,T3。    &#

24、160;   圖3.2-2 鍵輸入示意圖 發送命令的格式 發送命令由12位組成,其中C1C3是用戶碼,用來確定不同的模式。每種組合有3個狀態:01。10。11。而00狀態不用。H,S1和S2是代表連續發送或單次發送的碼,D1D6是狀態發送的數據瑪。發送命令由12位碼組成。其中C1-C3是用戶碼,用來確定不同的模式,C1和C2的組合與接收電路NB9150相配,C1和C2與接收電路NB9149相配。每種組合有三個狀態:01、10和11,而00狀態不用。 “0”與“1”的識別正脈沖的占空比為1/4時,代表“0”,正脈沖的占空比為3/4時,代表“1”。 圖3.2-3 正脈沖的示意圖

25、 無論是0還是1被發射時,正脈沖都是被調制在38KHz的,載波的占空比為1/3。這樣有利于減少功耗。 圖3.2-4 正脈沖示意圖 基本發送波形 每發送周期按C1,C2,C3,H.1,S1,S2, D1,D2,D3,D4,D5,D6的次序串行發送,總長度為48a,其中a等于每個碼期的1/4。 圖3.2-5 波形序列示意圖 3.3 紅外接收處理器電路 控制系統不采用與其配套的接收電路,采用通用的紅外接受器接受到調制后的方波脈沖序列,然后由單片機處理并進行相應的控制。單片機的電源采用5V,而由紅外接受器接收到的由NB9148發出的經過檢波去除8KHz載波后的方波信號的高電平為5V,正好相匹配。 如下

26、圖所示,由發光接收元件接收的信號經放大,檢波去除38KHZ載波到信號輸入端。接收信號輸入電路內含斯密特觸發器對接信號進行整形。圖3.3-1 元件連接示意圖 接收信號編碼的判斷根據9148的編碼規則,從編碼表中可以看出,接收到的12位編碼中,最后6位只有一個。每個循環組成一個編碼組,這樣每組有6個指令碼,第一組16是連續發送的編碼,712是第一組單發的編碼,1318則是第二組單發編碼。具體實施控制的其他外圍電路可以根據需要添加。 光電放大電路 光電放大電路如圖所示圖3.3-2 光電放大電路 振蕩電路 發射信號的時間檢測和內部工作時鐘都由此振蕩電路決定。應用NB9149時,只需要簡單地在單端振蕩端

27、并聯R和C到地,即可產生穩定的振蕩。振蕩電路如下圖所示 圖3.3-3 振蕩電路示意圖3.4 液晶顯示模塊液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就顯示黑色,這樣即可顯示出圖形。液晶顯示器具有厚度薄,適于大規模集成電路直接驅動,易于顯示全彩色顯示的特點,目前已經被廣泛應用在各個領域。 線段的顯示點陣圖形式液晶由M*N個顯示單元組成,假設LCD顯示屏有64行,128列,每8列對應一個1字節的8位,即每行由16個字節,共128個點組成,屏上64*16個顯示單元與顯示RAW區1024字節相對應,每一字節的內容和顯示屏上相對應位置的明暗對應。例如屏的第一行的亮暗由RAW區的

28、000H00FH的16字節的內容決定,當(000)=FFH時,則屏上的左上角顯示一條亮線,長度為8個點;當(3FGH)=FFH時,則屏上的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00E)=FFH,(00FH)=00H時,則在屏的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。 在小規模點陣液晶顯示模塊上使用液晶顯示驅動控制器組成液晶顯示驅動控制系統是非常有益的。這使得液晶顯示模塊的硬件電路簡單化,從而降低模塊的成本。但是這也是同時提高了對軟件功能的要求,也就是說,許多顯示功能如光標,字符庫,閃爍等

29、都需要由軟件編制而成。HD61203和HD61202就是這類液晶顯示驅動控制器件套件。他們必須配套使用,通常有12864和19264兩種規格。HD61202的電特性: HD61202是帶顯示存儲器的圖形液晶顯示列驅動控制器,它的特性是內置64*64位的顯示存儲器,顯示屏上各個象素的顯示狀態與顯示存儲器的各位數據一一對應,顯示存儲器的數據直接作為圖形顯示的驅動信號。顯示數據為“1”,相應的像素點顯示;顯示數據“0”相應的象素就不顯示。同時HD61202配備了一套顯示存儲器的管理電路和與計算機接口電路,允許計算機直接訪問顯示存儲器,也就是說HD61202可以直接與計算機的總線連接。但是HD6120

30、2不能獨立工作,因為它本身不能生成顯示時序,所以HD61202需要與相應的帶振蕩器和顯示時序的行驅動器配套使用才能形成一個完整的液晶驅動和控制系統。這個系統將省去計算機與驅動器之間的液晶顯示控制器,由此組成液晶顯示模塊的驅動和控制必然大大降低模塊的成本。 12864液晶模塊共有兩片HD61202作為列驅動器。CSA跟HD61202(1)的CS1相連,CSB跟HD61202(2)的CS1相連,因此CSA,CSB選通組合信號CSACSB=01選通(1),CSACSB=10選通(2)。在12864中,兩片HD61202的ADC均接高電平,RST也接高電平,這樣在使用12864時就不必考慮著兩個引腳的

31、作用。內置的HD61202圖形液晶顯示模塊與單片機的連接方式有兩種,一種為直接訪問方式,一種為間接訪問方式 直接訪問方式 硬件電路直接訪問方式就是將液晶顯示模塊的接口作為存儲器或I/O設備直接掛在單片機總線上,單片機以訪問存儲器或I/O設備的方式操作液晶顯示模塊的工作。直接訪問方式的接口實用電路如圖所示。在圖中,單片機80C51通過高位地址A11(P2。3)控制CSB,A10(P2.2)控制CSA,以選通液晶顯示屏上各個區的控制器HD61202;同時80C51用地址A9(P2。1)作為R/W信號控制數據總線的數據流向;用地址A8(P2。0)作為D/I信號控制寄存器的選擇;E信號由80C51的P

32、2。7產生。這樣就實現了單片機對內置HD61202圖形液晶顯示模塊的電路連接。電位器用于顯示對比度高的調節。 間接方式訪問 硬件電路:間接控制方式是單片機通過自身的或系統中 的并行接口與液晶顯示模塊連接,如8031的P1和P3口或8255等并行接口芯片以及像74LS373類鎖存器等。單片機通過對這些接口的操作,以達到對液晶顯示模塊的控制。這種方式的特點是電路簡單,控制時序由軟件實現,可以實現高速單片機與液晶顯示模塊的接口。實用電路如圖所示。在圖中電路中以8031的P1口作為數據口,P3.0(RxD)為CSA, P3.1(TxD)為CSB, P3.2(INT0) 為D/I ,P3.3()INT1

33、)為R/W 和P3.4(T0)為E等信號。 由于在BUSY和REST狀態時,除讀指令外,其他指令均不產生作用,因此在程序中,對HD61202進行操作前都要“判忙”,以確定是否可以對液晶進行操作。初始化部分,先送先顯示指令,關閉所有顯示,然后開顯示指令,為顯示做準備,最后設置起始行。清屏部分,先進行頁地址設計,之后進行列地址操作,分別清除左右半屏,即對RAM進行擦除操作。3.5 溫度檢測與控制 由DALLAS半導體公司生產的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業、民用、軍事等領域的溫度測量及控制儀器、測控系統和大型設備中。它具有體積小,接口方便

34、,傳輸距離遠等特點。 數字溫度傳感器DS18B20的測溫范圍為一55+125 C,精度為05 C,測量的溫度值用9 12位數字表示,最大轉換時間為750 ms,溫度超標報警的上、下限值,DS18B20的轉換分辨率均可由用戶設定,并能長期保存。DS18B20的另一特點是在沒有外部電源下操作的能力,電源由總線為高電平時DQ腳上的上拉電阻提供(寄生供電模式),此時VCC腳接地。也可用傳統方式供電,即將外部電源接在VCC腳上即可。CPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數據操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協議。

35、如主機控制DS18B20完成溫度轉換這一過程,根據DS18B20的通訊協議,須經三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發送一條ROM指令,最后發送RAM指令,這樣才能對DS18B20進行預定的操作。 溫度檢測處理芯片有上圖兩種封裝模式,本文應用前者封裝模式。3.6 繼電器控制電路 繼電器控制電路包括電熱絲開關和暖風機功能繼電器控制電路。如圖3.6-1所示:圖3.6-1 繼電器控制電路示意圖 暖風機功能繼電器控制電路的基本組成包括:應用兩組繼電器,分別控制風扇的轉動和搖頭控制開關。三極管為NPN型三極管,其集電極與繼電器的開關相連,提供開啟繼電器必須的電流。基極與單片機

36、的管腳相連,因此,繼電器的開啟電流實際是由單片機控制的。4 軟件系統設計系統的軟件設計包括紅外信號的處理程序,鍵盤的輸入處理程序,溫度的采集和處理程序還有液晶顯示的驅動程序。軟件系統開發的基本流程包括系統的功能分析,功能模塊的劃分,流程圖和最終的代碼編寫。4.1鍵盤掃描的流程圖 圖 4.1-1 鍵盤掃描的流程圖4.2 定時器的流程圖 圖4.2-1 定時器的流程圖4.3主程序的流程圖 圖4.3-1 主程序的流程圖 4.4 主程序的編寫#include<reg51.h>#include<intrins.h>sbit RST=P20;sbit CLK=P21;sbit DQ=

37、P22;sbit TSOR=P23;sbit ALERT=P24;sbit RS=P27;sbit RW=P26;sbit EN=P25;static unsihned char temp1,temp2;/溫度值的整數部分,小數部分static unsihned char pos,posset;/數字電位器電位值,設定值static unsihned char min,sec;/分鐘,秒static unsihned char count;/ 中斷計時T0static unsihned char minset;/設定的分鐘數static unsihned char status1,status

38、2;/狀態標志bit stop,timeover;/定時停止,結束static char line0=”00:00”;static char line1=”c w”;#define REGINT 0x06 /紅外線間隔Unsighned char bdata Message; /定義存放消息標志的可位尋址字節sbit RedMsg= Message0; /紅外遙控消息sbit RedRead= Message1; /位接收過程標志sbit RedBit= Message2; /接收到的位值sbit RSend= Message3; /紅外接收中重新發送標志unsighed char bdata

39、 RedDatal,RedDataH;/*存放遙控的字數據,低4位存放接收到的位的位移,高12位從低到高存放接收到的位*/ /*RedDataH 字節低6位代表指令,只有一個1,C1C3是用戶碼,H表示連續,S1,S2分別表示第一,第二組單發*/sbit RedData0=RedDataL4; /C1sbit RedData1=RedDataL5; /C2sbit RedData2=RedDataL6; /C3sbit RedData3=RedDataL7; /Hsbit RedData11=RedDataH0; /D6sbit RedData10=RedDataH1 /D5sbit RedD

40、ata9=RedDataH2;/D4sbit RedData8=RedDataH3;/D3sbit RedData7=RedDataH4;/D2sbit RedData6=RedDataH5;/D1sbit RedData5=RedDataH6;/S2sbit RedData4=RedDataH7;/S1unsighned char bdata State; /狀態字節sbit RedControl=State6; /遙控狀態unsighned char data RedCon,Timer;unsighned int nTimer; /定時整形參數void initinterupt(); vo

41、id keyboarddelay(); /鍵盤輸入函數/*LCD驅動函數*/void delayl(); void delays();void writecommand(unsigned char c);void writedata(unsigned char c);void showchar(unsigned char pos,unsigned char c);void showstring(unsigned char line,char *ptr);void initlcd();/*鍵盤程序*/unsigned char getkey();/*溫度傳感器驅動*/void delay15()

42、;void delay60();void delay100ms();void write0ts();void write1ts();bit readts();void resets();void witebts(unsigned char byte);unsigned char readbts();void gettempts();/*主程序*/void main()char code str1=“HELLO WORLD!”char code str2=“2007-5-31”unsigned char I;sp=0x50;alert=0;tsor=1;delayl();initlcd();de

43、layl();showstring(0,str1);showstring(1,str2);for(i=0;i<15;i+)delay100ms();initinterupt();minset=10;posset=0;min=minset;pos=posset;sec=0;count=0;P1=0xF0;satatus1=0;status2=0;stop=1;timeover=0;changepos(0,255-pos,255-pos);inits();while(1)gettempts();line10=0x20;i=temp1;if(i>9)alert=1;if(i>9)l

44、ine10=0x31;i-=100;line11=i/10+0x30;line2=i%10+0x30;line14=temp2+0x30;of(timeover)for(;pos>0;pos-)changepos(0,255-pos,255-pos);nop();nop();timeover=0;posset=0;if(pos>posset)for(;pos>posset;pos-)changepos(0,255-pos,255-pos);nop();nop();else if(pos<posset)for(;pos<posset;pos+)changepos(0

45、,255-pos,255-pos);nop();nop();changepos(0,255-pos,255-pos);i=pos;line19=0x20;if(i>99)line19=i/100+0x30;i=i%100;line110=i/10+0x30;line111=i/10+0x30;showstring(1,line1);line05=min/10+0x30;line06=min%10+0x30;line08=sec%10+0x30;line09=sec%10+0x30;showstring (0,line0);delay100ms();void initinterupt()T

46、OMD=0x21;TL1=0xFD;TH1=0xFD;PX0=1;EA=1;ES=1;PCON=0;TR1=1;SCON=0X50;TL0=0x00;TH0=0x4C;EX0=1;IT0=1;void kayboarddelay()unsigned char I,j;i=0x40;j=0xFF;while(i-)while(j-);int0_process() interrupt 0 using 0unsigned char keyunsigned char keyboard=”TP;unsigned char step3=1,2,5;EA=0;key=getkey();switch(key)

47、case 0;stop=!stop;min=minset;sec=0;break;case 1:case 2:case 3:if (stop)minset+=stepkey-1;if(minset>60)minset=0;min=minset;break;case 5;case 6;case 7;if (stop)minset+=stepkey-5;if(minset>60)minset=0;min=minset;break;case 9:case 10:case 11:posset+=stepkey-9;break;case13:case 14:case 15:posset-=s

48、tepkey-123;break;default;break;TR0=!stop;keyboarddelay();P1=0Xf0;EA=1;timer0_process() interrupt 1 using 0EA=0;TR0=0;TL0=0x00;TH0=0x4C;count+;if (count=20)if(sec=0)if(min=0)timeover=1;elsemin-;sec=59;else sec-;count=0;TR0=1;EA=1;void delay()unsigned char I,j;i=0Xf0;j=0xFF;while(i-)while(j-);void del

49、ays()unsigned char i;i=0x1F;while(i-);void writecommand(unsigned char c)delays();EN=0;RS=0;RS=0;RW=0;nop();EN=1;P0=C;EN=0;void writedata(unsigned char c)delays();EN=0;RS=1;RW=0;nop();EN=1;P0=C;EN=0;RS=0;void showcahr(unsigned char pos,unsigned char c)unsigned char p;if(pos>=0x10)p=pos+0Xb0;elsep=

50、pos+0x80;writecommand(p);writedata(c);void showstring(unsigned char line ,char *ptr)unsigned char i,j;l=line<<4;for(i=0;i<16;i+)showchar(i+;*(ptr+i);void initlcd()delayl();writecommand(0x38);writecommand(0x38);writecommand(0x06);writecommand(0x0c);writecommand(0x01);writecommand(0x80);unsig

51、ned char getkey()unsigned k,t,i,j;k=P1;k=k&0xF0;i=0;while(k&0x01)&&i<4)i+;k=k>>1;k=0x01;j=0;while(j<4)P1=0Xffk;nop();t=p1;t=t0Xff;t=t&0xf0;if(t)break;j+;k=k<<1;k=j*4+i;return k;void changepos(bit sel,unsigned char pos,unsigned char pos2)unsigned char i;RST=0;DQ=

52、0;CLK=0;RST=1;DQ=sel;nop();CLK=1;nop();CLK=0;for(i=0;i<8;i+)if(pos1&0x80)DQ=1;elseDQ=0;nop();CLK=1;nop();CLK=0;pos1=pos1<<1;for(i=0;i<8;i+)if(pos2&0x80)DQ=1;elseDQ=0;nop();CLK=1;nop();CLK=0;pos2=pos2<<1;RST=0;void delay100ms()unsigned char i,j,k;for(i=0;i<8;i+)for(j=0;j&

53、lt;25;j+)for(k=0;k<250;k+);void delay15()unsigned char i;for(i=0;i<8;i+);void delay60()unsigned char i;for(i=0;i<30;i+);void write0ts()TSOR=1;TSOR=0;delay15();delay15();delay15();dealy15();TSOR=1;nop();nop();void write1ts()TSOR=1;TSOR=0;nop();nop();nop();nop();nop();nop();delay15();delay15();delay15();bit readts()bit b;TSOR=1;TSOR=0;nop();nop();nop();nop();TSOR=1;nop();nop(

溫馨提示

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

評論

0/150

提交評論