基于AT89C52單片機(jī)的溫控風(fēng)扇設(shè)計(jì)(畢業(yè)論文).doc
《基于AT89C52單片機(jī)的溫控風(fēng)扇設(shè)計(jì)(畢業(yè)論文).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于AT89C52單片機(jī)的溫控風(fēng)扇設(shè)計(jì)(畢業(yè)論文).doc(40頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 第 36 頁 畢業(yè)論文(設(shè)計(jì))題目:基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)湖南工業(yè)職業(yè)技術(shù)學(xué)院 Hunan Industry Polytechnic畢 業(yè) 實(shí) 踐類別項(xiàng)目承接與技術(shù)服務(wù)(畢業(yè)實(shí)踐)題目目 錄I摘 要III第一章 整體方案設(shè)計(jì)11.1 前 言11.2 系統(tǒng)整體設(shè)計(jì)11.3方案論證21.3.1 溫度傳感器的選擇21.3.2 控制核心的選擇31.3.3 溫度顯示器件的選擇31.3.4 調(diào)速方式的選擇3第二章 各單元模塊的硬件設(shè)計(jì)52.1系統(tǒng)器件簡介52.1.1 DS18B20單線數(shù)字溫度傳感器簡介52.1.2 達(dá)林頓反向驅(qū)動(dòng)器ULN2803簡介52.1.3 AT89C52單片機(jī)簡介62.1.4
2、 LED數(shù)碼管簡介72.2 各部分電路設(shè)計(jì)82.2.1 開關(guān)復(fù)位與晶振電路92.2.2 獨(dú)立鍵盤連接電路92.2.3 數(shù)碼管顯示電路102.2.4 溫度采集電路112.2.5 風(fēng)扇電機(jī)驅(qū)動(dòng)與調(diào)速電路12第三章 軟件設(shè)計(jì)143.1 程序設(shè)置143.2 用Keil C51編寫程序143.3 用Proteus進(jìn)行仿真153.3.1 Proteus簡介153.3.2 本設(shè)計(jì)基于Proteus的仿真16第四章 系統(tǒng)調(diào)試214.1 軟件調(diào)試214.1.1 按鍵顯示部分的調(diào)試214.1.2 傳感器DS18B20溫度采集部分調(diào)試214.1.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試214.2 硬件調(diào)試224.2.1 按鍵顯示
3、部分的調(diào)試224.2.2 傳感器DS18B20溫度采集部分調(diào)試224.2.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試224.3 系統(tǒng)功能234.3.1 系統(tǒng)實(shí)現(xiàn)的功能234.3.2 系統(tǒng)功能分析23結(jié) 論24參考文獻(xiàn)25附錄1:電路總圖26附錄2:程序代碼2836基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì) 摘 要溫控風(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)扇電
4、機(jī)。根據(jù)檢測到的溫度與系統(tǒng)設(shè)定的溫度的比較實(shí)現(xiàn)風(fēng)扇電機(jī)的自動(dòng)啟動(dòng)和停止,并能根溫度的變化自動(dòng)改變風(fēng)扇電機(jī)的轉(zhuǎn)速,同時(shí)用LED八段數(shù)碼管顯示檢測到的溫度與設(shè)定的溫度。關(guān)鍵詞:單片機(jī)、DS18B20、溫控、風(fēng)扇第一章 整體方案設(shè)計(jì)1.1 前 言在現(xiàn)代社會(huì)中,風(fēng)扇被廣泛的應(yīng)用,發(fā)揮著舉足輕重的作用,如夏天人們用的散熱風(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)無級調(diào)速,當(dāng)溫度升高
5、到一定時(shí)能自動(dòng)啟動(dòng)風(fēng)扇,當(dāng)溫度降到一定時(shí)能自動(dòng)停止風(fēng)扇的轉(zhuǎn)動(dòng),實(shí)現(xiàn)智能控制。隨著單片機(jī)在各個(gè)領(lǐng)域的廣泛應(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)所需的能量。本文設(shè)計(jì)了由ATMEL公司的8052系列單片機(jī)AT89C52作為控制器,采用DALLAS公司的溫度傳感器DS18B20作為溫度采集元件,并通過一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)風(fēng)扇電機(jī)的轉(zhuǎn)動(dòng)。同時(shí)使系統(tǒng)
6、檢測到得環(huán)境溫度以及系統(tǒng)預(yù)設(shè)的溫度動(dòng)態(tài)的顯示在LED數(shù)碼管上。根據(jù)系統(tǒng)檢測到得環(huán)境溫度與系統(tǒng)預(yù)設(shè)溫度的比較,實(shí)現(xiàn)風(fēng)扇電機(jī)的自動(dòng)啟停以及轉(zhuǎn)速的自動(dòng)調(diào)節(jié)。1.2 系統(tǒng)整體設(shè)計(jì)本設(shè)計(jì)的整體思路是:利用溫度傳感器DS18B20檢測環(huán)境溫度并直接輸出數(shù)字溫度信號給單片機(jī)AT89C52進(jìn)行處理,在LED數(shù)碼管上顯示當(dāng)前環(huán)境溫度值以及預(yù)設(shè)溫度值。其中預(yù)設(shè)溫度值只能為整數(shù)形式,檢測到的當(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)框圖如下:DS18B20溫度顯示獨(dú)立鍵盤AT89C52直流電機(jī)P
7、WM驅(qū)動(dòng)電路晶振復(fù)位圖1.1系統(tǒng)構(gòu)成框圖1.3方案論證本設(shè)計(jì)要實(shí)現(xiàn)風(fēng)扇直流電機(jī)的溫度控制,使風(fēng)扇電機(jī)能根據(jù)環(huán)境溫度的變化自動(dòng)啟停及改變轉(zhuǎn)速,需要比較高的溫度變化分辨率以及穩(wěn)定可靠的換擋停機(jī)控制部件1 李學(xué)龍. 使用單片機(jī)控制的智能遙控電風(fēng)扇控制器J.電子電路制作,2003,9:1315.。1.3.1 溫度傳感器的選擇在本設(shè)計(jì)中,溫度傳感器的選擇有以下兩種方案:方案一:采用熱敏電阻作為檢測溫度的核心元件,并通過運(yùn)算放大器放大,由于熱敏電阻會(huì)隨溫度變化而變化,進(jìn)而產(chǎn)生輸出電壓變化的微弱電壓變化信號,再經(jīng)模數(shù)轉(zhuǎn)換芯片ADC0809將微弱電壓變化信號轉(zhuǎn)化為數(shù)字信號輸入單片機(jī)處理。方案二:采用數(shù)字式的集
8、成溫度傳感器DS18B20作為溫度檢測的核心元件,由其檢測并直接輸出數(shù)字溫度信號給單片機(jī)進(jìn)行處理。對于方案一,采用熱敏電阻作為溫度檢測元件,有價(jià)格便宜,元件易購的優(yōu)點(diǎn),但熱敏電阻對溫度的細(xì)微變化不太敏感,在信號采集、放大以及轉(zhuǎn)換的過程中還會(huì)產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其自身電阻對溫度的變化存在較大誤差,雖然可以通過一定電路來修正,但這不僅將使電路變得更加復(fù)雜,而且在人體所處環(huán)境溫度變化過程中難以檢測到小的溫度變化。故該方案不適合本系統(tǒng)。對于方案二,由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)化等電路的誤差因數(shù),溫度誤差變得很小,并且由于其檢
9、測溫度的原理與熱敏電阻檢測的原理有著本質(zhì)的不同,使得其溫度分辨力極高。溫度值在器件內(nèi)部轉(zhuǎn)化成數(shù)字量直接輸出,簡化了系統(tǒng)程序設(shè)計(jì),又由于該溫度傳感器采用先進(jìn)的單總線技術(shù),與單片機(jī)的接口變得非常簡潔,抗干擾能力強(qiáng),因此該方案適用于本系統(tǒng)。1.3.2 控制核心的選擇在本設(shè)計(jì)中采用AT89C52單片機(jī)作為控制核心,通過軟件編程的方法進(jìn)行溫度檢測和判斷,并在其I/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)。1.3.3 溫度顯示器件的選擇方案一:應(yīng)用動(dòng)態(tài)掃
10、描的方式,采用LED共陰極數(shù)碼管顯示溫度。方案二:采用LCD液晶顯示屏顯示溫度。對于方案一,該方案成本很低,顯示溫度明確醒目,即使在黑暗空間也能清楚看見,功耗極低,同時(shí)溫度顯示程序的編寫也相對簡單,因而這種顯示方式得到了廣泛應(yīng)用。但不足的地方是它采用動(dòng)態(tài)掃描的顯示方式,各個(gè)LED數(shù)碼管是逐個(gè)點(diǎn)亮的,因此會(huì)產(chǎn)生閃爍,但由于人眼的視覺暫留時(shí)間為20MS,故當(dāng)數(shù)碼管掃描周期小于這個(gè)時(shí)間時(shí)人眼不會(huì)感覺到閃爍,因此只要描頻率設(shè)置得當(dāng)即可采用該方案。對于方案二,液晶顯示屏具有顯示字符優(yōu)美,其不僅能顯示數(shù)字還能顯示字符甚至圖形,這是LED數(shù)碼管無法比擬的。但是液晶顯示模塊的元件價(jià)格昂貴,顯示驅(qū)動(dòng)程序的編寫也
11、較復(fù)雜,從簡單實(shí)用的原則考慮,本系統(tǒng)采用方案一。1.3.4 調(diào)速方式的選擇方案一:采用數(shù)模轉(zhuǎn)換芯片DAC0832來控制,由單片機(jī)根據(jù)當(dāng)前環(huán)境溫度值輸出相應(yīng)數(shù)字量到DAC0832中,再由DAC0832產(chǎn)生相應(yīng)模擬信號控制晶閘管的導(dǎo)通角,從而通過無級調(diào)速電路實(shí)現(xiàn)風(fēng)扇電機(jī)轉(zhuǎn)速的自動(dòng)調(diào)節(jié)。方案二:采用單片機(jī)軟件編程實(shí)現(xiàn)PWM(脈沖寬度調(diào)制)調(diào)速的方法。PWM是英文Pulse Width Modulation的縮寫,它是按一定的規(guī)律改變脈沖序列的脈沖寬度,以調(diào)節(jié)輸出量和波形的一種調(diào)節(jié)方式,在PWM驅(qū)動(dòng)控制的調(diào)節(jié)系統(tǒng)中,最常用的是矩形波PWM信號,在控制時(shí)需要調(diào)節(jié)PWM波得占空比。占空比是指高電平持續(xù)時(shí)間
12、在一個(gè)周期時(shí)間內(nèi)的百分比。在控制電機(jī)的轉(zhuǎn)速時(shí),占空比越大,轉(zhuǎn)速就越快,若全為高電平,占空比為100%時(shí),轉(zhuǎn)速達(dá)到最大 2 藍(lán)厚榮.單片機(jī)的PWM控制技術(shù)J .工業(yè)控制計(jì)算機(jī),2010,23(3):97982。用單片機(jī)I/O口輸出PWM信號時(shí),有如下三種方法:(1) 利用軟件延時(shí)。當(dāng)高電平延時(shí)時(shí)間到時(shí),對I/O口電平取反,使其變成低電平,然后再延時(shí)一定時(shí)間;當(dāng)?shù)碗娖窖訒r(shí)時(shí)間到時(shí),再對該I/O口電平取反,如此循環(huán)即可得到PWM信號。在本設(shè)計(jì)中應(yīng)用了此方法。(2) 利用定時(shí)器??刂品椒ㄅc(1)相同,只是在該方法中利用單片機(jī)的定時(shí)器來定時(shí)進(jìn)行高低電平的轉(zhuǎn)變,而不是用軟件延時(shí)。應(yīng)用此方法時(shí)編程相對復(fù)雜。
13、(3) 利用單片機(jī)自帶的PWM控制器。在STC12系列單片機(jī)中自身帶有PWM控制器,但本系統(tǒng)所用到得AT89系列單片機(jī)無此功能。對于方案一,該方案能夠?qū)崿F(xiàn)對直流風(fēng)扇電機(jī)的無級調(diào)速,速度變化靈敏,但是D/A轉(zhuǎn)換芯片的價(jià)格較高,與其溫控狀態(tài)下無級調(diào)速功能相比性價(jià)比不高。 對于方案二,相對于其他用硬件或者軟硬件相結(jié)合的方法實(shí)現(xiàn)對電機(jī)進(jìn)行調(diào)速而言,采用PWM 用純軟件的方法來實(shí)現(xiàn)調(diào)速過程,具有更大的靈活性,并可大大降低成本,能夠充分發(fā)揮單片機(jī)的功能,對于簡單速度控制系統(tǒng)的實(shí)現(xiàn)提供了一種有效的途徑。綜合考慮選用方案二。第二章 各單元模塊的硬件設(shè)計(jì)系統(tǒng)主要器件包括DS18B20溫度傳感器、AT89C52單
14、片機(jī)、五位LED共陰數(shù)碼管、風(fēng)扇直流電機(jī)、達(dá)林頓反向驅(qū)動(dòng)器ULN2803。輔助元件包括電阻電容、晶振、電源、按鍵、撥碼開關(guān)等。2.1系統(tǒng)器件簡介2.1.1 DS18B20單線數(shù)字溫度傳感器簡介DS18B20數(shù)字溫度傳感器,是采用美國DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20可組網(wǎng)數(shù)字溫度傳感器芯片封裝而成,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號供處理器處理。適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。DS18B20的主要特征:測量的結(jié)果直接以數(shù)字信號的形式輸出,以“一線總線”方式串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)
15、能力;溫度測量范圍在-55+125之間,在-10+85時(shí)精度為0.5;可檢測溫度分辨率為912位,對應(yīng)的可分辨溫度分別為0.5,0.25,0.125和0.0625,可實(shí)現(xiàn)高精度測溫;它單線接口的獨(dú)特性,使它與微處理器連接時(shí)僅需一條端口線即可實(shí)現(xiàn)與微處理器的雙向通信;支持多點(diǎn)組網(wǎng)功能,即多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫的功能;工作電壓范圍寬,其范圍在3.05.5V3 郭天祥.新概念51單片機(jī)C語言教程M.北京:電子工業(yè)出版社.2009.3423443。DS18B20內(nèi)部結(jié)構(gòu)主要有四部分:64位ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。其管腳有三個(gè)
16、,其中DQ為數(shù)字信號端,GND為電源地,VDD為電源輸入端。2.1.2 達(dá)林頓反向驅(qū)動(dòng)器ULN2803簡介本系統(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í)接口簡單,操作方便,可為電機(jī)提供較大的驅(qū)動(dòng)電流,它實(shí)際上是一個(gè)集成芯片,單塊芯片可同時(shí)驅(qū)動(dòng)8個(gè)電機(jī)。每個(gè)電機(jī)由單片機(jī)的一個(gè)I/O口控制,單片機(jī)I/O口輸出的為5V的TTL信號。ULN2803由8個(gè)NPN達(dá)林頓晶體管組裝而成,共18個(gè)引腳,引腳18分別是8路驅(qū)動(dòng)器的輸入端,輸入信號可直接是TTL或CMOS信號;引腳1
17、118分別是8路驅(qū)動(dòng)器的輸出端;引腳9為接地線,引腳10為電源輸入。當(dāng)輸入TTL信號為5V或CMOS信號為615V時(shí),輸出的最大電壓為50V,最大電流為500mA,工作溫度范圍為070。本系統(tǒng)選用的電機(jī)為12V直流無刷電機(jī),可用ULN2803來驅(qū)動(dòng)。2.1.3 AT89C52單片機(jī)簡介AT89C52是51系列單片機(jī)的一個(gè)型號,它是由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ù)擦寫的只讀程序存儲(chǔ)器ROM以及256 字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM,在許多許多
18、較復(fù)雜的控制系統(tǒng)中AT89C52單片機(jī)得到了廣泛的應(yīng)用。AT89C52有40個(gè)引腳,各引腳介紹如下:VCC:+5V電源線;GND:接地線。P0口:P0.7P0.0,這組引腳共8條,其中P0.7為最高位,P0.0為最低位。這8條引腳共有兩種不同的功能,分別使用于兩種不同的情況。第一種情況是單片機(jī)不帶片外存儲(chǔ)器,P0口可以作為通用I/O口使用,P0.7P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時(shí)它需外接一上拉電阻才能正常工作。第二種情況是單片機(jī)帶片外存儲(chǔ)器,其各引腳在CPU訪問片外存儲(chǔ)器時(shí)先是用于傳送片外存儲(chǔ)器的低8位地址,然后傳送CPU對片外存儲(chǔ)器的讀寫數(shù)據(jù)4 胡漢才.單片機(jī)原理及其接口技術(shù)M(
19、第2版).北京:清華大學(xué)出版社.2004.第63頁.4。P1口:P1口是一個(gè)內(nèi)部含上拉電阻的8位雙向I/O口。它也可作為通用的I/O口使用,與P0口一樣用于傳送用戶的輸入輸出數(shù)據(jù),所不同的是它片內(nèi)含上拉電阻而P0口沒有,故P0口在做該用途時(shí)需外接上拉電阻而P1口則無需。在FLASH編程和校驗(yàn)時(shí),P1口用于輸入片內(nèi)EPROM的低8位地址。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,它可以作為通用I/O口使用,傳送用戶的輸入/輸出數(shù)據(jù),同時(shí)可與P0口的第二功能配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)單元,但此時(shí)不能傳送存儲(chǔ)器的讀寫數(shù)據(jù)。在一些型號的單片機(jī)中,P2口還可以配合
20、P1口傳送片內(nèi)EPROM的12位地址中的高4位地址。P3口:P3口引腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,當(dāng)P3口寫入1后,它們被內(nèi)部上拉為高電平。它也可作為通用的I/O口使用,傳送用戶的輸入輸出數(shù)據(jù),P3口也作為一些特殊功能端口使用,如下所示:P3.0:RXD(串行數(shù)據(jù)接收口)P3.1:TXD(串行數(shù)據(jù)發(fā)送口)P3.2:(外部中斷0輸入)P3.3:(外部中斷1輸入)P3.4:T0(記數(shù)器0計(jì)數(shù)輸入)P3.5:T1(記時(shí)器1外部輸入)P3.6:(外部RAM寫選通信號)P3.7:(外部RAM讀選通信號) 圖2.1.1 AT89C51單片機(jī) RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)
21、機(jī)器周期的高電平狀態(tài)。ALE/:地址鎖存允許/編程線,當(dāng)訪問片外存儲(chǔ)器時(shí),在P0.7P0.0引腳線上輸出片外存儲(chǔ)器低8位地址的同時(shí)還在ALE/線上輸出一個(gè)高電位脈沖,其下降沿用于把這個(gè)片外存儲(chǔ)器低8位地址鎖存到外部專用地址鎖存器,以便空出P0.7P0.0引腳線去傳送隨后而來的片外存儲(chǔ)器讀寫數(shù)據(jù)。在不訪問片外存儲(chǔ)器時(shí),單片機(jī)自動(dòng)在ALE/線上輸出頻率為1/6晶振頻率的脈沖序列。:外部程序存儲(chǔ)器ROM的選通信號。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號將不出現(xiàn)。/VPP:允許訪問片外存儲(chǔ)器/編程電源線,當(dāng)保持低電平時(shí),則在此期間允許使用片外程序存
22、儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。當(dāng)端保持高電平時(shí),則允許使用片內(nèi)程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1和XTAL2:片內(nèi)振蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路。2.1.4 LED數(shù)碼管簡介本系統(tǒng)選用五個(gè)LED數(shù)碼管來進(jìn)行溫度顯示。LED又稱為數(shù)碼管,它主要是由8段發(fā)光二極管組成的不同組合,其中 ag為數(shù)字和字符顯示段,dp為小數(shù)點(diǎn)的顯示,通過ag這7個(gè)發(fā)光二極管點(diǎn)亮的不同組合,可以顯示09和AF共16個(gè)數(shù)字和字母。LED數(shù)碼管可以分為共陰極和共陽極兩種結(jié)構(gòu),如下圖2.1.2(a)和圖2.1.
23、2(b) 所示。共陰極結(jié)構(gòu)把8個(gè)發(fā)光二極管陰極連在一起,共陽極結(jié)構(gòu)把8個(gè)發(fā)光二極管陽極連在一起。通過單片機(jī)引腳輸出高低電平,可使數(shù)碼管顯示相應(yīng)的數(shù)字或字母,這種使數(shù)碼管顯示字形的數(shù)據(jù)稱字形碼,又稱段選碼5 胡全.51單片機(jī)的數(shù)碼管動(dòng)態(tài)顯示技術(shù)J .信息技術(shù),2009,13:25265。b.共陽極a.共陰極數(shù)碼管引腳分配圖 圖2.1.2 七段LED數(shù)碼管表2.1.1 7段LED的段選碼表顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼03fHC0H87fH80H106HF9H96fH90H25bHA4HA77H88H34fHB0HB7fH83H466H99HC39HC6H56dH92HD
24、3fHA1H67dH82HE79H86H707HF8HF71H8EH一個(gè)共陰極數(shù)碼管接至單片機(jī)的電路,要想顯示數(shù)字“7”須a、b、c這3個(gè)顯示段發(fā)光 (即這3個(gè)字段為高電平)只要在P0口輸入00000111(07H)即可。這里07H即為數(shù)字7的段選碼。字形與段選碼的關(guān)系見表2.1.1所示。2.2 各部分電路設(shè)計(jì)2.2.1 開關(guān)復(fù)位與晶振電路在單片機(jī)應(yīng)用系統(tǒng)中,除單片機(jī)本身需要復(fù)位以外,外部擴(kuò)展I/O接口電路也需要復(fù)位,因此需要一個(gè)包括上電和按鈕復(fù)位在內(nèi)的系統(tǒng)同步復(fù)位電路。單片機(jī)上的XTAL1和XTAL2用來外接石英晶體和微調(diào)電容,即用來連接單片機(jī)片內(nèi)OSC的定時(shí)反饋回路。本設(shè)計(jì)中開關(guān)復(fù)位與晶振
25、電路如下圖所示,當(dāng)按下按鍵開關(guān)S1時(shí),系統(tǒng)復(fù)位一次。其中電容C1、C2為20pF,C3為10uF,電阻R2、R3為10k,晶振為11.0592MHz。圖2.2.1 系統(tǒng)復(fù)位與晶振電路2.2.2 獨(dú)立鍵盤連接電路鍵盤包括2個(gè)獨(dú)立按鍵S2和S3,一端與單片機(jī)的P1.3和P1.4口相連,另一端接地,當(dāng)按下任一鍵時(shí),P1口讀取低電平有效。系統(tǒng)上電后,進(jìn)入鍵盤掃描子程序,以查詢的方式確定各按鍵,完成溫度初值的設(shè)定。其中按鍵S1為加按鍵,每按下一次,系統(tǒng)對最初設(shè)定值加一,按鍵S2為減按鍵,每按下一次,系統(tǒng)對初設(shè)定值進(jìn)行減一計(jì)算。其接線圖如下:圖2.2.2 獨(dú)立鍵盤連接電路2.2.3 數(shù)碼管顯示電路本設(shè)計(jì)制
26、作中選用5位共陰極數(shù)碼管作為顯示模塊,它和單片機(jī)硬件的接口如圖2.2.3所示。其中前3位數(shù)碼管DS1、DS2、DS3用于顯示溫度傳感器實(shí)時(shí)檢測采集到的溫度,可精確到0.1攝氏度,顯示范圍為099.9攝氏度;后2位數(shù)碼管DS4、DS5用于顯示系統(tǒng)設(shè)置的初值溫度,只能顯示整數(shù)的溫度值,顯示范圍為099攝氏度。5位數(shù)碼管的段選a、b、c、d、e、f、g、dp線分別與單片機(jī)的P0.0P0.7口連接,其中P0口需接一10K的上拉電阻,以使單片機(jī)的P0口能夠輸出高低電平。5位數(shù)碼管的位選W1W5分別與單片機(jī)的P2.0P2.4口相連接,只要P2.0P2.4中任一位中輸出低電平,則選中與該位相連的數(shù)碼管。圖2
27、.2.3 數(shù)碼管顯示電路2.2.4 溫度采集電路DS18B20數(shù)字溫度傳感器通過其內(nèi)部計(jì)數(shù)時(shí)鐘周期來的作用,實(shí)現(xiàn)了特有的溫度測量功能。低溫系數(shù)振蕩器輸出的時(shí)鐘信號通過由高溫度系數(shù)振蕩器產(chǎn)生的門周期而被計(jì)數(shù),計(jì)數(shù)器預(yù)先置有與-55相對應(yīng)的一個(gè)基權(quán)值。如果計(jì)數(shù)器計(jì)數(shù)到0時(shí),高溫度系數(shù)振蕩周期還未結(jié)束,則表示測量的溫度值高于-55,被預(yù)置在-55的溫度寄存器中的值就增加1,然后這個(gè)過程不斷重復(fù),直到高溫度系數(shù)振蕩周期結(jié)束為止。此時(shí)溫度寄存器中的值即為被測溫度值,這個(gè)值以16位二進(jìn)制形式存放在存儲(chǔ)器中,通過主機(jī)發(fā)送存儲(chǔ)器讀命令可讀出此溫度值,讀取時(shí)低位在前,高位在后,依次進(jìn)行。由于溫度振蕩器的拋物線特
28、性的影響,其內(nèi)用斜率累加器進(jìn)行補(bǔ)償 6 李鋼,趙彥峰.1-Wire總線數(shù)字溫度傳感器DSI8B20原理及應(yīng)用J.現(xiàn)代電子技術(shù),2005,28(21):7779.6。DS18B20在使用時(shí),一般都采用單片機(jī)來實(shí)現(xiàn)數(shù)據(jù)采集。只須將DS18B20信號線與單片機(jī)1位I/O線相連,且單片機(jī)的1位I/O線可掛接多個(gè)DS18B20,就可實(shí)現(xiàn)單點(diǎn)或多點(diǎn)溫度檢測7 馬云峰.單片機(jī)與數(shù)字溫度傳感器DS18B20的接口設(shè)計(jì)J.計(jì)算機(jī)測量與控制,2007,10(4):278280.。在本設(shè)計(jì)中將DS18B20接在P1.7口實(shí)現(xiàn)溫度的采集。其與單片機(jī)的連接如圖2.2.4。圖2.2.4 溫度采集電路2.2.5 風(fēng)扇電機(jī)驅(qū)
29、動(dòng)與調(diào)速電路本設(shè)計(jì)中由單片機(jī)的I/O口輸出PWM脈沖,通過一個(gè)達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)12V直流無刷風(fēng)扇電機(jī)以及實(shí)現(xiàn)風(fēng)扇電機(jī)速度的調(diào)節(jié)。鍵盤控制設(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)控制8 王會(huì)明,侯加林. 智能電風(fēng)扇控制器的研制J. 電子與自動(dòng)化,1998,5(4):2526.。當(dāng)環(huán)境溫度升高時(shí),直流電機(jī)的轉(zhuǎn)速會(huì)相應(yīng)按照設(shè)定的等級有所提高;當(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)
30、。電路如圖2.2.5所示,風(fēng)扇電機(jī)的一端接12V電源,另一端接ULN2803的OUT7引腳,ULN2803的IN7引腳與單片機(jī)的P3.1引腳相連,通過控制單片機(jī)的P3.1引腳輸出PWM信號,由此控制風(fēng)扇直流電機(jī)的速度與啟停。圖2.2.5 風(fēng)扇電機(jī)驅(qū)動(dòng)與調(diào)速電 系統(tǒng)選用的風(fēng)扇電機(jī)為12V直流無刷電機(jī),單達(dá)林頓反向驅(qū)動(dòng)器ULN2803輸入TTL信號為5V或CMOS信號為615V時(shí),輸出的最大電壓為50V,最大電流為500mA,工作溫度范圍為070。本系統(tǒng)中單片機(jī)I/O口輸出的TTL信號為5V,因此此風(fēng)扇電機(jī)可以用ULN2803來驅(qū)動(dòng)。第三章 軟件設(shè)計(jì)3.1 程序設(shè)置程序設(shè)計(jì)部分主要包括主程序、DS
31、18B20初始化函數(shù)、DS18B20溫度轉(zhuǎn)換函數(shù)、溫度讀取函數(shù)、鍵盤掃描函數(shù)、數(shù)碼管顯示函數(shù)、溫度處理函數(shù)以及風(fēng)扇電機(jī)控制函數(shù)。DS18B20初始化函數(shù)完成對DS18B20的初始化;DS18B20溫度轉(zhuǎn)換函數(shù)完成對環(huán)境溫度的實(shí)時(shí)采集;溫度讀取函數(shù)完成主機(jī)對溫度傳感器數(shù)據(jù)的讀取及數(shù)據(jù)換算,鍵盤掃描函數(shù)則根據(jù)需要完成初值的加減設(shè)定;溫度處理函數(shù)對采集到的溫度進(jìn)行分析出理,為電機(jī)轉(zhuǎn)速的變化提供條件;風(fēng)扇電機(jī)控制函數(shù)則根據(jù)溫度的數(shù)值完成對電機(jī)轉(zhuǎn)速及啟停的控制。主程序流程圖如圖3.1.1:調(diào)用鍵盤掃描函數(shù)主程序開始調(diào)用數(shù)碼管顯示函數(shù)程序初始化調(diào)用溫度處理函數(shù)調(diào)用DS18B20初始化函數(shù)調(diào)用風(fēng)扇電機(jī)控制函
32、數(shù)調(diào)用DS18B20溫度轉(zhuǎn)換函數(shù)結(jié)束 調(diào)用溫度讀取函數(shù)圖3.1.1 主程序流程圖3.2 用Keil C51編寫程序Keil C51是美國Keil Software公司開發(fā)的51系列兼容單片機(jī)C語言的軟件開發(fā)系統(tǒng),與單片機(jī)匯編語言相比,C語言在不僅語句簡單靈活,而且編寫的函數(shù)模塊可移植性強(qiáng)9 譚浩強(qiáng).C程序設(shè)計(jì)M(第三版).北京:清華大學(xué)出版社.2005.3765.,因而易學(xué)易用,效率高。隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前使用較多的MCS-51系列單片機(jī)開發(fā)的軟件。Keil C51軟件不僅提供了豐富的庫函數(shù),而
33、且它強(qiáng)大的集成開發(fā)調(diào)試工具為程序編輯調(diào)試帶來便利,在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。在使用時(shí)要先建立一個(gè)工程,然后添加文件并編寫程序,編寫好后再編輯調(diào)試。Keil C51的使用界面如圖3.2.1。圖3.2.1 Keil C51的使用界面3.3 用Proteus進(jìn)行仿真3.3.1 Proteus簡介Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件。Proteus軟件有十多年的歷史,在全球廣泛使用,它不僅和其它EDA工具一樣有原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能,而且更重要的功能是,他的電路仿真是互動(dòng)的,可以根據(jù)仿真實(shí)時(shí)觀察到得現(xiàn)象驗(yàn)證設(shè)計(jì)
34、的正確性及準(zhǔn)確性并及時(shí)改變程序代碼、原理圖連接以及元件屬性等。它還能配合系統(tǒng)配置的虛擬儀器來顯示和輸出,如示波器、邏輯分析儀等10 孫號.Proteus軟件在設(shè)計(jì)電子電路中的應(yīng)用J .儀表技術(shù),2009,8:7475,效果很好。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)用等帶來極大的便利。軟件使用的主界面如圖3.3.1。圖3.3.1 Proteus使用界面3.3.2
35、 本設(shè)計(jì)基于Proteus的仿真 首先啟動(dòng)Proteus軟件并建立一工程,然后根據(jù)原理圖調(diào)出相應(yīng)的原件,再根據(jù)要求改變各原件的屬性并把各個(gè)原件按原理圖連接起來。在原理圖繪制連接好后再把編譯好的程序加載到其中11 樓俊軍.基于Proteus和Keil的單片機(jī)演奏樂曲的實(shí)現(xiàn)J.科技信息,2010,23:第50頁。最后根據(jù)系統(tǒng)要實(shí)現(xiàn)的功能分步進(jìn)行仿真12 王文海,周歡喜.用Proteus實(shí)現(xiàn)51單片機(jī)的動(dòng)態(tài)仿真調(diào)試J .IT技術(shù),2006,20:1011。把溫度傳感器DS18B20溫度設(shè)置為26.4攝氏度,用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開始按鈕,系統(tǒng)開始仿真,待一段時(shí)間穩(wěn)定后,觀察到
36、此時(shí)風(fēng)扇直流電機(jī)的轉(zhuǎn)速為+14.2r/s,如圖3.3.2所示。圖3.3.2 Proteus仿真效果圖一當(dāng)把溫度傳感器DS18B20溫度設(shè)置為28.4攝氏度,用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)的溫度為22攝氏度。點(diǎn)擊開始按鈕,系統(tǒng)開始仿真,待一段時(shí)間穩(wěn)定后,觀察到此時(shí)直流風(fēng)扇電機(jī)的轉(zhuǎn)速為+23.3 r/s,如圖3.3.3所示。圖3.3.3 Proteus仿真效果圖二 當(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所示。圖3.3.4 Proteus仿真
37、效果圖三在上一步仿真的基礎(chǔ)上(溫度傳感器DS18B20溫度設(shè)置為33.4攝氏度,系統(tǒng)預(yù)設(shè)的溫度為22攝氏度),用鍵盤S2調(diào)節(jié)系統(tǒng)預(yù)設(shè)溫度至34攝氏度,此時(shí)可知系統(tǒng)預(yù)設(shè)溫度大于溫度傳感器檢測到的溫度,觀察到直流風(fēng)扇電機(jī)的轉(zhuǎn)速逐漸變慢,最后轉(zhuǎn)速變?yōu)?,符合系統(tǒng)要實(shí)現(xiàn)的功能,如圖3.3.5所示。圖3.3.5 Proteus仿真效果圖四 通過以上仿真可以看出,直流風(fēng)扇電機(jī)在系統(tǒng)設(shè)定溫度一定的情況下,其轉(zhuǎn)速隨著環(huán)境溫度(溫度傳感器檢測到的溫度)的增加而增大。當(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ī)的無級調(diào)速,本系統(tǒng)實(shí)現(xiàn)的是電機(jī)在隨環(huán)境溫度變
38、化的四個(gè)等級的速度變化,環(huán)境溫度在一定小范圍內(nèi)變化風(fēng)扇電機(jī)轉(zhuǎn)速是不變的,只有超過了設(shè)定的某一界限時(shí)轉(zhuǎn)速才會(huì)變化。第四章 系統(tǒng)調(diào)試4.1 軟件調(diào)試4.1.1 按鍵顯示部分的調(diào)試起初根據(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í),顯示并不變化。經(jīng)過查找分析,發(fā)現(xiàn)鍵盤掃描程序沒有沒有按鍵消抖部分,按鍵在按下與松手時(shí),都會(huì)有一定程度的抖動(dòng),從而可能使單片機(jī)做出錯(cuò)誤的判斷,導(dǎo)致按鍵條件預(yù)設(shè)溫度時(shí)失靈,甚至根
39、本不能工作。因此必須在按鍵掃描程序中加入消抖部分,即在按鍵按下與松手時(shí)加入延時(shí)判斷,以檢測鍵盤是否真的按下或已完全松手。數(shù)碼管不能正確的顯示,主要是因?yàn)樗詳?shù)碼管的段碼都由P0口傳送,而數(shù)碼管顯示又采用了動(dòng)態(tài)掃描的方式,但在程序中卻沒有設(shè)置顯示段碼的暫存器,導(dǎo)致當(dāng)P0口傳送段碼時(shí)發(fā)生混亂,不能正確識(shí)別段碼。應(yīng)在系統(tǒng)中加入鎖存器,或是在程序中設(shè)定存儲(chǔ)段碼的空間。在鍵盤加入了消抖程序,數(shù)碼管顯示程序中加入了段碼的存儲(chǔ)空間后,數(shù)碼管能夠正常的顯示,按鍵也能夠工作,達(dá)到了較好的效果。4.1.2 傳感器DS18B20溫度采集部分調(diào)試 由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,為軟件的設(shè)計(jì)和調(diào)試
40、帶來了極大的簡便,小體積、低功耗、高精度為控制電機(jī)的精度和穩(wěn)定提供了可能。軟件設(shè)計(jì)采用P3.1口為數(shù)字溫度輸入口,但是需要對輸入的數(shù)字信號進(jìn)行處理后才能顯示,從而多了溫度轉(zhuǎn)換程序。通過軟件設(shè)計(jì),實(shí)現(xiàn)了對環(huán)境溫度的連續(xù)檢測,由于硬件LED個(gè)數(shù)的限制,只顯示了預(yù)設(shè)溫度的整數(shù)部分。在溫度轉(zhuǎn)換程序中,為了能夠正確的檢測并顯示溫度的小數(shù)位,程序中把檢測的溫度與10相乘后,再按一個(gè)三位的整數(shù)來處理。如把24.5變?yōu)?45來處理,這樣為程序的編寫帶來了方便。4.1.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試在本設(shè)計(jì)中,采用了達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(qū)動(dòng)直流電機(jī),其可驅(qū)動(dòng)八個(gè)直流電機(jī),本系統(tǒng)僅驅(qū)動(dòng)一個(gè)。軟件設(shè)置了P3.
41、1口輸出不同的PWM波形,通過達(dá)林頓反向驅(qū)動(dòng)器ULN2803驅(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)速越高,即占空比增加。在本系統(tǒng)中風(fēng)扇電機(jī)的轉(zhuǎn)速可實(shí)現(xiàn)四級調(diào)速。通過溫度傳感器檢測的溫度與系統(tǒng)預(yù)設(shè)溫度值的比較,實(shí)現(xiàn)轉(zhuǎn)速變換。當(dāng)檢測到的溫度比預(yù)設(shè)的溫度每增加5攝氏度時(shí),風(fēng)扇電機(jī)轉(zhuǎn)速增加一級。4.2 硬件調(diào)試4.2.1 按鍵顯示部分的調(diào)試 系統(tǒng)按鍵
42、部分實(shí)現(xiàn)了以下功能:按下P1.3口鍵,LED的后兩位顯示溫度值增一;按下P1.4口鍵,LED的后兩位顯示溫度值減一。調(diào)試過程中出現(xiàn)了當(dāng)按鍵時(shí)間過長時(shí),設(shè)置的溫度值不是增一或者減一,而是增加后減少幾個(gè)值,出現(xiàn)這種情況的主要元嬰可能是按鍵的去抖動(dòng)延時(shí)時(shí)間過長造成,改進(jìn)方法為將對應(yīng)的按鍵去抖動(dòng)延時(shí)時(shí)間適量增加,但也不應(yīng)過長,否則將出現(xiàn)按鍵無效的情形。系統(tǒng)顯示部分實(shí)現(xiàn)了以下功能:LED顯示的前三位實(shí)現(xiàn)了環(huán)境溫度整數(shù)部分與小數(shù)部分的連續(xù)顯示,LED的后兩位能根據(jù)按鍵的調(diào)整顯示所需要的設(shè)計(jì)溫度。且LED的顯示效果很好,很穩(wěn)定。4.2.2 傳感器DS18B20溫度采集部分調(diào)試將DS18B20芯片接在系統(tǒng)板對
43、應(yīng)的P3.1口,通過插針在對應(yīng)系統(tǒng)板的右下側(cè)三口即為對應(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)試過程中因注意其各個(gè)引腳的對應(yīng)位置,以免將其接反而是芯片不能工作甚至燒毀芯片。4.2.3 電動(dòng)機(jī)調(diào)速電路部分調(diào)試系統(tǒng)本部分的設(shè)計(jì)中重在軟件設(shè)計(jì),因?yàn)橥鈬尿?qū)動(dòng)電路只是將送來的PWM信號放大從而驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。系統(tǒng)軟件設(shè)置在P3.1口輸出使電機(jī)轉(zhuǎn)動(dòng)的PWM占空比,當(dāng)環(huán)境溫度高于設(shè)置溫度
44、時(shí),電機(jī)開始轉(zhuǎn)動(dòng),若此時(shí)用高于環(huán)境溫度的熱源靠近測溫芯片DS18B20時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速在升高,并越來越快,當(dāng)達(dá)到一定值時(shí),發(fā)現(xiàn)電機(jī)的轉(zhuǎn)速不再升高;將熱源離開測溫芯片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)試,且得到了可觀的控制效果。4.3 系統(tǒng)功能4.3.1 系統(tǒng)實(shí)現(xiàn)的功能本系統(tǒng)能夠?qū)崿F(xiàn)單片機(jī)系統(tǒng)檢測環(huán)境溫度的變化,然后根據(jù)環(huán)境溫度變化來控制風(fēng)扇直流電機(jī)輸入占空比的變化,從而產(chǎn)生不同
45、的轉(zhuǎn)動(dòng)速度,亦可根據(jù)鍵盤調(diào)節(jié)不同的設(shè)置溫度,再由環(huán)境溫度與設(shè)置溫度的差值來控制電機(jī)。當(dāng)環(huán)境溫度低于設(shè)置溫度時(shí),電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)環(huán)境溫度高于設(shè)置溫度時(shí),單片機(jī)對應(yīng)輸出口輸出不同占空比的PWM信號,控制電機(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è)置溫度。4.3.2 系統(tǒng)功能分析 系統(tǒng)總體上由五部分來組成,既按鍵與復(fù)位電路、數(shù)碼管顯示電路、溫度檢測電路、電機(jī)驅(qū)動(dòng)電路。首先考濾的是溫度檢測電路,該部分是整個(gè)系統(tǒng)的首要部分,首先要檢測到環(huán)境溫度,才能用單片機(jī)來判斷溫度的高低,然后通過單片機(jī)控制直流風(fēng)扇電機(jī)的轉(zhuǎn)速;其
46、次是電機(jī)驅(qū)動(dòng)電路,該部分需要使用外圍電路將單片機(jī)輸出的PWM信號轉(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)對環(huán)境溫度和設(shè)置溫度的顯示,其中DS18B20采集環(huán)境溫度,按鍵實(shí)現(xiàn)不同設(shè)置溫度的調(diào)整,實(shí)現(xiàn)了對環(huán)境溫度和設(shè)置溫度的及時(shí)連續(xù)顯示。結(jié) 論 本次設(shè)計(jì)的系統(tǒng)以單片機(jī)為控制核心,以溫度傳感器DS18B20檢測環(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è)置溫度,并
47、能通過兩個(gè)獨(dú)立按鍵調(diào)節(jié)不同的設(shè)置溫度,從而改變環(huán)境溫度與設(shè)置溫度的差值,進(jìn)而改變電機(jī)轉(zhuǎn)速。實(shí)現(xiàn)了基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)。本系統(tǒng)設(shè)計(jì)可推廣到各種電動(dòng)機(jī)的控制系統(tǒng)中,實(shí)現(xiàn)電動(dòng)機(jī)的轉(zhuǎn)速調(diào)節(jié)。在生產(chǎn)生活中,本系統(tǒng)可用于簡單的日常風(fēng)扇的智能控制,為生活帶來便利;在工業(yè)生產(chǎn)中,可以改變不同的輸入信號,實(shí)現(xiàn)對不同信號輸入控制電機(jī)的轉(zhuǎn)速,進(jìn)而實(shí)現(xiàn)生產(chǎn)自動(dòng)化,如在電力系統(tǒng)中可以根據(jù)不同的負(fù)荷達(dá)到不同的電壓信號,再由電壓信號調(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)和生活中具有重要地位。參考文獻(xiàn)1 李學(xué)龍.使用單片機(jī)控制的智能遙控電風(fēng)扇控制器J.電子
48、電路制作,2003,9:1315.2 藍(lán)厚榮.單片機(jī)的PWM控制技術(shù)J.工業(yè)控制計(jì)算機(jī).2010,23(3):97983 郭天祥.新概念51單片機(jī)C語言教程M.北京:電子工業(yè)出版社.2009.3423444 胡漢才.單片機(jī)原理及其接口技術(shù)M(第2版).北京:清華大學(xué)出版社.2004.4977.5 胡全. 51單片機(jī)的數(shù)碼管動(dòng)態(tài)顯示技術(shù)J .信息技術(shù),2009,13:25266 李鋼,趙彥峰.1-Wire總線數(shù)字溫度傳感器DSI8B20原理及應(yīng)用J.現(xiàn)代電子技術(shù),2005,28(21):7779.7 馬云峰.單片機(jī)與數(shù)字溫度傳感器DS18B20的接口設(shè)計(jì)J.計(jì)算機(jī)測量與控制,2007,10(4)
49、:278280.8 王會(huì)明,侯加林.智能電風(fēng)扇控制器的研制J.電子與自動(dòng)化,1998,5(4):2526.9 譚浩強(qiáng).C程序設(shè)計(jì)M(第三版).北京:清華大學(xué)出版社.2005.3765.10 孫號. Proteus軟件在設(shè)計(jì)電子電路中的應(yīng)用J.儀表技術(shù),2009,8:747511 樓俊軍.基于Proteus和Keil的單片機(jī)演奏樂曲的實(shí)現(xiàn)J .科技信息,2010,23:第50頁12 王文海,周歡喜.用Proteus實(shí)現(xiàn)51單片機(jī)的動(dòng)態(tài)仿真調(diào)試J.IT技術(shù),2006,20:101113 丁建軍,陳定方,周國柱. 基于AT89C51的智能電風(fēng)扇控制系統(tǒng)J.湖北工學(xué)院學(xué)報(bào),2003,18(2):606
50、3.14 王會(huì)明,侯加林. 智能電風(fēng)扇控制器的研制J. 電子與自動(dòng)化,1998,5(4):2526.15 劉進(jìn)山. 基于MCS-51電風(fēng)扇智能調(diào)速器的設(shè)計(jì)J. 廣州:電子質(zhì)量,2004,10(10):71. 附錄1:電路總圖附圖1 電路總圖附錄2:程序代碼#include #define uchar unsigned char#define uint unsigned intsbit DQ=P17;sbit key1=P13;sbit key2=P14;sbit dianji=P31;float ff;uint y3;uchar shi,ge,xiaoshu,sheding=20,gaonum
51、,dinum;uchar code dispcode= /段碼0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; uchar code tablel= /帶小數(shù)點(diǎn)的段碼0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef;uchar dispbitcode= /位選0 xfe,0 xfd,0 xfb,0 xf7, 0 xef,0 xdf,0 xbf,0 x7f; uchar disp
52、buf8=0,0,0,0,0,0,0,0; void Delay(uint num)/ 延時(shí)函數(shù)while( -num );void digitalshow(uchar a4,uchar a3,uchar a2,uchar a1,uchar a0)dispbuf0=a0; dispbuf1=a1;dispbuf2=a2;dispbuf3=a3;dispbuf4=a4;P2=0 xff;P0=dispcodedispbuf0;P2=dispbitcode5;Delay(1); P2=0 xff;P0=dispcodedispbuf1;P2=dispbitcode4;Delay(1);P2=0 x
53、ff;P0=dispcodedispbuf2;P2=dispbitcode2;Delay(1);P2=0 xff;P0=tableldispbuf3;P2=dispbitcode1;Delay(1);P2=0 xff;P0=dispcodedispbuf4;P2=dispbitcode0;Delay(1);void dmsec(uint count) uint i;/ 1ms延時(shí)while(count-) for(i=0;i125;i+)void tmreset(void) DQ=0;Delay(90);/ 精確延時(shí) 大于 480usDQ=1;Delay(4);/ 90,4 可以小范圍變化vo
54、id tmpre(void) while(DQ);while(DQ);Delay(4); bit tmrbit(void) uint i;bit dat;DQ=0;i+; / i+;大概1usDQ=1;i+;i+; dat=DQ;Delay(8); return(dat);uchar tmrbyte(void) /讀一個(gè)比特 uchar i,j,dat;dat=0;for(i=1;i=8;i+) j=tmrbit();dat=(j1);return(dat);void tmwbyte(uchar dat) /寫一個(gè)比特 uint i;uchar j;bit testb;for(j=1;j1;/
55、 從低位開始if(testb) / Write 1DQ=0; / 先拉低 i+;i+;/ 1us DQ=1;Delay(4); else / Write 0DQ=0; Delay(4); DQ=1;i+;i+; / 再拉高 void tmstart(void) /ds1820開始轉(zhuǎn)換 dmsec(1); tmreset(); tmpre(); dmsec(1); tmwbyte(0 xcc); / skip rom tmwbyte(0 x44); / 轉(zhuǎn)換uchar tmrtemp(void) /讀取溫度 uchar a,b;tmreset();tmpre();dmsec(1);tmwbyte
56、(0 xcc); / skip romtmwbyte(0 xbe);/ 轉(zhuǎn)換a=tmrbyte(); / LSB低8位b=tmrbyte();/ MSB高8位y3=b;y3=8;y3=y3|a;ff=y3*0.0625;y3=ff*10+0.5;return(y3);void keyscan(void)if(key1=0)dmsec(5);if(key1=0)sheding+;if(sheding=100)sheding=20;while(!key1);else if(key2=0)dmsec(5);if(key2=0)sheding-;if(sheding=0)sheding=20;whil
57、e(!key2);void deal(uint tmp) /溫度處理if(tmpsheding)&(tmp(sheding+5)&(tmp(sheding+10)&(tmp=(sheding+15)gaonum=3;dinum=1;elsegaonum=4;dinum=0;void dianjik() /電機(jī)控制 uchar q,i; for(q=0;q0;i-) digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10); for(q=0;q0;i-) digitalshow(shi,ge,xiaoshu,sheding/10,sheding%10); void main(void)
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功