版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 南 陽 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)</p><p> 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)</p><p> Based on Single Chip Microcomputer Temperature Control System Design</p><p> 學(xué) 院(系): 計(jì)算機(jī)與信息工程學(xué)院 <
2、;/p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 學(xué) 生 姓 名: 李瑞卿 </p><p> 學(xué) 號(hào): 1306734005 </p><p> 指 導(dǎo) 教 師(職稱):魯慶賓(副教授)
3、 </p><p> 評(píng) 閱 教 師: </p><p> 完 成 日 期: 2015年6月 </p><p><b> 南陽理工學(xué)院</b></p><p> Nanyang Institute of T
4、echnology</p><p> 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì) </p><p> 通信工程專業(yè) 李瑞卿</p><p> 【摘 要】溫度是工業(yè)控制中主要的被控參數(shù)之一,在日常生活中也經(jīng)常要用到溫度的檢測(cè)及控制。本文介紹了一種以AT89C51單片機(jī)為核心的控制器,以DS18B20為溫度傳感器的溫度控制器。首先,通過對(duì)元器件的選擇,設(shè)計(jì)控制器的硬件電路;
5、然后,設(shè)計(jì)相關(guān)應(yīng)用程序;最后,通過仿真,對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)試、分析。最終實(shí)現(xiàn)溫度采集、顯示、控制等功能。仿真結(jié)果表明,所設(shè)計(jì)的控制器能夠完成所需功能,并且具有測(cè)量精準(zhǔn)高、實(shí)時(shí)性好、使用方便等特點(diǎn)。</p><p> 【關(guān)鍵詞】:溫度控制;AT89C51;溫度顯示;DS18B20</p><p> Based on Single Chip Microcomputer Temperature
6、 Control System Design</p><p> Communications Engineering Major Li Ruiqing</p><p> Abstract:Temperature control is charged with one of the main industrial parameters, in everyday life also of
7、ten use to detect and control the temperature. This paper presents a AT89C51 microcontroller as the core to the controller to DS18B20 temperature sensor temperature controller. First, the choice of components, design of
8、the controller hardware circuit; then, design-related applications; Finally, the simulation of the entire system for debugging and analysis. The ultimate realization of tem</p><p> Key words: Temperatu
9、re control; AT89C51; Temperature display; DS18B20</p><p><b> 目 錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1課題背景及意義1</p><p> 1.2課題研究的內(nèi)容1</p&
10、gt;<p> 1.3.溫度控制器的選擇2</p><p> 2. 溫度控制器的硬件電路設(shè)計(jì)3</p><p> 2.1 溫度傳感器的選擇3</p><p> 2.1.1 數(shù)字溫度傳感器3</p><p> 2.1.2 熱電阻溫度傳感器4</p><p> 2.1.3 方案選擇4&
11、lt;/p><p> 2.2 溫度采集模塊電路的設(shè)計(jì)4</p><p> 2.2.1 DS18B20介紹4</p><p> 2.2.2 溫度傳感器工作原理5</p><p> 2.2.3 DS18B20工作原理介紹7</p><p> 2.2.4 DS18B20使用中的注意事項(xiàng)8</p>
12、<p> 2.2.5 DS18B20和AT89C51單片機(jī)連接電路9</p><p> 2.3 顯示模塊設(shè)計(jì)10</p><p> 2.3.1 LCD液晶顯示器簡(jiǎn)介10</p><p> 2.3.2 液晶模塊簡(jiǎn)介11</p><p> 2.3.3 液晶顯示部分與STC89C51單片機(jī)的接口13</p>
13、;<p> 2.4 按鍵電路的設(shè)計(jì)14</p><p> 2.4.1 單片機(jī)檢測(cè)按鍵的原理14</p><p> 2.4.2 矩陣鍵盤的設(shè)計(jì)15</p><p> 3. 系統(tǒng)軟件設(shè)計(jì)16</p><p> 3.1 主程序的設(shè)計(jì)16</p><p> 3.2 DS18B20初始化程序
14、17</p><p> 3.3 LCD初始化程序的設(shè)計(jì)19</p><p> 3.4 繼電器控制的程序20</p><p> 4. 仿真結(jié)果及分析26</p><p> 4.1 系統(tǒng)仿真26</p><p> 4.2 仿真分析27</p><p><b> 5.
15、總結(jié)28</b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 附 錄30</b></p><p><b> 致謝36</b></p><p><b> 1 緒 論</b></p>&l
16、t;p> 1.1課題背景及意義</p><p> 日常生活中溫度控制在各行各業(yè)中都起著重要的作用,因此能夠檢測(cè)溫度變化的溫度檢測(cè)設(shè)備出現(xiàn)在人們的視線中。它能使人們能及時(shí)看到溫度變化的第一手資料,提示溫度變化情況,協(xié)助人們及時(shí)調(diào)整,并有溫度報(bào)警作用,讓溫度控制更好的服務(wù)于整個(gè)社會(huì)和人們的生活。</p><p> 21世紀(jì)是電子技術(shù)飛速發(fā)展的時(shí)代,人類的生活發(fā)生了質(zhì)的變化,特別是隨
17、著大規(guī)模集成電路的出現(xiàn)微型計(jì)算機(jī)應(yīng)運(yùn)而生,讓人類社會(huì)進(jìn)入了一個(gè)新的時(shí)代。雖然微機(jī)可以完成各種各樣的工程控制,但是微機(jī)價(jià)格高,對(duì)于大多數(shù)的工業(yè)控制來說,并不是最佳選擇。于是單片機(jī)就出現(xiàn)在了人們的視野中。它是一個(gè)簡(jiǎn)化的微機(jī),將微機(jī)的中央處理器,存儲(chǔ)單元,I/O接口,定時(shí)器/計(jì)數(shù)器等集成在一片芯片上。和微機(jī)比較,單片機(jī)價(jià)格低廉,適合應(yīng)用在工業(yè)的控制場(chǎng)合以降低成本。另外,單片機(jī)可靠性高,性能穩(wěn)定??稍趶?fù)雜的工業(yè)環(huán)境下運(yùn)行。單片機(jī)依靠其高性價(jià)比,
18、在工業(yè)控制,工業(yè)生產(chǎn),家用電器制造等方面得到了廣泛的應(yīng)用。</p><p> 溫度是表征物體冷熱程度的物理量,工農(nóng)業(yè)生產(chǎn)過程中溫度是一個(gè)重要的參數(shù)。溫度測(cè)量在產(chǎn)品生產(chǎn),工業(yè)設(shè)計(jì),能源節(jié)約中起到了關(guān)鍵性的作用。隨著科學(xué)技術(shù)的進(jìn)步和生產(chǎn)的需要,溫度傳感器不斷更新豐富起來。</p><p> 溫度作為一個(gè)模擬量,如果采用合適的技術(shù)和元件,將模擬的溫度量轉(zhuǎn)化為數(shù)字量雖說不難,但電路也很復(fù)雜,成
19、本也很高。溫度測(cè)量中測(cè)量溫度是重點(diǎn),本設(shè)計(jì)中單片機(jī)溫度測(cè)量同樣如此。</p><p> 1.2課題研究的內(nèi)容</p><p> 本設(shè)計(jì)研究的主要課題是基于單片機(jī)的水溫控制系統(tǒng),介紹了對(duì)爐內(nèi)溫度的顯示、控制和報(bào)警,實(shí)現(xiàn)了溫度的實(shí)時(shí)顯示及控制。其中爐內(nèi)溫度控制中,采用AT89C51單片機(jī)、DS18B20、和LCD的硬件電路檢測(cè)和顯示實(shí)時(shí)水溫,采用DS18B20與單片機(jī)相接再由硬件與軟件電路
20、組合來實(shí)現(xiàn)對(duì)加熱電阻絲的控制和超出規(guī)定的上下限溫度的報(bào)警。</p><p> 1.3.溫度控制器的選擇</p><p> 溫度控制器選擇基于51單片機(jī)的溫度控制器,圖2-1是基于51單片機(jī)的溫度控制器框圖。該控制器由溫度采集模塊、控制模塊、顯示模塊、報(bào)警模塊以及電源模塊等組成。</p><p> 基于單片機(jī)的溫度控制器框圖如圖2-1所示。</p>
21、<p> 圖1-1 基于單片機(jī)溫度控制器框圖</p><p> 51單片機(jī)是控制器的控制核心,因此單片機(jī)的選擇,對(duì)所設(shè)計(jì)系統(tǒng)的實(shí)現(xiàn)以及功能的擴(kuò)展有著很大的影響。單片機(jī)種類很多,在眾多51系列單片機(jī)中,較為常用的是ATMEL 公司的AT89C51和AT89S52單片機(jī),AT89C51片內(nèi)4KROM是Flash工藝的,使用專用的編程器自己就可以隨時(shí)對(duì)單片機(jī)進(jìn)行電擦除和改寫,片內(nèi)有128字節(jié)的RAM。而
22、AT89S52含有在系統(tǒng)可編程的Flash存儲(chǔ)器,片內(nèi)有8K閃存,RAM的容量也較AT89C51大,為256字節(jié)。顯然這種單片機(jī)優(yōu)點(diǎn)更多,開發(fā)時(shí)間也大為縮短。</p><p> 2. 溫度控制器的硬件電路設(shè)計(jì)</p><p> 2.1 溫度傳感器的選擇</p><p> 溫度是表征物體冷熱程度的物理量,它可以通過物體隨溫度變化的某些特性(如電阻、電壓變化等特性
23、)來間接測(cè)量,利用這種物理特性制成的傳感器稱為溫度傳感器。常用的溫度傳感器有熱電偶、熱敏電阻、熱電阻、集成溫度傳感器及數(shù)字式溫度傳感器等多種溫度傳感器。</p><p> 2.1.1 數(shù)字溫度傳感器</p><p> 典型的數(shù)字溫度傳感器如DS18B20,該傳感器主要特性如下:</p><p> 1.數(shù)據(jù)線供電是寄生電源方式下的供電方式,電壓適應(yīng)的范圍更寬,電
24、壓范圍:3.0~5.5V;</p><p> 2.DS18B20在和微處理器的連接僅僅需一條總線即就可以實(shí)現(xiàn)DS18B20和微處理器雙向的通信,它的單線接口方式十分特殊;</p><p> 3.DS18B20可以支持多個(gè)點(diǎn)的組網(wǎng)功能,多個(gè)DS18B20可并聯(lián)的在唯一的總線上,能夠?qū)崿F(xiàn)組網(wǎng)的多點(diǎn)測(cè)溫;</p><p> 4.轉(zhuǎn)換的電路及全部傳感器元件就像一只三極
25、管集成在的集成電路內(nèi),DS18B20在使用的時(shí)候不需要任何的外圍元件;</p><p> 5.在-10~+85℃時(shí)精度為±0.5℃,測(cè)溫范圍-55℃~+125℃;</p><p> 6.可分辨溫度依次為0.5℃、0.25℃、0.125℃和0.0625℃,相對(duì)應(yīng)的可以編程的分辨率是9~12位,可實(shí)現(xiàn)高精度測(cè)溫;</p><p> 7.12位分辨率時(shí)最多
26、在750毫秒內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,在9位分辨率時(shí)最多在 93.75毫秒內(nèi)把溫度轉(zhuǎn)換為數(shù)字,速度更快;</p><p> 8.直接輸出數(shù)字溫度信號(hào)的測(cè)量結(jié)果,可傳送CRC校驗(yàn)碼,同時(shí)以"單總線"串行方式傳送給CPU,有極強(qiáng)抗干擾和糾錯(cuò)能力;</p><p> 9.負(fù)壓特性:接反電源的極性時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。</p><p>
27、; 2.1.2 熱電阻溫度傳感器</p><p> 熱電阻的測(cè)量精度高,性能穩(wěn)定,使用方便,測(cè)量范圍寬,在高精度、低溫測(cè)量中占有重要的地位。熱電阻傳感器主要用于中低溫度(-200℃~+650℃或850℃)范圍的溫度測(cè)量。常用的工業(yè)標(biāo)準(zhǔn)化熱電阻有鉑熱電阻和銅熱電阻。鉑電阻傳感器是利用金屬鉑(Pt)的電阻值隨溫度變化而變化的物理特性而制成的溫度傳感器。以鉑電阻作為測(cè)溫元件進(jìn)行溫度測(cè)量的關(guān)鍵是要能準(zhǔn)確地測(cè)量出鉑電阻
28、傳感器的電阻值。鉑電阻具有適用范圍廣、測(cè)量范圍大、穩(wěn)定性高、重復(fù)性好、價(jià)格低廉、使用方便等優(yōu)點(diǎn),成為目前工業(yè)和實(shí)驗(yàn)室中溫度測(cè)量應(yīng)用最廣泛普遍的傳感元件之一,工業(yè)中應(yīng)用較多的熱電阻傳感器如Pt100。</p><p> 2.1.3 方案選擇</p><p> 對(duì)比上述兩種方案,雖然Pt100的測(cè)量溫度范圍比較大,但是由于其測(cè)溫原理是電阻值隨著溫度的改變而改變,需要設(shè)計(jì)非常優(yōu)良的溫度采集電
29、路,其中應(yīng)包括測(cè)溫部分,線性化部分,放大部分,A/D轉(zhuǎn)換部分,這就會(huì)使外圍的電路更加復(fù)雜。DS18B20是數(shù)字式溫度傳感器,只需一根總線就可以與單片機(jī)通信,是外圍的電路大大簡(jiǎn)化,測(cè)量的精度更準(zhǔn)確。因此本控制器的設(shè)計(jì)中,溫度傳感器擬選擇DS18B20作為溫度采集傳感器。</p><p> 2.2 溫度采集模塊電路的設(shè)計(jì)</p><p> 2.2.1 DS18B20介紹</p>
30、<p> DS18B20引腳圖如圖2-1所示。</p><p> 圖2-1 DS18B20引腳圖</p><p> DALLAS 最新的單線數(shù)字溫度傳感器DS18B20是一種新型“一線器件”,它的體積更小、更適用于多種場(chǎng)合、而且適用電壓更寬、也更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司開發(fā)的數(shù)字化溫度傳感器DS18B20也是世界上第一片支持“一線總線”接口的數(shù)字溫度傳感器。溫度的
31、測(cè)量范圍為-55~+125 攝氏度,能編程為9位~12 位轉(zhuǎn)換精度,0.0625攝氏度的測(cè)溫分辨率,分辨率的設(shè)定參數(shù)及用戶設(shè)定的報(bào)警溫度會(huì)存儲(chǔ)在EEPROM 中,掉電后依然能保存。用符號(hào)擴(kuò)展的16位數(shù)字量方式串行的輸出被測(cè)溫度;采用寄生電源方式產(chǎn)生,其工作的電源既可以遠(yuǎn)端引入;3 根或2根線上可并聯(lián)多個(gè)DS18B20,CPU只需要一根端口線就能與諸多的DS18B20 通信,較少占用微處理器的端口,可以節(jié)省邏輯電路和大量的引線,因而用它來
32、組成的測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可掛多個(gè)這樣的數(shù)字溫度計(jì),非常的方便。</p><p> 2.2.2 溫度傳感器工作原理</p><p> DS18B20的讀寫時(shí)序及測(cè)溫原理與DS1820是相同的,得到的溫度值的位數(shù)卻會(huì)因?yàn)榉直媛实牟煌煌?,而且進(jìn)行溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間從2s 減為750ms。 DS18B20的測(cè)溫原理:低溫度系數(shù)的晶振,它是用以產(chǎn)生固定頻率的脈沖信號(hào)給計(jì)
33、數(shù)器1,它的振蕩頻率受到溫度的影響非常的小。高溫度系數(shù)的晶振,則它的振蕩率會(huì)隨著溫度的變化而明顯的改變,產(chǎn)生的信號(hào)就作為計(jì)數(shù)器2的脈沖輸入。溫度寄存器以及計(jì)數(shù)器1被預(yù)先設(shè)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。對(duì)從低溫度系數(shù)晶振產(chǎn)生的脈沖,將會(huì)通過計(jì)數(shù)器1來進(jìn)行減法的計(jì)數(shù),當(dāng)計(jì)數(shù)器1預(yù)置的值減到了0的時(shí)候,計(jì)數(shù)器1的預(yù)置值將重新裝入,這時(shí)候溫度寄存器的值就加1。計(jì)數(shù)器1也就重新開始進(jìn)行計(jì)數(shù),如此循環(huán),停止溫度寄存器值的累加時(shí)計(jì)數(shù)器2的計(jì)數(shù)值到0
34、,所測(cè)溫度就為此時(shí)溫度寄存器中的數(shù)值。</p><p> DS18B20功能特點(diǎn):</p><p> 1.采用了總線技術(shù),與單片機(jī)的通信只需要一根I/O線,在一根線上可以掛接多個(gè)的DS18B20。</p><p> 2.每只DS18B20它是根據(jù)序列號(hào)來訪問相應(yīng)的器件,具有一個(gè)獨(dú)有的,不可更改的64位的序列號(hào)。</p><p> 3.
35、低壓供電,電源范圍為3--5V,可本地供電,也能直接通過數(shù)據(jù)線提供電源(即寄生電源2方式)。</p><p> 4.在-10°C至+85°C范圍內(nèi)的可以達(dá)到精度為±0.5攝氏度,測(cè)溫的范圍為-55℃~+125攝氏度。</p><p> 5.溫度超過了的預(yù)定值的器件可以用報(bào)警搜索命令識(shí)別以及尋址。</p><p> 6.用戶可以自己
36、設(shè)定報(bào)警上下限溫度。</p><p> 7.它轉(zhuǎn)換12位的溫度的最大時(shí)間為750毫秒,可編輯的數(shù)據(jù)位9--12位。</p><p> 8.DS18B20的分辨率由用戶通過EEPROM設(shè)置為9--12位。</p><p> 9.DS18B20可以將檢測(cè)到的溫度值直接轉(zhuǎn)化為數(shù)字量,并且通過串行通信方式。</p><p> DS18B20有
37、4個(gè)主要數(shù)據(jù)部件:</p><p> 1. 光刻ROM中的64位序列號(hào)在出廠之前就已經(jīng)被光刻好了,它可看作該DS18B20的地址的序列碼。64位光刻ROM的排列為:開始的8位 (28H)是產(chǎn)品類型的標(biāo)號(hào),接著48位是該DS18B20的自身序列號(hào),最后的8位是前面的56位循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是讓每一個(gè)DS18B20都不相同,這樣的話就能夠一根總線上可掛接多個(gè)的DS18B
38、20。</p><p> 2. DS18B20溫度傳感器能實(shí)現(xiàn)對(duì)溫度的測(cè)量,以12位的轉(zhuǎn)化為例:用16位的符號(hào)擴(kuò)展二進(jìn)制補(bǔ)碼讀數(shù)的形式提供,以0.0625℃/LSB的形式表達(dá),其中S是符號(hào)位。</p><p> 3. DS18B20溫度傳感器它的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM以及一個(gè)非易失性的、可電擦除的EEPRAM,后者存放高溫度和低溫度的觸發(fā)器 TH、TL以及結(jié)構(gòu)寄存器。<
39、/p><p><b> 4.配置寄存器。</b></p><p> DS18B20內(nèi)部結(jié)構(gòu)及功能:</p><p> DS18B20內(nèi)部的結(jié)構(gòu)如圖3-7所示。主要包括以下部分:電源,溫度傳感器,64位的ROM單總線接口,用于存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲(chǔ)用戶設(shè)定溫度上下限的TH和TL觸發(fā)器,控制邏輯,8為循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生
40、器等7部分。DS18B20內(nèi)部結(jié)構(gòu)如圖2-2所示。</p><p> 圖2-2 DS18B20內(nèi)部結(jié)構(gòu)</p><p> 2.2.3 DS18B20工作原理介紹</p><p><b> 溫度的讀取:</b></p><p> DS18B20出廠時(shí)配置為12位,讀取溫度時(shí)共讀取16位,所以要把后11位的2進(jìn)制轉(zhuǎn)化
41、為10進(jìn)制后再乘以0.0625就是所測(cè)的溫度,還需判斷正負(fù)。前5個(gè)的數(shù)字為符號(hào)位,若前5位為1時(shí),讀取的溫度就為負(fù)數(shù);若前5位為0時(shí),讀取的溫度就為正數(shù)。</p><p> DS18B20寫操作:</p><p> 1.數(shù)據(jù)線首先置低電平“0”。</p><p> 2.延時(shí)的時(shí)間為15ms。</p><p> 3.再按從低位到高位的順
42、序發(fā)送字節(jié)(一次只能發(fā)送一位)。</p><p> 4.延時(shí)的時(shí)間為45ms。</p><p> 5.把數(shù)據(jù)線拉到高電平。</p><p> 6.重復(fù)上(1)到(6)的操作,一直到所有的字節(jié)全部都發(fā)送完為止。</p><p> 7.最后把數(shù)據(jù)線拉高。</p><p> DS18B20讀操作:</p>
43、;<p> 1.把數(shù)據(jù)線拉高“1”。</p><p><b> 2.延時(shí)2ms。</b></p><p> 3.數(shù)據(jù)線拉低“0”。</p><p><b> 4.延時(shí)15ms。</b></p><p> 5.將據(jù)線拉高“1”。</p><p><
44、b> 6.延時(shí)15ms。</b></p><p> 7.讀數(shù)據(jù)線的狀態(tài)得到了1個(gè)狀態(tài)位,并且進(jìn)行數(shù)據(jù)處理。</p><p><b> 8.延時(shí)30ms。</b></p><p> 2.2.4 DS18B20使用中的注意事項(xiàng)</p><p> DS18B20 雖具有連接方便、測(cè)溫系統(tǒng)簡(jiǎn)單、占用口
45、線少、測(cè)溫的精度高等優(yōu)點(diǎn),然而在實(shí)際的應(yīng)用中也應(yīng)該注意以下幾方面問題:</p><p> 1.DS18B20 從測(cè)溫結(jié)束直到把溫度值轉(zhuǎn)換成為了數(shù)字量,需要一些轉(zhuǎn)換時(shí)間,這必須保證,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤現(xiàn)象,從而使溫度輸出總是顯示為85度。</p><p> 2.在實(shí)際的使用中,應(yīng)該使電源電壓保持在5V 左右的大小,若是電源的電壓過低了,就會(huì)降低所測(cè)得的溫度精度。</p>&
46、lt;p> 3.較小的硬件開銷就需要比較復(fù)雜的軟件來進(jìn)行補(bǔ)償,因?yàn)镈S1820和微處理器間數(shù)據(jù)是串行傳送的,所以,對(duì)DS1820進(jìn)行讀寫編程,就必須嚴(yán)格保證讀寫時(shí)序,否則就不能讀取測(cè)得的溫度值。</p><p> 4.DS18B20的有關(guān)資料由于未提及單總線上所掛DS18B20 數(shù)量,就使人誤認(rèn)為能夠掛任意多個(gè)的DS18B20,但在實(shí)際的應(yīng)用中并不是這樣的,如果在單總線上所掛載的DS18B20超過了8個(gè)
47、,就要解決微處理器的總線驅(qū)動(dòng)問題,在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)必須注意這一點(diǎn)。</p><p> 5.在DS18B20測(cè)溫程序的設(shè)計(jì)中,向DS18B20 發(fā)出了溫度轉(zhuǎn)換命令后,程序總是要等待DS18B20的返回信號(hào),若某個(gè)DS18B20 接觸不好或這斷線,當(dāng)程序讀該DS18B20 時(shí),將會(huì)沒有返回的信號(hào),程序就進(jìn)入了死循環(huán),這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)的時(shí)候也要給予重視。</p>&l
48、t;p> 2.2.5 DS18B20和AT89C51單片機(jī)連接電路</p><p> DS18B20可以有兩種供電的方式,一種用的是電源供電的方式,此時(shí)DS18B20的1腳接地,3腳接電源,2腳是信號(hào)線。另一種是寄生電源供電的一種方式。如圖2-3 所示單片機(jī)端口接的是單總線,為了在DS18B20有效的時(shí)鐘周期之內(nèi)提供的電流足夠,對(duì)總線的上拉可用一個(gè)MOSFET管來完成。</p><p
49、> 當(dāng)DS18B20處于溫度A/D轉(zhuǎn)換操作和寫存儲(chǔ)器操作時(shí),必須有強(qiáng)的上拉在總線上,上拉的最大開啟時(shí)間為10微秒。采用寄生電源供電的供電方式時(shí)VDD端接地,單線制由于只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> DS18B20與單片機(jī)的接口電路如圖2-3所示。</p><p> 圖2-3 DS18B20與單片機(jī)的接口電路</p><p>
50、2.3 顯示模塊設(shè)計(jì)</p><p> 2.3.1 LCD液晶顯示器簡(jiǎn)介</p><p> 顯示器是人和機(jī)器交流信息的重要界面,早期的是以顯像管(CRT/Cathode Ray Tube)顯示器為主,但是隨著技術(shù)的不斷發(fā)展,各種各樣的顯示技術(shù)不斷誕生,而液晶(LCD)顯示器由于具有耗電量較低、短小輕薄、無輻射的危險(xiǎn),平面直角顯示,和穩(wěn)定不閃爍的影像等優(yōu)勢(shì),更是在近年來不斷下跌的價(jià)格吸引
51、下,逐漸取代了主流的CRT之地位。</p><p> 液晶是一種既有液體的流動(dòng)性還具光學(xué)特性的有機(jī)化合物,它的透明程度和呈現(xiàn)顏色受外加電場(chǎng)影響,利用這個(gè)特點(diǎn)就可以做成字符顯示器。</p><p> 液晶顯示器(LCD)英文為L(zhǎng)iquid Crystal Display,它是一種采用液晶控制透光度的技術(shù)來實(shí)現(xiàn)色彩的顯示器。和CRT顯示器比,LCD的優(yōu)點(diǎn)是十分明顯的。因?yàn)橥ㄟ^控制是否透光從
52、而控制亮和暗,當(dāng)色彩不變化時(shí),液晶也就保持不變,這樣就不用考慮刷新率的問題。</p><p> 顯示接口用來顯示系統(tǒng)的狀態(tài),命令和采集的電壓數(shù)據(jù)。本系統(tǒng)的顯示部分用的是LCD液晶模塊,采用的是一個(gè)16×1字符型液晶的顯示模塊。 </p><p> 點(diǎn)陣圖形式的液晶顯示器是由 M 行×N 列個(gè)顯示單元組成的,若LCD 顯示屏有64行,每行有 128列,每 8列對(duì)應(yīng) 1
53、 個(gè)字節(jié)的 8 個(gè)位,則每行有 16 字節(jié),共有 16×8=128個(gè)點(diǎn)所組成,屏上 64×16 個(gè)顯示單元和顯示 RAM 區(qū) 1024 個(gè)的字節(jié)是相對(duì)應(yīng)的,屏上相應(yīng)位置的亮暗和每一個(gè)字節(jié)的內(nèi)容是對(duì)應(yīng)的。一個(gè)字符是由 6×8 或者 8×8一個(gè)點(diǎn)陣所組成的,所以要找到和屏上某幾個(gè)位置相對(duì)應(yīng)顯示 RAM區(qū)的 8 個(gè)字節(jié),而且應(yīng)該使每一個(gè)字節(jié)不的同位為‘1’狀態(tài),其它的則為‘0’,為‘1’的點(diǎn)亮,為‘0’
54、的點(diǎn)為暗,這樣就組成了某一個(gè)字符。但是對(duì)內(nèi)部自帶字符發(fā)生器的控制器來說,字符顯示就會(huì)比較簡(jiǎn)單了,可以使控制器在文本方式下工作,根據(jù)在每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址和LCD開始顯示的行列號(hào),設(shè)立光標(biāo),在此送入該字符的對(duì)應(yīng)代碼就可以了。</p><p> 2.3.2 液晶模塊簡(jiǎn)介</p><p> LM016L結(jié)構(gòu)及功能:</p><p> LM016L液晶模
55、塊采用了HD44780的控制器,hd44780是具有簡(jiǎn)單而功能較強(qiáng)的指令集,能實(shí)現(xiàn)字符移動(dòng),閃爍等一些功能,LM016L與單片機(jī)MCU通訊可以采用8位或者4位并行傳輸?shù)膬煞N方式,hd44780控制器是由兩個(gè)8位的寄存器,地址計(jì)數(shù)器RAM(AC),和字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),顯示數(shù)RAM(DDRAM),及指令寄存器(IR)以及數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF)。寄存指令碼用IR,只可以寫入不可以讀出,
56、DR用以寄存數(shù)據(jù),數(shù)據(jù)是暫存從DDRAM和CGRAM讀出,或內(nèi)部操作自動(dòng)的寫入DDRAM和CGRAM的數(shù)據(jù),當(dāng)BF為1時(shí),液晶模塊就會(huì)處于內(nèi)部模式,不響應(yīng)接受數(shù)據(jù)和外部操作指令,DDTAM用以存儲(chǔ)顯示字符,能夠存儲(chǔ)總共80個(gè)字符碼,CGROM是由5*10點(diǎn)陣字符32種和8位字符碼生成的5*7點(diǎn)陣字符160種.CGRAM是專門給用戶編寫特殊字符而留的,容量只有64個(gè)字節(jié),可以自定義4個(gè)5*10點(diǎn)陣字符或8個(gè)5*7點(diǎn)陣字符,AC可存儲(chǔ)CGR
57、AM和DDRAM的地址,若是地址碼隨指令寫入了IR的話,那么IR就自動(dòng)把地址碼裝入AC,與此同時(shí),選擇</p><p> 圖2-4 1601引腳圖</p><p> LM016L引腳介紹:</p><p> Vss(1腳):一般的會(huì)接地。</p><p> Vdd(2腳):一般接電源。</p><p> Ve
58、e(3腳):液晶顯示器的對(duì)比度調(diào)整端,接電源時(shí)它的對(duì)比度是最弱的,接地時(shí)它的對(duì)比度卻是最高的(如果對(duì)比度過高則會(huì)產(chǎn)生“鬼影”,使用時(shí)可通過一個(gè)10K電位器用來調(diào)整對(duì)比度)。</p><p> RS(4腳):RS是選擇寄存器的引腳,低電平0時(shí)選擇的是指令寄存器、高電平1時(shí)就會(huì)選擇數(shù)據(jù)寄存器。</p><p> R/W(5腳):R/W是讀寫的信號(hào)線,低電平(0)時(shí)則進(jìn)行的是寫操作,高電平(
59、1)時(shí)進(jìn)行的是讀操作。</p><p> E(6腳):E(或EN)端是使能(enable)端,也即下降沿使能。</p><p> DB0(7腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的 0位(最低位)。</p><p> DB1(8腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線 的1位。</p><p> DB2(9腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的
60、2位。</p><p> DB3(10腳):底4位的三態(tài)、 雙向數(shù)據(jù)總線的 3位。</p><p> DB4(11腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線 的4位。</p><p> DB5(12腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線的 5位。</p><p> DB6(13腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線的 6位。</p>&
61、lt;p> DB7(14腳):高4位的三態(tài)、 雙向數(shù)據(jù)總線 的7位(最高位)(也是busy flag)。</p><p> 寄存器選擇控制如表2-5。</p><p> 表2-5寄存器選擇控制</p><p> 2.3.3 液晶顯示部分與STC89C51單片機(jī)的接口 </p><p> 如圖3-5所示。用89C51的P0口作數(shù)
62、據(jù)線,用P1.2、P1.1、P1.0分別作LCD的E、R/W、RS。其中,E是下降沿觸發(fā)片選信號(hào),R/W是讀寫信號(hào),RS是寄存器選擇信號(hào),本模塊有如下設(shè)計(jì)要點(diǎn):顯示模塊的初始化:首先要清屏,然后再設(shè)置8位接口數(shù)據(jù)位,顯示的行數(shù)為1行,字型的為5×7點(diǎn)陣,然后再設(shè)置成整體顯示,取消光標(biāo)以及字體的閃爍,最后再設(shè)置成正向增量的方式且為不移位。送字符給LCD顯示緩沖區(qū),程序采用的是一個(gè)顯示的字符,2個(gè)字符數(shù)組,另一則顯示電壓數(shù)據(jù),相應(yīng)
63、數(shù)組中被送入要顯示的字符或者數(shù)據(jù),完成之后再統(tǒng)一的顯示.LCD顯示的緩沖區(qū)送人一個(gè)要顯示的字符或者數(shù)據(jù),通過軟件延時(shí)2.5毫秒后,再作個(gè)數(shù)是否夠顯示的判斷,若不足夠則地址加一,取下一個(gè)要顯示的字符或者數(shù)據(jù)。</p><p> 液晶與80C51單片機(jī)連接電路如圖2-6所示。</p><p> 圖2-6 液晶與89C51單片機(jī)的連接電路</p><p> 2.4
64、按鍵電路的設(shè)計(jì)</p><p> 2.4.1 單片機(jī)檢測(cè)按鍵的原理</p><p> 單片機(jī)的I/O口即可以作為輸出也可以作為輸入使用,當(dāng)該檢測(cè)按鍵使用的是它的輸入功能,我們把按鍵的其中一端接地,另一段與單片機(jī)的I/O口相連,開始時(shí)先給I/O口賦一個(gè)高電平,然后讓單片機(jī)一直不斷循環(huán)檢測(cè)該I/O口是已經(jīng)否變?yōu)榱说碗娖?,若是按鍵閉合,就相當(dāng)于此I/O口通過按鍵接地了,變成低電平,程序如果檢
65、測(cè)到I/O口變?yōu)榱说碗娖骄驼f明該按鍵已被按下,然后就執(zhí)行相應(yīng)的指令和程序。</p><p> 2.4.2 矩陣鍵盤的設(shè)計(jì)</p><p> 鍵盤接口電路是單片機(jī)系統(tǒng)設(shè)計(jì)非常重要的一環(huán),作為人機(jī)交互界面里最常用的輸入設(shè)備。我們可以通過鍵盤輸入數(shù)據(jù)或命令來實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。通過4X4的矩陣鍵盤來可以對(duì)溫度方便的進(jìn)行設(shè)定,并通過液晶顯示器實(shí)時(shí)顯示溫度設(shè)置的情況。4×4 的矩陣式鍵
66、盤由4 根列線和4 根行線交叉構(gòu)成,行列的交叉點(diǎn)上就是按鍵,這樣就有16個(gè)按鍵。其中交叉點(diǎn)的行線和列線不連接,當(dāng)按鍵按下,位于交叉點(diǎn)處的列線和行線導(dǎo)通。行線由上拉電阻連接VCC。若是無按鍵按下,行線為高電平;若是有鍵按下,行、列線在交點(diǎn)導(dǎo)通,此時(shí),行線電平狀態(tài)是與此行線相連列線的電平狀態(tài)關(guān)聯(lián)。這是判斷按鍵是否按下的關(guān)鍵環(huán)節(jié)。但是,矩陣鍵盤的每一條行線均和4條列線相連接,位于交點(diǎn)處的按鍵是否按下均會(huì)影響該鍵所在列線和行線的電平狀態(tài),各個(gè)按
67、鍵之間將會(huì)相互的影響,按鍵分析時(shí)必須把列線、行線的狀態(tài)信號(hào)配合處理,才能確定閉合鍵的位置。在本設(shè)計(jì)中,按鍵電路原理圖如圖2-7所示。</p><p> 圖2-7 按鍵電路原理圖</p><p><b> 3. 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 3.1 主程序的設(shè)計(jì)</p><p> 整個(gè)設(shè)計(jì)系統(tǒng)功能由軟件配
68、合硬件電路來實(shí)現(xiàn),若硬件已經(jīng)定型,軟件的功能也就基本上確定了。從軟件的不同功能可為兩大類:一類是主程序(監(jiān)控軟件),是整個(gè)控制系統(tǒng)的核心,專門用于協(xié)調(diào)操作者和各執(zhí)行模塊的關(guān)系。二類是子程序(執(zhí)行軟件),它用來實(shí)現(xiàn)各種實(shí)質(zhì)性的功能,比如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)小的執(zhí)行軟件就是一個(gè)小功能執(zhí)行的模塊。在這里一一的列出各執(zhí)行模塊,并為每一個(gè)執(zhí)行模塊進(jìn)行接口和功能的定義。規(guī)劃好各個(gè)執(zhí)行模塊以后,就可以進(jìn)行監(jiān)控程序的規(guī)劃了。首先應(yīng)根據(jù)系統(tǒng)的
69、總體功能選擇一種最合適的監(jiān)控程序的結(jié)構(gòu),然后再根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。主程序流程圖如圖3-1所示。</p><p> 圖3-1 主程序流程圖</p><p> 主程序的C語言程序如下:</p><p> /*******************************************************<
70、;/p><p><b> 主程序</b></p><p> ********************************************************/</p><p><b> main() </b></p><p><b> { </b></
71、p><p> set(); //開始設(shè)置</p><p> while(1) //設(shè)置好后進(jìn)入死循環(huán)</p><p><b> {</b></p><p> lcd_init();
72、 // 初始化LCD</p><p> key(); //鍵盤掃描</p><p> error(); //檢查是否出錯(cuò)</p><p&
73、gt; readtemp(); //讀取溫度值</p><p> lcd(); //顯示子函數(shù)</p><p> relay(); //控制繼
74、電器</p><p> delay(500); //延時(shí)</p><p><b> }</b></p><p><b> }</b></p><p> 3.2 DS18B20初始化程序</p>
75、<p> DS18B20初始化步驟如下:</p><p> 1、高電平“1”狀態(tài)必須先給數(shù)據(jù)線。</p><p> 2、然后延時(shí)(該時(shí)間的要求不嚴(yán)格,但盡可能短一點(diǎn))。</p><p> 3、把數(shù)據(jù)線拉低到電平“0”狀態(tài)。</p><p> 4、再延時(shí)750微秒(該時(shí)間的范圍為480--960ms)。</p>
76、<p> 5、把數(shù)據(jù)線拉高到電平“1”。</p><p> 6、延時(shí)等待(初始化已成功,在15--60ms時(shí)間之內(nèi)DS18B20返回一個(gè)低電平“0”。根據(jù)該狀態(tài)來確定它是否存在,但不可無限進(jìn)行等待,否則程序會(huì)進(jìn)入死循環(huán)狀態(tài),故要有超時(shí)控制的操作)。</p><p> 7、CPU如果讀到了數(shù)據(jù)線上“0”狀態(tài)的低電平,還要再做延時(shí),延時(shí)時(shí)間由發(fā)出高電平開始算起(第(5)步的時(shí)
77、間開始算),最少需480ms。</p><p> 8、再次把數(shù)據(jù)線拉高到高電平“1”后就結(jié)束。</p><p> DS18B20初始化的C語言程序如下:</p><p> /*******************************************************</p><p> DS18B20初始化子程序<
78、;/p><p> ********************************************************/</p><p> void Init_DS18B20()</p><p><b> {</b></p><p> unsigned char x=0;
79、 //定義字符型局域變量</p><p> DS = 1; //總線拉高</p><p> tmpDelay(8); //延時(shí),準(zhǔn)備與DS18B20通訊</p><p> DS = 0;
80、 //總線拉低</p><p> tmpDelay(80); //延時(shí),給DS18B20復(fù)位信號(hào)</p><p> DS = 1; //總線拉高</p>
81、;<p> tmpDelay(14); //延時(shí),等待DS18B20響應(yīng)</p><p> x=DS; //讀DS18B20響應(yīng)狀態(tài)</p><p> tmpDelay(20);
82、 //延時(shí)</p><p><b> }</b></p><p> 3.3 LCD初始化程序的設(shè)計(jì)</p><p> LM016L的讀操作時(shí)序如圖3-2所示。</p><p> LM016L的寫操作時(shí)序如圖3-3所示。</p><p> LM016L的初始化的C語言
83、程序如下:</p><p> /*******************************************************</p><p><b> LCD初始化子程序</b></p><p> ********************************************************/</
84、p><p> lcd_init()</p><p><b> {</b></p><p> lcd_wcmd(0x38); //設(shè)置8位字符顯示,5*10點(diǎn)陣字符</p><p> delay(1);
85、 //延時(shí)</p><p> lcd_wcmd(0x0c); //開顯示、光標(biāo)和閃爍關(guān)閉</p><p> delay(1); //延時(shí)</p><p> lcd_wcmd(0x06);
86、 //讀、寫操作后,AC增一、畫面不動(dòng)</p><p> delay(1); //延時(shí)</p><p> lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容</p><p> delay(1);
87、 //延時(shí)</p><p><b> }</b></p><p> 3.4 繼電器控制的程序</p><p> 當(dāng)測(cè)量的環(huán)境溫度低于設(shè)定溫度時(shí),啟動(dòng)加熱繼電器,使系統(tǒng)自動(dòng)加熱,當(dāng)測(cè)量的溫度高于設(shè)定的溫度時(shí),啟動(dòng)降溫繼電器,使系統(tǒng)自動(dòng)降溫,從而使系統(tǒng)的溫度維持在
88、設(shè)定的溫度。</p><p> 系統(tǒng)繼電器控制的C語言程序如下:</p><p> /*******************************************************</p><p><b> 繼電器控制子程序</b></p><p> ***********************
89、*********************************/</p><p> void relay()</p><p><b> {</b></p><p> if(an==0)flagn=0; //實(shí)際溫度為0度,實(shí)際溫度標(biāo)志位置0</p><p> if(as==0)flags=0
90、; //設(shè)置溫度為0度,設(shè)置溫度標(biāo)志位置0</p><p> if(flagn==0) //實(shí)際溫度標(biāo)志位為0時(shí)循環(huán)</p><p><b> {</b></p><p> if(flags==0) //設(shè)置溫度標(biāo)志位為0時(shí)循環(huán)</p>
91、<p><b> {</b></p><p> if(an<as) //若實(shí)際溫度小于設(shè)置溫度循環(huán)</p><p><b> {</b></p><p> up=0; //升溫繼電器閉合</p><
92、p> down=1; //降溫繼電器打開</p><p><b> }</b></p><p> if(an==as) //若實(shí)際溫度等于設(shè)置溫度循環(huán)</p><p><b> {</b></p><p>
93、; up=1; //升溫繼電器打開</p><p> down=1; //降溫繼電器打開</p><p><b> }</b></p><p> if(an>as) //若實(shí)際溫度大于設(shè)置溫度
94、循環(huán)</p><p><b> {</b></p><p> down=0; //降溫繼電器閉合</p><p> up=1; //升溫繼電器打開</p><p><b> }</b>
95、;</p><p><b> }</b></p><p> if(flags==1) //設(shè)置溫度標(biāo)志位為1時(shí)循環(huán)</p><p><b> {</b></p><p> up=1; //升溫繼電器
96、打開</p><p> down=0; //降溫繼電器閉合</p><p><b> }</b></p><p><b> }</b></p><p> if(flagn==1) //
97、實(shí)際溫度標(biāo)志位為1時(shí)循環(huán)</p><p><b> {</b></p><p> if(flags==1) //設(shè)置溫度標(biāo)志位為1時(shí)循環(huán)</p><p><b> {</b></p><p> if(an<as)
98、//若實(shí)際溫度大于設(shè)置溫度循環(huán)</p><p><b> {</b></p><p> up=1; //升溫繼電器打開</p><p> down=0; //降溫繼電器閉合</p><p><b&g
99、t; }</b></p><p> if(an==as) //若實(shí)際溫度等于設(shè)置溫度循環(huán)</p><p><b> {</b></p><p> up=1; //升溫繼電器打開</p><p> down=
100、1; //降溫繼電器打開</p><p><b> }</b></p><p> if(an>as) //若實(shí)際溫度小于設(shè)置溫度循環(huán)</p><p><b> { </b></p><p> down=1
101、; //降溫繼電器打開</p><p> up=0; //升溫繼電器閉合</p><p><b> }</b></p><p><b> }</b></p><p> if(
102、flags==0) //設(shè)置溫度標(biāo)志位為0時(shí)循環(huán)</p><p><b> {</b></p><p> up=0; //升溫繼電器閉合</p><p> down=1; //
103、降溫繼電器打開</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.5按鍵程序的設(shè)計(jì)</p><p> 由于實(shí)際波形與理想波形之間有區(qū)別,實(shí)際波形在按下和釋放的
104、瞬間會(huì)有抖動(dòng)的現(xiàn)象,按鍵的抖動(dòng)時(shí)間和機(jī)械特性的長(zhǎng)短有關(guān),一般為5--10毫秒。我們通常手動(dòng)按下按鍵,然后就立即釋放掉按鍵,這個(gè)過程穩(wěn)定閉合的時(shí)間超過了20毫秒。因此,單片機(jī)檢測(cè)按鍵是否按下必須要加上去掉抖動(dòng)的操作,可以通過去抖動(dòng)的電路去掉抖動(dòng),也可以通過專用的去抖動(dòng)芯片去抖動(dòng),但我們常用的是軟件延時(shí),能很容易解決抖動(dòng)問題,而沒有必要再添加多余的硬件電路。按鍵檢測(cè)流程圖如圖3-4所示。</p><p> 圖3-4
105、 按鍵檢測(cè)流程圖</p><p> 按鍵掃描的C語言程序如下:</p><p> /*******************************************************</p><p><b> 按鍵掃描子程序</b></p><p> *************************
106、*******************************/</p><p> uchar keyscan()</p><p><b> {</b></p><p> P2=0xf0; //行掃描為低電平,列線為高電平</p><p> LJC=P2&am
107、p;0xf0; //第一次讀列檢測(cè)狀態(tài)</p><p> if(LJC!=0xf0) //若有鍵盤被按下</p><p><b> {</b></p><p> delay(2);
108、 //鍵盤消抖</p><p> LJC=P2&0xf0; //第二次讀取列檢測(cè)狀態(tài)</p><p> if(LJC!=0xf0) //若有閉合鍵,則逐行掃描</p><p><b> {&
109、lt;/b></p><p> HSM=0xfe; //掃描碼為0xfe、0xfd、0xfb、0xf7</p><p> while((HSM&0x10)!=0) //若掃描碼為0xef,則結(jié)束掃描</p><p><b> {</b>&
110、lt;/p><p> P2=HSM; //輸出行掃描碼</p><p> LJC=P2&0xf0; //讀列檢測(cè):0xe0、0xd0、0xb0、0x70</p><p> if(LJC!=0xf0)
111、//如果有按鍵閉合</p><p><b> {</b></p><p> keyvalue=(~HSM)+(~(LJC|0x0f)); //計(jì)算鍵盤值</p><p> P2=0xf0; //測(cè)試按鍵是否松開</p><p> while(P2!=0xf0);
112、 //進(jìn)入死循環(huán)直至按鍵松開</p><p> return(keyvalue); //返回鍵值</p><p><b> }</b></p><p> else HSM=(HSM<<1)|0x01; //行掃描左移1位</p><p>&
113、lt;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> P2=0xf0; //測(cè)試按鍵是否松開</p><p> while(P2!=
114、0xf0); //進(jìn)入死循環(huán)直至按鍵松開</p><p> return(0x00); //沒有按鍵按下則返回0x00</p><p> 4. 仿真結(jié)果及分析</p><p><b> 4.1 系統(tǒng)仿真</b></p><
115、;p> 1.仿真實(shí)驗(yàn)一: 設(shè)定的溫度為-21.00攝氏度,實(shí)時(shí)檢測(cè)的溫度為0.00攝氏度,啟動(dòng)降溫繼電器。仿真圖如圖4-1所示。</p><p><b> 圖4-1 仿真圖</b></p><p> 2. 仿真實(shí)驗(yàn)二: 設(shè)定的溫度為22.00攝氏度,實(shí)時(shí)檢測(cè)的溫度為0.00攝氏度,啟動(dòng)升溫繼電器。仿真圖如圖4-2所示。</p><p&g
116、t;<b> 圖4-2 仿真圖2</b></p><p><b> 4.2 仿真分析</b></p><p> 通過以上的仿真實(shí)驗(yàn),可以看到,本次設(shè)計(jì)的系統(tǒng)能夠可靠地運(yùn)行。當(dāng)測(cè)定的溫度比設(shè)定的溫度高時(shí),系統(tǒng)自動(dòng)啟動(dòng)降溫繼電器;而當(dāng)測(cè)定的溫度比設(shè)定的溫度低時(shí),啟動(dòng)加熱繼電器。所以可以說:該系統(tǒng)在軟件仿真的過程中,系統(tǒng)的軟件和硬件能夠很好運(yùn)行,
117、滿足設(shè)計(jì)的要求。為以后在實(shí)際的工業(yè)生產(chǎn)和日常生活中的運(yùn)用打下了堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 5. 總結(jié)</b></p><p> 本文介紹了基于80C51單片機(jī)的數(shù)字溫度控制系統(tǒng)的設(shè)計(jì)內(nèi)容,對(duì)整個(gè)硬件電路和軟件程序設(shè)計(jì)做了分析,文中介紹了數(shù)字溫度控制器的現(xiàn)狀及發(fā)展,介紹了數(shù)字溫度計(jì)的設(shè)計(jì)方案選擇及原理介紹,加深了51單片機(jī)的知識(shí)了解,介紹51單片機(jī)的結(jié)構(gòu)
118、、特點(diǎn)等。并學(xué)習(xí)了數(shù)字溫度傳感器DS18B20,設(shè)計(jì)軟件仿真,更直觀的反應(yīng)了設(shè)計(jì)的正確性。本文對(duì)其中的一些基本原理也做了簡(jiǎn)要的概述。其實(shí)寫完了本篇論文,也僅僅是對(duì)數(shù)字溫度控制系統(tǒng)做出了一個(gè)簡(jiǎn)單的設(shè)計(jì)方案,數(shù)字溫度控制器利用在很多領(lǐng)域,在一些人不能直接進(jìn)入的場(chǎng)所,利用單片機(jī)控制的溫度控制器,可以設(shè)置并控制其中的溫度,溫度控制器還可以利用在溫室中,這樣就可以方便的控制溫室中的溫度??傊趩纹瑱C(jī)的溫度控制器利用在很多領(lǐng)域。本課題只是單片機(jī)控
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 基于單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文設(shè)計(jì)基于單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 畢業(yè)論文--基于單片機(jī)的溫度控制系統(tǒng)
- 畢業(yè)論文-單片機(jī)溫度控制系統(tǒng)
- 單片機(jī)溫度控制系統(tǒng)畢業(yè)論文
- 基于單片機(jī)原理溫度控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 單片機(jī)溫度控制系統(tǒng)畢業(yè)論文
- 單片機(jī)的溫度控制系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)畢業(yè)論文 (2)
評(píng)論
0/150
提交評(píng)論