版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 學(xué)科分類號(hào): 08 </p><p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 題 目:基于單片機(jī)的電冰箱溫控器設(shè)計(jì)</p><p> 學(xué)生姓名: 學(xué)號(hào) </p><p> 系 部: 通信與控制工程系
2、 </p><p> 專業(yè)年級(jí): </p><p> 指導(dǎo)教師: </p><p> 職 稱: 副教授 </p><p> 基于單片機(jī)的電冰箱溫控器的設(shè)計(jì)</p>
3、;<p> 摘 要:單片機(jī)是實(shí)時(shí)檢測(cè)和自動(dòng)控制系統(tǒng)中心一個(gè)核心器件。本文設(shè)計(jì)的基于單片機(jī)的電冰箱溫度控制器系統(tǒng)是利用溫度傳感器DS18B20采集電冰箱冷藏室的溫度,通過INTEL公司的高效微控制器STC89C52單片機(jī)進(jìn)行信號(hào)控制,從而達(dá)到智能控制的目的。本系統(tǒng)可實(shí)現(xiàn)電冰箱溫度設(shè)置、電冰箱過欠壓檢測(cè)、開門顯示、壓縮機(jī)開啟延時(shí)等功能。通過對(duì)直冷式電冰箱制冷系統(tǒng)的改進(jìn),實(shí)現(xiàn)了電冰箱的智能控制,使電冰箱能根據(jù)使用條件的變化迅速
4、合理地調(diào)節(jié)制冷,且節(jié)能效果良好。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);電冰箱;溫度控制;過欠壓檢測(cè);開啟延時(shí)</p><p> Design of the refrigerator temperature controller </p><p> based on microcontroller unit</p><p> Abstra
5、ct: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 freeze
6、r temperature, high-performance companies through INTEL microcontroller STC89C52 MCU signal control so as to achieve intelligent control. The system can set the refrigerator temperature, refrigerators over voltage detect
7、ion, open display, open the compressor delay functions</p><p> KeyWords:MCU; refrigerator; Temperature Control; Over-voltage detection; open display</p><p><b> 目 錄</b></p&
8、gt;<p><b> 第1章 緒論1</b></p><p> 1.1課題研究背景及目的1</p><p> 1.2 電冰箱的基本介紹1</p><p> 1.3 國(guó)內(nèi)外研究狀況2</p><p> 1.4 本設(shè)計(jì)研究?jī)?nèi)容3</p><p> 第2章 總體設(shè)計(jì)
9、方案4</p><p> 2.1 功能要求4</p><p> 2.2 方案論證4</p><p> 2.2.1方案一4</p><p> 2.2.2方案二4</p><p> 第3章 系統(tǒng)的硬件設(shè)計(jì)6</p><p> 3.1 硬件電路的重要芯片介紹6</p&g
10、t;<p> 3.1.1 MCS-51單片機(jī)STC89C526</p><p> 3.1.2 溫度傳感器DS18B209</p><p> 3.2 部分電路簡(jiǎn)介11</p><p> 3.2.1 過欠電壓檢測(cè)電路11</p><p> 3.2.2 12864液晶連接電路12</p><p&
11、gt; 第4章 系統(tǒng)軟件程序設(shè)計(jì)14</p><p> 4.1 顯示子程序15</p><p> 4.2 DS18B20程序16</p><p> 4.3 預(yù)置溫度調(diào)節(jié)程序17</p><p> 4.4 判斷控制程序18</p><p> 4.5 開啟延時(shí)程序19</p><
12、p> 第5章 系統(tǒng)調(diào)試及性能分析21</p><p><b> 5.1 調(diào)試21</b></p><p> 5.2 性能分析21</p><p> 第6章 分析與結(jié)論22</p><p><b> 致謝23</b></p><p><b>
13、 參考文獻(xiàn)24</b></p><p><b> 附錄25</b></p><p> 附錄A 溫控器系統(tǒng)原理圖25</p><p> 附錄B 溫控器系統(tǒng)設(shè)計(jì)源代碼26</p><p><b> 第1章 緒論</b></p><p> 1.1
14、課題研究背景及目的</p><p> 冰箱是深刻改變了人類生活的現(xiàn)代奇跡之一。在人們發(fā)明冰箱之前,保存肉類的唯一方法是腌制,而在夏季喝到冰鎮(zhèn)飲料更是一種奢望。</p><p> 隨著國(guó)民經(jīng)濟(jì)的日益發(fā)展,人民的生活水平有了很大的提高,冷凍器具在家庭,醫(yī)院,旅館,餐廳和科研單位得到了廣泛的應(yīng)用。</p><p> 電冰箱作為應(yīng)用較為普及的家用電器,近年來,隨著微電
15、子技術(shù)、傳感器技術(shù)以及控制理論的發(fā)展,其呈現(xiàn)迅猛發(fā)展,電冰箱向大容量、多功能、無(wú)氟、節(jié)能、智能化、人性化方向發(fā)展,因此傳統(tǒng)的機(jī)械式、簡(jiǎn)單的電子控制難以滿足現(xiàn)代冰箱的發(fā)展要求。電冰箱一般設(shè)有冷凍室和冷藏室。冷凍室的溫度為:- 16~ - 24 ℃。冷藏室的溫度為:2~8 ℃。電冰箱控制的主要任務(wù)就是保持箱內(nèi)食品最佳溫度,達(dá)到食品保鮮的目的。而此次設(shè)計(jì)的目的則是熟悉溫控器的原理,并通過開發(fā)板模擬實(shí)現(xiàn)電冰箱溫控器。</p>&l
16、t;p> 1.2 電冰箱的基本介紹</p><p> 冰箱的基本原理很簡(jiǎn)單:冰箱利用液體蒸發(fā)吸收熱量。冰箱中使用的液體(即制冷劑)會(huì)在極低的溫度蒸發(fā),使冰箱內(nèi)部保持冰凍溫度。所有冰箱都由五個(gè)基本部件組成:</p><p><b> 壓縮機(jī)</b></p><p> 熱交換管,冰箱外部呈彎曲或盤曲狀的管道</p>&l
17、t;p><b> 安全閥</b></p><p> 冷交換管,冰箱內(nèi)部呈彎曲或盤曲狀的管道</p><p> 制冷劑,冰箱內(nèi)蒸發(fā)以制造低溫的液體很多工業(yè)冰箱使用純氨作為制冷劑,純氨在-32℃時(shí)蒸發(fā)。壓縮機(jī)壓縮制冷劑氣體,這將升高制冷劑的壓力和溫度(橙色),而冰箱外部的熱交換線圈幫助制冷劑散發(fā)加壓產(chǎn)生的熱量。 </p><p> 當(dāng)
18、制冷劑冷卻時(shí),制冷劑液化成液體形式(紫色),并流經(jīng)安全閥。</p><p> 當(dāng)制冷劑流經(jīng)安全閥時(shí),液態(tài)制冷劑從高壓區(qū)流向低壓區(qū),因此它會(huì)膨脹并蒸發(fā)(淺藍(lán)色)。在蒸發(fā)過程中,它會(huì)吸收熱量,發(fā)揮制冷效果。 </p><p> 冰箱內(nèi)的線圈幫助制冷劑吸收熱量,使冰箱內(nèi)部保持低溫。然后,重復(fù)該循環(huán)。</p><p> 1.3 國(guó)內(nèi)外研究狀況</p>&
19、lt;p> 長(zhǎng)期以來,在電子行業(yè),溫控器正快速發(fā)展。溫控器是控制末端裝置,實(shí)現(xiàn)分室溫度控制和節(jié)能運(yùn)行的關(guān)鍵。 </p><p> 普通電冰箱溫控器基本上是一個(gè)獨(dú)立的閉環(huán)溫度調(diào)節(jié)系統(tǒng),主要由溫度傳感器、控制器、溫度設(shè)定機(jī)構(gòu)等裝置組成。其控制原理是電冰箱溫控器根據(jù)溫度傳感器測(cè)得的室溫與設(shè)定值的比較結(jié)果發(fā)生控制信號(hào),控制電冰箱壓縮機(jī)電源的開關(guān),即用切斷和打開壓縮機(jī)電源的方式,調(diào)節(jié)電冰箱內(nèi)溫度。 &
20、lt;/p><p> 第一代空調(diào)溫控器主要是電氣式產(chǎn)品,空調(diào)溫控器的溫度傳感器采用雙金屬片或氣動(dòng)溫包,通過“給定溫度盤”調(diào)整預(yù)緊力來設(shè)定溫度,風(fēng)機(jī)三速開關(guān)和季節(jié)轉(zhuǎn)換開關(guān)為潑檔式機(jī)械開關(guān)。這類溫控器產(chǎn)品普遍存在“溫度設(shè)定分度值過粗”、“時(shí)間常數(shù)太大”、“機(jī)械開關(guān)易損壞”等問題。 </p><p> 第二代空調(diào)溫控器為電子式產(chǎn)品,溫度傳感器采用熱敏電阻或熱電阻,部分產(chǎn)品的溫度設(shè)定和風(fēng)
21、速開關(guān)通過觸摸鍵和液晶顯示屏實(shí)現(xiàn)人機(jī)交互界面,冷熱切換自動(dòng)完成,運(yùn)算放大電路和開關(guān)電路實(shí)現(xiàn)雙位調(diào)節(jié)。這類智能空調(diào)溫控器產(chǎn)品改善了人機(jī)交互界面,解決了“溫度設(shè)定分度值過粗”等問題,但仍存在“控制精度不高”、“時(shí)間常數(shù)大”、“操作較復(fù)雜”等問題。</p><p> 目前國(guó)內(nèi)外生產(chǎn)廠家正在研究開發(fā)第三代智能型溫控器,如DS18B20。個(gè)別廠家積極響應(yīng)國(guó)家的政策,應(yīng)用新型控制模型和數(shù)控芯片實(shí)現(xiàn)智能控制?,F(xiàn)在已有國(guó)內(nèi)廠家
22、生產(chǎn)出了智能型溫控器,并已應(yīng)用于實(shí)際工程。這一生產(chǎn)帶動(dòng)電子行業(yè)的發(fā)展。 </p><p> 1.4 本設(shè)計(jì)研究?jī)?nèi)容</p><p> 在本次課題研究中我將參考從各個(gè)方面收集到的文獻(xiàn),博取其精華。研究方法則是采用C51單片機(jī)開發(fā)板模擬電冰箱工作環(huán)境,并模擬設(shè)定電冰箱各項(xiàng)參數(shù),以研究電冰箱溫控器的工作原理及設(shè)計(jì)。</p><p> 研究的內(nèi)容主要包括以下
23、方面:</p><p> 1、液晶顯示的工作原理,并通過液晶將各項(xiàng)數(shù)據(jù)顯示在冰箱外;</p><p> 2、溫度控制器原理,制冷原理,自動(dòng)控制電冰箱工作使其通過制冷達(dá)到所設(shè)定的溫度;</p><p> 3、智能檢測(cè)電冰箱工作電壓是否正常,避免壓縮機(jī)燒壞;</p><p> 4、繼電器工作原理,模擬對(duì)壓縮機(jī)的通/斷電操作;</p&
24、gt;<p> 5、單片機(jī)C程序編程語(yǔ)言;</p><p> 在本文中將介紹基于單片機(jī)的電冰箱溫控器設(shè)計(jì)的總體設(shè)計(jì)思想和方案,及用得到的部分芯片及硬件設(shè)計(jì)的原理,還有軟件設(shè)計(jì)過程中的思想和方法等。 </p><p> 第2章 總體設(shè)計(jì)方案</p><p><b> 2.1 功能要求</b></p><p
25、> 通過液晶顯示所設(shè)定的溫度,溫度能隨意調(diào)節(jié),能自動(dòng)控制電冰箱工作,使其通過制冷達(dá)到所設(shè)定的溫度。</p><p><b> 2.2 方案論證</b></p><p> 根據(jù)畢業(yè)設(shè)計(jì)的要求,我們可以知道在本次設(shè)計(jì)中最重要的部分就是溫控器,溫控器的選擇將決定外部電路的設(shè)計(jì),所以溫控器的選擇具體有兩種以下方案。</p><p><
26、b> 2.2.1方案一</b></p><p> 在日常生活及工農(nóng)生產(chǎn)中,經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電耦和熱電阻。溫控器的第一選擇就可以選擇熱電耦和熱電阻,他們測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,但是需要比較多的外部硬件支持。因此這種選擇就有如下主要缺點(diǎn):</p><p><b> ● 硬件電路復(fù)雜;</b></p
27、><p><b> ● 軟件調(diào)試復(fù)雜;</b></p><p><b> ● 制作成本高;</b></p><p><b> 2.2.2方案二</b></p><p> 采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的高性能數(shù)字智能溫度傳感器DS18B20。DS18B20作為檢測(cè)元件,
28、測(cè)溫范圍為-55~125℃,最高分辨率可達(dá)0.0625℃。DS18B20可以直接讀出被測(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。</p><p> 所以在本次畢業(yè)設(shè)計(jì)中采用方案二,使用DS18B20作溫控器配合51單片機(jī)STC89C52進(jìn)行設(shè)計(jì)。</p><p> 按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由6個(gè)模塊組成:主控制器、測(cè)溫電路、液晶顯示電
29、路、過欠壓檢測(cè)電路、按鍵電路、繼電器壓縮機(jī)電路。</p><p> 溫度控制器總體電路結(jié)構(gòu)框圖如圖2-1所示。</p><p> 圖 2- 1 溫度控制器總體電路結(jié)構(gòu)框圖</p><p> 第3章 系統(tǒng)的硬件設(shè)計(jì)</p><p> 3.1 硬件電路的重要芯片介紹</p><p> 溫控器電路設(shè)計(jì)原理圖如附錄A
30、所示,控制器使用單片機(jī)STC89C52,溫度傳感器使用DS18B20,及12864液晶顯示屏實(shí)現(xiàn)溫度和其他顯示。</p><p> 3.1.1 MCS-51單片機(jī)STC89C52</p><p> 單片微機(jī)封裝形式為雙排直列式結(jié)構(gòu)(DIP),引腳共40個(gè)。如圖3-1所示。MCS-51單片機(jī)STC89C52其內(nèi)部基本組成為:一個(gè)8位的中央處理器(CPU),256byte片內(nèi)RAM單元,4
31、Kbyte掩膜式ROM,2個(gè)16位的定時(shí)器/計(jì)數(shù)器,四個(gè)8位的并行I/O口(P0,P1,P2,P3),一個(gè)全雙工串行口5個(gè)中斷源,一個(gè)片內(nèi)振蕩器和時(shí)鐘發(fā)生電路,可編程串行通道,有低功耗的閑置和掉電模式。這種結(jié)構(gòu)特點(diǎn)決定了單片機(jī)具有體積小、成本低、可靠性高、應(yīng)用靈活、開發(fā)效率高、易于被產(chǎn)品化等優(yōu)點(diǎn),使其具有很強(qiáng)的面向控制的能力,在工業(yè)自動(dòng)化控制、家用電器、智能化儀表、機(jī)器人、軍事裝置等領(lǐng)域獲得了廣泛的應(yīng)用。</p><
32、p> 圖 3- 1 MSC-C51單片機(jī)STC89C52引腳圖</p><p><b> 2.管腳說明: </b></p><p> VCC:供電電壓。 </p><p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8T
33、TL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 </p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低
34、電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),
35、P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL
36、)這是由于上拉的緣故。 </p><p> P3口也可作為8051的一些特殊功能口,如下所示: </p><p> 口管腳 備選功能 </p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p><
37、p> P3.2 /INT0(外部中斷0) </p><p> P3.3 /INT1(外部中斷1) </p><p> P3.4 T0(記時(shí)器0外部輸入) </p><p> P3.5 T1(記時(shí)器1外部輸入) </p><p> P3.6
38、 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) </p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 </p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>
39、; ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該
40、引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 </p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 </p><p> /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意
41、加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 </p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 </p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 3.1.2 溫度傳感器DS18B20</p>
42、;<p> 溫度傳感器是本系統(tǒng)不可或缺的元件,其性能的好壞直接影響系統(tǒng)的性能,因此溫度傳感器采用DALLAS公司生產(chǎn)的高性能數(shù)字溫度傳感器DS18B20。 </p><p> DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16
43、位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。 </p><p> DS18B20內(nèi)部結(jié)構(gòu)如圖3-3所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL
44、、配置寄存器。DS18B20的管腳排列如圖3-2所示: </p><p> 圖 3- 2 DS18B20的管腳排列圖</p><p> DQ: 為數(shù)字信號(hào)輸入/輸出端; </p><p> GND:為電源地; </p><p> VDD:為外接供電電源輸入端(在寄生電源接線方式時(shí)接地,見圖3-2)。 </p><p
45、> ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個(gè)DS18B20的64位序列號(hào)均不相同。64位ROM的排的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。</p><p> 圖 3- 3 DS18B20的內(nèi)部結(jié)構(gòu)</p><p> DS
46、18B20 用12 位存貯溫度值,最高位為符號(hào)位。以下圖表為DS18B20的溫度存儲(chǔ)方式,負(fù)溫度S = 1,正溫度S = 0,如:0550H為+ 85℃,0191H為25.0625 ℃,F(xiàn)C90H為- 55℃。</p><p> 溫度值低字節(jié) LSB</p><p> 溫度值高字節(jié) MSB </p><p> 高低溫報(bào)警觸發(fā)器TH和TL、配置寄存器均由一個(gè)字節(jié)
47、的EEPROM組成,使用一個(gè)存儲(chǔ)器功能命令可對(duì)TH、TL或配置寄存器寫入。其中配置寄存器的格式如下: </p><p> R1、R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=00,9位精度,最大轉(zhuǎn)換時(shí)間為93.75ms,R1R0=01,10位精度,最大轉(zhuǎn)換時(shí)間為187.5ms,R1R0=10,11位精度,最大轉(zhuǎn)換時(shí)間為375ms,R1R0=11,12位精度,最大轉(zhuǎn)換時(shí)間為750ms;未編程時(shí)默認(rèn)為12位精度。 <
48、/p><p> 高速暫存器是一個(gè)9字節(jié)的存儲(chǔ)器。開始兩個(gè)字節(jié)包含被測(cè)溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時(shí)拷貝,每一次上電復(fù)位時(shí)被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的CRC碼,可用來保證通信正確。</p><p> DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲(chǔ)器操作指令→數(shù)據(jù)傳輸。</p>
49、;<p> 3.2 部分電路簡(jiǎn)介</p><p> 3.2.1 過欠電壓檢測(cè)電路</p><p> 如圖3-4(a)所示即為過欠壓檢測(cè)電路,也稱為電壓窗口比較器。在圖3-4(a)中,A1,A2是專用電壓比較器LM119。LM119的內(nèi)部采用射級(jí)接地、集電極開路的三極管集電極輸出方式。在使用時(shí),必須外接上拉電阻。過欠壓檢測(cè)電路只有檢測(cè)出電壓是否穩(wěn)定便可,而這種電路允許輸出
50、端并接在一起。</p><p> 此電路的工作原理是:</p><p> 當(dāng)輸入電壓Ui<UR2時(shí),比較器A1的輸出管截止,而比較器A2的輸出管導(dǎo)通,此時(shí)窗口比較器的輸出電平將由比較器A2輸出電平確定為低電平。</p><p> 當(dāng)輸入電壓Ui>UR1時(shí),比較器A1的輸出管導(dǎo)通,而比較器A2的輸出管截止,此窗口比較器的輸出電平將由比較器A1輸出電平
51、確定為低電平。</p><p> 只有當(dāng)輸入電壓處于窗口電壓之內(nèi),即UR2<Ui<UR1時(shí),比較器A1和A2輸出管均截止,窗口比較器輸出電平是由上拉負(fù)載電阻拉向高電平。此窗口比較器的傳輸特性如圖3-4(b)所示。</p><p> (a) (b)</p><p> 圖 3- 4 過欠
52、壓檢測(cè)電路</p><p> 3.2.2 12864液晶連接電路</p><p> 液晶顯示屏有功耗低、體積小、重量輕、超薄等許多其他顯示器無(wú)法比擬的優(yōu)點(diǎn),近幾年來被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗
53、是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。帶中文字庫(kù)的128×64每屏可顯示4行8列共32個(gè)16×16點(diǎn)陣的漢字,每個(gè)顯示RAM可顯示1個(gè)中文字符或2個(gè)16×8點(diǎn)陣全高ASCII碼字符,即每屏最多實(shí)現(xiàn)32個(gè)中文字符或64個(gè)ASCII碼字符的顯示。帶中文字庫(kù)的128×64內(nèi)部提
54、供128×2字節(jié)的字符顯示RAM緩沖區(qū),字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實(shí)現(xiàn)的。根據(jù)寫入內(nèi)容的不同,可分別在液晶屏上顯示CGROM(中文字庫(kù))、HCGROM(ASCII碼字庫(kù))及CGRAM(自定義字形)的內(nèi)容。字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如下表所示:</p><p> 表 3- 1 漢字顯示坐標(biāo)</p><p> 在
55、此系統(tǒng)中,液晶采用并口通信,所以第15腳PSB端固定接高電平,引腳7-14作為三態(tài)數(shù)據(jù)線,其他引腳說明見表3-2,連接圖如圖3-5所示:</p><p> 圖 3- 5 12864液晶連接電路圖</p><p> 表 3- 2 12864引腳功能說明</p><p> 第4章 系統(tǒng)軟件程序設(shè)計(jì)</p><p> 基于單片機(jī)的電冰箱溫控
56、器軟件設(shè)計(jì)主要由顯示子程序、讀出并處理DS18B20的測(cè)量溫度值程序、預(yù)置溫度調(diào)節(jié)程序、溫度判斷控制程序、電冰箱開啟延時(shí)程序、還有軟件復(fù)位程序等組成。軟件程序設(shè)計(jì)總體流程圖如下圖4-1:</p><p> 圖 4- 1 軟件程序設(shè)計(jì)總體流程圖</p><p> 由于51系列的單片機(jī)沒有停機(jī)的指令,所以可以利用主程序設(shè)置死循環(huán)反復(fù)運(yùn)行各個(gè)任務(wù)。于是就把有實(shí)時(shí)要求的部分放在最內(nèi)層的循環(huán)中。
57、</p><p><b> 4.1 顯示子程序</b></p><p> 在本次設(shè)計(jì)中,顯示子程序包括三部分:往LCD液晶顯示屏發(fā)送一個(gè)字節(jié)的數(shù)據(jù)或指令子程序,LCD液晶屏初始化子程序,顯示數(shù)據(jù)處理程序。</p><p> 往LCD液晶顯示屏發(fā)送一個(gè)字節(jié)的數(shù)據(jù)或指令子程序</p><p> 其調(diào)用的函數(shù)是void
58、 TransferData(char data1,bit DI),在程序中首先將并行口選擇為寫的狀態(tài),然后選擇將要傳送的是指令還是數(shù)據(jù),再將數(shù)據(jù)送到P1口,打開并行口的使能端,等待數(shù)據(jù)輸出完畢后關(guān)閉并行口使能。其流程圖如圖4-2所示。</p><p> 圖 4- 2 傳送數(shù)據(jù)流程圖 圖 4- 3 LCD液晶初始化程序流程圖</p><p> LCD液晶屏初始化
59、子程序</p><p> 其使用的函數(shù)是void initinal(void),僅在開機(jī)時(shí)調(diào)用一次,主要負(fù)責(zé)設(shè)置LCD液晶屏的一些狀態(tài),包括設(shè)置液晶總線模式,芯片復(fù)位,功能設(shè)定,關(guān)閉芯片顯示,設(shè)置芯片動(dòng)態(tài)顯示,清屏,設(shè)置起始行0行0列;液晶初始化結(jié)束返回。LCD液晶屏初始化完成后就可以顯示各種字符了,即進(jìn)入正常工作狀態(tài)。具體流程圖4-3所示。</p><p><b> 顯示數(shù)
60、據(jù)處理程序</b></p><p> 調(diào)用方式:void lcd_mesg(uchar code *adder1)</p><p> 函數(shù)說明:顯示全屏的內(nèi)容</p><p> 調(diào)用方式:void lcd_mesg2(uchar add,uchar code *adder2)</p><p> 函數(shù)說明:顯示某一行的內(nèi)容&
61、lt;/p><p> 調(diào)用方式:void LCD_w_wd(uchar add2,int wwd,uchar fs)</p><p> 函數(shù)說明:溫度顯示處理并送入LCD的指定區(qū)域</p><p> 這些函數(shù)的使用可以使得顯示內(nèi)容時(shí),非常合適的處理好了頁(yè)切換和列切換,只要通過查表送至12864液晶顯示屏RAM中便可顯示自如。</p><p>
62、; 4.2 DS18B20程序</p><p> 整個(gè)DS18B20程序調(diào)用方式是uint ReadTemperature(void),該函數(shù)主要包括了對(duì)DS18B20的初始復(fù)位,讀溫度,溫度轉(zhuǎn)換,計(jì)算溫度等子程序,并將轉(zhuǎn)換后的數(shù)據(jù)擴(kuò)大10倍返回主函數(shù),提供給下一個(gè)函數(shù)使用。讀DS18B20程序流程圖如圖4-4。</p><p> 圖 4- 4讀DS18B20程序流程圖</p&
63、gt;<p> 對(duì) DS18B20 操作時(shí),首先要將它復(fù)位將DQ線拉低480至960s,再將數(shù)據(jù)線拉高15至60s,然后DS18B20發(fā)出60至此240s的低電平作為應(yīng)答信號(hào),這時(shí)主機(jī)才能對(duì)它進(jìn)行其它操作[11]。</p><p> 讀溫度子程序的主要功能是讀出DS18B20的RAM中的9個(gè)字節(jié)。前兩個(gè)就是溫度,將高低字節(jié)分別放入b和a中。在讀出時(shí)須進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫
64、。讀操作:主機(jī)將數(shù)據(jù)線從高電平拉至低電平1s以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號(hào)從主機(jī)將數(shù)據(jù)線從高電平拉至低電平起15s至60s,主機(jī)讀取數(shù)據(jù)每個(gè)讀周期最短的持續(xù)期為60s周期之間必須有1s以上的高電平恢復(fù)期[11]。</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)送溫度轉(zhuǎn)換開始命令。當(dāng)采用12位分辨率時(shí),轉(zhuǎn)換的時(shí)間約為750ms。在本程序中,采用2s顯示程序延時(shí)法等待轉(zhuǎn)換完成。發(fā)送溫度轉(zhuǎn)換命令的寫操作
65、:將數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號(hào)從DQ 線的下降沿起計(jì)時(shí),在 15s到60s這段時(shí)間內(nèi)對(duì)數(shù)據(jù)線進(jìn)行檢測(cè),如數(shù)據(jù)線為高電平則寫1;若為低電平,則寫0,完成了一個(gè)寫周期在開始另一個(gè)寫周期前,必須有1s以上的高電平恢復(fù)期每個(gè)寫周期必須要有60 s以上的持續(xù)期[11]。</p><p> 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定。因?yàn)閺腄S18B20中讀出的二進(jìn)制值必須先
66、轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。DS18B20的轉(zhuǎn)換精度為9~12位可選,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。擴(kuò)大十倍,四舍五入后便可將精度精確到0.1℃。</p><p> 4.3 預(yù)置溫度調(diào)節(jié)程序</p><p> 在本次設(shè)計(jì)中,可預(yù)置的溫度范圍可以從
67、-20~20℃。在編寫程序過程中,如果直接對(duì)代表溫度值的變量yskey的值在-20~20操作對(duì)數(shù)據(jù)的轉(zhuǎn)換將很復(fù)雜和麻煩。于是我將其yskey值的范圍移至1-40間,進(jìn)而就不需要去處理yskey復(fù)雜的數(shù)據(jù)類型轉(zhuǎn)換的問題了。程序的詳細(xì)設(shè)計(jì)流程圖如下圖4-5:</p><p> 圖 4- 5預(yù)置溫度調(diào)節(jié)程序流程圖</p><p> yskey返回給主函數(shù)中的ys后,要得到真實(shí)的溫度值,只需要
68、判斷ys是大于等于20,還是小于20的。若其值大于則減去20即為要預(yù)設(shè)的實(shí)際正數(shù)溫度值;若是其值小于則20減去其值,再加上一個(gè)負(fù)數(shù)符號(hào)便是要預(yù)設(shè)的負(fù)溫度值。將其值送入指定的溫度顯示區(qū)域,我們便能夠適時(shí)的看到調(diào)節(jié)的預(yù)置溫度了。</p><p> 4.4 判斷控制程序</p><p> 判斷控制程序是根據(jù)用戶設(shè)定的溫度值和DS18B20實(shí)時(shí)測(cè)得溫度值相比較,從而決定是否需要制冷,并在液晶屏
69、上顯示其工作狀態(tài)。而對(duì)壓縮機(jī)的控制則是通過控制繼電器的通斷決定是否給壓縮機(jī)通電工作來實(shí)現(xiàn)的。當(dāng)ysj=1,也就是P1.1腳為高電平的時(shí)候,繼電器閉合,壓縮機(jī)通電工作;當(dāng)ysj=0時(shí),繼電器斷開,壓縮機(jī)停止工作。</p><p> 若當(dāng)壓縮機(jī)的工作電壓不正常時(shí),壓縮機(jī)將有被燒壞的危險(xiǎn),程序自動(dòng)進(jìn)入故障處理部分,在液晶顯示屏上顯示故障原因,壓縮機(jī)停止工作。直到故障解除,然后重行啟動(dòng)電冰箱程序。圖4-6所示的就是該程
70、序的流程圖。</p><p> 為了避免冷氣泄露,節(jié)約電能需要進(jìn)行電冰箱門關(guān)好與否的檢查,因此在程序中又設(shè)置一判斷門是否關(guān)好的語(yǔ)句能夠及時(shí)地提醒用戶門沒關(guān)好。這一部分將不再圖4-6中畫出。</p><p> 圖 4- 6判斷控制程序流程圖</p><p> 4.5 開啟延時(shí)程序</p><p> 該功能要求壓縮機(jī)停機(jī)時(shí)間超過5分鐘才能
71、啟動(dòng),以延長(zhǎng)壓縮機(jī)的壽命,這就要求在每次電冰箱上電時(shí),都要檢查壓縮機(jī)停機(jī)是否到5分鐘。若未達(dá)到需延時(shí)到5分鐘后才能啟動(dòng),因此在設(shè)計(jì)時(shí)應(yīng)有判斷與延時(shí)功能。</p><p> 按功能要求,電冰箱無(wú)論是自動(dòng)停機(jī)還是強(qiáng)制停機(jī)。為了延長(zhǎng)壓縮機(jī)的壽命,都要延時(shí)5分鐘后壓縮機(jī)才能啟動(dòng)。即在每次接通壓縮機(jī)時(shí),單片機(jī)計(jì)時(shí),利用單片機(jī)將計(jì)數(shù)值保存在軟件設(shè)計(jì)時(shí),每次上電都要檢查此數(shù)據(jù)是否到5分鐘。若時(shí)間不到,延時(shí)后才能接通壓縮機(jī)。為
72、了在單片機(jī)延時(shí)期間不耽擱其他程序的執(zhí)行和處理,在此使用定時(shí)器T1計(jì)時(shí),并且使用工作組2,循環(huán)定時(shí)延遲5分鐘。但在本程序中壓縮機(jī)的開啟延時(shí)時(shí)間為30秒,方便演示。圖4-7為開啟延時(shí)程序流程圖。</p><p> 圖 4- 7 開啟延時(shí)程序流程圖</p><p> 第5章 系統(tǒng)調(diào)試及性能分析</p><p><b> 5.1 調(diào)試</b>&l
73、t;/p><p> 系統(tǒng)的調(diào)試以程序調(diào)試為主。</p><p> 硬件調(diào)試比較簡(jiǎn)單,首先檢查電路的焊接是否正確,然后可用萬(wàn)用表測(cè)試或通電檢測(cè)。</p><p> 軟件調(diào)試可以先編寫顯示程序并進(jìn)行硬件的正確性檢驗(yàn),然后分別進(jìn)行主程序和各個(gè)子程序的編程和功能調(diào)試。對(duì)于顯示子程序,是最首當(dāng)其沖的,只需要能將所要顯示的內(nèi)容全部顯示,并且顯示在恰當(dāng)?shù)奈恢?,如果不能顯示準(zhǔn)確,
74、就有可能導(dǎo)致后面程序很難寫出。在調(diào)試過程中由于對(duì)顯示的地址把握不準(zhǔn)導(dǎo)致顯示覆蓋并且錯(cuò)誤的現(xiàn)象。</p><p> 其次最重要的一個(gè)程序就是實(shí)時(shí)測(cè)量環(huán)境溫度的DS18B20程序,它能否正常工作關(guān)系到整個(gè)系統(tǒng)是否能夠正常工作;對(duì)于其的調(diào)試主要看是否能夠顯示測(cè)得的溫度,還有在其工作的時(shí)候,用手指去捏住DS18B20看溫度是否變化,其次另外拿支溫度計(jì)測(cè)當(dāng)時(shí)的溫度,和DS18B20測(cè)得的溫度比較一下看誤差是否比較大。&l
75、t;/p><p> 預(yù)置溫度程序就看能不能正確地調(diào)動(dòng)溫度,智能控制就看在實(shí)測(cè)溫度和預(yù)置溫度大小比較時(shí)和電壓出現(xiàn)不穩(wěn)定情況時(shí),能不能正確的控制制冷設(shè)備工作和保護(hù)制冷設(shè)備;延時(shí)開啟程序就看在制冷設(shè)備啟動(dòng)前是否有相應(yīng)的一段時(shí)間間隔。如若不能正常進(jìn)行,再返回程序設(shè)計(jì)原理和C語(yǔ)言的語(yǔ)法、數(shù)據(jù)轉(zhuǎn)換規(guī)則仔細(xì)推理程序是否寫錯(cuò)。</p><p><b> 5.2 性能分析</b><
76、;/p><p> 電冰箱各個(gè)性能分析如下:</p><p> 預(yù)設(shè)溫度調(diào)節(jié)范圍:-20℃~20℃;</p><p> 壓縮機(jī)延時(shí)開啟時(shí)間:30秒;</p><p> DS18B20測(cè)溫精度:0.1℃;</p><p><b> 第6章 分析與結(jié)論</b></p><p&
77、gt; 通過此項(xiàng)設(shè)計(jì)的分析可得到如下結(jié)論: </p><p> 1.本系統(tǒng)運(yùn)用單片機(jī)速度快、體積小、價(jià)格低廉的8位STC89C52單片機(jī),可以做出可行、可靠性強(qiáng)的自動(dòng)控制產(chǎn)品---電冰箱溫度的控制系統(tǒng)。實(shí)現(xiàn)了電冰箱溫度的自動(dòng)控制。 </p><p> 2.在單片機(jī)應(yīng)用環(huán)境不是很惡劣的地方,利用軟件抗干擾也可以達(dá)到精度不高的要求,而且,節(jié)省了硬件資源,降低了產(chǎn)品設(shè)計(jì)成本,有助于產(chǎn)品的推
78、廣、民用化。 </p><p> 3.本系統(tǒng)的設(shè)計(jì)盡量簡(jiǎn)化電路,提高軟件質(zhì)量。 </p><p> 4.本系統(tǒng)支持多功能模塊。如果再加上少許外圍器件,如語(yǔ)音芯片,環(huán)境溫度傳感器,在軟件方面采用模糊控制技術(shù),可以使電冰箱的智能化大大提高。</p><p><b> 致謝</b></p><p> 在此論文最終完成之
79、際,向所有關(guān)心和幫助過我的老師、同學(xué)和朋友表示深深感謝!首先感謝通信與控制工程系的領(lǐng)導(dǎo)和老師對(duì)我的關(guān)心和幫助,感謝他們?yōu)槲姨峁┍憷臈l件,使我的畢業(yè)設(shè)計(jì)能順利完成。 </p><p> 同時(shí),我要衷心感謝***老師,從畢業(yè)設(shè)計(jì)的開始到畢業(yè)論文的最終定稿,在此期間xx老師給了我細(xì)心的指導(dǎo)和幫助,xx老師淵博的知識(shí)、誠(chéng)懇的為人、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度深深感染了我,讓我終生受用。在此,我向我的指導(dǎo)老師致以誠(chéng)摯的謝意和深深的敬
80、意。 </p><p> 此外,在我撰寫論文期間,還得到了同班同學(xué)的支持和鼓勵(lì),我要特別感謝余元龍等同學(xué),每當(dāng)我遇到困難進(jìn)行不下去的時(shí)候,他們都能耐心細(xì)致地給我講解,幫助我度過了一個(gè)又一個(gè)難關(guān),我的畢業(yè)設(shè)計(jì)和論文才得以順利地完成,在此我衷心地對(duì)他們說聲“謝謝!”。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 求是
81、科技.8051系列單片機(jī)C程序設(shè)計(jì)完全手冊(cè)[M].北京:人民郵電出版社,2006</p><p> [2] 張?chǎng)蔚?單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2006</p><p> [3] 陳濤.單片機(jī)應(yīng)用及C51程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2008</p><p> [4] 樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:北京航天航空大學(xué)出
82、版社,2007</p><p> [5] 譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005</p><p> [6] 楊克昌,羊四清,周克江等.C程序設(shè)計(jì)[M].武漢:武漢大學(xué)出版社,2007</p><p> [7] 周興華.單片機(jī)智能化產(chǎn)品——C語(yǔ)言設(shè)計(jì)實(shí)例詳解[M].北京:北京航空航天大學(xué)出版社,2007</p><
83、p> [8] 沙占友等.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003</p><p> [9] 張齊等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——基本C語(yǔ)言編程[M].北京:電子工業(yè)出版社,2004</p><p> [10] 王東鋒,董冠強(qiáng).單片機(jī)C語(yǔ)言應(yīng)用100例[M].北京:電子工業(yè)出版社,2009</p><p> [11] 余瑾,姚燕.基于DS1
84、8B20測(cè)溫的單片機(jī)溫度控制系統(tǒng)[J].單片機(jī)開發(fā)與應(yīng)用,2009,25(3-2):105-106.</p><p> [12] Zhang Chunzhi Feng Haiming.Design of Micro-controllers Control System of Electric Refrigerator[J] .Journal of Beijing Vocational&Tech
85、nical Institute of Industry.2002,(03):21-26</p><p><b> 附錄</b></p><p> 附錄A 溫控器系統(tǒng)原理圖</p><p> 附錄B 溫控器系統(tǒng)設(shè)計(jì)源代碼</p><p> #include <stdio.h></p>
86、<p> #include <math.h></p><p> #include <reg52.h></p><p> #include <string.h></p><p> #define uint unsigned int</p><p> #define uchar unsign
87、ed char</p><p> uchar code table[];</p><p> uint door;</p><p> uchar fushu;</p><p> uchar fushu1;</p><p> uint temp;</p><p> uch
88、ar ys;</p><p> uchar yskey=20;</p><p><b> uint n=0;</b></p><p> sbit RS =P2^4;</p><p> sbit WRD=P2^5;</p><p> sbit E= P2^6;<
89、;/p><p> sbit PSB=P2^1;</p><p> sbit RES=P2^3;</p><p> sbit DQ=P1^7;//ds18b20 端口</p><p> sbit ysj=P1^1;//控制繼電器</p><p> sbit KEY_1 = P3^3;
90、//上</p><p> sbit KEY_2 = P3^1; //下</p><p> sbit KEY_3 = P3^2; //</p><p> sbit KEY_4 = P1^2; // 模擬電壓是否正常</p><p> void lcd_w_gzztpd(void);</p><
91、p> void lcd_w_menkg(void);</p><p> void LCD_w_wd(uchar add2,int wwd,uchar fs);</p><p> void TransferData(char data1,bit DI);</p><p> void delayms(uint n);</p&g
92、t;<p> void delay(uint m);</p><p> void lcd_mesg(uchar code *adder1);</p><p> void lcd_mesg2(uchar add,uchar code *adder2);</p><p> void lcd_w_hz(char address
93、,char *hanzi);</p><p> uint ReadTemperature(void);</p><p> void Init_DS18B20(void);</p><p> uchar ReadOneChar(void);</p><p> void WriteOneChar(unsigned c
94、har dat);</p><p> void delayds(unsigned int i);</p><p> uchar key(void);</p><p> void soft_reset(void);</p><p> void znkzysj(void);</p><p>
95、 uchar code table[]={</p><p> "湖南人文科技學(xué)院"</p><p> "----彭智偉------"</p><p> "通控系06電信一班"</p><p> " 電冰箱智能控制"</p><p>
96、;<b> };</b></p><p> uchar code table1[]={</p><p> "預(yù)設(shè): ℃"</p><p> " "</p><p> "當(dāng)前: ℃"</p&
97、gt;<p> "工作狀態(tài): "</p><p><b> };</b></p><p> uchar code men[]={"----門已打開----"};</p><p> uchar code men1[]={"----門已關(guān)閉----"};&l
98、t;/p><p> uchar code gzzt0[]={"--電冰箱工作中--"};</p><p> uchar code gzzt1[]={"--電冰箱未工作--"};</p><p> uchar code gzzt2[]={</p><p> "壓縮機(jī)工作電壓不"&l
99、t;/p><p> "電壓是否正常! "</p><p> "正常,請(qǐng)檢查電源"</p><p> "然后重啟電冰箱!"</p><p><b> };</b></p><p> /************************
100、*********************************************************/</p><p> void initinal(void) //LCD字庫(kù)初始化程序</p><p><b> {</b></p><p> delay(40); //大于
101、40MS的延時(shí)程序</p><p> PSB=1; //設(shè)置為8BIT并口工作模式</p><p> delay(1); //延時(shí)</p><p> RES=0; //復(fù)位</p><p> delay(1); //延時(shí)
102、</p><p> RES=1; //復(fù)位置高</p><p> delay(10);</p><p> TransferData(0x30,0); //Extended Function Set :8BIT設(shè)置,RE=0: basic instruction set, G=0 :graphic display OFF<
103、/p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x30,0); //Function Set</p><p> delay(37); ////大于37uS的延時(shí)程序</p><p> TransferData(0x08,0)
104、; //Display on Control</p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x10,0); //Cursor Display Control光標(biāo)設(shè)置</p><p> delay(100); //大于100uS的延時(shí)程序<
105、;/p><p> TransferData(0x0C,0); //Display Control,D=1,顯示開</p><p> delay(100); //大于100uS的延時(shí)程序</p><p> TransferData(0x01,0); //Display Clear</p><p> delay(10
106、); //大于10mS的延時(shí)程序</p><p> TransferData(0x06,0); //Enry Mode Set,光標(biāo)從右向左加1位移動(dòng)</p><p> delay(100); //大于100uS的延時(shí)程序</p><p> delay(100); //大于100uS的延時(shí)程序</p>
107、;<p> lcd_mesg(table); //顯示中文漢字</p><p> delayms(50);</p><p> lcd_mesg(table1);</p><p><b> }</b></p><p> /***************************************
108、***************************************/</p><p> void main(void)</p><p><b> {</b></p><p> initinal(); //調(diào)用LCD字庫(kù)初始化程序</p><p> /* 定時(shí)、中斷初始化 */</p>
109、<p> TMOD = 0x10; // T1使用定時(shí)模式,工作模式1,無(wú)門控位</p><p> TH1 = 0x15; // 為T1填入初值,定時(shí)時(shí)間50ms</p><p> TL1 = 0xA0;</p><p> ET1 = 1; // 允許定時(shí)器1中斷</p><p> EA = 1;
110、 // CPU開放中斷</p><p><b> while(1)</b></p><p><b> { </b></p><p> temp=ReadTemperature();</p><p> LCD_w_wd(0x93,temp,fushu);</p><p&g
111、t;<b> ys=key();</b></p><p> if(ys>=20){fushu1=0;ys=ys-20;}</p><p> else {fushu1=1;ys=20-ys;}</p><p> znkzysj();</p><p> ys=ys*10;LCD_w_wd(0x83,ys,fu
112、shu1);</p><p> lcd_w_menkg();</p><p> // delayms(50);</p><p> lcd_w_gzztpd();</p><p> delayms(50);</p><p> //delayms(240);</p><p><b
113、> }</b></p><p><b> }</b></p><p> /*************************以下是12864的代碼***********************************/</p><p> void lcd_mesg(uchar code *adder1)</p
114、><p><b> {</b></p><p><b> uchar i;</b></p><p> TransferData(0x80,0); //Set Graphic Display RAM Address</p><p> delay(100);</p><p>
115、; for(i=0;i<32;i++)</p><p><b> {</b></p><p> TransferData(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b></p>&
116、lt;p> TransferData(0x90,0); //Set Graphic Display RAM Address</p><p> delay(100);</p><p> for(i=32;i<64;i++)</p><p><b> {</b></p><p> TransferDa
117、ta(*adder1,1);</p><p><b> adder1++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void lcd_mesg2(uchar add,uchar code *adder2)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的電冰箱溫控器的設(shè)計(jì)
- 基于單片機(jī)的電冰箱溫控器設(shè)計(jì)
- 基于單片機(jī)的溫控器的畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的溫控器設(shè)計(jì)說明
- 基于單片機(jī)的溫控器設(shè)計(jì)說明
- 畢業(yè)設(shè)計(jì)論文——基于51單片機(jī)的無(wú)線壁掛爐溫控器
- 基于單片機(jī)控制的數(shù)字溫控器
- 基于單片機(jī)控制的數(shù)字溫控器
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 單片機(jī)溫控畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的空調(diào)溫控器畢業(yè)論文
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的智能冰箱控制器
- 畢業(yè)設(shè)計(jì)-----基于單片機(jī)的數(shù)字溫控計(jì)
- 單片機(jī)智能溫控器課程設(shè)計(jì)
- 課程設(shè)計(jì)-基于單片機(jī)的電冰箱控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的數(shù)字溫控計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的油溫溫控系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)溫控風(fēng)扇轉(zhuǎn)速的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)恒溫控制
- 基于-51單片機(jī)的無(wú)線壁掛爐溫控器
評(píng)論
0/150
提交評(píng)論