畢業(yè)設計基于單片機的電冰箱溫控器設計_第1頁
畢業(yè)設計基于單片機的電冰箱溫控器設計_第2頁
畢業(yè)設計基于單片機的電冰箱溫控器設計_第3頁
畢業(yè)設計基于單片機的電冰箱溫控器設計_第4頁
畢業(yè)設計基于單片機的電冰箱溫控器設計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 學科分類號: 08 本科生畢業(yè)設計題 目:基于單片機的電冰箱溫控器設計學生姓名: 學號 系 部: 通信與控制工程系 專業(yè)年級: 指導教師: 職 稱: 副教授 湖南人文科技學院畢業(yè)論文(設計) 本科畢業(yè)設計誠信聲明本人鄭重聲明:所呈交的本科畢業(yè)設計,是本人在指導老師的指導下,獨立進行研究工作所取得的成果,成果不存在知識產權爭議,除文中已經(jīng)注明引用的內容外,本設計不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人和集體均已在文中以明確方式標明。本人完全意識到本聲明的法律結果由本人承擔。 作者簽名: 二 年 月 日iii 基于單片機的電冰箱溫控器的設計摘 要:單片機是

2、實時檢測和自動控制系統(tǒng)中心一個核心器件。本文設計的基于單片機的電冰箱溫度控制器系統(tǒng)是利用溫度傳感器ds18b20采集電冰箱冷藏室的溫度,通過intel公司的高效微控制器stc89c52單片機進行信號控制,從而達到智能控制的目的。本系統(tǒng)可實現(xiàn)電冰箱溫度設置、電冰箱過欠壓檢測、開門顯示、壓縮機開啟延時等功能。通過對直冷式電冰箱制冷系統(tǒng)的改進,實現(xiàn)了電冰箱的智能控制,使電冰箱能根據(jù)使用條件的變化迅速合理地調節(jié)制冷,且節(jié)能效果良好。關鍵詞:單片機;電冰箱;溫度控制;過欠壓檢測;開啟延時design of the refrigerator temperature controller based on

3、microcontroller unitabstract:mcu is the center of real-time detection and control system a core device. this design of microcontroller-based temperature control system is used refrigerator temperature sensor ds18b20 collecting refrigerator freezer temperature, high-performance companies through inte

4、l microcontroller stc89c52 mcu signal control so as to achieve intelligent control. the system can set the refrigerator temperature, refrigerators over voltage detection, open display, open the compressor delay functions. through direct cool refrigerator cooling system improvements, implementation o

5、f the intelligent control of refrigerator to refrigerator according to rapidly changing conditions of reasonable use to adjust cooling, and the effect is good.keywords:mcu; refrigerator; temperature control; over-voltage detection; open display目 錄第1章 緒論11.1課題研究背景及目的11.2 電冰箱的基本介紹11.3 國內外研究狀況21.4 本設計研

6、究內容3第2章 總體設計方案42.1 功能要求42.2 方案論證42.2.1方案一42.2.2方案二4第3章 系統(tǒng)的硬件設計63.1 硬件電路的重要芯片介紹63.1.1 mcs-51單片機stc89c5263.1.2 溫度傳感器ds18b2093.2 部分電路簡介113.2.1 過欠電壓檢測電路113.2.2 12864液晶連接電路12第4章 系統(tǒng)軟件程序設計144.1 顯示子程序154.2 ds18b20程序164.3 預置溫度調節(jié)程序174.4 判斷控制程序184.5 開啟延時程序19第5章 系統(tǒng)調試及性能分析215.1 調試215.2 性能分析21第6章 分析與結論22致謝23參考文獻2

7、4附錄25附錄a 溫控器系統(tǒng)原理圖25附錄b 溫控器系統(tǒng)設計源代碼2633第1章 緒論1.1課題研究背景及目的冰箱是深刻改變了人類生活的現(xiàn)代奇跡之一。在人們發(fā)明冰箱之前,保存肉類的唯一方法是腌制,而在夏季喝到冰鎮(zhèn)飲料更是一種奢望。隨著國民經(jīng)濟的日益發(fā)展,人民的生活水平有了很大的提高,冷凍器具在家庭,醫(yī)院,旅館,餐廳和科研單位得到了廣泛的應用。電冰箱作為應用較為普及的家用電器,近年來,隨著微電子技術、傳感器技術以及控制理論的發(fā)展,其呈現(xiàn)迅猛發(fā)展,電冰箱向大容量、多功能、無氟、節(jié)能、智能化、人性化方向發(fā)展,因此傳統(tǒng)的機械式、簡單的電子控制難以滿足現(xiàn)代冰箱的發(fā)展要求。電冰箱一般設有冷凍室和冷藏室。冷

8、凍室的溫度為:- 16 - 24 。冷藏室的溫度為:28 。電冰箱控制的主要任務就是保持箱內食品最佳溫度,達到食品保鮮的目的。而此次設計的目的則是熟悉溫控器的原理,并通過開發(fā)板模擬實現(xiàn)電冰箱溫控器。1.2 電冰箱的基本介紹冰箱的基本原理很簡單:冰箱利用液體蒸發(fā)吸收熱量。冰箱中使用的液體(即制冷劑)會在極低的溫度蒸發(fā),使冰箱內部保持冰凍溫度。所有冰箱都由五個基本部件組成:壓縮機熱交換管,冰箱外部呈彎曲或盤曲狀的管道安全閥冷交換管,冰箱內部呈彎曲或盤曲狀的管道制冷劑,冰箱內蒸發(fā)以制造低溫的液體很多工業(yè)冰箱使用純氨作為制冷劑,純氨在-32時蒸發(fā)。壓縮機壓縮制冷劑氣體,這將升高制冷劑的壓力和溫度(橙色

9、),而冰箱外部的熱交換線圈幫助制冷劑散發(fā)加壓產生的熱量。 當制冷劑冷卻時,制冷劑液化成液體形式(紫色),并流經(jīng)安全閥。當制冷劑流經(jīng)安全閥時,液態(tài)制冷劑從高壓區(qū)流向低壓區(qū),因此它會膨脹并蒸發(fā)(淺藍色)。在蒸發(fā)過程中,它會吸收熱量,發(fā)揮制冷效果。 冰箱內的線圈幫助制冷劑吸收熱量,使冰箱內部保持低溫。然后,重復該循環(huán)。1.3 國內外研究狀況長期以來,在電子行業(yè),溫控器正快速發(fā)展。溫控器是控制末端裝置,實現(xiàn)分室溫度控制和節(jié)能運行的關鍵。 普通電冰箱溫控器基本上是一個獨立的閉環(huán)溫度調節(jié)系統(tǒng),主要由溫度傳感器、控制器、溫度設定機構等裝置組成。其控制原理是電冰箱溫控器根據(jù)溫度傳感器測得的室溫與設定值的比較結

10、果發(fā)生控制信號,控制電冰箱壓縮機電源的開關,即用切斷和打開壓縮機電源的方式,調節(jié)電冰箱內溫度。 第一代空調溫控器主要是電氣式產品,空調溫控器的溫度傳感器采用雙金屬片或氣動溫包,通過“給定溫度盤”調整預緊力來設定溫度,風機三速開關和季節(jié)轉換開關為潑檔式機械開關。這類溫控器產品普遍存在“溫度設定分度值過粗”、“時間常數(shù)太大”、“機械開關易損壞”等問題。第二代空調溫控器為電子式產品,溫度傳感器采用熱敏電阻或熱電阻,部分產品的溫度設定和風速開關通過觸摸鍵和液晶顯示屏實現(xiàn)人機交互界面,冷熱切換自動完成,運算放大電路和開關電路實現(xiàn)雙位調節(jié)。這類智能空調溫控器產品改善了人機交互界面,解決了“溫度設定分度值過

11、粗”等問題,但仍存在“控制精度不高”、“時間常數(shù)大”、“操作較復雜”等問題。 目前國內外生產廠家正在研究開發(fā)第三代智能型溫控器,如ds18b20。個別廠家積極響應國家的政策,應用新型控制模型和數(shù)控芯片實現(xiàn)智能控制?,F(xiàn)在已有國內廠家生產出了智能型溫控器,并已應用于實際工程。這一生產帶動電子行業(yè)的發(fā)展。1.4 本設計研究內容在本次課題研究中我將參考從各個方面收集到的文獻,博取其精華。研究方法則是采用c51單片機開發(fā)板模擬電冰箱工作環(huán)境,并模擬設定電冰箱各項參數(shù),以研究電冰箱溫控器的工作原理及設計。研究的內容主要包括以下方面:1、液晶顯示的工作原理,并通過液晶將各項數(shù)據(jù)顯示在冰箱外;2、溫度控制器原

12、理,制冷原理,自動控制電冰箱工作使其通過制冷達到所設定的溫度;3、智能檢測電冰箱工作電壓是否正常,避免壓縮機燒壞; 4、繼電器工作原理,模擬對壓縮機的通/斷電操作; 5、單片機c程序編程語言; 在本文中將介紹基于單片機的電冰箱溫控器設計的總體設計思想和方案,及用得到的部分芯片及硬件設計的原理,還有軟件設計過程中的思想和方法等。 第2章 總體設計方案2.1 功能要求通過液晶顯示所設定的溫度,溫度能隨意調節(jié),能自動控制電冰箱工作,使其通過制冷達到所設定的溫度。2.2 方案論證根據(jù)畢業(yè)設計的要求,我們可以知道在本次設計中最重要的部分就是溫控器,溫控器的選擇將決定外部電路的設計,所以溫控器的選擇具體有

13、兩種以下方案。2.2.1方案一在日常生活及工農生產中,經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電耦和熱電阻。溫控器的第一選擇就可以選擇熱電耦和熱電阻,他們測出的一般都是電壓,再轉換成對應的溫度,但是需要比較多的外部硬件支持。因此這種選擇就有如下主要缺點: 硬件電路復雜; 軟件調試復雜; 制作成本高;2.2.2方案二采用美國dallas半導體公司生產的高性能數(shù)字智能溫度傳感器ds18b20。ds18b20作為檢測元件,測溫范圍為-55125,最高分辨率可達0.0625。ds18b20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。所以在本

14、次畢業(yè)設計中采用方案二,使用ds18b20作溫控器配合51單片機stc89c52進行設計。按照系統(tǒng)設計功能的要求,確定系統(tǒng)由6個模塊組成:主控制器、測溫電路、液晶顯示電路、過欠壓檢測電路、按鍵電路、繼電器壓縮機電路。溫度控制器總體電路結構框圖如圖2-1所示。圖 2- 1 溫度控制器總體電路結構框圖第3章 系統(tǒng)的硬件設計3.1 硬件電路的重要芯片介紹 溫控器電路設計原理圖如附錄a所示,控制器使用單片機stc89c52,溫度傳感器使用ds18b20,及12864液晶顯示屏實現(xiàn)溫度和其他顯示。3.1.1 mcs-51單片機stc89c52單片微機封裝形式為雙排直列式結構(dip),引腳共40個。如圖

15、3-1所示。mcs51單片機stc89c52其內部基本組成為:一個8位的中央處理器(cpu),256byte片內ram單元,4kbyte掩膜式rom,2個16位的定時器計數(shù)器,四個8位的并行i/o口(p0,p1,p2,p3),一個全雙工串行口5個中斷源,一個片內振蕩器和時鐘發(fā)生電路,可編程串行通道,有低功耗的閑置和掉電模式。這種結構特點決定了單片機具有體積小、成本低、可靠性高、應用靈活、開發(fā)效率高、易于被產品化等優(yōu)點,使其具有很強的面向控制的能力,在工業(yè)自動化控制、家用電器、智能化儀表、機器人、軍事裝置等領域獲得了廣泛的應用。圖 3- 1 msc-c51單片機stc89c52引腳圖2管腳說明:

16、 vcc:供電電壓。 gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2

17、口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉

18、為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為8051的一些特殊功能口,如下所示: 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/

19、prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外

20、部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。3.1.2 溫度傳感器ds18b20溫度傳感器是本系統(tǒng)不可或缺的元件,其性能的好壞直接影響系統(tǒng)的性能,因此溫度傳感器采用dallas公司生產的高性能數(shù)字溫度傳感器ds18b20。

21、 ds18b20是dallas公司生產的一線式數(shù)字溫度傳感器,具有3引腳to92小體積封裝形式;溫度測量范圍為55125,可編程為9位12位a/d轉換精度,測溫分辨率可達0.0625,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產生;多個ds18b20可以并聯(lián)到3根或2根線上,cpu只需一根端口線就能與諸多ds18b20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使ds18b20非常適用于遠距離多點溫度檢測系統(tǒng)。 ds18b20內部結構如圖3-3所示,主要由4部分組成:64位rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th和t

22、l、配置寄存器。ds18b20的管腳排列如圖3-2所示: 圖 3- 2 ds18b20的管腳排列圖dq: 為數(shù)字信號輸入輸出端; gnd:為電源地; vdd:為外接供電電源輸入端(在寄生電源接線方式時接地,見圖3-2)。 rom中的64位序列號是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼,每個ds18b20的64位序列號均不相同。64位rom的排的循環(huán)冗余校驗碼(crc=x8x5x41)。rom的作用是使每一個ds18b20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個ds18b20的目的。圖 3- 3 ds18b20的內部結構ds18b20 用12 位存貯溫度值,最高位為符號位

23、。以下圖表為ds18b20的溫度存儲方式,負溫度s = 1,正溫度s = 0,如:0550h為+ 85,0191h為25.0625 ,fc90h為- 55。2322212021222324溫度值低字節(jié) lsbsssss262524溫度值高字節(jié) msb 高低溫報警觸發(fā)器th和tl、配置寄存器均由一個字節(jié)的eeprom組成,使用一個存儲器功能命令可對th、tl或配置寄存器寫入。其中配置寄存器的格式如下: 0r1r011111r1、r0決定溫度轉換的精度位數(shù):r1r0=00,9位精度,最大轉換時間為93.75ms,r1r0=01,10位精度,最大轉換時間為187.5ms,r1r0=10,11位精度,

24、最大轉換時間為375ms,r1r0=11,12位精度,最大轉換時間為750ms;未編程時默認為12位精度。 高速暫存器是一個9字節(jié)的存儲器。開始兩個字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是th、tl、配置寄存器的臨時拷貝,每一次上電復位時被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。 ds18b20的一線工作協(xié)議流程是:初始化rom操作指令存儲器操作指令數(shù)據(jù)傳輸。3.2 部分電路簡介3.2.1 過欠電壓檢測電路 如圖3-4(a)所示即為過欠壓檢測電路,也稱為電壓窗口比較器。在圖3-4(a)中,a1,a2是專用電壓比較器

25、lm119。lm119的內部采用射級接地、集電極開路的三極管集電極輸出方式。在使用時,必須外接上拉電阻。過欠壓檢測電路只有檢測出電壓是否穩(wěn)定便可,而這種電路允許輸出端并接在一起。 此電路的工作原理是: 當輸入電壓uiur1時,比較器a1的輸出管導通,而比較器a2的輸出管截止,此窗口比較器的輸出電平將由比較器a1輸出電平確定為低電平。 只有當輸入電壓處于窗口電壓之內,即ur2uiur1時,比較器a1和a2輸出管均截止,窗口比較器輸出電平是由上拉負載電阻拉向高電平。此窗口比較器的傳輸特性如圖3-4(b)所示。 (a) (b)圖 3- 4 過欠壓檢測電路3.2.2 12864液晶連接電路液晶顯示屏有

26、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近幾年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子產品中。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面??梢燥@示84行1616點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。帶中文字庫的12864每屏可顯示4行8列共32個1616點陣的漢字,每個顯示ram可顯示1個中文字符或2個168點陣全高ascii碼字符,即每屏最多實現(xiàn)32個中文字符

27、或64個ascii碼字符的顯示。帶中文字庫的12864內部提供1282字節(jié)的字符顯示ram緩沖區(qū),字符顯示是通過將字符顯示編碼寫入該字符顯示ram實現(xiàn)的。根據(jù)寫入內容的不同,可分別在液晶屏上顯示cgrom(中文字庫)、hcgrom(ascii碼字庫)及cgram(自定義字形)的內容。字符顯示的ram的地址與32個字符顯示區(qū)域有著一一對應的關系,其對應關系如下表所示:表 3- 1 漢字顯示坐標x坐標line180h81h82h83h84h85h86h87hline290h91h92h93h94h95h96h97hline388h89h8ah8bh8ch8dh8eh8fhline498h99h9a

28、h9bh9ch9dh9eh9fh在此系統(tǒng)中,液晶采用并口通信,所以第15腳psb端固定接高電平,引腳7-14作為三態(tài)數(shù)據(jù)線,其他引腳說明見表3-2,連接圖如圖3-5所示:圖 3- 5 12864液晶連接電路圖表 3- 2 12864引腳功能說明引腳號引腳名稱方向功能說明1vss-模塊的電源地2vdd-模塊的電源正端3v0-lcd 驅動電壓輸入端4rs(cs)h/l并行的指令/數(shù)據(jù)選擇信號;串行的片選信號5r/w(sid)h/l并行的讀寫選擇信號;串行的數(shù)據(jù)口6e(clk)h/l并行的使能信號;串行的同步時鐘16nc空腳17/reth/l復位 低電平有效18nc空腳19led_a-背光源正極(l

29、ed+5v)20led_k-背光源負極(led-ov)第4章 系統(tǒng)軟件程序設計基于單片機的電冰箱溫控器軟件設計主要由顯示子程序、讀出并處理ds18b20的測量溫度值程序、預置溫度調節(jié)程序、溫度判斷控制程序、電冰箱開啟延時程序、還有軟件復位程序等組成。軟件程序設計總體流程圖如下圖4-1:圖 4- 1 軟件程序設計總體流程圖由于51系列的單片機沒有停機的指令,所以可以利用主程序設置死循環(huán)反復運行各個任務。于是就把有實時要求的部分放在最內層的循環(huán)中。4.1 顯示子程序在本次設計中,顯示子程序包括三部分:往lcd液晶顯示屏發(fā)送一個字節(jié)的數(shù)據(jù)或指令子程序,lcd液晶屏初始化子程序,顯示數(shù)據(jù)處理程序。1)

30、 往lcd液晶顯示屏發(fā)送一個字節(jié)的數(shù)據(jù)或指令子程序其調用的函數(shù)是void transferdata(char data1,bit di),在程序中首先將并行口選擇為寫的狀態(tài),然后選擇將要傳送的是指令還是數(shù)據(jù),再將數(shù)據(jù)送到p1口,打開并行口的使能端,等待數(shù)據(jù)輸出完畢后關閉并行口使能。其流程圖如圖4-2所示。 圖 4- 2 傳送數(shù)據(jù)流程圖 圖 4- 3 lcd液晶初始化程序流程圖2) lcd液晶屏初始化子程序其使用的函數(shù)是void initinal(void),僅在開機時調用一次,主要負責設置lcd液晶屏的一些狀態(tài),包括設置液晶總線模式,芯片復位,功能設定,關閉芯片顯示,設置芯片動態(tài)顯示,清屏,設

31、置起始行0行0列;液晶初始化結束返回。lcd液晶屏初始化完成后就可以顯示各種字符了,即進入正常工作狀態(tài)。具體流程圖4-3所示。3) 顯示數(shù)據(jù)處理程序調用方式:void lcd_mesg(uchar code *adder1)函數(shù)說明:顯示全屏的內容調用方式:void lcd_mesg2(uchar add,uchar code *adder2)函數(shù)說明:顯示某一行的內容調用方式:void lcd_w_wd(uchar add2,int wwd,uchar fs)函數(shù)說明:溫度顯示處理并送入lcd的指定區(qū)域這些函數(shù)的使用可以使得顯示內容時,非常合適的處理好了頁切換和列切換,只要通過查表送至128

32、64液晶顯示屏ram中便可顯示自如。4.2 ds18b20程序整個ds18b20程序調用方式是uint readtemperature(void),該函數(shù)主要包括了對ds18b20的初始復位,讀溫度,溫度轉換,計算溫度等子程序,并將轉換后的數(shù)據(jù)擴大10倍返回主函數(shù),提供給下一個函數(shù)使用。讀ds18b20程序流程圖如圖4-4。圖 4- 4讀ds18b20程序流程圖1) 對 ds18b20 操作時,首先要將它復位將dq線拉低480至960s,再將數(shù)據(jù)線拉高15至60s,然后ds18b20發(fā)出60至此240s的低電平作為應答信號,這時主機才能對它進行其它操作11。2) 讀溫度子程序的主要功能是讀出d

33、s18b20的ram中的9個字節(jié)。前兩個就是溫度,將高低字節(jié)分別放入b和a中。在讀出時須進行crc校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。讀操作:主機將數(shù)據(jù)線從高電平拉至低電平1s以上,再使數(shù)據(jù)線升為高電平,從而產生讀起始信號從主機將數(shù)據(jù)線從高電平拉至低電平起15s至60s,主機讀取數(shù)據(jù)每個讀周期最短的持續(xù)期為60s周期之間必須有1s以上的高電平恢復期11。3) 溫度轉換命令子程序主要是發(fā)送溫度轉換開始命令。當采用12位分辨率時,轉換的時間約為750ms。在本程序中,采用2s顯示程序延時法等待轉換完成。發(fā)送溫度轉換命令的寫操作:將數(shù)據(jù)線從高電平拉至低電平,產生寫起始信號從dq 線的下降沿起計時,

34、在 15s到60s這段時間內對數(shù)據(jù)線進行檢測,如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個寫周期在開始另一個寫周期前,必須有1s以上的高電平恢復期每個寫周期必須要有60 s以上的持續(xù)期11。4) 計算溫度子程序將ram中讀取值進行bcd碼的轉換運算,并進行溫度值正負的判定。因為從ds18b20中讀出的二進制值必須先轉換成十進制值,才能用于字符的顯示。ds18b20的轉換精度為912位可選,為了提高精度采用12位。在采用12位轉換精度時,溫度寄存器里的值是以0.0625為步進的,即溫度值為溫度寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。擴大十倍,四舍五入后便可將精度精確

35、到0.1。4.3 預置溫度調節(jié)程序 在本次設計中,可預置的溫度范圍可以從-2020。在編寫程序過程中,如果直接對代表溫度值的變量yskey的值在-2020操作對數(shù)據(jù)的轉換將很復雜和麻煩。于是我將其yskey值的范圍移至1-40間,進而就不需要去處理yskey復雜的數(shù)據(jù)類型轉換的問題了。程序的詳細設計流程圖如下圖4-5:圖 4- 5預置溫度調節(jié)程序流程圖yskey返回給主函數(shù)中的ys后,要得到真實的溫度值,只需要判斷ys是大于等于20,還是小于20的。若其值大于則減去20即為要預設的實際正數(shù)溫度值;若是其值小于則20減去其值,再加上一個負數(shù)符號便是要預設的負溫度值。將其值送入指定的溫度顯示區(qū)域,

36、我們便能夠適時的看到調節(jié)的預置溫度了。4.4 判斷控制程序判斷控制程序是根據(jù)用戶設定的溫度值和ds18b20實時測得溫度值相比較,從而決定是否需要制冷,并在液晶屏上顯示其工作狀態(tài)。而對壓縮機的控制則是通過控制繼電器的通斷決定是否給壓縮機通電工作來實現(xiàn)的。當ysj=1,也就是p1.1腳為高電平的時候,繼電器閉合,壓縮機通電工作;當ysj=0時,繼電器斷開,壓縮機停止工作。若當壓縮機的工作電壓不正常時,壓縮機將有被燒壞的危險,程序自動進入故障處理部分,在液晶顯示屏上顯示故障原因,壓縮機停止工作。直到故障解除,然后重行啟動電冰箱程序。圖4-6所示的就是該程序的流程圖。為了避免冷氣泄露,節(jié)約電能需要進

37、行電冰箱門關好與否的檢查,因此在程序中又設置一判斷門是否關好的語句能夠及時地提醒用戶門沒關好。這一部分將不再圖4-6中畫出。圖 4- 6判斷控制程序流程圖4.5 開啟延時程序該功能要求壓縮機停機時間超過5分鐘才能啟動,以延長壓縮機的壽命,這就要求在每次電冰箱上電時,都要檢查壓縮機停機是否到5分鐘。若未達到需延時到5分鐘后才能啟動,因此在設計時應有判斷與延時功能。按功能要求,電冰箱無論是自動停機還是強制停機。為了延長壓縮機的壽命,都要延時5分鐘后壓縮機才能啟動。即在每次接通壓縮機時,單片機計時,利用單片機將計數(shù)值保存在軟件設計時,每次上電都要檢查此數(shù)據(jù)是否到5分鐘。若時間不到,延時后才能接通壓縮

38、機。為了在單片機延時期間不耽擱其他程序的執(zhí)行和處理,在此使用定時器t1計時,并且使用工作組2,循環(huán)定時延遲5分鐘。但在本程序中壓縮機的開啟延時時間為30秒,方便演示。圖4-7為開啟延時程序流程圖。圖 4- 7 開啟延時程序流程圖第5章 系統(tǒng)調試及性能分析5.1 調試系統(tǒng)的調試以程序調試為主。硬件調試比較簡單,首先檢查電路的焊接是否正確,然后可用萬用表測試或通電檢測。軟件調試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序和各個子程序的編程和功能調試。對于顯示子程序,是最首當其沖的,只需要能將所要顯示的內容全部顯示,并且顯示在恰當?shù)奈恢?,如果不能顯示準確,就有可能導致后面程序很難寫出

39、。在調試過程中由于對顯示的地址把握不準導致顯示覆蓋并且錯誤的現(xiàn)象。其次最重要的一個程序就是實時測量環(huán)境溫度的ds18b20程序,它能否正常工作關系到整個系統(tǒng)是否能夠正常工作;對于其的調試主要看是否能夠顯示測得的溫度,還有在其工作的時候,用手指去捏住ds18b20看溫度是否變化,其次另外拿支溫度計測當時的溫度,和ds18b20測得的溫度比較一下看誤差是否比較大。預置溫度程序就看能不能正確地調動溫度,智能控制就看在實測溫度和預置溫度大小比較時和電壓出現(xiàn)不穩(wěn)定情況時,能不能正確的控制制冷設備工作和保護制冷設備;延時開啟程序就看在制冷設備啟動前是否有相應的一段時間間隔。如若不能正常進行,再返回程序設計

40、原理和c語言的語法、數(shù)據(jù)轉換規(guī)則仔細推理程序是否寫錯。5.2 性能分析電冰箱各個性能分析如下:預設溫度調節(jié)范圍:-2020;壓縮機延時開啟時間:30秒;ds18b20測溫精度:0.1;第6章 分析與結論通過此項設計的分析可得到如下結論: 1.本系統(tǒng)運用單片機速度快、體積小、價格低廉的8位stc89c52單片機,可以做出可行、可靠性強的自動控制產品-電冰箱溫度的控制系統(tǒng)。實現(xiàn)了電冰箱溫度的自動控制。 2.在單片機應用環(huán)境不是很惡劣的地方,利用軟件抗干擾也可以達到精度不高的要求,而且,節(jié)省了硬件資源,降低了產品設計成本,有助于產品的推廣、民用化。 3.本系統(tǒng)的設計盡量簡化電路,提高軟件質量。 4.

41、本系統(tǒng)支持多功能模塊。如果再加上少許外圍器件,如語音芯片,環(huán)境溫度傳感器,在軟件方面采用模糊控制技術,可以使電冰箱的智能化大大提高。致謝在此論文最終完成之際,向所有關心和幫助過我的老師、同學和朋友表示深深感謝!首先感謝通信與控制工程系的領導和老師對我的關心和幫助,感謝他們?yōu)槲姨峁┍憷臈l件,使我的畢業(yè)設計能順利完成。 同時,我要衷心感謝*老師,從畢業(yè)設計的開始到畢業(yè)論文的最終定稿,在此期間謝老師給了我細心的指導和幫助,謝老師淵博的知識、誠懇的為人、嚴謹?shù)闹螌W態(tài)度深深感染了我,讓我終生受用。在此,我向我的指導老師致以誠摯的謝意和深深的敬意。 此外,在我撰寫論文期間,還得到了同班同學的支持和鼓勵,

42、我要特別感謝余元龍等同學,每當我遇到困難進行不下去的時候,他們都能耐心細致地給我講解,幫助我度過了一個又一個難關,我的畢業(yè)設計和論文才得以順利地完成,在此我衷心地對他們說聲“謝謝!”。參考文獻1 求是科技.8051系列單片機c程序設計完全手冊m.北京:人民郵電出版社,20062 張鑫等.單片機原理及應用m.北京:電子工業(yè)出版社,20063 陳濤.單片機應用及c51程序設計m.北京:機械工業(yè)出版社,20084 樓然苗,李光飛.單片機課程設計指導m.北京:北京航天航空大學出版社,20075 譚浩強.c程序設計(第三版)m.北京:清華大學出版社,20056 楊克昌,羊四清,周克江等.c程序設計m.武

43、漢:武漢大學出版社,20077 周興華.單片機智能化產品c語言設計實例詳解m.北京:北京航空航天大學出版社,20078 沙占友等.單片機外圍電路設計m.北京:電子工業(yè)出版社,20039 張齊等.單片機應用系統(tǒng)設計技術基本c語言編程m.北京:電子工業(yè)出版社,200410 王東鋒,董冠強.單片機c語言應用100例m.北京:電子工業(yè)出版社,200911 余瑾,姚燕.基于ds18b20測溫的單片機溫度控制系統(tǒng)j.單片機開發(fā)與應用,2009,25(3-2):105-106.12 zhang chunzhi feng haiming.design of micro-controllers control

44、system of electric refrigeratorj.journal of beijing vocational&technical institute of industry.2002,(03):21-26附錄附錄a 溫控器系統(tǒng)原理圖附錄b 溫控器系統(tǒng)設計源代碼#include #include #include #include #define uint unsigned int#define uchar unsigned charuchar code table;uint door;uchar fushu;uchar fushu1;uint temp;uchar ys;uch

45、ar yskey=20;uint n=0;sbit rs =p24;sbit wrd=p25;sbit e= p26;sbit psb=p21;sbit res=p23;sbit dq=p17;/ds18b20 端口sbit ysj=p11;/控制繼電器sbit key_1 = p33; /上sbit key_2 = p31; /下sbit key_3 = p32; /sbit key_4 = p12; / 模擬電壓是否正常void lcd_w_gzztpd(void);void lcd_w_menkg(void);void lcd_w_wd(uchar add2,int wwd,uchar

46、fs);void transferdata(char data1,bit di);void delayms(uint n);void delay(uint m);void lcd_mesg(uchar code *adder1);void lcd_mesg2(uchar add,uchar code *adder2);void lcd_w_hz(char address,char *hanzi);uint readtemperature(void);void init_ds18b20(void);uchar readonechar(void);void writeonechar(unsigne

47、d char dat);void delayds(unsigned int i);uchar key(void);void soft_reset(void);void znkzysj(void);uchar code table=湖南人文科技學院-彭智偉-通控系06電信一班 電冰箱智能控制;uchar code table1=預設: 當前: 工作狀態(tài): ;uchar code men=-門已打開-;uchar code men1=-門已關閉-;uchar code gzzt0=-電冰箱工作中-;uchar code gzzt1=-電冰箱未工作-;uchar code gzzt2=壓縮機工作電壓

48、不電壓是否正常! 正常,請檢查電源然后重啟電冰箱!;/*/void initinal(void) /lcd字庫初始化程序 delay(40); /大于40ms的延時程序 psb=1; /設置為8bit并口工作模式 delay(1); /延時 res=0; /復位 delay(1); /延時 res=1; /復位置高 delay(10); transferdata(0x30,0); /extended function set :8bit設置,re=0: basic instruction set, g=0 :graphic display off delay(100); /大于100us的延時程序 transferdata(0x30,0); /function set delay(37); /大于37us的延時程序 transferdata(0x08,0); /display on control delay(100); /大于100us的延時程序 transferdata(0x10,0); /cursor display control光標設置 delay(100); /大于100us的延時程序 transferdata(0x0c,0); /display control,d=1,顯示開 delay(100); /大于100us的延時程序 transferdata(0x01,

溫馨提示

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

評論

0/150

提交評論