版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)論文(設(shè)計(jì))</p><p> 題目:基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)</p><p><b> 目 錄</b></p><p><b> 目 錄I</b></p><p><b> 摘 要III</b></p><
2、p> AbstractIV</p><p> 第一章 整體方案設(shè)計(jì)1</p><p> 1.1 前 言1</p><p> 1.2 系統(tǒng)整體設(shè)計(jì)1</p><p><b> 1.3方案論證2</b></p><p> 1.3.1 溫度傳感器的選擇2</p>
3、;<p> 1.3.2 控制核心的選擇3</p><p> 1.3.3 溫度顯示器件的選擇3</p><p> 1.3.4 調(diào)速方式的選擇3</p><p> 第二章 各單元模塊的硬件設(shè)計(jì)5</p><p> 2.1系統(tǒng)器件簡(jiǎn)介5</p><p> 2.1.1 DS18B20單線數(shù)字
4、溫度傳感器簡(jiǎn)介5</p><p> 2.1.2 達(dá)林頓反向驅(qū)動(dòng)器ULN2803簡(jiǎn)介5</p><p> 2.1.3 AT89C52單片機(jī)簡(jiǎn)介6</p><p> 2.1.4 LED數(shù)碼管簡(jiǎn)介7</p><p> 2.2 各部分電路設(shè)計(jì)8</p><p> 2.2.1 開(kāi)關(guān)復(fù)位與晶振電路9<
5、;/p><p> 2.2.2 獨(dú)立鍵盤(pán)連接電路9</p><p> 2.2.3 數(shù)碼管顯示電路10</p><p> 2.2.4 溫度采集電路11</p><p> 2.2.5 風(fēng)扇電機(jī)驅(qū)動(dòng)與調(diào)速電路12</p><p> 第三章 軟件設(shè)計(jì)14</p><p> 3.1 程序設(shè)
6、置14</p><p> 3.2 用Keil C51編寫(xiě)程序14</p><p> 3.3 用Proteus進(jìn)行仿真15</p><p> 3.3.1 Proteus簡(jiǎn)介15</p><p> 3.3.2 本設(shè)計(jì)基于Proteus的仿真16</p><p> 第四章 系統(tǒng)調(diào)試21</p>
7、;<p> 4.1 軟件調(diào)試21</p><p> 4.1.1 按鍵顯示部分的調(diào)試21</p><p> 4.1.2 傳感器DS18B20溫度采集部分調(diào)試21</p><p> 4.1.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試21</p><p> 4.2 硬件調(diào)試22</p><p> 4.2.
8、1 按鍵顯示部分的調(diào)試22</p><p> 4.2.2 傳感器DS18B20溫度采集部分調(diào)試22</p><p> 4.2.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試22</p><p> 4.3 系統(tǒng)功能23</p><p> 4.3.1 系統(tǒng)實(shí)現(xiàn)的功能23</p><p> 4.3.2 系統(tǒng)功能分析23&l
9、t;/p><p><b> 結(jié) 論24</b></p><p><b> 參考文獻(xiàn)25</b></p><p><b> 致 謝26</b></p><p> 附錄1:電路總圖27</p><p> 附錄2:程序代碼28</
10、p><p> 基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)</p><p><b> 摘 要</b></p><p> 溫控風(fēng)扇在現(xiàn)代社會(huì)中的生產(chǎn)以及人們的日常生活中都有廣泛的應(yīng)用,如工業(yè)生產(chǎn)中大型機(jī)械散熱系統(tǒng)中的風(fēng)扇、現(xiàn)在筆記本電腦上的廣泛應(yīng)用的智能CPU風(fēng)扇等。本文設(shè)計(jì)了基于單片機(jī)的溫控風(fēng)扇系統(tǒng),采用單片機(jī)作為控制器,利用溫度傳感器DS18B20作為溫度
11、采集元件,并根據(jù)采集到的溫度,通過(guò)一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)風(fēng)扇電機(jī)。根據(jù)檢測(cè)到的溫度與系統(tǒng)設(shè)定的溫度的比較實(shí)現(xiàn)風(fēng)扇電機(jī)的自動(dòng)啟動(dòng)和停止,并能根溫度的變化自動(dòng)改變風(fēng)扇電機(jī)的轉(zhuǎn)速,同時(shí)用LED八段數(shù)碼管顯示檢測(cè)到的溫度與設(shè)定的溫度。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī)、DS18B20、溫控、風(fēng)扇</p><p> The design of temperature contro
12、l fan </p><p> which is based on MCU</p><p><b> Abstract</b></p><p> Temperature control fan has a wide range of applications in the modern society's manufacture
13、and people's daily life, such as the fan fixed in large mechanical ventilator in the industrial cooling system, and the intelligent CPU fan which is now wide used in laptop , etc. This paper introduces the design of
14、 the temperature control's fan system which is based on single chip computer, it adopts single chip computer as fan controller, using temperature transmitter DS18B20 as temperature gathering </p><p> Ke
15、ywords:MCU、DS18B20、Temperature control、Fan</p><p> 第一章 整體方案設(shè)計(jì)</p><p><b> 1.1 前 言</b></p><p> 在現(xiàn)代社會(huì)中,風(fēng)扇被廣泛的應(yīng)用,發(fā)揮著舉足輕重的作用,如夏天人們用的散熱風(fēng)扇、工業(yè)生產(chǎn)中大型機(jī)械中的散熱風(fēng)扇以及現(xiàn)在筆記本電腦上廣泛使用的智能C
16、PU風(fēng)扇等。而隨著溫度控制技術(shù)的發(fā)展,為了降低風(fēng)扇運(yùn)轉(zhuǎn)時(shí)的噪音以及節(jié)省能源等,溫控風(fēng)扇越來(lái)越受到重視并被廣泛的應(yīng)用。在現(xiàn)階段,溫控風(fēng)扇的設(shè)計(jì)已經(jīng)有了一定的成效,可以使風(fēng)扇根據(jù)環(huán)境溫度的變化進(jìn)行自動(dòng)無(wú)級(jí)調(diào)速,當(dāng)溫度升高到一定時(shí)能自動(dòng)啟動(dòng)風(fēng)扇,當(dāng)溫度降到一定時(shí)能自動(dòng)停止風(fēng)扇的轉(zhuǎn)動(dòng),實(shí)現(xiàn)智能控制。</p><p> 隨著單片機(jī)在各個(gè)領(lǐng)域的廣泛應(yīng)用,許多用單片機(jī)作控制的溫度控制系統(tǒng)也應(yīng)運(yùn)而生,如基于單片機(jī)的溫控風(fēng)扇系統(tǒng)
17、。它使風(fēng)扇根據(jù)環(huán)境溫度的變化實(shí)現(xiàn)自動(dòng)啟停,使風(fēng)扇轉(zhuǎn)速隨著環(huán)境溫度的變化而變化,實(shí)現(xiàn)了風(fēng)扇的智能控制。它的設(shè)計(jì)為現(xiàn)代社會(huì)人們的生活以及生產(chǎn)帶來(lái)了諸多便利,在提高人們的生活質(zhì)量、生產(chǎn)效率的同時(shí)還能節(jié)省風(fēng)扇運(yùn)轉(zhuǎn)所需的能量。</p><p> 本文設(shè)計(jì)了由ATMEL公司的8052系列單片機(jī)AT89C52作為控制器,采用DALLAS公司的溫度傳感器DS18B20作為溫度采集元件,并通過(guò)一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)
18、動(dòng)風(fēng)扇電機(jī)的轉(zhuǎn)動(dòng)。同時(shí)使系統(tǒng)檢測(cè)到得環(huán)境溫度以及系統(tǒng)預(yù)設(shè)的溫度動(dòng)態(tài)的顯示在LED數(shù)碼管上。根據(jù)系統(tǒng)檢測(cè)到得環(huán)境溫度與系統(tǒng)預(yù)設(shè)溫度的比較,實(shí)現(xiàn)風(fēng)扇電機(jī)的自動(dòng)啟停以及轉(zhuǎn)速的自動(dòng)調(diào)節(jié)。</p><p> 1.2 系統(tǒng)整體設(shè)計(jì)</p><p> 本設(shè)計(jì)的整體思路是:利用溫度傳感器DS18B20檢測(cè)環(huán)境溫度并直接輸出數(shù)字溫度信號(hào)給單片機(jī)AT89C52進(jìn)行處理,在LED數(shù)碼管上顯示當(dāng)前環(huán)境溫度值以
19、及預(yù)設(shè)溫度值。其中預(yù)設(shè)溫度值只能為整數(shù)形式,檢測(cè)到的當(dāng)前環(huán)境溫度可精確到小數(shù)點(diǎn)后一位。同時(shí)采用PWM脈寬調(diào)制方式來(lái)改變直流風(fēng)扇電機(jī)的轉(zhuǎn)速。并通過(guò)兩個(gè)按鍵改變預(yù)設(shè)溫度值,一個(gè)提高預(yù)設(shè)溫度,另一個(gè)降低預(yù)設(shè)溫度值。系統(tǒng)結(jié)構(gòu)框圖如下:</p><p> 圖1.1系統(tǒng)構(gòu)成框圖</p><p><b> 1.3方案論證</b></p><p> 本設(shè)
20、計(jì)要實(shí)現(xiàn)風(fēng)扇直流電機(jī)的溫度控制,使風(fēng)扇電機(jī)能根據(jù)環(huán)境溫度的變化自動(dòng)啟停及改變轉(zhuǎn)速,需要比較高的溫度變化分辨率以及穩(wěn)定可靠的換擋停機(jī)控制部件。</p><p> 1.3.1 溫度傳感器的選擇</p><p> 在本設(shè)計(jì)中,溫度傳感器的選擇有以下兩種方案:</p><p> 方案一:采用熱敏電阻作為檢測(cè)溫度的核心元件,并通過(guò)運(yùn)算放大器放大,由于熱敏電阻會(huì)隨溫度變化
21、而變化,進(jìn)而產(chǎn)生輸出電壓變化的微弱電壓變化信號(hào),再經(jīng)模數(shù)轉(zhuǎn)換芯片ADC0809將微弱電壓變化信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)輸入單片機(jī)處理。</p><p> 方案二:采用數(shù)字式的集成溫度傳感器DS18B20作為溫度檢測(cè)的核心元件,由其檢測(cè)并直接輸出數(shù)字溫度信號(hào)給單片機(jī)進(jìn)行處理。</p><p> 對(duì)于方案一,采用熱敏電阻作為溫度檢測(cè)元件,有價(jià)格便宜,元件易購(gòu)的優(yōu)點(diǎn),但熱敏電阻對(duì)溫度的細(xì)微變化不太敏
22、感,在信號(hào)采集、放大以及轉(zhuǎn)換的過(guò)程中還會(huì)產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其自身電阻對(duì)溫度的變化存在較大誤差,雖然可以通過(guò)一定電路來(lái)修正,但這不僅將使電路變得更加復(fù)雜,而且在人體所處環(huán)境溫度變化過(guò)程中難以檢測(cè)到小的溫度變化。故該方案不適合本系統(tǒng)。</p><p> 對(duì)于方案二,由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)化等電路的誤差因數(shù),溫度誤差變得很小,并且由
23、于其檢測(cè)溫度的原理與熱敏電阻檢測(cè)的原理有著本質(zhì)的不同,使得其溫度分辨力極高。溫度值在器件內(nèi)部轉(zhuǎn)化成數(shù)字量直接輸出,簡(jiǎn)化了系統(tǒng)程序設(shè)計(jì),又由于該溫度傳感器采用先進(jìn)的單總線技術(shù),與單片機(jī)的接口變得非常簡(jiǎn)潔,抗干擾能力強(qiáng),因此該方案適用于本系統(tǒng)。</p><p> 1.3.2 控制核心的選擇</p><p> 在本設(shè)計(jì)中采用AT89C52單片機(jī)作為控制核心,通過(guò)軟件編程的方法進(jìn)行溫度檢測(cè)和判
24、斷,并在其I/O口輸出控制信號(hào)。AT89C52單片機(jī)工作電壓低,性能高,片內(nèi)含8k字節(jié)的只讀程序存儲(chǔ)器ROM和256字節(jié)的隨機(jī)數(shù)據(jù)存儲(chǔ)器RAM,它兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng),單片價(jià)格也不貴,適合本設(shè)計(jì)系統(tǒng)。</p><p> 1.3.3 溫度顯示器件的選擇</p><p> 方案一:應(yīng)用動(dòng)態(tài)掃描的方式,采用LED共陰極數(shù)碼管顯示溫度。</p><p> 方
25、案二:采用LCD液晶顯示屏顯示溫度。</p><p> 對(duì)于方案一,該方案成本很低,顯示溫度明確醒目,即使在黑暗空間也能清楚看見(jiàn),功耗極低,同時(shí)溫度顯示程序的編寫(xiě)也相對(duì)簡(jiǎn)單,因而這種顯示方式得到了廣泛應(yīng)用。但不足的地方是它采用動(dòng)態(tài)掃描的顯示方式,各個(gè)LED數(shù)碼管是逐個(gè)點(diǎn)亮的,因此會(huì)產(chǎn)生閃爍,但由于人眼的視覺(jué)暫留時(shí)間為20MS,故當(dāng)數(shù)碼管掃描周期小于這個(gè)時(shí)間時(shí)人眼不會(huì)感覺(jué)到閃爍,因此只要描頻率設(shè)置得當(dāng)即可采用該方
26、案。</p><p> 對(duì)于方案二,液晶顯示屏具有顯示字符優(yōu)美,其不僅能顯示數(shù)字還能顯示字符甚至圖形,這是LED數(shù)碼管無(wú)法比擬的。但是液晶顯示模塊的元件價(jià)格昂貴,顯示驅(qū)動(dòng)程序的編寫(xiě)也較復(fù)雜,從簡(jiǎn)單實(shí)用的原則考慮,本系統(tǒng)采用方案一。</p><p> 1.3.4 調(diào)速方式的選擇</p><p> 方案一:采用數(shù)模轉(zhuǎn)換芯片DAC0832來(lái)控制,由單片機(jī)根據(jù)當(dāng)前環(huán)境
27、溫度值輸出相應(yīng)數(shù)字量到DAC0832中,再由DAC0832產(chǎn)生相應(yīng)模擬信號(hào)控制晶閘管的導(dǎo)通角,從而通過(guò)無(wú)級(jí)調(diào)速電路實(shí)現(xiàn)風(fēng)扇電機(jī)轉(zhuǎn)速的自動(dòng)調(diào)節(jié)。</p><p> 方案二:采用單片機(jī)軟件編程實(shí)現(xiàn)PWM(脈沖寬度調(diào)制)調(diào)速的方法。PWM是英文Pulse Width Modulation的縮寫(xiě),它是按一定的規(guī)律改變脈沖序列的脈沖寬度,以調(diào)節(jié)輸出量和波形的一種調(diào)節(jié)方式,在PWM驅(qū)動(dòng)控制的調(diào)節(jié)系統(tǒng)中,最常用的是矩形波PW
28、M信號(hào),在控制時(shí)需要調(diào)節(jié)PWM波得占空比。占空比是指高電平持續(xù)時(shí)間在一個(gè)周期時(shí)間內(nèi)的百分比。在控制電機(jī)的轉(zhuǎn)速時(shí),占空比越大,轉(zhuǎn)速就越快,若全為高電平,占空比為100%時(shí),轉(zhuǎn)速達(dá)到最大 2]。用單片機(jī)I/O口輸出PWM信號(hào)時(shí),有如下三種方法:</p><p> (1) 利用軟件延時(shí)。當(dāng)高電平延時(shí)時(shí)間到時(shí),對(duì)I/O口電平取反,使其變成低電平,然后再延時(shí)一定時(shí)間;當(dāng)?shù)碗娖窖訒r(shí)時(shí)間到時(shí),再對(duì)該I/O口電平取反,如此循環(huán)
29、即可得到PWM信號(hào)。在本設(shè)計(jì)中應(yīng)用了此方法。</p><p> (2) 利用定時(shí)器??刂品椒ㄅc(1)相同,只是在該方法中利用單片機(jī)的定時(shí)器來(lái)定時(shí)進(jìn)行高低電平的轉(zhuǎn)變,而不是用軟件延時(shí)。應(yīng)用此方法時(shí)編程相對(duì)復(fù)雜。</p><p> (3) 利用單片機(jī)自帶的PWM控制器。在STC12系列單片機(jī)中自身帶有PWM控制器,但本系統(tǒng)所用到得AT89系列單片機(jī)無(wú)此功能。</p><
30、p> 對(duì)于方案一,該方案能夠?qū)崿F(xiàn)對(duì)直流風(fēng)扇電機(jī)的無(wú)級(jí)調(diào)速,速度變化靈敏,但是D/A轉(zhuǎn)換芯片的價(jià)格較高,與其溫控狀態(tài)下無(wú)級(jí)調(diào)速功能相比性?xún)r(jià)比不高。</p><p> 對(duì)于方案二,相對(duì)于其他用硬件或者軟硬件相結(jié)合的方法實(shí)現(xiàn)對(duì)電機(jī)進(jìn)行調(diào)速而言,采用PWM 用純軟件的方法來(lái)實(shí)現(xiàn)調(diào)速過(guò)程,具有更大的靈活性,并可大大降低成本,能夠充分發(fā)揮單片機(jī)的功能,對(duì)于簡(jiǎn)單速度控制系統(tǒng)的實(shí)現(xiàn)提供了一種有效的途徑。綜合考慮選用方案
31、二。</p><p> 第二章 各單元模塊的硬件設(shè)計(jì)</p><p> 系統(tǒng)主要器件包括DS18B20溫度傳感器、AT89C52單片機(jī)、五位LED共陰數(shù)碼管、風(fēng)扇直流電機(jī)、達(dá)林頓反向驅(qū)動(dòng)器ULN2803。輔助元件包括電阻電容、晶振、電源、按鍵、撥碼開(kāi)關(guān)等。</p><p><b> 2.1系統(tǒng)器件簡(jiǎn)介</b></p><
32、;p> 2.1.1 DS18B20單線數(shù)字溫度傳感器簡(jiǎn)介</p><p> DS18B20數(shù)字溫度傳感器,是采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供處理器處理。</p><p> 適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。</p>
33、;<p> DS18B20的主要特征:測(cè)量的結(jié)果直接以數(shù)字信號(hào)的形式輸出,以“一線總線”方式串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;溫度測(cè)量范圍在-55℃~+125℃之間,在-10℃~+85℃時(shí)精度為±0.5℃;可檢測(cè)溫度分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫;它單線接口的獨(dú)特性,使它與微處理器連接時(shí)僅需一條端口
34、線即可實(shí)現(xiàn)與微處理器的雙向通信;支持多點(diǎn)組網(wǎng)功能,即多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫的功能;工作電壓范圍寬,其范圍在3.0~5.5V3]。</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要有四部分:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。其管腳有三個(gè),其中DQ為數(shù)字信號(hào)端,GND為電源地,VDD為電源輸入端。</p><p> 2.
35、1.2 達(dá)林頓反向驅(qū)動(dòng)器ULN2803簡(jiǎn)介</p><p> 本系統(tǒng)要用單片機(jī)控制風(fēng)扇直流電機(jī),需要加驅(qū)動(dòng)電路,為直流電機(jī)提供足夠大的驅(qū)動(dòng)電流。在本系統(tǒng)驅(qū)動(dòng)電路中,選用達(dá)林頓反向驅(qū)動(dòng)器ULN2803來(lái)驅(qū)動(dòng)風(fēng)扇直流電機(jī)。ULN2803在使用時(shí)接口簡(jiǎn)單,操作方便,可為電機(jī)提供較大的驅(qū)動(dòng)電流,它實(shí)際上是一個(gè)集成芯片,單塊芯片可同時(shí)驅(qū)動(dòng)8個(gè)電機(jī)。每個(gè)電機(jī)由單片機(jī)的一個(gè)I/O口控制,單片機(jī)I/O口輸出的為5V的TTL信號(hào)
36、。</p><p> ULN2803由8個(gè)NPN達(dá)林頓晶體管組裝而成,共18個(gè)引腳,引腳1~8分別是8路驅(qū)動(dòng)器的輸入端,輸入信號(hào)可直接是TTL或CMOS信號(hào);引腳11~18分別是8路驅(qū)動(dòng)器的輸出端;引腳9為接地線,引腳10為電源輸入。當(dāng)輸入TTL信號(hào)為5V或CMOS信號(hào)為6~15V時(shí),輸出的最大電壓為50V,最大電流為500mA,工作溫度范圍為0~70℃。本系統(tǒng)選用的電機(jī)為12V直流無(wú)刷電機(jī),可用ULN2803
37、來(lái)驅(qū)動(dòng)。</p><p> 2.1.3 AT89C52單片機(jī)簡(jiǎn)介</p><p> AT89C52是51系列單片機(jī)的一個(gè)型號(hào),它是由ATMEL公司生產(chǎn)的一個(gè)低電壓、高性能的8位單片機(jī),片內(nèi)器件采用ATMEL公司的非易失性、高密度存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)的MCS-51指令系統(tǒng)兼容,同時(shí)片內(nèi)置有通用8位中央處理器和8k 字節(jié)的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器ROM以及256 字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM
38、,在許多許多較復(fù)雜的控制系統(tǒng)中AT89C52單片機(jī)得到了廣泛的應(yīng)用。AT89C52有40個(gè)引腳,各引腳介紹如下:</p><p> VCC:+5V電源線;GND:接地線。</p><p> P0口:P0.7~P0.0,這組引腳共8條,其中P0.7為最高位,P0.0為最低位。這8條引腳共有兩種不同的功能,分別使用于兩種不同的情況。第一種情況是單片機(jī)不帶片外存儲(chǔ)器,P0口可以作為通用I/O
39、口使用,P0.7~P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時(shí)它需外接一上拉電阻才能正常工作。第二種情況是單片機(jī)帶片外存儲(chǔ)器,其各引腳在CPU訪問(wèn)片外存儲(chǔ)器時(shí)先是用于傳送片外存儲(chǔ)器的低8位地址,然后傳送CPU對(duì)片外存儲(chǔ)器的讀寫(xiě)數(shù)據(jù)4]。</p><p> P1口:P1口是一個(gè)內(nèi)部含上拉電阻的8位雙向I/O口。它也可作為通用的I/O口使用,與P0口一樣用于傳送用戶(hù)的輸入輸出數(shù)據(jù),所不同的是它片內(nèi)含上拉電阻而P0口
40、沒(méi)有,故P0口在做該用途時(shí)需外接上拉電阻而P1口則無(wú)需。在FLASH編程和校驗(yàn)時(shí),P1口用于輸入片內(nèi)EPROM的低8位地址。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,它可以作為通用I/O口使用,傳送用戶(hù)的輸入/輸出數(shù)據(jù),同時(shí)可與P0口的第二功能配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)單元,但此時(shí)不能傳送存儲(chǔ)器的讀寫(xiě)數(shù)據(jù)。在一些型號(hào)的單片機(jī)中,P2口還可以配合P1口傳
41、送片內(nèi)EPROM的12位地址中的高4位地址。</p><p> P3口:P3口引腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,當(dāng)P3口寫(xiě)入1后,它們被內(nèi)部上拉為高電平。它也可作為通用的I/O口使用,傳送用戶(hù)的輸入輸出數(shù)據(jù),P3口也作為一些特殊功能端口使用,如下所示:</p><p> P3.0:RXD(串行數(shù)據(jù)接收口)</p><p> P3.1:TXD(串行數(shù)據(jù)發(fā)送
42、口)</p><p> P3.2:(外部中斷0輸入)</p><p> P3.3:(外部中斷1輸入)</p><p> P3.4:T0(記數(shù)器0計(jì)數(shù)輸入)</p><p> P3.5:T1(記時(shí)器1外部輸入)</p><p> P3.6:(外部RAM寫(xiě)選通信號(hào))</p><p> P
43、3.7:(外部RAM讀選通信號(hào)) 圖2.1.1 AT89C51單片機(jī) </p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平狀態(tài)。</p><p> ALE/:地址鎖存允許/編程線,當(dāng)訪問(wèn)片外存儲(chǔ)器時(shí),在P0.7~P0.0引腳線上輸出片外存儲(chǔ)器低8位地址的同時(shí)還在ALE/線上輸出一個(gè)高電位脈沖,其下降沿用于把這個(gè)片外存儲(chǔ)器低8
44、位地址鎖存到外部專(zhuān)用地址鎖存器,以便空出P0.7~P0.0引腳線去傳送隨后而來(lái)的片外存儲(chǔ)器讀寫(xiě)數(shù)據(jù)。在不訪問(wèn)片外存儲(chǔ)器時(shí),單片機(jī)自動(dòng)在ALE/線上輸出頻率為1/6晶振頻率的脈沖序列。</p><p> :外部程序存儲(chǔ)器ROM的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。</p><p> /VPP:允許訪問(wèn)片外存儲(chǔ)器/
45、編程電源線,當(dāng)保持低電平時(shí),則在此期間允許使用片外程序存儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。當(dāng)端保持高電平時(shí),則允許使用片內(nèi)程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1和XTAL2:片內(nèi)振蕩電路輸入線,這兩個(gè)端子用來(lái)外接石英晶體和微調(diào)電容,即用來(lái)連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路。</p><p> 2.1.4 LED數(shù)碼管簡(jiǎn)
46、介</p><p> 本系統(tǒng)選用五個(gè)LED數(shù)碼管來(lái)進(jìn)行溫度顯示。LED又稱(chēng)為數(shù)碼管,它主要是由8段發(fā)光二極管組成的不同組合,其中 a~g為數(shù)字和字符顯示段,dp為小數(shù)點(diǎn)的顯示,通過(guò)a~g這7個(gè)發(fā)光二極管點(diǎn)亮的不同組合,可以顯示0~9和A~F共16個(gè)數(shù)字和字母。LED數(shù)碼管可以分為共陰極和共陽(yáng)極兩種結(jié)構(gòu),如下圖2.1.2(a)和圖2.1.2(b) 所示。共陰極結(jié)構(gòu)把8個(gè)發(fā)光二極管陰極連在一起,共陽(yáng)極結(jié)構(gòu)把8個(gè)發(fā)光
47、二極管陽(yáng)極連在一起。通過(guò)單片機(jī)引腳輸出高低電平,可使數(shù)碼管顯示相應(yīng)的數(shù)字或字母,這種使數(shù)碼管顯示字形的數(shù)據(jù)稱(chēng)字形碼,又稱(chēng)段選碼5]。</p><p> 圖2.1.2 七段LED數(shù)碼管</p><p> 表2.1.1 7段LED的段選碼表</p><p> 一個(gè)共陰極數(shù)碼管接至單片機(jī)的電路,要想顯示數(shù)字“7”須a、b、c這3個(gè)顯示段發(fā)光 (即這3個(gè)字段為高電平
48、)只要在P0口輸入00000111(07H)即可。這里07H即為數(shù)字7的段選碼。字形與段選碼的關(guān)系見(jiàn)表2.1.1所示。</p><p> 2.2 各部分電路設(shè)計(jì)</p><p> 2.2.1 開(kāi)關(guān)復(fù)位與晶振電路</p><p> 在單片機(jī)應(yīng)用系統(tǒng)中,除單片機(jī)本身需要復(fù)位以外,外部擴(kuò)展I/O接口電路也需要復(fù)位,因此需要一個(gè)包括上電和按鈕復(fù)位在內(nèi)的系統(tǒng)同步復(fù)位電路
49、。單片機(jī)上的XTAL1和XTAL2用來(lái)外接石英晶體和微調(diào)電容,即用來(lái)連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路。本設(shè)計(jì)中開(kāi)關(guān)復(fù)位與晶振電路如下圖所示,當(dāng)按下按鍵開(kāi)關(guān)S1時(shí),系統(tǒng)復(fù)位一次。其中電容C1、C2為20pF,C3為10uF,電阻R2、R3為10k,晶振為11.0592MHz。</p><p> 圖2.2.1 系統(tǒng)復(fù)位與晶振電路</p><p> 2.2.2 獨(dú)立鍵盤(pán)連接電路</
50、p><p> 鍵盤(pán)包括2個(gè)獨(dú)立按鍵S2和S3,一端與單片機(jī)的P1.3和P1.4口相連,另一端接地,當(dāng)按下任一鍵時(shí),P1口讀取低電平有效。系統(tǒng)上電后,進(jìn)入鍵盤(pán)掃描子程序,以查詢(xún)的方式確定各按鍵,完成溫度初值的設(shè)定。其中按鍵S1為加按鍵,每按下一次,系統(tǒng)對(duì)最初設(shè)定值加一,按鍵S2為減按鍵,每按下一次,系統(tǒng)對(duì)初設(shè)定值進(jìn)行減一計(jì)算。其接線圖如下:</p><p> 圖2.2.2 獨(dú)立鍵盤(pán)連接電路
51、</p><p> 2.2.3 數(shù)碼管顯示電路</p><p> 本設(shè)計(jì)制作中選用5位共陰極數(shù)碼管作為顯示模塊,它和單片機(jī)硬件的接口如圖2.2.3所示。其中前3位數(shù)碼管DS1、DS2、DS3用于顯示溫度傳感器實(shí)時(shí)檢測(cè)采集到的溫度,可精確到0.1攝氏度,顯示范圍為0~99.9攝氏度;后2位數(shù)碼管DS4、DS5用于顯示系統(tǒng)設(shè)置的初值溫度,只能顯示整數(shù)的溫度值,顯示范圍為0~99攝氏度。5位
52、數(shù)碼管的段選a、b、c、d、e、f、g、dp線分別與單片機(jī)的P0.0~P0.7口連接,其中P0口需接一10K的上拉電阻,以使單片機(jī)的P0口能夠輸出高低電平。5位數(shù)碼管的位選W1~W5分別與單片機(jī)的P2.0~P2.4口相連接,只要P2.0~P2.4中任一位中輸出低電平,則選中與該位相連的數(shù)碼管。</p><p> 圖2.2.3 數(shù)碼管顯示電路</p><p> 2.2.4 溫度采集電路
53、</p><p> DS18B20數(shù)字溫度傳感器通過(guò)其內(nèi)部計(jì)數(shù)時(shí)鐘周期來(lái)的作用,實(shí)現(xiàn)了特有的溫度測(cè)量功能。低溫系數(shù)振蕩器輸出的時(shí)鐘信號(hào)通過(guò)由高溫度系數(shù)振蕩器產(chǎn)生的門(mén)周期而被計(jì)數(shù),計(jì)數(shù)器預(yù)先置有與-55℃相對(duì)應(yīng)的一個(gè)基權(quán)值。如果計(jì)數(shù)器計(jì)數(shù)到0時(shí),高溫度系數(shù)振蕩周期還未結(jié)束,則表示測(cè)量的溫度值高于-55℃,被預(yù)置在-55℃的溫度寄存器中的值就增加1℃,然后這個(gè)過(guò)程不斷重復(fù),直到高溫度系數(shù)振蕩周期結(jié)束為止。此時(shí)溫度寄
54、存器中的值即為被測(cè)溫度值,這個(gè)值以16位二進(jìn)制形式存放在存儲(chǔ)器中,通過(guò)主機(jī)發(fā)送存儲(chǔ)器讀命令可讀出此溫度值,讀取時(shí)低位在前,高位在后,依次進(jìn)行。由于溫度振蕩器的拋物線特性的影響,其內(nèi)用斜率累加器進(jìn)行補(bǔ)償 6]。</p><p> DS18B20在使用時(shí),一般都采用單片機(jī)來(lái)實(shí)現(xiàn)數(shù)據(jù)采集。只須將DS18B20信號(hào)線與單片機(jī)1位I/O線相連,且單片機(jī)的1位I/O線可掛接多個(gè)DS18B20,就可實(shí)現(xiàn)單點(diǎn)或多點(diǎn)溫度檢測(cè)7]
55、。在本設(shè)計(jì)中將DS18B20接在P1.7口實(shí)現(xiàn)溫度的采集。其與單片機(jī)的連接如圖2.2.4。</p><p> 圖2.2.4 溫度采集電路</p><p> 2.2.5 風(fēng)扇電機(jī)驅(qū)動(dòng)與調(diào)速電路</p><p> 本設(shè)計(jì)中由單片機(jī)的I/O口輸出PWM脈沖,通過(guò)一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)12V直流無(wú)刷風(fēng)扇電機(jī)以及實(shí)現(xiàn)風(fēng)扇電機(jī)速度的調(diào)節(jié)。</p&g
56、t;<p> 鍵盤(pán)控制設(shè)置溫度,通過(guò)軟件向單片機(jī)輸入相應(yīng)控制指令,由單片機(jī)通過(guò)P1.7口輸出與轉(zhuǎn)速相應(yīng)的PWM脈沖,經(jīng)過(guò)ULN2803驅(qū)動(dòng)風(fēng)扇直流電機(jī)控制電路,實(shí)現(xiàn)電機(jī)轉(zhuǎn)速與啟停的自動(dòng)控制8]。當(dāng)環(huán)境溫度升高時(shí),直流電機(jī)的轉(zhuǎn)速會(huì)相應(yīng)按照設(shè)定的等級(jí)有所提高;當(dāng)環(huán)境溫度下降時(shí),電機(jī)的轉(zhuǎn)速會(huì)相應(yīng)的下降;當(dāng)環(huán)境溫度低于設(shè)置溫度時(shí),電機(jī)停止轉(zhuǎn)動(dòng),而環(huán)境溫度又高于預(yù)設(shè)溫度時(shí),電機(jī)重新啟動(dòng)。</p><p>
57、 電路如圖2.2.5所示,風(fēng)扇電機(jī)的一端接12V電源,另一端接ULN2803的OUT7引腳,ULN2803的IN7引腳與單片機(jī)的P3.1引腳相連,通過(guò)控制單片機(jī)的P3.1引腳輸出PWM信號(hào),由此控制風(fēng)扇直流電機(jī)的速度與啟停。</p><p> 圖2.2.5 風(fēng)扇電機(jī)驅(qū)動(dòng)與調(diào)速電</p><p> 系統(tǒng)選用的風(fēng)扇電機(jī)為12V直流無(wú)刷電機(jī),單達(dá)林頓反向驅(qū)動(dòng)器ULN2803輸入TTL信號(hào)為
58、5V或CMOS信號(hào)為6~15V時(shí),輸出的最大電壓為50V,最大電流為500mA,工作溫度范圍為0~70℃。本系統(tǒng)中單片機(jī)I/O口輸出的TTL信號(hào)為5V,因此此風(fēng)扇電機(jī)可以用ULN2803來(lái)驅(qū)動(dòng)。</p><p><b> 第三章 軟件設(shè)計(jì)</b></p><p><b> 3.1 程序設(shè)置</b></p><p>
59、程序設(shè)計(jì)部分主要包括主程序、DS18B20初始化函數(shù)、DS18B20溫度轉(zhuǎn)換函數(shù)、溫度讀取函數(shù)、鍵盤(pán)掃描函數(shù)、數(shù)碼管顯示函數(shù)、溫度處理函數(shù)以及風(fēng)扇電機(jī)控制函數(shù)。DS18B20初始化函數(shù)完成對(duì)DS18B20的初始化;DS18B20溫度轉(zhuǎn)換函數(shù)完成對(duì)環(huán)境溫度的實(shí)時(shí)采集;溫度讀取函數(shù)完成主機(jī)對(duì)溫度傳感器數(shù)據(jù)的讀取及數(shù)據(jù)換算,鍵盤(pán)掃描函數(shù)則根據(jù)需要完成初值的加減設(shè)定;溫度處理函數(shù)對(duì)采集到的溫度進(jìn)行分析出理,為電機(jī)轉(zhuǎn)速的變化提供條件;風(fēng)扇電機(jī)控制
60、函數(shù)則根據(jù)溫度的數(shù)值完成對(duì)電機(jī)轉(zhuǎn)速及啟停的控制。</p><p> 主程序流程圖如圖3.1.1:</p><p> 圖3.1.1 主程序流程圖</p><p> 3.2 用Keil C51編寫(xiě)程序</p><p> Keil C51是美國(guó)Keil Software公司開(kāi)發(fā)的51系列兼容單片機(jī)C語(yǔ)言的軟件開(kāi)發(fā)系統(tǒng),與單片機(jī)匯編語(yǔ)言相比
61、,C語(yǔ)言在不僅語(yǔ)句簡(jiǎn)單靈活,而且編寫(xiě)的函數(shù)模塊可移植性強(qiáng)9],因而易學(xué)易用,效率高。隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil軟件是目前使用較多的MCS-51系列單片機(jī)開(kāi)發(fā)的軟件。</p><p> Keil C51軟件不僅提供了豐富的庫(kù)函數(shù),而且它強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具為程序編輯調(diào)試帶來(lái)便利,在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。在使用時(shí)要
62、先建立一個(gè)工程,然后添加文件并編寫(xiě)程序,編寫(xiě)好后再編輯調(diào)試。</p><p> Keil C51的使用界面如圖3.2.1。</p><p> 圖3.2.1 Keil C51的使用界面</p><p> 3.3 用Proteus進(jìn)行仿真</p><p> 3.3.1 Proteus簡(jiǎn)介</p><p> Pr
63、oteus軟件是來(lái)自英國(guó)Labcenter electronics公司的EDA工具軟件。</p><p> Proteus軟件有十多年的歷史,在全球廣泛使用,它不僅和其它EDA工具一樣有原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能,而且更重要的功能是,他的電路仿真是互動(dòng)的,可以根據(jù)仿真實(shí)時(shí)觀察到得現(xiàn)象驗(yàn)證設(shè)計(jì)的正確性及準(zhǔn)確性并及時(shí)改變程序代碼、原理圖連接以及元件屬性等。它還能配合系統(tǒng)配置的虛擬儀器來(lái)顯示和輸出
64、,如示波器、邏輯分析儀等,效果很好。</p><p> Proteus有4個(gè)功能模塊:智能原理圖設(shè)計(jì)、完善的電路仿真功能、獨(dú)特的單片機(jī)協(xié)同仿真功能以及實(shí)用的PCB設(shè)計(jì)平臺(tái)。其內(nèi)部元件庫(kù)含有豐富的元件,支持總線結(jié)構(gòu)以及智能化的連線功能;支持主流CPU(如ARM、8051/52、AVR)及其通用外設(shè)模型的實(shí)時(shí)仿真等,為單片機(jī)的開(kāi)發(fā)應(yīng)用等帶來(lái)極大的便利。</p><p> 軟件使用的主界面如
65、圖3.3.1。</p><p> 圖3.3.1 Proteus使用界面</p><p> 3.3.2 本設(shè)計(jì)基于Proteus的仿真</p><p> 首先啟動(dòng)Proteus軟件并建立一工程,然后根據(jù)原理圖調(diào)出相應(yīng)的原件,再根據(jù)要求改變各原件的屬性并把各個(gè)原件按原理圖連接起來(lái)。在原理圖繪制連接好后再把編譯好的程序加載到其中。最后根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能分步進(jìn)行仿
66、真。</p><p> 把溫度傳感器DS18B20溫度設(shè)置為26.4攝氏度,用鍵盤(pán)S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開(kāi)始按鈕,系統(tǒng)開(kāi)始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)風(fēng)扇直流電機(jī)的轉(zhuǎn)速為+14.2r/s,如圖3.3.2所示。</p><p> 當(dāng)把溫度傳感器DS18B20溫度設(shè)置為28.4攝氏度,用鍵盤(pán)S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開(kāi)始按鈕,系統(tǒng)開(kāi)始仿真,待一段時(shí)間穩(wěn)
67、定后,觀察到此時(shí)直流風(fēng)扇電機(jī)的轉(zhuǎn)速為+23.3 r/s,如圖3.3.3所示。</p><p> 當(dāng)把溫度傳感器DS18B20溫度設(shè)置為33.4攝氏度,用鍵盤(pán)S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開(kāi)始按鈕,系統(tǒng)開(kāi)始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)直流風(fēng)扇電機(jī)的轉(zhuǎn)速為+32.0 r/s,如圖3.3.4所示。</p><p> 在上一步仿真的基礎(chǔ)上(溫度傳感器DS18B20溫度設(shè)置為33
68、.4攝氏度,系統(tǒng)預(yù)設(shè)的溫度為22攝氏度),用鍵盤(pán)S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)溫度至34攝氏度,此時(shí)可知系統(tǒng)預(yù)設(shè)溫度大于溫度傳感器檢測(cè)到的溫度,觀察到直流風(fēng)扇電機(jī)的轉(zhuǎn)速逐漸變慢,最后轉(zhuǎn)速變?yōu)?,符合系統(tǒng)要實(shí)現(xiàn)的功能,如圖3.3.5所示。</p><p> 通過(guò)以上仿真可以看出,直流風(fēng)扇電機(jī)在系統(tǒng)設(shè)定溫度一定的情況下,其轉(zhuǎn)速隨著環(huán)境溫度(溫度傳感器檢測(cè)到的溫度)的增加而增大。當(dāng)環(huán)境溫度低于系統(tǒng)預(yù)設(shè)的溫度時(shí),風(fēng)扇自動(dòng)停止運(yùn)轉(zhuǎn),實(shí)
69、現(xiàn)了系統(tǒng)所設(shè)計(jì)的功能。當(dāng)然,在此沒(méi)有實(shí)現(xiàn)風(fēng)扇直流電機(jī)的無(wú)級(jí)調(diào)速,本系統(tǒng)實(shí)現(xiàn)的是電機(jī)在隨環(huán)境溫度變化的四個(gè)等級(jí)的速度變化,環(huán)境溫度在一定小范圍內(nèi)變化風(fēng)扇電機(jī)轉(zhuǎn)速是不變的,只有超過(guò)了設(shè)定的某一界限時(shí)轉(zhuǎn)速才會(huì)變化。</p><p><b> 第四章 系統(tǒng)調(diào)試</b></p><p><b> 4.1 軟件調(diào)試</b></p><
70、p> 4.1.1 按鍵顯示部分的調(diào)試</p><p> 起初根據(jù)設(shè)計(jì)編寫(xiě)的系統(tǒng)程序:程序的鍵盤(pán)接口采用P1口,數(shù)碼管顯示采用P0口控制LED的斷碼,P2口控制LED的位碼,從而實(shí)現(xiàn)鍵盤(pán)功能及數(shù)碼管的顯示。經(jīng)過(guò)編譯沒(méi)有出錯(cuò),但在仿真調(diào)試時(shí),數(shù)碼管顯示的只是亂碼,沒(méi)有正確的顯示溫度,按鍵功能也不靈,當(dāng)按下鍵時(shí),顯示并不變化。</p><p> 經(jīng)過(guò)查找分析,發(fā)現(xiàn)鍵盤(pán)掃描程序沒(méi)有沒(méi)有
71、按鍵消抖部分,按鍵在按下與松手時(shí),都會(huì)有一定程度的抖動(dòng),從而可能使單片機(jī)做出錯(cuò)誤的判斷,導(dǎo)致按鍵條件預(yù)設(shè)溫度時(shí)失靈,甚至根本不能工作。因此必須在按鍵掃描程序中加入消抖部分,即在按鍵按下與松手時(shí)加入延時(shí)判斷,以檢測(cè)鍵盤(pán)是否真的按下或已完全松手。</p><p> 數(shù)碼管不能正確的顯示,主要是因?yàn)樗詳?shù)碼管的段碼都由P0口傳送,而數(shù)碼管顯示又采用了動(dòng)態(tài)掃描的方式,但在程序中卻沒(méi)有設(shè)置顯示段碼的暫存器,導(dǎo)致當(dāng)P0口傳
72、送段碼時(shí)發(fā)生混亂,不能正確識(shí)別段碼。應(yīng)在系統(tǒng)中加入鎖存器,或是在程序中設(shè)定存儲(chǔ)段碼的空間。</p><p> 在鍵盤(pán)加入了消抖程序,數(shù)碼管顯示程序中加入了段碼的存儲(chǔ)空間后,數(shù)碼管能夠正常的顯示,按鍵也能夠工作,達(dá)到了較好的效果。</p><p> 4.1.2 傳感器DS18B20溫度采集部分調(diào)試</p><p> 由于數(shù)字式集成溫度傳感器DS18B20的高度集
73、成化,為軟件的設(shè)計(jì)和調(diào)試帶來(lái)了極大的簡(jiǎn)便,小體積、低功耗、高精度為控制電機(jī)的精度和穩(wěn)定提供了可能。軟件設(shè)計(jì)采用P3.1口為數(shù)字溫度輸入口,但是需要對(duì)輸入的數(shù)字信號(hào)進(jìn)行處理后才能顯示,從而多了溫度轉(zhuǎn)換程序。通過(guò)軟件設(shè)計(jì),實(shí)現(xiàn)了對(duì)環(huán)境溫度的連續(xù)檢測(cè),由于硬件LED個(gè)數(shù)的限制,只顯示了預(yù)設(shè)溫度的整數(shù)部分。</p><p> 在溫度轉(zhuǎn)換程序中,為了能夠正確的檢測(cè)并顯示溫度的小數(shù)位,程序中把檢測(cè)的溫度與10相乘后,再按一
74、個(gè)三位的整數(shù)來(lái)處理。如把24.5變?yōu)?45來(lái)處理,這樣為程序的編寫(xiě)帶來(lái)了方便。</p><p> 4.1.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試</p><p> 在本設(shè)計(jì)中,采用了達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)直流電機(jī),其可驅(qū)動(dòng)八個(gè)直流電機(jī),本系統(tǒng)僅驅(qū)動(dòng)一個(gè)。軟件設(shè)置了P3.1口輸出不同的PWM波形,通過(guò)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),通過(guò)軟件中程序設(shè)定,根據(jù)不同溫度輸出不同
75、的PWM波,從而得到不同的占空比控制風(fēng)扇直流電機(jī)。程序?qū)崿F(xiàn)了P3.1口的PWM波形輸出,當(dāng)外界溫度低于設(shè)置溫度時(shí),電機(jī)不轉(zhuǎn)動(dòng)或自動(dòng)停止轉(zhuǎn)動(dòng);當(dāng)外界溫度高于設(shè)置溫度時(shí),電機(jī)的轉(zhuǎn)速升高或是自動(dòng)開(kāi)始轉(zhuǎn)動(dòng),且外界溫度與設(shè)置溫度的差值越大,電機(jī)轉(zhuǎn)速越高,即占空比增加。</p><p> 在本系統(tǒng)中風(fēng)扇電機(jī)的轉(zhuǎn)速可實(shí)現(xiàn)四級(jí)調(diào)速。通過(guò)溫度傳感器檢測(cè)的溫度與系統(tǒng)預(yù)設(shè)溫度值的比較,實(shí)現(xiàn)轉(zhuǎn)速變換。當(dāng)檢測(cè)到的溫度比預(yù)設(shè)的溫度每增加5
76、攝氏度時(shí),風(fēng)扇電機(jī)轉(zhuǎn)速增加一級(jí)。</p><p><b> 4.2 硬件調(diào)試</b></p><p> 4.2.1 按鍵顯示部分的調(diào)試</p><p> 系統(tǒng)按鍵部分實(shí)現(xiàn)了以下功能:按下P1.3口鍵,LED的后兩位顯示溫度值增一;按下P1.4口鍵,LED的后兩位顯示溫度值減一。調(diào)試過(guò)程中出現(xiàn)了當(dāng)按鍵時(shí)間過(guò)長(zhǎng)時(shí),設(shè)置的溫度值不是增一或者減一
77、,而是增加后減少幾個(gè)值,出現(xiàn)這種情況的主要元嬰可能是按鍵的去抖動(dòng)延時(shí)時(shí)間過(guò)長(zhǎng)造成,改進(jìn)方法為將對(duì)應(yīng)的按鍵去抖動(dòng)延時(shí)時(shí)間適量增加,但也不應(yīng)過(guò)長(zhǎng),否則將出現(xiàn)按鍵無(wú)效的情形。</p><p> 系統(tǒng)顯示部分實(shí)現(xiàn)了以下功能:LED顯示的前三位實(shí)現(xiàn)了環(huán)境溫度整數(shù)部分與小數(shù)部分的連續(xù)顯示,LED的后兩位能根據(jù)按鍵的調(diào)整顯示所需要的設(shè)計(jì)溫度。且LED的顯示效果很好,很穩(wěn)定。</p><p> 4.2
78、.2 傳感器DS18B20溫度采集部分調(diào)試</p><p> 將DS18B20芯片接在系統(tǒng)板對(duì)應(yīng)的P3.1口,通過(guò)插針在對(duì)應(yīng)系統(tǒng)板的右下側(cè)三口即為對(duì)應(yīng)的VCC、P3.1和GND,可將芯片直接插在該插針上,因此即為方便。系統(tǒng)調(diào)試中為驗(yàn)證DS18B20是否能在系統(tǒng)板上工作,將手心靠攏或者捏住芯片,即可發(fā)現(xiàn)LED顯示的前兩位溫度也迅速升高,驗(yàn)證了DS18B20能在系統(tǒng)板上工作。由于DS18B20為3個(gè)引腳,因此在調(diào)試
79、過(guò)程中因注意其各個(gè)引腳的對(duì)應(yīng)位置,以免將其接反而是芯片不能工作甚至燒毀芯片。</p><p> 4.2.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試</p><p> 系統(tǒng)本部分的設(shè)計(jì)中重在軟件設(shè)計(jì),因?yàn)橥鈬尿?qū)動(dòng)電路只是將送來(lái)的PWM信號(hào)放大從而驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。系統(tǒng)軟件設(shè)置在P3.1口輸出使電機(jī)轉(zhuǎn)動(dòng)的PWM占空比,當(dāng)環(huán)境溫度高于設(shè)置溫度時(shí),電機(jī)開(kāi)始轉(zhuǎn)動(dòng),若此時(shí)用高于環(huán)境溫度的熱源靠近測(cè)溫芯片DS18B2
80、0時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速在升高,并越來(lái)越快,當(dāng)達(dá)到一定值時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速不再升高;將熱源離開(kāi)測(cè)溫芯片DS18B20時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速開(kāi)始下降,轉(zhuǎn)速達(dá)到一定值時(shí),若將設(shè)置溫度升高到環(huán)境溫度以上,發(fā)現(xiàn)電機(jī)又停止了轉(zhuǎn)動(dòng)。系統(tǒng)采用的直流電機(jī)為12V的額定電壓,而該驅(qū)動(dòng)電路在采用單片機(jī)電源時(shí)的輸出電壓最高不過(guò)5V,因此在調(diào)試過(guò)程中只采用了原有的5V直流電機(jī)來(lái)調(diào)試,且得到了可觀的控制效果。</p><p><b>
81、 4.3 系統(tǒng)功能</b></p><p> 4.3.1 系統(tǒng)實(shí)現(xiàn)的功能</p><p> 本系統(tǒng)能夠?qū)崿F(xiàn)單片機(jī)系統(tǒng)檢測(cè)環(huán)境溫度的變化,然后根據(jù)環(huán)境溫度變化來(lái)控制風(fēng)扇直流電機(jī)輸入占空比的變化,從而產(chǎn)生不同的轉(zhuǎn)動(dòng)速度,亦可根據(jù)鍵盤(pán)調(diào)節(jié)不同的設(shè)置溫度,再由環(huán)境溫度與設(shè)置溫度的差值來(lái)控制電機(jī)。當(dāng)環(huán)境溫度低于設(shè)置溫度時(shí),電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)環(huán)境溫度高于設(shè)置溫度時(shí),單片機(jī)對(duì)應(yīng)輸出口輸出不
82、同占空比的PWM信號(hào),控制電機(jī)開(kāi)始轉(zhuǎn)動(dòng),并隨著環(huán)境溫度與設(shè)置溫度的差值的增加電機(jī)的轉(zhuǎn)速逐漸升高。 系統(tǒng)還能動(dòng)態(tài)的顯示當(dāng)前溫度和設(shè)置溫度,并能通過(guò)鍵盤(pán)調(diào)節(jié)當(dāng)前的設(shè)置溫度。</p><p> 4.3.2 系統(tǒng)功能分析</p><p> 系統(tǒng)總體上由五部分來(lái)組成,既按鍵與復(fù)位電路、數(shù)碼管顯示電路、溫度檢測(cè)電路、電機(jī)驅(qū)動(dòng)電路。首先考濾的是溫度檢測(cè)電路,該部分是整個(gè)系統(tǒng)的首要部分,首先要檢測(cè)到環(huán)
83、境溫度,才能用單片機(jī)來(lái)判斷溫度的高低,然后通過(guò)單片機(jī)控制直流風(fēng)扇電機(jī)的轉(zhuǎn)速;其次是電機(jī)驅(qū)動(dòng)電路,該部分需要使用外圍電路將單片機(jī)輸出的PWM信號(hào)轉(zhuǎn)化為平均電壓輸出,根據(jù)不同的PWM波形得到不同的平均電壓,從而控制電機(jī)的轉(zhuǎn)速,電路的設(shè)計(jì)中采用了達(dá)林頓反向驅(qū)動(dòng)器ULN2803,實(shí)現(xiàn)較好的控制效果;再次是數(shù)碼管的動(dòng)態(tài)顯示電路,該部分的功能實(shí)現(xiàn)對(duì)環(huán)境溫度和設(shè)置溫度的顯示,其中DS18B20采集環(huán)境溫度,按鍵實(shí)現(xiàn)不同設(shè)置溫度的調(diào)整,實(shí)現(xiàn)了對(duì)環(huán)境溫度
84、和設(shè)置溫度的及時(shí)連續(xù)顯示。</p><p><b> 結(jié) 論</b></p><p> 本次設(shè)計(jì)的系統(tǒng)以單片機(jī)為控制核心,以溫度傳感器DS18B20檢測(cè)環(huán)境溫度,實(shí)現(xiàn)了根據(jù)環(huán)境溫度變化調(diào)節(jié)不同的風(fēng)扇電機(jī)轉(zhuǎn)速,在一定范圍能能實(shí)現(xiàn)轉(zhuǎn)速的連續(xù)調(diào)節(jié),LED數(shù)碼管能連續(xù)穩(wěn)定的顯示環(huán)境溫度和設(shè)置溫度,并能通過(guò)兩個(gè)獨(dú)立按鍵調(diào)節(jié)不同的設(shè)置溫度,從而改變環(huán)境溫度與設(shè)置溫度的差值
85、,進(jìn)而改變電機(jī)轉(zhuǎn)速。實(shí)現(xiàn)了基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)。</p><p> 本系統(tǒng)設(shè)計(jì)可推廣到各種電動(dòng)機(jī)的控制系統(tǒng)中,實(shí)現(xiàn)電動(dòng)機(jī)的轉(zhuǎn)速調(diào)節(jié)。在生產(chǎn)生活中,本系統(tǒng)可用于簡(jiǎn)單的日常風(fēng)扇的智能控制,為生活帶來(lái)便利;在工業(yè)生產(chǎn)中,可以改變不同的輸入信號(hào),實(shí)現(xiàn)對(duì)不同信號(hào)輸入控制電機(jī)的轉(zhuǎn)速,進(jìn)而實(shí)現(xiàn)生產(chǎn)自動(dòng)化,如在電力系統(tǒng)中可以根據(jù)不同的負(fù)荷達(dá)到不同的電壓信號(hào),再由電壓信號(hào)調(diào)節(jié)不同的發(fā)電機(jī)轉(zhuǎn)速,進(jìn)而調(diào)節(jié)發(fā)電量,實(shí)現(xiàn)電力系統(tǒng)的
86、自動(dòng)化調(diào)節(jié)。綜上所述,該系統(tǒng)的設(shè)計(jì)和研究在社會(huì)生產(chǎn)和生活中具有重要地位。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李學(xué)龍.使用單片機(jī)控制的智能遙控電風(fēng)扇控制器[J].電子電路制作,2003,9:13—15.</p><p> [2] 藍(lán)厚榮.單片機(jī)的PWM控制技術(shù)[J].工業(yè)控制計(jì)算機(jī).2010,23(3):
87、97—98</p><p> [3] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社.2009.342—344</p><p> [4] 胡漢才.單片機(jī)原理及其接口技術(shù)[M](第2版).北京:清華大學(xué)出版社.2004.49—77.</p><p> [5] 胡全. 51單片機(jī)的數(shù)碼管動(dòng)態(tài)顯示技術(shù)[J] .信息技術(shù),2009,13:25—26&l
88、t;/p><p> [6] 李鋼,趙彥峰.1-Wire總線數(shù)字溫度傳感器DSI8B20原理及應(yīng)用[J].現(xiàn)代電子技術(shù),2005,28(21):77—79.</p><p> [7] 馬云峰.單片機(jī)與數(shù)字溫度傳感器DS18B20的接口設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,10(4):278—280.</p><p> [8] 王會(huì)明,侯加林.智能電風(fēng)扇控制器的研制
89、[J].電子與自動(dòng)化,1998,5(4):25—26.</p><p> [9] 譚浩強(qiáng).C程序設(shè)計(jì)[M](第三版).北京:清華大學(xué)出版社.2005.37—65.</p><p> [10] 孫號(hào). Proteus軟件在設(shè)計(jì)電子電路中的應(yīng)用[J].儀表技術(shù),2009,8:74—75</p><p> [11] 樓俊軍.基于Proteus和Keil的單片機(jī)演奏樂(lè)
90、曲的實(shí)現(xiàn)[J] .科技信息,2010,23:第50頁(yè)</p><p> [12] 王文海,周歡喜.用Proteus實(shí)現(xiàn)51單片機(jī)的動(dòng)態(tài)仿真調(diào)試[J].IT技術(shù),2006,20:10—11</p><p> [13] 丁建軍,陳定方,周?chē)?guó)柱. 基于AT89C51的智能電風(fēng)扇控制系統(tǒng)[J].湖北工學(xué)院學(xué)報(bào),2003,18(2):60—63.</p><p> [1
91、4] 王會(huì)明,侯加林. 智能電風(fēng)扇控制器的研制[J]. 電子與自動(dòng)化,1998,5(4):25—26.</p><p> [15] 劉進(jìn)山. 基于MCS-51電風(fēng)扇智能調(diào)速器的設(shè)計(jì)[J]. 廣州:電子質(zhì)量,2004,10(10):71.</p><p> [16] YU Qihao,CHENG Guodong,NIU Fujun. The application of auto-tem
92、perature-controlled ventilation embankment in Qinghai--Tibet Railway [J]. Science in China Ser.D Earth Sciences,2004,1(47):168—176.</p><p> [17] YLai,Y,Wang. Three—dimensional nonlinear analysis for tempera
93、ture characteristic of ventilated embankment in permafrost regions [J]. Cold Regions Science and Technology,2004,38(2):165—184.</p><p> [18] Cheng Guodong. Linearity engineering in permafrost areas [J]. Jou
94、rnal of Glaciology and Geocryology(in Chinese),2001,23(3):213—217.</p><p> [19] B Schneier.Applied Crytography:Algorithms,and Source Code in C[J].New York:Jone Wiley& Sons. 1994.301—307.</p><
95、p> [20] Intel: Benjamin Jun,Paul Kocher.The lntel Random Number Generator[J].White Paper Prepared for lntel Corporation,April 22,l999:4—5.</p><p><b> 致 謝</b></p><p> 在此衷心感謝我的導(dǎo)
96、師教授。本文的設(shè)計(jì)工作是在宋教授的悉心指導(dǎo)下完成的,從論文的選題、研究計(jì)劃的制定、技術(shù)路線的選擇到系統(tǒng)的開(kāi)發(fā)設(shè)計(jì),各個(gè)方面都離不開(kāi)宋教授熱情耐心的幫助和教導(dǎo)。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。同時(shí)也要感謝在本次論文的設(shè)計(jì)過(guò)程中不斷給予我?guī)椭?、支持與鼓勵(lì)的老師和同學(xué),是他們讓我更加有信心堅(jiān)持下去,是他們讓我更加順利的把一個(gè)個(gè)問(wèn)題解決,最終順利的完成本文的設(shè)計(jì)。</p><p&g
97、t; 四年的學(xué)習(xí)生涯馬上就要畫(huà)上句號(hào)了,畢業(yè)前所有的努力與付出都凝聚在這篇論文里面。相信它雖然算不上上乘之作,但的確是我用心血澆灌的答卷。在此我也要感謝我的同學(xué)們,正是和他們四年的朝夕相處,一起上課一起討論問(wèn)題,讓我逐漸有了對(duì)問(wèn)題的思考認(rèn)識(shí),從而更好地規(guī)劃自己的學(xué)業(yè)。四年的求學(xué)時(shí)光給我留下了美好的回憶,它將成為我今后人生旅途中新的起點(diǎn)。</p><p> 最后,感謝我的爸爸媽媽。焉得諼草,言樹(shù)之背,養(yǎng)育之恩,
98、無(wú)以回報(bào),你們永遠(yuǎn)健康快樂(lè)是我最大的心愿。</p><p><b> 附錄1:電路總圖</b></p><p><b> 附圖1 電路總圖</b></p><p><b> 附錄2:程序代碼</b></p><p> #include <reg52.h> &
99、lt;/p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit DQ=P1^7;</p><p> sbit key1=P1^3;</p><p> sbit key2=P1^4;</p>
100、<p> sbit dianji=P3^1;</p><p><b> float ff;</b></p><p><b> uint y3;</b></p><p> uchar shi,ge,xiaoshu,sheding=20,gaonum,dinum;</p><p>
101、 uchar code dispcode[]={ //段碼</p><p> 0x3f,0x06,0x5b,0x4f, </p><p> 0x66,0x6d,0x7d,0x07, </p><p> 0x7f,0x6f,0x77,0x7c, </p><p> 0x39,0x5e,0x79,0x71}; </p>
102、<p> uchar code tablel[]={ //帶小數(shù)點(diǎn)的段碼</p><p> 0xbf,0x86,0xdb,0xcf,</p><p> 0xe6,0xed,0xfd,</p><p> 0x87,0xff,0xef};</p><p> uchar dispbitcode[]={ //位選</
103、p><p> 0xfe,0xfd,0xfb,0xf7, </p><p> 0xef,0xdf,0xbf,0x7f}; </p><p> uchar dispbuf[8]={0,0,0,0,0,0,0,0}; </p><p> void Delay(uint num)// 延時(shí)函數(shù)</p><p><
104、b> {</b></p><p> while( --num );</p><p><b> }</b></p><p> void digitalshow(uchar a4,uchar a3,uchar a2,uchar a1,uchar a0)</p><p><b> {<
105、;/b></p><p> dispbuf[0]=a0; </p><p> dispbuf[1]=a1;</p><p> dispbuf[2]=a2;</p><p> dispbuf[3]=a3;</p><p> dispbuf[4]=a4;</p><p><b&
106、gt; P2=0xff;</b></p><p> P0=dispcode[dispbuf[0]];</p><p> P2=dispbitcode[5];</p><p> Delay(1); </p><p><b> P2=0xff;</b></p><p> P0
107、=dispcode[dispbuf[1]];</p><p> P2=dispbitcode[4];</p><p><b> Delay(1);</b></p><p><b> P2=0xff;</b></p><p> P0=dispcode[dispbuf[2]];</p>
108、;<p> P2=dispbitcode[2];</p><p><b> Delay(1);</b></p><p><b> P2=0xff;</b></p><p> P0=tablel[dispbuf[3]];</p><p> P2=dispbitcode[1];&
109、lt;/p><p><b> Delay(1);</b></p><p><b> P2=0xff;</b></p><p> P0=dispcode[dispbuf[4]];</p><p> P2=dispbitcode[0];</p><p><b>
110、Delay(1);</b></p><p><b> }</b></p><p> void dmsec(uint count) </p><p><b> { </b></p><p> uint i;// 1ms延時(shí)</p><p>
111、while(count--) </p><p><b> {</b></p><p> for(i=0;i<125;i++){}</p><p><b> }</b></p><p><b> }</b></p><p> void tm
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文--基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 風(fēng)扇畢業(yè)論文--基于51單片機(jī)的智能溫控風(fēng)扇
- 基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)論文
- 基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)論文
- 應(yīng)用物理畢業(yè)論文基于單片機(jī)的智能風(fēng)扇溫控系統(tǒng)設(shè)計(jì)
- 應(yīng)用物理畢業(yè)論文基于單片機(jī)的智能風(fēng)扇溫控系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)論文
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)論文
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)論文
- 基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 基于單片機(jī)溫控風(fēng)扇轉(zhuǎn)速的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 應(yīng)用物理學(xué)畢業(yè)論文基于單片機(jī)的智能風(fēng)扇溫控系統(tǒng)設(shè)計(jì)
- 應(yīng)用物理學(xué)畢業(yè)論文基于單片機(jī)的智能風(fēng)扇溫控系統(tǒng)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)開(kāi)題報(bào)告
- 課程設(shè)計(jì)--基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論