基于單片機(jī)的溫控風(fēng)扇設(shè)計(jì)畢業(yè)論文_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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>  學(xué) 院:__ </p><p>  專 業(yè):電子信息科學(xué)與技術(shù)</p><p>  班 級(jí): </p><p>  學(xué)

2、 號(hào): </p><p>  學(xué)生姓名:_ _</p><p>  指導(dǎo)教師: ___</p><p><b>  年 月 </b></p><p><b>  目 錄I</b></p><p>

3、;<b>  摘 要III</b></p><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>&l

4、t;/p><p>  1.3.1 溫度傳感器的選擇2</p><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)

5、器件簡(jiǎn)介5</p><p>  2.1.1 DS18B20單線數(shù)字溫度傳感器簡(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è)

6、計(jì)8</p><p>  2.2.1 開關(guān)復(fù)位與晶振電路9</p><p>  2.2.2 獨(dú)立鍵盤連接電路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&

7、gt;  第三章 軟件設(shè)計(jì)14</p><p>  3.1 程序設(shè)置14</p><p>  3.2 用Keil C51編寫程序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的仿真

8、16</p><p>  第四章 系統(tǒng)調(diào)試21</p><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><

9、;p>  4.2 硬件調(diào)試22</p><p>  4.2.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)

10、的功能23</p><p>  4.3.2 系統(tǒng)功能分析23</p><p><b>  結(jié) 論24</b></p><p><b>  參考文獻(xiàn)25</b></p><p><b>  致  謝26</b></p><p>  附錄1:

11、電路總圖27</p><p>  附錄2:程序代碼28</p><p>  基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)</p><p>  姓名: 學(xué)號(hào):</p><p>  學(xué)校: 指導(dǎo)教師:</p><p><b>  摘 要</b></p&

12、gt;<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作為溫度采集元件,并根據(jù)采集到的溫度,通過一個(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)和停止,并能根溫度的變化自

13、動(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>  第一章 整體方案設(shè)計(jì)</p><p><b>  1.1 前 言</b></p><p>  在現(xiàn)代社會(huì)中,風(fēng)扇被廣泛的應(yīng)用,發(fā)揮著舉足輕重的作用,如夏天人們用

14、的散熱風(fēng)扇、工業(yè)生產(chǎn)中大型機(jī)械中的散熱風(fēng)扇以及現(xiàn)在筆記本電腦上廣泛使用的智能CPU風(fēng)扇等。而隨著溫度控制技術(shù)的發(fā)展,為了降低風(fēng)扇運(yùn)轉(zhuǎn)時(shí)的噪音以及節(jié)省能源等,溫控風(fēng)扇越來越受到重視并被廣泛的應(yīng)用。在現(xiàn)階段,溫控風(fēng)扇的設(shè)計(jì)已經(jīng)有了一定的成效,可以使風(fēng)扇根據(jù)環(huán)境溫度的變化進(jìn)行自動(dòng)無級(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)域的廣

15、泛應(yīng)用,許多用單片機(jī)作控制的溫度控制系統(tǒng)也應(yīng)運(yùn)而生,如基于單片機(jī)的溫控風(fēng)扇系統(tǒng)。它使風(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)帶來了諸多便利,在提高人們的生活質(zhì)量、生產(chǎn)效率的同時(shí)還能節(jié)省風(fēng)扇運(yùn)轉(zhuǎn)所需的能量。</p><p>  本文設(shè)計(jì)了由ATMEL公司的8052系列單片機(jī)AT89C52作為控制器,采用DALLAS公司的溫度傳

16、感器DS18B20作為溫度采集元件,并通過一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(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ù)

17、字溫度信號(hào)給單片機(jī)AT89C52進(jìn)行處理,在LED數(shù)碼管上顯示當(dāng)前環(huán)境溫度值以及預(yù)設(shè)溫度值。其中預(yù)設(shè)溫度值只能為整數(shù)形式,檢測(cè)到的當(dāng)前環(huán)境溫度可精確到小數(shù)點(diǎn)后一位。同時(shí)采用PWM脈寬調(diào)制方式來改變直流風(fēng)扇電機(jī)的轉(zhuǎn)速。并通過兩個(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

18、方案論證</b></p><p>  本設(shè)計(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>  方案一:采用

19、熱敏電阻作為檢測(cè)溫度的核心元件,并通過運(yùn)算放大器放大,由于熱敏電阻會(huì)隨溫度變化而變化,進(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ì)于方案一,采用熱敏電阻

20、作為溫度檢測(cè)元件,有價(jià)格便宜,元件易購的優(yōu)點(diǎn),但熱敏電阻對(duì)溫度的細(xì)微變化不太敏感,在信號(hào)采集、放大以及轉(zhuǎn)換的過程中還會(huì)產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其自身電阻對(duì)溫度的變化存在較大誤差,雖然可以通過一定電路來修正,但這不僅將使電路變得更加復(fù)雜,而且在人體所處環(huán)境溫度變化過程中難以檢測(cè)到小的溫度變化。故該方案不適合本系統(tǒng)。</p><p>  對(duì)于方案二,由于數(shù)字式集成溫度傳感器DS18B20

21、的高度集成化,大大降低了外接放大轉(zhuǎn)化等電路的誤差因數(shù),溫度誤差變得很小,并且由于其檢測(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>  在本

22、設(shè)計(jì)中采用AT89C52單片機(jī)作為控制核心,通過軟件編程的方法進(jìn)行溫度檢測(cè)和判斷,并在其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)掃描的方式,采

23、用LED共陰極數(shù)碼管顯示溫度。</p><p>  方案二:采用LCD液晶顯示屏顯示溫度。</p><p>  對(duì)于方案一,該方案成本很低,顯示溫度明確醒目,即使在黑暗空間也能清楚看見,功耗極低,同時(shí)溫度顯示程序的編寫也相對(duì)簡(jiǎn)單,因而這種顯示方式得到了廣泛應(yīng)用。但不足的地方是它采用動(dòng)態(tài)掃描的顯示方式,各個(gè)LED數(shù)碼管是逐個(gè)點(diǎn)亮的,因此會(huì)產(chǎn)生閃爍,但由于人眼的視覺暫留時(shí)間為20MS,故當(dāng)數(shù)碼

24、管掃描周期小于這個(gè)時(shí)間時(shí)人眼不會(huì)感覺到閃爍,因此只要描頻率設(shè)置得當(dāng)即可采用該方案。</p><p>  對(duì)于方案二,液晶顯示屏具有顯示字符優(yōu)美,其不僅能顯示數(shù)字還能顯示字符甚至圖形,這是LED數(shù)碼管無法比擬的。但是液晶顯示模塊的元件價(jià)格昂貴,顯示驅(qū)動(dòng)程序的編寫也較復(fù)雜,從簡(jiǎn)單實(shí)用的原則考慮,本系統(tǒng)采用方案一。</p><p>  1.3.4 調(diào)速方式的選擇</p><p

25、>  方案一:采用數(shù)模轉(zhuǎn)換芯片DAC0832來控制,由單片機(jī)根據(jù)當(dāng)前環(huán)境溫度值輸出相應(yīng)數(shù)字量到DAC0832中,再由DAC0832產(chǎn)生相應(yīng)模擬信號(hào)控制晶閘管的導(dǎo)通角,從而通過無級(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的縮寫,它是按一定的規(guī)律改變脈沖序列的脈沖寬度,以調(diào)節(jié)

26、輸出量和波形的一種調(diào)節(jié)方式,在PWM驅(qū)動(dòng)控制的調(diào)節(jié)系統(tǒng)中,最常用的是矩形波PWM信號(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口電平取反,使其變成低電平

27、,然后再延時(shí)一定時(shí)間;當(dāng)?shù)碗娖窖訒r(shí)時(shí)間到時(shí),再對(duì)該I/O口電平取反,如此循環(huán)即可得到PWM信號(hào)。在本設(shè)計(jì)中應(yīng)用了此方法。</p><p>  (2) 利用定時(shí)器。控制方法與(1)相同,只是在該方法中利用單片機(jī)的定時(shí)器來定時(shí)進(jìn)行高低電平的轉(zhuǎn)變,而不是用軟件延時(shí)。應(yīng)用此方法時(shí)編程相對(duì)復(fù)雜。</p><p>  (3) 利用單片機(jī)自帶的PWM控制器。在STC12系列單片機(jī)中自身帶有PWM控制器,

28、但本系統(tǒng)所用到得AT89系列單片機(jī)無此功能。</p><p>  對(duì)于方案一,該方案能夠?qū)崿F(xiàn)對(duì)直流風(fēng)扇電機(jī)的無級(jí)調(diào)速,速度變化靈敏,但是D/A轉(zhuǎn)換芯片的價(jià)格較高,與其溫控狀態(tài)下無級(jí)調(diào)速功能相比性價(jià)比不高。</p><p>  對(duì)于方案二,相對(duì)于其他用硬件或者軟硬件相結(jié)合的方法實(shí)現(xiàn)對(duì)電機(jī)進(jìn)行調(diào)速而言,采用PWM 用純軟件的方法來實(shí)現(xiàn)調(diào)速過程,具有更大的靈活性,并可大大降低成本,能夠充分發(fā)揮單

29、片機(jī)的功能,對(duì)于簡(jiǎn)單速度控制系統(tǒng)的實(shí)現(xiàn)提供了一種有效的途徑。綜合考慮選用方案二。</p><p>  第二章 各單元模塊的硬件設(shè)計(jì)</p><p>  系統(tǒng)主要器件包括DS18B20溫度傳感器、AT89C52單片機(jī)、五位LED共陰數(shù)碼管、風(fēng)扇直流電機(jī)、達(dá)林頓反向驅(qū)動(dòng)器ULN2803。輔助元件包括電阻電容、晶振、電源、按鍵、撥碼開關(guān)等。</p><p><b&g

30、t;  2.1系統(tǒng)器件簡(jiǎn)介</b></p><p>  2.1.1 DS18B20單線數(shù)字溫度傳感器簡(jiǎn)介</p><p>  DS18B20數(shù)字溫度傳感器,是采用美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供處理器處理。</p><

31、;p>  適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域。</p><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.062

32、5℃,可實(shí)現(xiàn)高精度測(cè)溫;它單線接口的獨(dú)特性,使它與微處理器連接時(shí)僅需一條端口線即可實(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為電

33、源地,VDD為電源輸入端。</p><p>  2.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來驅(qū)動(dòng)風(fēng)扇直流電機(jī)。ULN2803在使用時(shí)接口簡(jiǎn)單,操作方便,可為電機(jī)提供較大的驅(qū)動(dòng)電流,它實(shí)際上是一個(gè)集成芯片,單塊芯片可同時(shí)驅(qū)動(dòng)8個(gè)電機(jī)

34、。每個(gè)電機(jī)由單片機(jī)的一個(gè)I/O口控制,單片機(jī)I/O口輸出的為5V的TTL信號(hào)。</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,工作溫

35、度范圍為0~70℃。本系統(tǒng)選用的電機(jī)為12V直流無刷電機(jī),可用ULN2803來驅(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位中央處理器和8

36、k 字節(jié)的可反復(fù)擦寫的只讀程序存儲(chǔ)器ROM以及256 字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM,在許多許多較復(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條引腳共有兩種不同的功能,分別使用

37、于兩種不同的情況。第一種情況是單片機(jī)不帶片外存儲(chǔ)器,P0口可以作為通用I/O口使用,P0.7~P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時(shí)它需外接一上拉電阻才能正常工作。第二種情況是單片機(jī)帶片外存儲(chǔ)器,其各引腳在CPU訪問片外存儲(chǔ)器時(shí)先是用于傳送片外存儲(chǔ)器的低8位地址,然后傳送CPU對(duì)片外存儲(chǔ)器的讀寫數(shù)據(jù)4]。</p><p>  P1口:P1口是一個(gè)內(nèi)部含上拉電阻的8位雙向I/O口。它也可作為通用的I/O口使用

38、,與P0口一樣用于傳送用戶的輸入輸出數(shù)據(jù),所不同的是它片內(nèi)含上拉電阻而P0口沒有,故P0口在做該用途時(shí)需外接上拉電阻而P1口則無需。在FLASH編程和校驗(yàn)時(shí),P1口用于輸入片內(nèi)EPROM的低8位地址。 </p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,它可以作為通用I/O口使用,傳送用戶的輸入/輸出數(shù)據(jù),同時(shí)可與P0口的第二功能配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)單元,但

39、此時(shí)不能傳送存儲(chǔ)器的讀寫數(shù)據(jù)。在一些型號(hào)的單片機(jī)中,P2口還可以配合P1口傳送片內(nèi)EPROM的12位地址中的高4位地址。</p><p>  P3口:P3口引腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,當(dāng)P3口寫入1后,它們被內(nèi)部上拉為高電平。它也可作為通用的I/O口使用,傳送用戶的輸入輸出數(shù)據(jù),P3口也作為一些特殊功能端口使用,如下所示:</p><p>  P3.0:RXD(串行數(shù)據(jù)接收口)

40、</p><p>  P3.1:TXD(串行數(shù)據(jù)發(fā)送口)</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.

41、6:(外部RAM寫選通信號(hào))</p><p>  P3.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)訪問片外存儲(chǔ)器時(shí),在P0.7~P0.0引腳線上輸出片外存儲(chǔ)器低8位地

42、址的同時(shí)還在ALE/線上輸出一個(gè)高電位脈沖,其下降沿用于把這個(gè)片外存儲(chǔ)器低8位地址鎖存到外部專用地址鎖存器,以便空出P0.7~P0.0引腳線去傳送隨后而來的片外存儲(chǔ)器讀寫數(shù)據(jù)。在不訪問片外存儲(chǔ)器時(shí),單片機(jī)自動(dòng)在ALE/線上輸出頻率為1/6晶振頻率的脈沖序列。</p><p>  :外部程序存儲(chǔ)器ROM的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。

43、</p><p>  /VPP:允許訪問片外存儲(chǔ)器/編程電源線,當(dāng)保持低電平時(shí),則在此期間允許使用片外程序存儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。當(dāng)端保持高電平時(shí),則允許使用片內(nèi)程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1和XTAL2:片內(nèi)振蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路

44、。</p><p>  2.1.4 LED數(shù)碼管簡(jiǎn)介</p><p>  本系統(tǒng)選用五個(gè)LED數(shù)碼管來進(jìn)行溫度顯示。LED又稱為數(shù)碼管,它主要是由8段發(fā)光二極管組成的不同組合,其中 a~g為數(shù)字和字符顯示段,dp為小數(shù)點(diǎn)的顯示,通過a~g這7個(gè)發(fā)光二極管點(diǎn)亮的不同組合,可以顯示0~9和A~F共16個(gè)數(shù)字和字母。LED數(shù)碼管可以分為共陰極和共陽極兩種結(jié)構(gòu),如下圖2.1.2(a)和圖2.1.

45、2(b) 所示。共陰極結(jié)構(gòu)把8個(gè)發(fā)光二極管陰極連在一起,共陽極結(jié)構(gòu)把8個(gè)發(fā)光二極管陽極連在一起。通過單片機(jī)引腳輸出高低電平,可使數(shù)碼管顯示相應(yīng)的數(shù)字或字母,這種使數(shù)碼管顯示字形的數(shù)據(jù)稱字形碼,又稱段選碼5]。</p><p>  圖2.1.2 七段LED數(shù)碼管</p><p>  表2.1.1 7段LED的段選碼表</p><p>  一個(gè)共陰極數(shù)碼管接至單片機(jī)的

46、電路,要想顯示數(shù)字“7”須a、b、c這3個(gè)顯示段發(fā)光 (即這3個(gè)字段為高電平)只要在P0口輸入00000111(07H)即可。這里07H即為數(shù)字7的段選碼。字形與段選碼的關(guān)系見表2.1.1所示。</p><p>  2.2 各部分電路設(shè)計(jì)</p><p>  2.2.1 開關(guān)復(fù)位與晶振電路</p><p>  在單片機(jī)應(yīng)用系統(tǒng)中,除單片機(jī)本身需要復(fù)位以外,外部擴(kuò)展I

47、/O接口電路也需要復(fù)位,因此需要一個(gè)包括上電和按鈕復(fù)位在內(nèi)的系統(tǒng)同步復(fù)位電路。單片機(jī)上的XTAL1和XTAL2用來外接石英晶體和微調(diào)電容,即用來連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路。本設(shè)計(jì)中開關(guān)復(fù)位與晶振電路如下圖所示,當(dāng)按下按鍵開關(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ù)位與晶振電路<

48、/p><p>  2.2.2 獨(dú)立鍵盤連接電路</p><p>  鍵盤包括2個(gè)獨(dú)立按鍵S2和S3,一端與單片機(jī)的P1.3和P1.4口相連,另一端接地,當(dāng)按下任一鍵時(shí),P1口讀取低電平有效。系統(tǒng)上電后,進(jìn)入鍵盤掃描子程序,以查詢的方式確定各按鍵,完成溫度初值的設(shè)定。其中按鍵S1為加按鍵,每按下一次,系統(tǒng)對(duì)最初設(shè)定值加一,按鍵S2為減按鍵,每按下一次,系統(tǒng)對(duì)初設(shè)定值進(jìn)行減一計(jì)算。其接線圖如下:&

49、lt;/p><p>  圖2.2.2 獨(dú)立鍵盤連接電路</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用于

50、顯示系統(tǒng)設(shè)置的初值溫度,只能顯示整數(shù)的溫度值,顯示范圍為0~99攝氏度。5位數(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ù)碼管顯

51、示電路</p><p>  2.2.4 溫度采集電路</p><p>  DS18B20數(shù)字溫度傳感器通過其內(nèi)部計(jì)數(shù)時(shí)鐘周期來的作用,實(shí)現(xiàn)了特有的溫度測(cè)量功能。低溫系數(shù)振蕩器輸出的時(shí)鐘信號(hào)通過由高溫度系數(shù)振蕩器產(chǎ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℃的溫度寄存器中的值

52、就增加1℃,然后這個(gè)過程不斷重復(fù),直到高溫度系數(shù)振蕩周期結(jié)束為止。此時(shí)溫度寄存器中的值即為被測(cè)溫度值,這個(gè)值以16位二進(jìn)制形式存放在存儲(chǔ)器中,通過主機(jī)發(fā)送存儲(chǔ)器讀命令可讀出此溫度值,讀取時(shí)低位在前,高位在后,依次進(jìn)行。由于溫度振蕩器的拋物線特性的影響,其內(nèi)用斜率累加器進(jìn)行補(bǔ)償6]。</p><p>  DS18B20在使用時(shí),一般都采用單片機(jī)來實(shí)現(xiàn)數(shù)據(jù)采集。只須將DS18B20信號(hào)線與單片機(jī)1位I/O線相連,且單

53、片機(jī)的1位I/O線可掛接多個(gè)DS18B20,就可實(shí)現(xiàn)單點(diǎn)或多點(diǎn)溫度檢測(cè)。在本設(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脈沖,通過一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803

54、驅(qū)動(dòng)12V直流無刷風(fēng)扇電機(jī)以及實(shí)現(xiàn)風(fēng)扇電機(jī)速度的調(diào)節(jié)。</p><p>  鍵盤控制設(shè)置溫度,通過軟件向單片機(jī)輸入相應(yīng)控制指令,由單片機(jī)通過P1.7口輸出與轉(zhuǎn)速相應(yīng)的PWM脈沖,經(jīng)過ULN2803驅(qū)動(dòng)風(fēng)扇直流電機(jī)控制電路,實(shí)現(xiàn)電機(jī)轉(zhuǎn)速與啟停的自動(dòng)控制。當(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è)

55、溫度時(shí),電機(jī)重新啟動(dòng)。</p><p>  電路如圖2.2.5所示,風(fēng)扇電機(jī)的一端接12V電源,另一端接ULN2803的OUT7引腳,ULN2803的IN7引腳與單片機(jī)的P3.1引腳相連,通過控制單片機(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ī)為1

56、2V直流無刷電機(jī),單達(dá)林頓反向驅(qū)動(dòng)器ULN2803輸入TTL信號(hào)為5V或CMOS信號(hào)為6~15V時(shí),輸出的最大電壓為50V,最大電流為500mA,工作溫度范圍為0~70℃。本系統(tǒng)中單片機(jī)I/O口輸出的TTL信號(hào)為5V,因此此風(fēng)扇電機(jī)可以用ULN2803來驅(qū)動(dòng)。</p><p><b>  第三章 軟件設(shè)計(jì)</b></p><p><b>  3.1 程序設(shè)置

57、</b></p><p>  程序設(shè)計(jì)部分主要包括主程序、DS18B20初始化函數(shù)、DS18B20溫度轉(zhuǎn)換函數(shù)、溫度讀取函數(shù)、鍵盤掃描函數(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ù)換算,鍵盤掃描函數(shù)則根據(jù)需要完成初值的加減設(shè)定;溫度處理函數(shù)

58、對(duì)采集到的溫度進(jìn)行分析出理,為電機(jī)轉(zhuǎn)速的變化提供條件;風(fēng)扇電機(jī)控制函數(shù)則根據(jù)溫度的數(shù)值完成對(duì)電機(jī)轉(zhuǎn)速及啟停的控制。</p><p>  主程序流程圖如圖3.1.1:</p><p>  圖3.1.1 主程序流程圖</p><p>  3.2 用Keil C51編寫程序</p><p>  Keil C51是美國Keil Software公司

59、開發(fā)的51系列兼容單片機(jī)C語言的軟件開發(fā)系統(tǒng),與單片機(jī)匯編語言相比,C語言在不僅語句簡(jiǎn)單靈活,而且編寫的函數(shù)模塊可移植性強(qiáng),因而易學(xué)易用,效率高。隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前使用較多的MCS-51系列單片機(jī)開發(fā)的軟件。</p><p>  Keil C51軟件不僅提供了豐富的庫函數(shù),而且它強(qiáng)大的集成開發(fā)調(diào)試工具為程序編輯調(diào)

60、試帶來便利,在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。在使用時(shí)要先建立一個(gè)工程,然后添加文件并編寫程序,編寫好后再編輯調(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 Pro

61、teus簡(jiǎn)介</p><p>  Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件。</p><p>  Proteus軟件有十多年的歷史,在全球廣泛使用,它不僅和其它EDA工具一樣有原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能,而且更重要的功能是,他的電路仿真是互動(dòng)的,可以根據(jù)仿真實(shí)時(shí)觀察到得現(xiàn)象驗(yàn)證設(shè)計(jì)的正確性及準(zhǔn)確性并及時(shí)改變程序代碼、原理

62、圖連接以及元件屬性等。它還能配合系統(tǒng)配置的虛擬儀器來顯示和輸出,如示波器、邏輯分析儀等,效果很好。</p><p>  Proteus有4個(gè)功能模塊:智能原理圖設(shè)計(jì)、完善的電路仿真功能、獨(dú)特的單片機(jī)協(xié)同仿真功能以及實(shí)用的PCB設(shè)計(jì)平臺(tái)。其內(nèi)部元件庫含有豐富的元件,支持總線結(jié)構(gòu)以及智能化的連線功能;支持主流CPU(如ARM、8051/52、AVR)及其通用外設(shè)模型的實(shí)時(shí)仿真等,為單片機(jī)的開發(fā)應(yīng)用等帶來極大的便利。&

63、lt;/p><p>  軟件使用的主界面如圖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è)原件按原理圖連接起來。在原理圖繪制連接好后

64、再把編譯好的程序加載到其中。最后根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能分步進(jìn)行仿真。</p><p>  把溫度傳感器DS18B20溫度設(shè)置為26.4攝氏度,用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開始按鈕,系統(tǒng)開始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)風(fēng)扇直流電機(jī)的轉(zhuǎn)速為+14.2r/s,如圖3.3.2所示。</p><p>  當(dāng)把溫度傳感器DS18B20溫度設(shè)置為28.4攝氏度,用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)

65、設(shè)的溫度為22攝氏度。點(diǎn)擊開始按鈕,系統(tǒng)開始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)直流風(fēng)扇電機(jī)的轉(zhuǎn)速為+23.3 r/s,如圖3.3.3所示。</p><p>  當(dāng)把溫度傳感器DS18B20溫度設(shè)置為33.4攝氏度,用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開始按鈕,系統(tǒng)開始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)直流風(fēng)扇電機(jī)的轉(zhuǎn)速為+32.0 r/s,如圖3.3.4所示。</p><p> 

66、 在上一步仿真的基礎(chǔ)上(溫度傳感器DS18B20溫度設(shè)置為33.4攝氏度,系統(tǒng)預(yù)設(shè)的溫度為22攝氏度),用鍵盤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>  通過以上仿真可以看出,直流風(fēng)扇電機(jī)在系統(tǒng)設(shè)定溫度一定的情況下,其轉(zhuǎn)速隨著環(huán)境溫度(溫度傳感器檢測(cè)到的溫度)的增

67、加而增大。當(dāng)環(huán)境溫度低于系統(tǒng)預(yù)設(shè)的溫度時(shí),風(fēng)扇自動(dòng)停止運(yùn)轉(zhuǎn),實(shí)現(xiàn)了系統(tǒng)所設(shè)計(jì)的功能。當(dāng)然,在此沒有實(shí)現(xiàn)風(fēng)扇直流電機(jī)的無級(jí)調(diào)速,本系統(tǒng)實(shí)現(xiàn)的是電機(jī)在隨環(huán)境溫度變化的四個(gè)等級(jí)的速度變化,環(huán)境溫度在一定小范圍內(nèi)變化風(fēng)扇電機(jī)轉(zhuǎn)速是不變的,只有超過了設(shè)定的某一界限時(shí)轉(zhuǎn)速才會(huì)變化。</p><p><b>  第四章 系統(tǒng)調(diào)試</b></p><p><b>  4.1

68、 軟件調(diào)試</b></p><p>  4.1.1 按鍵顯示部分的調(diào)試</p><p>  起初根據(jù)設(shè)計(jì)編寫的系統(tǒng)程序:程序的鍵盤接口采用P1口,數(shù)碼管顯示采用P0口控制LED的斷碼,P2口控制LED的位碼,從而實(shí)現(xiàn)鍵盤功能及數(shù)碼管的顯示。經(jīng)過編譯沒有出錯(cuò),但在仿真調(diào)試時(shí),數(shù)碼管顯示的只是亂碼,沒有正確的顯示溫度,按鍵功能也不靈,當(dāng)按下鍵時(shí),顯示并不變化。</p>

69、<p>  經(jīng)過查找分析,發(fā)現(xiàn)鍵盤掃描程序沒有沒有按鍵消抖部分,按鍵在按下與松手時(shí),都會(huì)有一定程度的抖動(dòng),從而可能使單片機(jī)做出錯(cuò)誤的判斷,導(dǎo)致按鍵條件預(yù)設(shè)溫度時(shí)失靈,甚至根本不能工作。因此必須在按鍵掃描程序中加入消抖部分,即在按鍵按下與松手時(shí)加入延時(shí)判斷,以檢測(cè)鍵盤是否真的按下或已完全松手。</p><p>  數(shù)碼管不能正確的顯示,主要是因?yàn)樗詳?shù)碼管的段碼都由P0口傳送,而數(shù)碼管顯示又采用了動(dòng)態(tài)掃

70、描的方式,但在程序中卻沒有設(shè)置顯示段碼的暫存器,導(dǎo)致當(dāng)P0口傳送段碼時(shí)發(fā)生混亂,不能正確識(shí)別段碼。應(yīng)在系統(tǒng)中加入鎖存器,或是在程序中設(shè)定存儲(chǔ)段碼的空間。</p><p>  在鍵盤加入了消抖程序,數(shù)碼管顯示程序中加入了段碼的存儲(chǔ)空間后,數(shù)碼管能夠正常的顯示,按鍵也能夠工作,達(dá)到了較好的效果。</p><p>  4.1.2 傳感器DS18B20溫度采集部分調(diào)試</p><

71、;p>  由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,為軟件的設(shè)計(jì)和調(diào)試帶來了極大的簡(jiǎn)便,小體積、低功耗、高精度為控制電機(jī)的精度和穩(wěn)定提供了可能。軟件設(shè)計(jì)采用P3.1口為數(shù)字溫度輸入口,但是需要對(duì)輸入的數(shù)字信號(hào)進(jìn)行處理后才能顯示,從而多了溫度轉(zhuǎn)換程序。通過軟件設(shè)計(jì),實(shí)現(xiàn)了對(duì)環(huán)境溫度的連續(xù)檢測(cè),由于硬件LED個(gè)數(shù)的限制,只顯示了預(yù)設(shè)溫度的整數(shù)部分。</p><p>  在溫度轉(zhuǎn)換程序中,為了能夠正確的

72、檢測(cè)并顯示溫度的小數(shù)位,程序中把檢測(cè)的溫度與10相乘后,再按一個(gè)三位的整數(shù)來處理。如把24.5變?yōu)?45來處理,這樣為程序的編寫帶來了方便。</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波形,通過達(dá)林頓反向驅(qū)動(dòng)器ULN28

73、03驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),通過軟件中程序設(shè)定,根據(jù)不同溫度輸出不同的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)開始轉(zhuǎn)動(dòng),且外界溫度與設(shè)置溫度的差值越大,電機(jī)轉(zhuǎn)速越高,即占空比增加。</p><p>  在本系統(tǒng)中風(fēng)扇電機(jī)的轉(zhuǎn)速可實(shí)現(xiàn)四級(jí)調(diào)速。通過溫度傳感器檢測(cè)的溫度與系統(tǒng)預(yù)設(shè)

74、溫度值的比較,實(shí)現(xiàn)轉(zhuǎn)速變換。當(dāng)檢測(cè)到的溫度比預(yù)設(shè)的溫度每增加5攝氏度時(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的后兩位顯示溫度值減一。

75、調(diào)試過程中出現(xiàn)了當(dāng)按鍵時(shí)間過長時(shí),設(shè)置的溫度值不是增一或者減一,而是增加后減少幾個(gè)值,出現(xiàn)這種情況的主要元嬰可能是按鍵的去抖動(dòng)延時(shí)時(shí)間過長造成,改進(jìn)方法為將對(duì)應(yīng)的按鍵去抖動(dòng)延時(shí)時(shí)間適量增加,但也不應(yīng)過長,否則將出現(xiàn)按鍵無效的情形。</p><p>  系統(tǒng)顯示部分實(shí)現(xiàn)了以下功能:LED顯示的前三位實(shí)現(xiàn)了環(huán)境溫度整數(shù)部分與小數(shù)部分的連續(xù)顯示,LED的后兩位能根據(jù)按鍵的調(diào)整顯示所需要的設(shè)計(jì)溫度。且LED的顯示效果很好

76、,很穩(wěn)定。</p><p>  4.2.2 傳感器DS18B20溫度采集部分調(diào)試</p><p>  將DS18B20芯片接在系統(tǒng)板對(duì)應(yīng)的P3.1口,通過插針在對(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)證了DS18B

77、20能在系統(tǒng)板上工作。由于DS18B20為3個(gè)引腳,因此在調(diào)試過程中因注意其各個(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)電路只是將送來的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í),電

78、機(jī)開始轉(zhuǎn)動(dòng),若此時(shí)用高于環(huán)境溫度的熱源靠近測(cè)溫芯片DS18B20時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速在升高,并越來越快,當(dāng)達(dá)到一定值時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速不再升高;將熱源離開測(cè)溫芯片DS18B20時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速開始下降,轉(zhuǎn)速達(dá)到一定值時(shí),若將設(shè)置溫度升高到環(huán)境溫度以上,發(fā)現(xiàn)電機(jī)又停止了轉(zhuǎn)動(dòng)。系統(tǒng)采用的直流電機(jī)為12V的額定電壓,而該驅(qū)動(dòng)電路在采用單片機(jī)電源時(shí)的輸出電壓最高不過5V,因此在調(diào)試過程中只采用了原有的5V直流電機(jī)來調(diào)試,且得到了可觀的控制效果。

79、</p><p><b>  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)境溫度變化來控制風(fēng)扇直流電機(jī)輸入占空比的變化,從而產(chǎn)生不同的轉(zhuǎn)動(dòng)速度,亦可根據(jù)鍵盤調(diào)節(jié)不同的設(shè)置溫度,再由環(huán)境溫度與設(shè)置溫度的差值來控制電機(jī)。當(dāng)環(huán)境溫度低于設(shè)置溫度時(shí),

80、電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)環(huán)境溫度高于設(shè)置溫度時(shí),單片機(jī)對(duì)應(yīng)輸出口輸出不同占空比的PWM信號(hào),控制電機(jī)開始轉(zhuǎn)動(dòng),并隨著環(huán)境溫度與設(shè)置溫度的差值的增加電機(jī)的轉(zhuǎn)速逐漸升高。 系統(tǒng)還能動(dòng)態(tài)的顯示當(dāng)前溫度和設(shè)置溫度,并能通過鍵盤調(diào)節(jié)當(dāng)前的設(shè)置溫度。</p><p>  4.3.2 系統(tǒng)功能分析</p><p>  系統(tǒng)總體上由五部分來組成,既按鍵與復(fù)位電路、數(shù)碼管顯示電路、溫度檢測(cè)電路、電機(jī)驅(qū)動(dòng)電路。首先考

81、濾的是溫度檢測(cè)電路,該部分是整個(gè)系統(tǒng)的首要部分,首先要檢測(cè)到環(huán)境溫度,才能用單片機(jī)來判斷溫度的高低,然后通過單片機(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è)置溫度的顯示,其中DS18B

82、20采集環(huán)境溫度,按鍵實(shí)現(xiàn)不同設(shè)置溫度的調(diào)整,實(shí)現(xiàn)了對(duì)環(huán)境溫度和設(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è)置溫度,并能通過兩

83、個(gè)獨(dú)立按鍵調(diào)節(jié)不同的設(shè)置溫度,從而改變環(huán)境溫度與設(shè)置溫度的差值,進(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)扇的智能控制,為生活帶來便利;在工業(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),再

84、由電壓信號(hào)調(diào)節(jié)不同的發(fā)電機(jī)轉(zhuǎn)速,進(jìn)而調(diào)節(jié)發(fā)電量,實(shí)現(xiàn)電力系統(tǒng)的自動(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ī)

85、的PWM控制技術(shù)[J].工業(yè)控制計(jì)算機(jī).2010,23(3):97—98</p><p>  [3] 郭天祥.新概念51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社.2009.342—344</p><p>  [4] 胡漢才.單片機(jī)原理及其接口技術(shù)[M](第2版).北京:清華大學(xué)出版社.2004.49—77.</p><p>  [5] 胡全. 51單片機(jī)的數(shù)碼管

86、動(dòng)態(tài)顯示技術(shù)[J] .信息技術(shù),2009,13:25—26</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><

87、;p>  [8] 王會(huì)明,侯加林.智能電風(fēng)扇控制器的研制[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> 

88、 [11] 樓俊軍.基于Proteus和Keil的單片機(jī)演奏樂曲的實(shí)現(xiàn)[J] .科技信息,2010,23:第50頁</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] 丁建軍,陳定方,周國柱. 基于AT89C51的智能電風(fēng)扇控制系統(tǒng)[J].湖北工學(xué)院學(xué)報(bào),2003,18(2):

89、60—63.</p><p>  [14] 王會(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 Fuj

90、un. The application of auto-temperature-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

91、 nonlinear analysis for temperature characteristic of ventilated embankment in permafrost regions [J]. Cold Regions Science and Technology,2004,38(2):165—184.</p><p>  [18] Cheng Guodong. Linearity engineeri

92、ng in permafrost areas [J]. Journal 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

93、. 1994.301—307.</p><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>&

94、lt;/p><p>  在此衷心感謝我的導(dǎo)師宋宗倫教授。本文的設(shè)計(jì)工作是在宋教授的悉心指導(dǎo)下完成的,從論文的選題、研究計(jì)劃的制定、技術(shù)路線的選擇到系統(tǒng)的開發(fā)設(shè)計(jì),各個(gè)方面都離不開宋教授熱情耐心的幫助和教導(dǎo)。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。同時(shí)也要感謝在本次論文的設(shè)計(jì)過程中不斷給予我?guī)椭?、支持與鼓勵(lì)的老師和同學(xué),是他們讓我更加有信心堅(jiān)持下去,是他們讓我更加順利的把一個(gè)個(gè)問題解

95、決,最終順利的完成本文的設(shè)計(jì)。</p><p>  四年的學(xué)習(xí)生涯馬上就要畫上句號(hào)了,畢業(yè)前所有的努力與付出都凝聚在這篇論文里面。相信它雖然算不上上乘之作,但的確是我用心血澆灌的答卷。在此我也要感謝我的同學(xué)們,正是和他們四年的朝夕相處,一起上課一起討論問題,讓我逐漸有了對(duì)問題的思考認(rèn)識(shí),從而更好地規(guī)劃自己的學(xué)業(yè)。四年的求學(xué)時(shí)光給我留下了美好的回憶,它將成為我今后人生旅途中新的起點(diǎn)。</p><

96、p>  最后,感謝我的爸爸媽媽。焉得諼草,言樹之背,養(yǎng)育之恩,無以回報(bào),你們永遠(yuǎn)健康快樂是我最大的心愿。</p><p><b>  附錄1:電路總圖</b></p><p><b>  附圖1 電路總圖</b></p><p><b>  附錄2:程序代碼</b></p><

97、;p>  #include <reg52.h> </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><

98、;p>  sbit key2=P1^4;</p><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,g

99、aonum,dinum;</p><p>  uchar code dispcode[]={ //段碼</p><p>  0x3f,0x06,0x5b,0x4f, </p><p>  0x66,0x6d,0x7d,0x07, </p><p>  0x7f,0x6f,0x77,0x7c, </p><p> 

100、 0x39,0x5e,0x79,0x71}; </p><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>  

101、uchar dispbitcode[]={ //位選</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 nu

102、m)// 延時(shí)函數(shù)</p><p><b>  {</b></p><p>  while( --num );</p><p><b>  }</b></p><p>  void digitalshow(uchar a4,uchar a3,uchar a2,uchar a1,uchar a0)&l

103、t;/p><p><b>  {</b></p><p>  dispbuf[0]=a0; </p><p>  dispbuf[1]=a1;</p><p>  dispbuf[2]=a2;</p><p>  dispbuf[3]=a3;</p><p>  dispbuf

104、[4]=a4;</p><p><b>  P2=0xff;</b></p><p>  P0=dispcode[dispbuf[0]];</p><p>  P2=dispbitcode[5];</p><p>  Delay(1); </p><p><b>  P2=0xff;&

105、lt;/b></p><p>  P0=dispcode[dispbuf[1]];</p><p>  P2=dispbitcode[4];</p><p><b>  Delay(1);</b></p><p><b>  P2=0xff;</b></p><p> 

106、 P0=dispcode[dispbuf[2]];</p><p>  P2=dispbitcode[2];</p><p><b>  Delay(1);</b></p><p><b>  P2=0xff;</b></p><p>  P0=tablel[dispbuf[3]];</p&g

107、t;<p>  P2=dispbitcode[1];</p><p><b>  Delay(1);</b></p><p><b>  P2=0xff;</b></p><p>  P0=dispcode[dispbuf[4]];</p><p>  P2=dispbitcode[0

108、];</p><p><b>  Delay(1);</b></p><p><b>  }</b></p><p>  void dmsec(uint count) </p><p><b>  { </b></p><p>  uint i;

109、// 1ms延時(shí)</p><p>  while(count--) </p><p><b>  {</b></p><p>  for(i=0;i<125;i++){}</p><p><b>  }</b></p><p><b>  }</b

110、></p><p>  void tmreset(void) </p><p>  { </p><p><b>  DQ=0;</b></p><p>  Delay(90);// 精確延時(shí) 大于 480us</p><p><b>  D

111、Q=1;</b></p><p>  Delay(4);// 90,4 可以小范圍變化</p><p><b>  }</b></p><p>  void tmpre(void) </p><p>  { </p><p>  while(

112、DQ);</p><p>  while(~DQ);</p><p>  Delay(4); </p><p><b>  }</b></p><p>  bit tmrbit(void) </p><p>  { </p><p>&

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論