溫度采集智能家居熱水器畢業(yè)設計_第1頁
溫度采集智能家居熱水器畢業(yè)設計_第2頁
溫度采集智能家居熱水器畢業(yè)設計_第3頁
溫度采集智能家居熱水器畢業(yè)設計_第4頁
溫度采集智能家居熱水器畢業(yè)設計_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

{管理信息化物聯(lián)網}溫度采集智能家居熱水器畢業(yè)設計溫度采集智能家居熱水器學號系別指導教師(職稱)完成時間2016年3月20日溫度采集智能家居熱水器摘要隨著社會的發(fā)展,人類科技的進步,各行各業(yè)都在使自己的產品智能化、數字化,精品文檔放心下載因老式的熱水器使用煤氣或天然氣對水進行燃燒加熱,用手動的方式調節(jié)溫度,不精品文檔放心下載僅不能夠精確的確定使用者需要的水溫,而且還存在一定的危險性。感謝閱讀電熱水器是一種可供浴室、洗手間及廚房使用的家用電器,隨著人們生活質量的提謝謝閱讀高,現(xiàn)代的家用電熱水器已經摒棄了以前的做法,而采用一種更加精確、安全的實感謝閱讀施方案。C語言對單片機編程有諸多優(yōu)點,例如:便于移植、句法檢查時錯誤少、堅固性好、謝謝閱讀頭文件種類諸多,能夠方便快捷使用各種函數等。本文采用STC89C52單片機作為謝謝閱讀控制器,使用C語言編寫程序,設計了一款智能家用電熱水器。使用按鍵鍵盤設定感謝閱讀溫度,溫度可以精確到0.1攝氏度,并使用LED燈顯示,能夠精確提供用戶所需溫感謝閱讀II溫度采集智能家居熱水器度的溫水。采用DS18B20采集溫度,使用LED燈顯示,精確的顯示出采集的水溫。謝謝閱讀當所需溫度高于當前采集的水溫時,使用繼電器控制外接加熱源,當所需溫度低于精品文檔放心下載當前采集的水溫時,繼電器斷開不加熱。當所需溫度高于采集溫度時,繼電器吸合謝謝閱讀開始加熱?;緦崿F(xiàn)了智能控制功能。關鍵字:18B20、STC89C52、熱水器ABSTRACTWiththedevelopmentofsociety,theprogressofhumanscienceandtechnology,inal精品文檔放心下載lwalksoflifetomaketheirproductsintelligent,digital,becausethewaterheate精品文檔放心下載rusingold-fashionedgasornaturalgasisburnedtoheatwater,adjustthetemperat精品文檔放心下載uremanually,notonlycantheuserneedstobeaccuratelydetermined,andthereisso謝謝閱讀merisk.Electricwaterheaterisakindofhouseholdappliancesforbathroomandkitchen,re謝謝閱讀stroomuse,alongwiththeimprovementofpeople'slivingquality,householdelect感謝閱讀ricwaterheatermodernhaverejectedthepreviouspractice,andbyusingamoreaccu謝謝閱讀rate,safeimplementationplan.感謝閱讀TheClanguagehasmanyadvantages,suchas:microputerprogrammingfortransplant感謝閱讀ation,syntaxcheckerrorless,robust,headfiletypemany,canbeconvenienttouse謝謝閱讀III溫度采集智能家居熱水器avarietyoffunctions.ThispaperadoptsSTC89C52MCUasthecontroller,theuseofC感謝閱讀programminglanguage,designedaintelligenthomeelectricwaterheater.Usethek精品文檔放心下載eyboardtosetthetemperature,thetemperaturecanbeaccurateto0.1degreesCelsi精品文檔放心下載us,andtheuseofLEDlightsdisplay,canaccuratelyprovidetherequiredtemperatu精品文檔放心下載reofwarmwater.TheDS18B20collectiontemperature,theuseofLEDlightsdisplay,謝謝閱讀displaythetemperaturepreciseacquisition.Whentherequiredtemperatureishig感謝閱讀herthantheacquisitionoftemperature,usetherelaytocontroltheexternalheati謝謝閱讀ngsource,whentherequiredtemperatureislowerthanthecurrentcollectingwater,r精品文檔放心下載elayoffwithoutheating.Whentherequiredtemperatureishigherthantheacquisit精品文檔放心下載ionoftemperature,relaystartsheating.Thebasicrealizationoftheintelligent精品文檔放心下載controlfunction.Keywords:18B20、STC89C52、目錄1引言12設計內容及性能指標13系統(tǒng)方案比較、設計與論證23.1主控制器模塊2IV溫度采集智能家居熱水器3.2溫度測量23.3設置溫度33.4顯示模塊43.5電源選取44系統(tǒng)器件選擇55硬件實現(xiàn)及單元電路設計65.1主控制模塊65.2顯示模塊電路65.3數碼管顯示驅動電路75.4溫度傳感器(DS18B20)電路75.4.1DS18B20基本介紹75.4.2DS18B20控制方法85.4.3DS18B20供電方式85.5繼電器加熱控制電路96系統(tǒng)軟件設計106.1程序結構分析106.2系統(tǒng)程序流圖10V溫度采集智能家居熱水器6.2.1DS18B20初始化程序流程圖126.2.2讀溫度子程序流程圖126.3程序編寫與調試136.6.1Keil編譯器軟件簡介136.3.2使用Keil軟件建立一個工程136.3.3使用Debug進行調試177系統(tǒng)的安裝與調試197.1安裝步驟197.2電路的調試197.3本章小結19結論19參考文獻20附錄1整體電路原理圖21附錄2部分源程序22VI溫度采集智能家居熱水器1引言感謝閱讀謝謝閱讀水器造成的爆炸、中毒等事故也屢有所聞。消費者對燃氣熱水器懷有一定的懼怕感,謝謝閱讀所以燃氣熱水器漸漸淡出市場。而智能電熱水器越來越受到人們的認可。感謝閱讀電熱水器在中國的歷史已經有10多年了,期間也經歷了數次起落的過程,在上個世謝謝閱讀謝謝閱讀謝謝閱讀感謝閱讀感謝閱讀謝謝閱讀精品文檔放心下載我國在對電熱水器水溫水位系統(tǒng)的研究已取得很大的成就,并在不斷地完善之中。精品文檔放心下載感謝閱讀謝謝閱讀謝謝閱讀感謝閱讀測器是以STC89C52單片機作為主控制元件來能實現(xiàn)熱水器里的水溫顯示在數碼管。精品文檔放心下載更進一步的采用繼電器實現(xiàn)自動控制加熱裝置,是單片機應用在工業(yè)、農業(yè)、國防、感謝閱讀精品文檔放心下載精品文檔放心下載溫度采集智能家居熱水器操作也是不可缺少的。在本設計中,研究智能電熱水器的水溫檢測器非常有意義。精品文檔放心下載2設計內容及性能指標本設計采用51單片機+DS18B20溫度傳感器+數碼管顯示+繼電器+功能按鍵組成。謝謝閱讀DS18B20感謝閱讀精品文檔放心下載精品文檔放心下載精品文檔放心下載測精確到0.1EEPOM精品文檔放心下載有連加、減功能。3系統(tǒng)方案比較、設計與論證謝謝閱讀系統(tǒng)功能的方案。3.1主控制器模塊方案1:采用可編程邏輯器件CPLD作為控制器。CPLD謝謝閱讀密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進行功能擴展。采用并行的輸入輸謝謝閱讀謝謝閱讀謝謝閱讀度考慮我們放棄了此方案。方案2:溫度采集智能家居熱水器采用STC89C52單片機作為整個系統(tǒng)的核心,用其控制水溫測量控制系統(tǒng),以實現(xiàn)其感謝閱讀謝謝閱讀——謝謝閱讀謝謝閱讀優(yōu)點。STC89C52I/O謝謝閱讀多達8K,對于本設計也綽綽有余,更可貴的是STC89C52單片機價格非常低廉。感謝閱讀3.2溫度測量方案1:采用數字溫度芯片DS18B20精品文檔放心下載精品文檔放心下載工業(yè)測溫元件,此元件線形較好。在0—100攝氏度時,最大線形偏差小于1攝氏度。謝謝閱讀DS18B20DS18B20和微控制精品文檔放心下載器STC89C52構成的溫度測量裝置,它直接輸出溫度的數字信號,可直接與計算機連接。謝謝閱讀這樣,測溫系統(tǒng)的結構就比較簡單,體積也不大。采用51單片機控制,軟件編程的自精品文檔放心下載謝謝閱讀單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC機通信上傳數據,謝謝閱讀另外STC89C52在工業(yè)控制上也有著廣泛的應用,編程技術及外圍功能電路的配合使精品文檔放心下載用都很成熟。方案2:精品文檔放心下載精品文檔放心下載溫度采集智能家居熱水器精品文檔放心下載A/D精品文檔放心下載A/D精品文檔放心下載精品文檔放心下載精品文檔放心下載的缺點,并且這種設計需要用到A/D轉換電路,感溫電路比較麻煩。精品文檔放心下載圖1熱電偶電路圖感謝閱讀精品文檔放心下載故本次設計采用了方案一。3.3設置溫度方案1:4謝謝閱讀4個感謝閱讀接口。方案2:可采用4*4矩陣鍵盤,該鍵盤需要8個接口,而我們不需這么多鍵。謝謝閱讀綜上所述,我們選擇第一種方案。3.4顯示模塊方案1:精品文檔放心下載溫度采集智能家居熱水器廣泛應用。方案2:用LCDLCD精品文檔放心下載謝謝閱讀內容,而且LCD液晶價格貴,因此我們放棄了此方案。精品文檔放心下載綜上所述我們選擇方案13.5電源選取由于本系統(tǒng)采用電池供電,我們考慮了如下幾種方案為系統(tǒng)供電。精品文檔放心下載方案1:采用5V蓄電池為系統(tǒng)供電。蓄電池具有較強的電流驅動能力以及穩(wěn)定的電壓輸感謝閱讀感謝閱讀棄了此方案。方案2:采用3節(jié)1.5V干電池共4.5V謝謝閱讀器的工作電壓穩(wěn)定能夠滿足系統(tǒng)的要求,而且電池更換方便。謝謝閱讀綜上所述采用方案24系統(tǒng)器件選擇1.溫度傳感器的選擇謝謝閱讀較多的外部元件支持,且硬件電路復雜,制作成本相對較高。這里采用DALLAS公司感謝閱讀的數字溫度傳感器DS18B20作為測溫元件。溫度采集智能家居熱水器圖2外部封裝形式圖3傳感器電路圖5硬件實現(xiàn)及單元電路設計5.1主控制模塊主控制最系統(tǒng)電路如圖4所示。圖4單片主控電路5.2顯示模塊電路顯示采用四位數碼管顯示,當位選打開時,送入相應的段碼,則相應的數碼管打開,精品文檔放心下載感謝閱讀的位選時,時間間隔低于20ms,從人類視覺的角度上看,就仿佛是全部數碼管同時感謝閱讀顯示的一樣。顯示電路如圖5圖5數碼管顯示5.3數碼管顯示驅動電路三極管8550來驅動4位數碼管,不僅簡單,而且價格便宜。謝謝閱讀圖6驅動電路5.4溫度傳感器(DS18B20)電路5.4.1DS18B20基本介紹DS18B20是美國DALLAS半導體公司推出的第一片支持“一線總線”接口的溫度謝謝閱讀謝謝閱讀直接將溫度轉化成串行數字信號處理器處理。DS18B20進行精確的溫度轉換,I/O線必須保證在溫度轉換期間提供足夠的能量,感謝閱讀由于每個DS18B20在溫度轉換期間工作電流達到1mA感謝閱讀溫度采集智能家居熱水器I/O線上進行多點測溫時,只靠4.7K上拉電阻就無法提供足夠的能量,會造成無法感謝閱讀轉換溫度或溫度誤差極大。謝謝閱讀系統(tǒng)中。并且工作電源VCC必須保證在5V,當電源電壓下降時,寄生電源能夠汲取謝謝閱讀的能量也降低,會使溫度誤差變大。圖7溫度傳感器電路引腳圖5.4.2DS18B20控制方法DS18B20有六條控制命令:溫度轉換44H啟動DS18B20進行溫度轉換謝謝閱讀讀暫存器BEH讀暫存器9個字節(jié)內容寫暫存器4EH將數據寫入暫存器的TH、TL字節(jié)感謝閱讀復制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中感謝閱讀重新調E2RAMB8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)謝謝閱讀讀電源供電方式B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPU精品文檔放心下載5.4.3DS18B20供電方式DS18B20DS18B20的1謝謝閱讀腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示謝謝閱讀DS18B20精品文檔放心下載一個三極管來完成對總線的上拉。本設計采用電源供電方式,P2.2口接單線總線為感謝閱讀保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個上拉電阻和STC89C52謝謝閱讀的P2.2來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D變換操作時,精品文檔放心下載溫度采集智能家居熱水器總線上必須有強的上拉,上拉開啟時間最大為10μs。采用寄生電源供電方式是VDD謝謝閱讀和GND精品文檔放心下載制DS18B20完成溫度轉換必須經過3個步驟:謝謝閱讀初始化。ROM操作指令。存儲器操作指令。5.5繼電器加熱控制電路電路如圖8主要是用來給外部加熱源加熱的。圖8繼電器加熱電路6系統(tǒng)軟件設計6.1程序結構分析3感謝閱讀感謝閱讀感謝閱讀6.2系統(tǒng)程序流圖感謝閱讀謝謝閱讀DS18B20精品文檔放心下載9通過調用讀溫度子程序把存入內存儲中的整數部分與小數部分開分存放在不的的兩個謝謝閱讀溫度采集智能家居熱水器單元中,然后通過調用顯示子程序顯示出來。圖6.2.1DS18B20初始化程序流程圖在DS18B20工作之前需要進行初始化,流程圖如下:感謝閱讀圖10初始化程序流程圖6.2.2讀溫度子程序流程圖讀溫度子程序的主要功能是從DS18B20精品文檔放心下載序流程圖如下:圖11溫度子程序流程圖6.3程序編寫與調試6.6.1Keil編譯器軟件簡介KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),感謝閱讀C謝謝閱讀CKeilC51軟件提供豐富的精品文檔放心下載Windows精品文檔放心下載KeilC51精品文檔放心下載謝謝閱讀勢。下面詳細介紹KeilC51開發(fā)系統(tǒng)各部分功能和使用。感謝閱讀圖15C51工具包整體結構圖KeilC51單片機軟件開發(fā)系統(tǒng)的整體結構C513.1謝謝閱讀中uVision與Ishell分別是C51forWindows和forDOS的集成開發(fā)環(huán)境(IDE),可以感謝閱讀IDE本身或其它感謝閱讀溫度采集智能家居熱水器編輯器編輯CC51及A51編譯器編譯生成目標文件(.OBJ)。感謝閱讀目標文件可由LIB51L51連接定位生成絕對精品文檔放心下載目標文件(.ABS)ABS文件由OH51轉換成標準的HexdScope51或感謝閱讀tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可精品文檔放心下載以直接寫入程序存貯器如EPROM中。6.3.2使用Keil軟件建立一個工程Keil是目前進行51單片機開發(fā)最常用的編譯軟件。關于Keil的使用,有很多的資謝謝閱讀料介紹,這里只介紹其整個編譯過程,在最短時間內開始使用Easy51DP-2開發(fā)板。謝謝閱讀對于KeilKeil謝謝閱讀序,都是以一個工程的形式建立的。一個工程里可以有一個或多個*.c文件和*.h文感謝閱讀件,但只可以有一個main()函數。一般的做法是將包含main()函數的C文件加入到感謝閱讀工程中,其他文件以#include頭文件的形式加到這個C文件里。這樣,在編譯的時謝謝閱讀候,其他的文件會被自動的導入到工程里來。打開Keil軟件后,出現(xiàn)(圖16)所示界面。當然,如果Keil在上次關閉時有打開感謝閱讀的工程,再一次打開時它會自動加載上一次的工程文件。圖16Keil軟件主界面首先點擊Project->NewProject…(Project->OpenProject…為打開一個已經存在謝謝閱讀的工程),如圖17所示。圖17Keil軟件打開新工程界面點開后,在出現(xiàn)的對話框中選擇工程存在路徑,單擊“保存”后,出現(xiàn)(如圖18所精品文檔放心下載示)界面。在此界面上選擇電路板上所用的單片機型號:AtmelSTC89C52(或者是精品文檔放心下載溫度采集智能家居熱水器AT89S52,視開發(fā)板上具體型號而定),單擊“確定”。精品文檔放心下載圖18選擇電路板上所用的單片機型號“是否將8051上電初始化程序添加入工程?如圖19所示,謝謝閱讀這個一般選擇“否”。(關于STARTUP.A51的相關內容可查閱相應資料)精品文檔放心下載圖19是否將8051上電初始化程序添加入工程感謝閱讀這樣,就建立了一個空的51工程。File->New感謝閱讀建立了一個空的文本框?,F(xiàn)在,就可以開始在里面輸入你的代碼了。精品文檔放心下載保存時注意:如果是用C語言寫的程序,則將文本保存成*.c,如果是用匯編寫的程謝謝閱讀序,則將文本存成*.asm。感謝閱讀譯。因為還沒有將程序代碼添加到工程里面去。20ProjectWorkspace精品文檔放心下載里的SourceGroup1上右擊,選擇AddFilestoGroup’SourceGroup1’。在打開的對精品文檔放心下載話框中,選擇剛存的文件路徑和對應的擴展名。這樣,程序就添加進了這個工程。謝謝閱讀圖20添加文件到工程中下一步,就開始編譯剛輸入進去的代碼。點擊工具欄中的按鈕。接著,Keil會打出謝謝閱讀下面的提示:Buildtarget'Target1'assembling...linking...溫度采集智能家居熱水器ProgramSize:data=8.0xdata=0code=100精品文檔放心下載"first"-0Error(s),0Warning(s).精品文檔放心下載“"first"-0Error(s),0Warning(s).”0個錯誤和0精品文檔放心下載個警告。建立工程的時候,默認是不生成HEX文件的,得在編譯做如下設置:單擊,感謝閱讀或者在ProjectWorkspace里Target1上右擊,選擇“OptionsforTarget感謝閱讀‘Target1’”21精品文檔放心下載選框勾上,點“確定”?,F(xiàn)在再點擊重新編譯,系統(tǒng)提示:“creatinghexfilefrom"first"...”。便會在工精品文檔放心下載程所在文件夾里生成HEX文件。圖21生成HEX文件6.3.3使用Debug進行調試Keil有很強大的調試功能,可以顯示C程序的反匯編代碼、可以計算代碼運行的時精品文檔放心下載謝謝閱讀Debug感謝閱讀參看相關書籍資料。圖22調試前設置窗口22Target感謝閱讀不用作修改。設置完成后,單擊,進入調試界面(如圖23所示)。精品文檔放心下載圖23Keil調試界面點擊中對應的工具按鈕則可以開始調試。另外,“View”下的三個工具在調試中會經常用到如.圖24所示,感謝閱讀溫度采集智能家居熱水器“DisassemblyWindow”顯示C“Watch&CallStackWindow”可以謝謝閱讀顯示程序中某一變量的值;“MemoryWindow”可以顯示內存中某一地址的值。謝謝閱讀圖24三個常用的調試工具7系統(tǒng)的安裝與調試7.1安裝步驟1.檢查元件的好壞感謝閱讀謝謝閱讀防止出現(xiàn)錯誤焊件后不便改正。2.放置、焊接各元件精品文檔放心下載感謝閱讀間不要超過10s,注意芯片的安裝方向。7.2電路的調試謝謝閱讀精品文檔放心下載象還有很多就不一一列舉了。7.3本章小結本章的主要內容是電路的測試和調試注意事項溫度采集智能家居熱水器結論本設計采用51單片機+DS18B20溫度傳感器+繼電器加熱+數碼管顯示+功能按鍵組成。感謝閱讀DS18B20感謝閱讀精品文檔放心下載精品文檔放心下載精品文檔放心下載測精確到0.1EEPOM謝謝閱讀有連加、減功能。謝謝閱讀方案正確、可行,各項指標穩(wěn)定、可靠。參考文獻1曹巧媛主編.單片機原理及應用(第二版).北京:電子工業(yè)出版社,2002精品文檔放心下載2全國大學生電子設計競賽組委會編.第五屆全國大學生電子設計競賽獲獎作品選編(2001),北京:精品文檔放心下載北京理工大學出版社,20033何力民編.單片機高級教程.北京:北京航空大學出版社,2000精品文檔放心下載4金發(fā)慶等編.傳感器技術與應用.北京機械工業(yè)出版社,2002感謝閱讀551單片機C感謝閱讀20086譚浩強著.C程序設計.北京:清華大學出版社,2007;精品文檔放心下載7王忠飛,胥芳.MCS-51單片機原理及嵌入式系統(tǒng)應用[M].西安:西安電子科技大學出版社,精品文檔放心下載2007.P268-2738PeterVanDerLinden著,徐波譯.C專家編程,人民郵電出版社,2003感謝閱讀附錄1整體電路原理圖溫度采集智能家居熱水器附錄2部分源程序#include<reg52.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint/***********************************謝謝閱讀本設計系統(tǒng)是18b20溫度報警系統(tǒng)數碼管顯示,可設置溫度上限高溫報警和下限低溫報警,報警溫度可精確到0.1度,并具有掉電保存功能,數據保存精品文檔放心下載在單片機內部EEPOM中,進入設置界面后如果沒有鍵感謝閱讀按下系統(tǒng)會在30秒后自動退出設置界面,人性化的按感謝閱讀鍵設置,按鍵還具有連加、減功能。**********************************/謝謝閱讀//數碼管段選定義789ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,精品文檔放心下載0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//斷碼謝謝閱讀//數碼管位選定義ucharcodesmg_we[]={0xef,0xdf,0xbf,0x7f};精品文檔放心下載uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};精品文檔放心下載ucharsmg_i=3;//顯示數碼管的個位數sbitdq=P2^4;//18b20IO口的定義精品文檔放心下載sbitrelay=P2^5;//繼電器IO口定義感謝閱讀sbitbeep=P2^3;//蜂鳴器IO口定義感謝閱讀uchara_a;uinttemperature;//bitflag_300ms;ucharkey_can;//按鍵值的變量ucharmenu_1;//菜單設計的變量uintt_high=300,t_low=100;bitflag_lj_en;//按鍵連加使能bitflag_lj_3_en;//按鍵連3次連加后使能加的數就越大了精品文檔放心下載溫度采集智能家居熱水器ucharkey_time,flag_value;//用做連加的中間變量感謝閱讀bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//自動退出設置界面精品文檔放心下載/***********************1ms延時函數*****************************/謝謝閱讀voiddelay_1ms(uintq){uinti,j;for(i=0;i<q;i++)for(j=0;j<120;j++);}/***********************小延時函數*****************************/感謝閱讀voiddelay_uint(uintq){while(q--);}/***********************數碼顯示函數*****************************/感謝閱讀voiddisplay(){uchari;for(i=0;i<smg_i;i++){P3=smg_we[i];//位選P1=dis_smg[i];//段選delay_1ms(1);P3=0xff;//位選P1=0xff;//消隱}}/******************把數據保存到單片機內部eepom中******************/感謝閱讀voidwrite_eepom(){溫度采集智能家居熱水器SectorErase(0x2000);byte_write(0x2000,t_high%256);感謝閱讀byte_write(0x2001,t_high/256);精品文檔放心下載byte_write(0x2002,t_low%256);謝謝閱讀byte_write(0x2003,t_low/256);謝謝閱讀byte_write(0x2055,a_a);}/******************把數據從單片機內部eepom中讀出來*****************/感謝閱讀voidread_eepom(){t_high=byte_read(0x2001);t_high<<=8;t_high|=byte_read(0x2000);感謝閱讀t_low=byte_read(0x2003);t_low<<=8;t_low|=byte_read(0x2002);a_a=byte_read(0x2055);}/***********************18b20初始化函數*****************************/感謝閱讀voidinit_18b20(){bitq;dq=1;//把總線拿高delay_uint(1);//15usdq=0;//給復位脈沖delay_uint(80);//750usdq=1;//把總線拿高等待delay_uint(10);//110usq=dq;//讀取18b20初始化信號delay_uint(20);//200usdq=1;//把總線拿高釋放總線}溫度采集智能家居熱水器/*************寫18b20內的數據***************/精品文檔放心下載voidwrite_18b20(uchardat){uchari;for(i=0;i<8;i++){//寫數據是低位開始dq=0;//把總線拿低寫時間隙開始dq=dat&0x01;//向18b20總線寫數據了感謝閱讀delay_uint(5);//60usdq=1;//釋放總線dat>>=1;}}/*************讀取18b20內的數據***************/感謝閱讀ucharread_18b20(){uchari,value;for(i=0;i<8;i++){dq=0;//把總線拿低讀時間隙開始value>>=1;//讀數據是低位開始dq=1;//釋放總線if(dq==1)//開始讀寫數據value|=0x80;delay_uint(5);//60us讀一個時間隙最少要保持60us的時間謝謝閱讀}returnvalue;//返回數據}/*************讀取溫度的值讀出來的是小數***************/謝謝閱讀uintread_temp(){uintvalue;溫度采集智能家居熱水器ucharlow;//18b20精品文檔放心下載的時序init_18b20();//初始化18b20write_18b20(0xcc);//跳過64位ROM謝謝閱讀write_18b20(0x44);//啟動一次溫度轉換命令感謝閱讀delay_uint(50);//500usinit_18b20();//初始化18b20write_18b20(0xcc);//跳過64位ROM謝謝閱讀write_18b20(0xbe);//發(fā)出讀取暫存器命令謝謝閱讀EA=0;low=read_18b20();//讀溫度低字節(jié)value=read_18b20();//讀溫度高字節(jié)感謝閱讀EA=1;value<<=8;//把溫度的高位左移8位value|=low;//把讀出的溫度低位放到value的低八位中感謝閱讀value*=0.625;//轉換到溫度值小數returnvalue;//返回讀出的溫度帶小數}/*************定時器0初始化程序***************/感謝閱讀voidtime_init(){EA=1;//開總中斷TMOD=0X01;//定時器0、定時器1工作方式1精品文檔放心下載ET0=1;//開定時器0中斷TR0=1;//允許定時器0定時}/****************獨立按鍵處理函數************************/精品文檔放心下載voidkey(){staticucharkey_new=0,key_old=0,key_value=0;感謝閱讀if(key_new==0){//按鍵松開的時候做松手檢測溫度采集智能家居熱水器if((P2&0x0f)==0x0f)key_value++;elsekey_value=0;if(key_value>=10){write_eepom();key_value=0;key_new=1;flag_lj_en=0;//關閉連加使能flag_lj_3_en=0;//關閉3秒后使能精品文檔放心下載flag_value=0;//清零}}else{if((P2&0x0f)!=0x0f)key_value++;//按鍵按下的時候elsekey_value=0;if(key_value>=7){key_value=0;key_new=0;flag_lj_en=1;//連加使能zd_break_en=1;//自動退出設置界使能zd_break_value=0;//自動退出設置界變量清零感謝閱讀}}key_can=20;if(key_500ms==1){溫度采集智能家居熱水器key_500ms=0;zd_break_en=1;//自動退出設置界使能zd_break_value=0;//自動退出設置界變量清零謝謝閱讀key_new=0;key_old=1;}if((key_new==0)&&(key_old==1))精品文檔放心下載{switch(P2&0x0f){case0x0e:key_can=4;break;//得到k1鍵值謝謝閱讀case0x0d:key_can=3;break;//得到k2鍵值精品文檔放心下載case0x0b:key_can=2;break;//得到k3鍵值謝謝閱讀case0x07:key_can=1;break;//得到k4鍵值感謝閱讀}}key_old=key_new;}/****************按鍵處理數碼管顯示函數***************/精品文檔放心下載voidkey_with(){if(key_can==4){menu_1++;if(menu_1>=3){menu_1=0;}if(menu_1==0){dis_smg[0]=smg_du[temperature%10];//取溫度的小數顯示謝謝閱讀dis_smg[1]=smg_du[temperature/10%10]&0x7f;//取溫度的個位顯示精品文檔放心下載溫度采集智能家居熱水器dis_smg[2]=smg_du[temperature/100%10];//取溫度的十位顯示感謝閱讀smg_i=3;}if(menu_1==1){dis_smg[0]=smg_du[t_high%10];//取小數顯示謝謝閱讀dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示感謝閱讀dis_smg[2]=smg_du[t_high/100%10];//取low十位顯示精品文檔放心下載dis_smg[3]=0x89;smg_i=4;}if(menu_1==2){dis_smg[0]=smg_du[t_low%10];//取low小數顯示謝謝閱讀dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取個位顯示精品文檔放心下載dis_smg[2]=smg_du[t_low/100%10];//取十位顯示精品文檔放心下載dis_smg[3]=0xc7;smg_i=4;}}if(menu_1==1)//設置高溫報警{if(key_can==3){if(flag_lj_3_en==0)t_high++;//按鍵按下未松開自動加三次elset_high+=10;//按鍵按下未松開自動加三次之后每次自動加10精品文檔放心下載if(t_high>990)t_high=990;dis_smg[0]=smg_du[t_high%10];//取小數顯示謝謝閱讀dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示謝謝閱讀溫度采集智能家居熱水器dis_smg[2]=smg_du[t_high/100%10];//取十位顯示謝謝閱讀dis_smg[3]=0x89;//H}if(key_can==2){if(flag_lj_3_en==0)t_high--;//按鍵按下未松開自動加三次elset_high-=10;//按鍵按下未松開自動減三次之后每次自動減10精品文檔放心下載if(t_high<=t_low)t_high=t_low+1;dis_smg[0]=smg_du[t_high%10];//取小數顯示精品文檔放心下載dis_smg[1]=smg_du[t_high/10%10]&0x7f;//取個位顯示謝謝閱讀dis_smg[2]=smg_du[t_high/100%10];//取十位顯示感謝閱讀dis_smg[3]=0x89;//H}}if(menu_1==2)//設置低溫報警{if(key_can==3){if(flag_lj_3_en==0)t_low++;elset_low+=10;if(t_low>=t_high)t_low=t_high-1;dis_smg[0]=smg_du[t_low%10];//取小數顯示謝謝閱讀dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取個位顯示謝謝閱讀dis_smg[2]=smg_du[t_low/100%10];//取十位顯示精品文檔放心下載dis_smg[3]=0xc7;//L}溫度采集智能家居熱水器if(key_can==2){if(flag_lj_3_en==0)t_low--;elset_low-=10;if(t_low<=10)t_low=10;dis_smg[0]=smg_du[t_low%10];//取小數顯示感

溫馨提示

  • 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

提交評論