1 緒 論
在現(xiàn)實(shí)生活中,我們要經(jīng)常使用一些降溫設(shè)備。雖然現(xiàn)在不少城市家庭都用空調(diào)設(shè)備作為降溫工具,但在大部分農(nóng)村家庭風(fēng)扇仍然是作為夏季降溫的主要工具。春夏或者夏秋交替季節(jié),早晚溫差比較大,白天溫度很高,風(fēng)扇應(yīng)該轉(zhuǎn)動的比較快,這樣才能給人帶來涼爽。到了晚上,氣溫下降的很多,當(dāng)人們?nèi)胨螅L(fēng)扇的轉(zhuǎn)動速度應(yīng)慢慢減下來,防止感冒。雖然現(xiàn)在的風(fēng)扇有不同的檔位可以調(diào)節(jié),但都必須人工來換擋,當(dāng)人們熟睡時就無能為力了。盡管現(xiàn)在普遍采用定時的方式解決這個問題,但定時時間有限,一般最多只有兩個小時,在這兩個小時內(nèi)溫度并不一定就會下降的很多,風(fēng)扇關(guān)閉后,人們可能就會因?yàn)檠谉嵩俅涡褋黹_啟電扇,這樣會使人的睡眠質(zhì)量大大降低。從以上的分析可知,需要設(shè)計出一種很智能化的電風(fēng)扇來解決。本設(shè)計用單片機(jī)作為控制核心,用溫度傳感器采集當(dāng)前溫度,LED數(shù)碼管顯示實(shí)時溫度,并根據(jù)當(dāng)前檢測到的溫度,輸出不同占空比的PWM脈沖信號,從而風(fēng)扇實(shí)現(xiàn)了不同的轉(zhuǎn)速。
1.1 電風(fēng)扇的發(fā)展史
電風(fēng)扇簡稱電扇,香港稱為風(fēng)扇,日本及韓國稱為扇風(fēng)機(jī),從發(fā)明到現(xiàn)在已經(jīng)經(jīng)過了一百多年,是炎熱夏季的寵物。電風(fēng)扇起源于1830年,是叫詹姆斯的一個美國人發(fā)明了一種用發(fā)條來驅(qū)動的,可以固定在天花板上的電風(fēng)扇。1880年,一個叫舒樂的美國人第一次將葉片直接裝到電動機(jī)上,再接上電源,葉片便很快速旋轉(zhuǎn)起來。1882年,一個叫休伊?斯卡茨?霍伊拉的紐約人最早發(fā)明了商品化的電風(fēng)扇。
中國生產(chǎn)的第一臺風(fēng)扇起于1916年,直到1925年華生電器制造廠才正式生產(chǎn)電風(fēng)扇,并很快贏得市場好評。
一開始電風(fēng)扇不能很好的控制時間,過了一段時間,便出現(xiàn)了一種可以設(shè)置風(fēng)扇轉(zhuǎn)動時間,及可以根據(jù)設(shè)定的時間來開啟或者關(guān)閉的電風(fēng)扇,這種風(fēng)扇在當(dāng)時相當(dāng)受好評,也受到廣大人民的喜愛。電風(fēng)扇的操作方式從一原先的旋鈕,到按鍵,再到現(xiàn)在的觸摸式操作[1]。
1.2 電風(fēng)扇的工作原理
電風(fēng)扇的主要功能器件是交流電機(jī),通電后線圈在磁場中因受力而轉(zhuǎn)動,能量的轉(zhuǎn)化形式是這樣的:電能主要是轉(zhuǎn)化為機(jī)械能,同時由于電阻問題,電能還有一部分轉(zhuǎn)化成內(nèi)能。電風(fēng)扇工作時,因?yàn)橛须娏髁鬟^電風(fēng)扇的線圈,而線圈是有電阻的,所以會產(chǎn)生部分熱量向外擴(kuò)散,因此電風(fēng)扇的溫度會增高。但人們?yōu)槭裁磿杏X到?jīng)鏊兀恳驗(yàn)槿梭w的表面在夏天有大量的汗液,當(dāng)電風(fēng)扇工作后,室內(nèi)的空氣會隨著電風(fēng)扇流動,所以就能夠蒸發(fā)人體表面的汗液,由物理學(xué)原理蒸發(fā)需要吸熱,故人們會感覺到非常涼爽[2] 。
1.3 本次設(shè)計的主要任務(wù)和內(nèi)容
本設(shè)計是以AT8951單片機(jī)為主要控制核心,利用51單片機(jī)對溫度傳感器采集到的數(shù)據(jù)進(jìn)行處理,并且通過各種電子元器件對電風(fēng)扇各種工作狀態(tài)進(jìn)行實(shí)時控制,從而可以達(dá)到用戶的要求。
本次設(shè)計主要完成以下內(nèi)容:
(1) 能夠檢測當(dāng)前溫度并顯示,可根據(jù)預(yù)設(shè)溫度自動開啟關(guān)閉,當(dāng)當(dāng)前溫度大于預(yù)設(shè)溫度,自動開啟,小于預(yù)設(shè)溫度自動關(guān)閉。
(2) 預(yù)設(shè)溫度可通過按鍵增加或減少。
(3) 可隨著外界溫度的增加風(fēng)扇可自行調(diào)速,主要分為五個檔位,溫度每升高五度風(fēng)扇自動增加一檔。
(4) 具有驅(qū)蚊功能。
2 方案論證
2.1 控制核心的選擇
方案一:采用單片機(jī)作為主要控制芯片。在本設(shè)計中采用AT89C51單片機(jī),通過軟件編程的方法來實(shí)現(xiàn)對溫度的實(shí)時采集和控制,在其I/O口輸出相應(yīng)的控制信號。單片機(jī)AT89C51工作電壓相對比較低,單片內(nèi)含有4k字節(jié)的ROM和256字節(jié)的RAM,并且價格也相對較便宜。
方案二:采用電壓比較電路作為控制執(zhí)行部件。將采集到的溫度信號轉(zhuǎn)換為電信號并經(jīng)放大電路放大,集成運(yùn)算放大器組成的比較電路來判斷決定電風(fēng)扇的轉(zhuǎn)動速度。
對于方案一,用單片機(jī)作為控制器件,通過簡單的程序編寫可以將溫度傳感器DS18B20檢測的溫度通過LED數(shù)碼管顯示出來,而且可以通過按鍵掃描程序通過單片機(jī)的外部按鍵對預(yù)設(shè)的初值進(jìn)行增加或者減少,同時對于驅(qū)蚊功能采用單片機(jī)的軟件編程更易實(shí)現(xiàn),成本低,故以單片機(jī)AT89C51為控制核心,適合本次設(shè)計。對于AT89C51的具體參數(shù)參見下面“硬件設(shè)計”中的各器件介紹。
對于方案二,采用電壓比較電路作為控制的核心,雖然電路比較簡單、容易實(shí)現(xiàn),但不能對預(yù)設(shè)溫度的值進(jìn)行更改,無法滿足不同用戶的需求,故本次設(shè)計不采用。
2.2 顯示電路的選擇
方案一 :采用LCD液晶顯示器顯示。
方案二:采用數(shù)碼管做顯示器件,共陰極接法,動態(tài)方式顯示[3]。
對于方案一,液晶顯示屏顯示的字符非常優(yōu)美,這一優(yōu)點(diǎn)LED數(shù)碼管是無法做到的,但是液晶顯示屏價格太過昂貴,驅(qū)動程序編寫起來也是相當(dāng)復(fù)雜的,本次設(shè)計不采用。
對于方案二,用LED顯示,成本非常低,溫度顯示清晰可見,即使夜間也能看見,顯示程序的編寫也比較容易,因此這種顯示方式得到了廣泛的應(yīng)用。不足的地方是采用該方案可能會產(chǎn)生閃爍現(xiàn)象,因?yàn)檫@種動態(tài)掃描方式五個LED數(shù)碼管是逐個點(diǎn)亮的,但由于人眼有個視覺暫留效應(yīng),為20MS,我們只要設(shè)定合適的掃面周期就可以避免閃爍現(xiàn)象,故這一方案可行。關(guān)于LED的詳細(xì)參數(shù)參看下面“硬件設(shè)計”中的各器件介紹。
2.3 調(diào)速方式的選擇
方案一:采用變壓器調(diào)節(jié)方式,運(yùn)用變壓器原理將市電220V交流電壓通過線圈降壓到不同的值,電風(fēng)扇電機(jī)接到不同電壓值的線圈上就可以來控制直流電機(jī)的轉(zhuǎn)速。
方案二:采用單片機(jī)的PWM軟件編程方式。PWM中文意思是脈沖寬度調(diào)制,英文意思是Pulse Width Modulation的簡寫形式,它是一種按某種規(guī)律變化的脈沖方波,在PWM驅(qū)動直流電機(jī)的調(diào)節(jié)控制系統(tǒng)當(dāng)中,最常用的是矩形PWM脈沖波信號,也是編寫程序最簡單的。在對直流電機(jī)的轉(zhuǎn)速進(jìn)行控制時,需要根據(jù)當(dāng)前溫度來輸出不同占空比的PWM脈沖。PWM脈沖的占空比是指高電平的時間在一個周期時間內(nèi)的百分比,若全為低電平,占空比為零,風(fēng)扇不轉(zhuǎn);若全為高電平,占空比為100%時,轉(zhuǎn)速達(dá)到最大 [4]。用單片機(jī)輸出PWM脈沖信號時,有如下兩種方法:
(1) 利用軟件延時。可以利用單片機(jī)自帶的定時器編程實(shí)現(xiàn)不同占空比的PWM脈沖的輸出,利用中斷程序?qū)纹瑱C(jī)輸出的電平進(jìn)行高低轉(zhuǎn)換,從而實(shí)現(xiàn)風(fēng)扇的調(diào)速,本設(shè)計采用該方法。設(shè)計不同占空比的PWM脈沖的思路是:假設(shè)采用1S的周期方波,以50MS為基準(zhǔn),則20個基準(zhǔn)便就是一個1S,那么當(dāng)其中4個連續(xù)的50MS的高電平脈沖,然后16連續(xù)的50MS低電平脈沖,便得到了占空比為20%的PWM方波信號。
(2) 利用單片機(jī)自帶的PWM功能。但本次設(shè)計所用得AT89C51單片機(jī)沒有這種功能,只有STC系列的才有,故不可行。
對于方案一,該方案可以對直流風(fēng)扇進(jìn)行調(diào)速,但調(diào)節(jié)不是很方便,而且采用變壓器來改變電壓,不能適應(yīng)人性化要求。
對于方案二,采用PWM 脈沖調(diào)制的純軟件的方法來實(shí)現(xiàn)對直流電機(jī)的實(shí)時調(diào)速,具有很大的靈活性,而且可以更充分地發(fā)揮單片機(jī)的功能,綜合考慮選用方案二。
2.4 溫度傳感器的選擇
方案一:用熱電偶來作為檢測溫度的元器件,配合適當(dāng)?shù)耐鈬娐罚瑢z測到的溫度信號送入單片機(jī)AT89C51處理。
方案二:用熱敏電阻作為檢測溫度的元器件,經(jīng)過運(yùn)算放大器放大,由于溫度變化會引起熱敏電阻的電阻值發(fā)生相應(yīng)的變化、便可以得到輸出電壓變化的信號。
方案三:用高精度集成溫度傳感器DS18B20作為檢測溫度的元器件,直接輸出數(shù)字溫度信號給單片機(jī)處理[5]。
對于方案一,采用熱電偶作為檢測元器件,其檢測的溫度范圍非常寬,可檢測-50攝氏度到1600攝氏度,但是電路設(shè)計比較復(fù)雜,故本設(shè)計不采用該方案。
對于方案二,采用熱敏電阻價格相對便宜、元器件也很容易買到,但熱敏電阻對溫度的變化不是很敏感,在檢測溫度信號的時候,還有可能產(chǎn)生失真和誤差,故本設(shè)計不采用該方案。
對于方案三,由于溫度傳感器DS18B20的集成度很高,大大減少了外接電路,從而檢測誤差也會變小很多,DS18B20檢測溫度的原理與前面兩種方案的原理有著很大的不同。其檢測到的溫度值可以直接送入單片機(jī)處理,不用編寫更多的轉(zhuǎn)換程序,簡化了程序的編寫,且只用一根線便可與單片機(jī)相連,接口相當(dāng)簡單,本次設(shè)計采用該方案。關(guān)于DS18B20的詳細(xì)參數(shù)參看下面“硬件設(shè)計”中的器件介紹。
2.5 超聲波發(fā)射器的選擇
本設(shè)計的原理是根據(jù)蚊子的生理特性來的,主要靈感來源是現(xiàn)在的智能手機(jī)上帶有驅(qū)蚊的軟件。在夏天咬人的一般都是雌蚊,雄蚊幾乎是不咬人的,雌蚊在夏天大部分都是懷卵的且在懷卵期間又不喜歡與雄蚊接近,因此當(dāng)它們感覺到雄蚊發(fā)出頻率在22KHZ的超聲波信號時,就會自動離開,因此只需控制超聲波發(fā)射器發(fā)射出模擬雄蚊的超聲波就可達(dá)到驅(qū)蚊的目的。產(chǎn)生該頻率的超聲波有一下兩種方案:
方案一:可以通過軟件編寫,定時器T1產(chǎn)生頻率在22KHZ的方波信號,并通過并聯(lián)的反相器用來增大驅(qū)動能力,然后接入超聲波發(fā)射器,使超聲波發(fā)射器發(fā)出模擬雄蚊的超聲波,從而驅(qū)逐雌蚊,進(jìn)而可以避免蚊子的叮咬。
方案二:用NE555構(gòu)成多諧振蕩器產(chǎn)生可調(diào)頻率的方波,從而驅(qū)動超聲波發(fā)射器,使其發(fā)射我們需要的超聲波信號,達(dá)到驅(qū)蚊目的[6]。
對于方案一:AT89C51單片機(jī)定時器T1工作在方式1,可通過初值的設(shè)置,輸出22KHz的時鐘信號輸出,不用反復(fù)中斷,提高了系統(tǒng)的執(zhí)行效率。
超聲波發(fā)射器選擇的是TCT40-16T ,為了增大驅(qū)動能力,單片機(jī)P3.5口產(chǎn)生的方波信號經(jīng)過并聯(lián)反相器后加在超聲波發(fā)射器的兩端,這樣超聲波發(fā)射器就可以發(fā)射22KHz的超聲波,本設(shè)計采用該方案。關(guān)于TCT40-16T的詳細(xì)參數(shù)參看下面“硬件設(shè)計”中的器件介紹。
對于方案二:由于NE555產(chǎn)生的超聲波頻率調(diào)節(jié)是依靠調(diào)節(jié)滑動變阻器實(shí)現(xiàn)的,不好可視化的調(diào)節(jié)頻率,不方便用戶使用。
3 系統(tǒng)主要硬件電路設(shè)計
3.1 系統(tǒng)總體設(shè)計
本次設(shè)計的思路:本次設(shè)計主要利用AT89C51單片機(jī)為控制核心,利用溫度傳感器DS18B20采集當(dāng)前溫度送入單片機(jī)處理,單片機(jī)根據(jù)當(dāng)前溫度與預(yù)設(shè)溫度的比較決定是否開啟風(fēng)扇,并通過五段LED數(shù)碼管顯示當(dāng)前溫度和預(yù)設(shè)溫度。當(dāng)當(dāng)前溫度高于預(yù)設(shè)溫度,風(fēng)扇開啟,低預(yù)設(shè)溫度時風(fēng)扇關(guān)閉。單片機(jī)根據(jù)當(dāng)前的溫度輸出相應(yīng)占空比的PWM脈沖,并通過ULN2803增大驅(qū)動后,送入12V的直流電機(jī),從而產(chǎn)生不同轉(zhuǎn)速。
本次設(shè)計的系統(tǒng)總框圖如圖3.1所示:
3.2 電源電路設(shè)計
直流穩(wěn)壓電源作為直流能源的提供者,在電路中起到很關(guān)鍵的作用,因此對電源的要求比較高,尤其是對電源紋波系數(shù)和輸出電流能力的要求上,如果電源沒有達(dá)到設(shè)計所需電源的要求,將直接影響系統(tǒng)的正常工作。
常用的轉(zhuǎn)5V電源有線性型穩(wěn)壓芯片和開關(guān)型穩(wěn)壓芯片兩大類。線性型穩(wěn)壓芯片線性度高,紋波小,外圍電路簡單。開關(guān)型穩(wěn)壓電路功耗小,轉(zhuǎn)換率高,但紋波大,受尖峰脈沖干擾嚴(yán)重。綜合考慮選用線性型三端穩(wěn)壓芯片LM7805。
本次設(shè)計需要兩個幅度不同的直流電壓5V和12V。其中5V電壓的產(chǎn)生是將市電~220V交流電經(jīng)過降壓器降壓,橋式整流濾波后送入穩(wěn)壓器件LM7805,輸出的電壓可能還含有紋波,在通過470uf帶極性的電容濾除低頻信號,0.1uf不帶極性的電容濾除高頻信號,進(jìn)而可以得到穩(wěn)定的5V電壓[7]。12V電壓只需將5V電壓經(jīng)過運(yùn)算放大器放大即可得到,5V和12V電壓產(chǎn)生電路如圖3.2(a)和3.2(b)所示:
圖3.2(a) 5V電壓產(chǎn)生電路
圖3.2(b) 12V電壓產(chǎn)生電路
3.3 單片機(jī)最小系統(tǒng)電路設(shè)計
3.3.1 AT89C51簡介
AT89C51是美國ATMEL公司生產(chǎn)的低電壓單片機(jī),其含有4K字節(jié)的ROM和256字節(jié)的RAM,兼容MCS-51指令。其中央處理器是8位的,且含有Flash存儲單元,功能非常強(qiáng)大。
AT89C51單片機(jī)具有以下標(biāo)準(zhǔn)的功能:一個8位CPU頻率范圍1.2-12MHZ,4K字節(jié)Flash閃存,256字節(jié)內(nèi)部數(shù)據(jù)存儲器RAM,4個8位并行I/O口,一個全雙工串行口,2個16位定時/計數(shù)器,5個中斷源的中斷控制系統(tǒng),片內(nèi)自帶振蕩器和時鐘電路。
AT89C51單片機(jī)管腳圖如3.3所示:
各管腳功能如下[8]:
VCC:40引腳接5V供電電壓。
GND:20引腳接地。
XTAL1:19引腳為單片機(jī)提供外部時鐘信號,外接石英晶體和微調(diào)電容。
XTAL2:18引腳為單片機(jī)提供外部時鐘信號,外接石英晶體和微調(diào)電容。
P0口:P0.7~P0.0,這組引腳共8條,其中P0.7為最高位,P0.0為最低位。是漏極開路的8位準(zhǔn)雙向I/O口,有兩種功能。第一:做通用I/O口,無片外內(nèi)存時,P0口可做通用I/O接口使用。第二:做地址/數(shù)據(jù)口,在訪問外部內(nèi)存時,用作地址總線的低8位和數(shù)據(jù)總線。
P1口:P1.7~P1.0,其中P1.7為最高位,P1.0為最低位,僅用作I/O口。
P2口:P2.7~P2.0,其中P2.7為最高位,P2.0為最低位。P2口是帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O接口,具有兩種功能。第一:做通用I/O口,無片外內(nèi)存時,P2口可用作通用I/O口。第二:做地址口,在訪問外部內(nèi)存時,用作地址總線的高8位。
P3 口:P3.7~P3.0,其中P3.7為最高位,P3.0為最低位。P3口是雙功能口。具有兩種功能。第一:用作通用I/O口。第二功能:P3.0RXD串行口輸入;P3.1TXD串行口輸出;P3.2INTO外部中斷0輸入;P3.3INT1外部中斷1輸入;P3.4T0定時計數(shù)器的脈沖輸入;P3.5T1定時計數(shù)器的脈沖輸入;P3.6WR片外RAM寫信號;P3.4RD片外RAM讀信號。
RST:9引腳復(fù)位輸入,高電平有效。
:29引腳外部程序內(nèi)存讀信號。當(dāng)訪問外部程序內(nèi)存時,此腳定時輸出脈沖作為讀片外程序內(nèi)存的選通信號,通常接EPROM的OE端。
端在每個機(jī)器周期中兩次有效,但當(dāng)訪問外部RAM時,兩次
負(fù)脈沖不出現(xiàn)。
可驅(qū)動8個LS型TTL。
ALE/:30引腳地址鎖存允許/編程線,當(dāng)訪問片外存儲器時,在P0.7~P0.0引腳線上輸出片外存儲器低8位地址的同時還在ALE/
線上輸出一個高電位脈沖,其下降沿用于把這個片外存儲器低8位地址鎖存到外部專用地址鎖存器。
/VPP:31引腳內(nèi)外部程序內(nèi)存選擇輸入端。
=1,CPU訪問片外ROM,并執(zhí)行其指令。當(dāng)PC>0FFFH時,自動轉(zhuǎn)向片外ROM。
=0,不論片內(nèi)是否含有內(nèi)存,只執(zhí)行片外ROM的指令。
3.3.2 單片機(jī)最小系統(tǒng)電路
單片機(jī)工作時需要時鐘信號,時鐘信號通常可由外部方式或者單片機(jī)的內(nèi)部方式提供。本次設(shè)計采用內(nèi)部時鐘方式,利用單片機(jī)內(nèi)部自帶的反相放大器,XTAL2為放大器的輸出端,XTAL1為放大器的輸入端,這兩個引腳外接石英晶體振蕩器和微電容,構(gòu)成可以自激的振蕩器。本設(shè)計在XTAL1和XTAL2外接了一個12MHZ的晶振,30pf的電容[9]。
復(fù)位是使單片機(jī)回復(fù)到初使的狀態(tài),就跟計算機(jī)的重啟差不多,并從初始狀態(tài)從新工作。單片機(jī)是高電平復(fù)位,一般有兩種方式:按鍵復(fù)位和上電復(fù)位,兩種復(fù)位方式均可。本次設(shè)計采用按鍵復(fù)位,當(dāng)按下按鍵開關(guān)S1時,系統(tǒng)復(fù)位一次,電阻R2、R3為10k。其時鐘電路與復(fù)位電路如圖3.4所示:
圖3.4最小系統(tǒng)電路
3.4 溫度采集電路設(shè)計
3.4.1 DS18B20簡介
DS18B20內(nèi)部結(jié)構(gòu)主要有四個部分:64位的只讀程序存儲器ROM、溫度傳感器、非揮發(fā)的報警觸發(fā)器TH和TL、配置寄存器。總共有三個管腳,包含DQ,GND,VDD。其中DQ為數(shù)字信號端,GND為電源地,VDD為電源輸入端。
DS18B20的主要性能特點(diǎn)如下:
(1) 僅可用一個端口便可以通信;
(2) 無須外部器件;
(3) DS18B20支持多點(diǎn)組網(wǎng)功能;
(4) 適應(yīng)電壓范圍廣,電壓范圍為3.0~5.5V;
(5) 待機(jī)功耗為零;
(6) 溫度以9位或12位數(shù)字;
(7) 具有報警命令識別功能;
(8) 具有負(fù)電壓特性,電源接反時,芯片不會燒壞;
DS18B20的管腳圖及部分溫度值與DS18B20輸出的數(shù)字量對照表見圖
3.5和表3-1所示:
溫度值/℃ 數(shù)字輸出(二進(jìn)制) 數(shù)字輸出(十六進(jìn)制) |
+125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H -0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0110 1110 FF5EH -25.625 1111 1111 0110 1111 FF6FH -55 1111 1100 1001 0000 FC90H |
3.4.3 溫度采集電路
DS18B20數(shù)字溫度傳感器檢測現(xiàn)場溫度,將檢測到的溫度值送入AT89C51單片機(jī)的P1.0口,經(jīng)過單片機(jī)處理后顯示此時溫度值,并與設(shè)定溫度值做比較,輸出相應(yīng)占空比的PWM脈沖信號。電路如圖3.6所示:
3.5 溫度顯示電路設(shè)計
3.5.1 LED數(shù)碼管簡介
本設(shè)計選用五個LED數(shù)碼管來進(jìn)行溫度顯示。LED又稱為數(shù)碼管,主要是由8個發(fā)光二極管構(gòu)的。LED數(shù)碼管按結(jié)構(gòu)可以分為共陰極和共陽極兩種結(jié)構(gòu),如圖3.7所示:共陰極把8個發(fā)光二極管陰極連接在一起,共陽極把8個發(fā)光二極管陽極連接在一起。通過編程的方式使單片機(jī)的引腳輸出不同的高低電平,便可以得到相應(yīng)的數(shù)字,這種數(shù)碼管的顯示方式就被稱做段選碼[10]。
圖3.7 七段LED數(shù)碼管
表3-2 七段LED數(shù)碼管的段選碼
顯示字符 | 共陰極段碼 | 共陽極段碼 | 顯示字符 | 共陰極段碼 | 共陽極段碼 |
0 | 3fH | C0H | 8 | 7fH | 80H |
1 | 06H | F9H | 9 | 6fH | 90H |
2 | 5bH | A4H | A | 77H | 88H |
3 | 4fH | B0H | B | 7fH | 83H |
4 | 66H | 99H | C | 39H | C6H |
5 | 6dH | 92H | D | 3fH | A1H |
6 | 7dH | 82H | E | 79H | 86H |
7 | 07H | F8H | F | 71H | 8EH |
假如一個數(shù)碼管采用共陰極接法接入單片機(jī)中,想要顯示數(shù)字“5”須使a、c﹑d﹑f﹑g這5個二極管同時發(fā)光 (即這5個二極管接入高電平),而其他二極管不發(fā)光。只要P0口輸入01101101(6dH)即可。字形與段選碼的對照見表3-2。
3.5.2 溫度顯示電路
本次設(shè)計主要顯示當(dāng)前溫度值和預(yù)設(shè)溫度值,其中前三個LED數(shù)碼管顯示當(dāng)前溫度值,可顯示0到99.9不同的溫度,后兩個LED數(shù)碼管顯示之前預(yù)設(shè)定的溫度值。數(shù)碼管顯示采用共陰極接法,其中a,b,c,d,e,f,g,dp分別與P0.0到P0.7相連,作為段選信號,又因?yàn)镻0口輸出的是低電平,所以在P0口接了10K的上拉電阻,P2.0到P2.5分別接到1,2,3,4,5,6引腳作為位選信號。顯示電路如圖3.8所示:
3.6 驅(qū)蚊電路設(shè)計
3.6.1 TCT40-16T超聲波發(fā)射器簡介
TCT40-16T是一種較小的超聲波發(fā)射器,它能發(fā)射出不同頻率的超聲波,適用于家用電器及其他電子設(shè)備的超聲波遙控裝置。其器件外觀如圖3.9所示:
圖3.9 超聲波發(fā)射器TCT40-16T
3.6.2 驅(qū)蚊電路
P3.5是單片機(jī)定時器T1的時鐘輸出端口,我們可以利用定時器T1輸出頻率為22KHZ的方波信號,并通過并聯(lián)反相器增大驅(qū)動后送入超聲波發(fā)射器TCT40-16T來模擬雄蚊發(fā)出的超聲波,進(jìn)而達(dá)到驅(qū)蚊目的[11]。驅(qū)蚊電路如圖3.10所示:
3.7 驅(qū)動與調(diào)速電路設(shè)計
3.7.1 達(dá)林頓反相器ULN2803簡介
因?yàn)橹绷麟姍C(jī)工作時需要較大的電流,而單片機(jī)I/O口輸出的電流都在幾十毫安級別,無法滿足直流電機(jī)的工作電流,所以必須要外加驅(qū)動電路。在本設(shè)計驅(qū)動電路中,選用達(dá)林頓反向驅(qū)動器ULN2803來驅(qū)動直流風(fēng)扇電機(jī)。ULN2803在使用時接口非常簡單,并且操作很容易,可為電機(jī)提供幾百毫安的驅(qū)動電流,它實(shí)際上是一個集成芯片,單塊芯片可同時驅(qū)動8個直流電機(jī)。
ULN2803實(shí)際上是16個NPN晶體管組成,總共含有18個引腳。 ULN2803的管腳圖如下圖3.11所示:
各引腳簡介如下:
1-8引腳:8個輸入端口;
9引腳:接地端;
10引腳:為COM端,一般懸空或接電源,但與負(fù)載的電源共同接在一起,驅(qū)動效果更好,本次設(shè)計接12電源。ULN2803可以輸出最大電流可達(dá)500毫安,最大電壓可達(dá)50V。本系統(tǒng)選用的電機(jī)為12V直流無刷電機(jī),所需電流為300毫安左右,因此可用ULN2803來驅(qū)動。
11-18引腳:8個輸出端口;
3.7.2 驅(qū)動與調(diào)速電路
本次設(shè)計利用PWM脈沖寬度調(diào)制技術(shù)對直流電機(jī)進(jìn)行實(shí)時調(diào)速,風(fēng)扇分為五檔,預(yù)設(shè)溫度t0為25度,溫度每增高5度,風(fēng)扇增加一檔。當(dāng)當(dāng)前溫度低于預(yù)設(shè)溫度時,輸出占空比為0的PWM脈沖,風(fēng)扇不轉(zhuǎn)。當(dāng)當(dāng)前溫度大于預(yù)設(shè)溫度時,風(fēng)扇轉(zhuǎn)動,并且可以根據(jù)當(dāng)前溫度輸出相應(yīng)占空比的PWM脈沖,進(jìn)而實(shí)現(xiàn)了對風(fēng)扇的自動調(diào)速。
驅(qū)動與調(diào)速電路如下圖3.12所示:直流風(fēng)扇電機(jī)與ULN2803的COM端供接12V電源,直流電機(jī)另一端接ULN2803的4C,單片機(jī)的P3.4口接4B,通過單片機(jī)的P3.4口輸出不同占空比的PWM脈沖信號,便可以對直流電機(jī)進(jìn)行調(diào)速,系統(tǒng)選用的電機(jī)為12V直流無刷電機(jī)。
3.8 獨(dú)立按鍵電路設(shè)計
本次設(shè)計需要兩個獨(dú)立按鍵S2和S3,主要是用來對預(yù)設(shè)溫度初值進(jìn)行調(diào)整。當(dāng)S2每按下一次,預(yù)設(shè)初值自動加一,S3每按下一次預(yù)設(shè)溫度初值自動減一。加減采用中斷方式實(shí)現(xiàn),將S2與P3.2相連,S3與P3.3相連。當(dāng)有鍵按下立刻執(zhí)行中斷程序,低電平有效。獨(dú)立按鍵電路如下圖3.13所示:
4 軟件設(shè)計
4.1 系統(tǒng)總體軟件設(shè)計流程圖
初始化程序后,傳感器采集溫度送入單片機(jī),通過LED顯示。當(dāng)有鍵按下時處理按鍵,無鍵按下,根據(jù)溫度得到不同的轉(zhuǎn)速,如圖4.1所示:
圖4.1 軟件總體設(shè)計流程圖
4.2 用Keil C51進(jìn)行程序編寫
Keil C51 軟件目的主要在于解決嵌入式軟件開發(fā)商面臨的問題,當(dāng)有新項(xiàng)目的時候,只需要從設(shè)備數(shù)據(jù)庫選擇使用的設(shè)備,uVision IDE 將設(shè)置好所有的編譯器,鏈接器和存儲器選項(xiàng)[12]。Keil C51是美國Keil Software公司開發(fā)的51系列并且兼容單片機(jī)C語言的嵌入式開發(fā)軟件,與單片機(jī)匯編語言相比,C語言的靈活性更強(qiáng)一點(diǎn),程序編寫相比于匯編也更簡單,很容易學(xué)習(xí)和使用,且編寫的函數(shù)模塊可移植性強(qiáng)[13]。一般創(chuàng)建一個Keil C51應(yīng)用程序需要按照下面的步驟:
(1) 創(chuàng)建一個工程項(xiàng)目文件;
(2) 為工程項(xiàng)目選擇目標(biāo)器件;
(3) 為工程項(xiàng)目設(shè)置軟硬件調(diào)試環(huán)境;
(4) 創(chuàng)建源程序項(xiàng)目文件;
(5) 保存創(chuàng)建的源程序項(xiàng)目文件;
(6) 把源程序文件添加到項(xiàng)目中;
Keil C51使用界面如圖4.2:
5 系統(tǒng)調(diào)試與仿真
5.1 系統(tǒng)軟件調(diào)試
源程序通過編譯,只能說明源程序的語法沒有問題,但不能保證程序的邏輯功能和需要的邏輯功能一致,所以還必須對程序進(jìn)行調(diào)試。程序調(diào)試時可以采用單步執(zhí)行或者連續(xù)執(zhí)行,連續(xù)執(zhí)行速度快,但當(dāng)出錯時不易查出錯誤的地方。單步執(zhí)行簡單方便,可以檢查每條指令的正確性,但比較繁瑣,消耗大量時間。因此可先連續(xù)調(diào)試,對有問題的地方在單步調(diào)試[14]。
5.2 程序下載
程序調(diào)試好以后,就可以下載了,將經(jīng)過編譯后生成的.HEX文件下載到單片機(jī)上,下載在單片機(jī)上的程序?qū)⒃诔绦虼鎯ζ鲀Υ嫫饋恚词沟綦姾笕匀槐4妫粫虼硕鴣G失。本次設(shè)計的總程序清單見附錄2。
5.3 系統(tǒng)仿真
本次設(shè)計采用protues軟件進(jìn)行仿真,Proteus軟件是英國Labcenter electronics 公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。Proteus是世界上著名的EDA工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計[15]。Proteus ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,其中包含標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇窗口、圖形編輯窗口。
(1) 本次設(shè)計的預(yù)設(shè)溫度值為25度,當(dāng)當(dāng)前溫度大于設(shè)定溫度時直流電機(jī)開始轉(zhuǎn)動。當(dāng)當(dāng)前溫度為26度時直流電機(jī)轉(zhuǎn)動情況如圖5.1所示:
(2) 當(dāng)當(dāng)前溫度值升高至31度時,其電機(jī)轉(zhuǎn)速如圖5.2所示:顯然轉(zhuǎn)速較溫度為26的時候有了明顯的增加,表明單片機(jī)對電機(jī)的轉(zhuǎn)速控制功能能夠正常實(shí)現(xiàn)。
(3) 當(dāng)我們通過獨(dú)立按鍵S2將預(yù)設(shè)溫度增加到29大于當(dāng)前溫度26時,輸出占空比為零的脈沖,直流電機(jī)將停止轉(zhuǎn)動,如圖5.3所示:
6 結(jié) 論
本次設(shè)計以單片機(jī)AT89C51為主控芯片,硬件主要包含電源電路、單片機(jī)最小系統(tǒng)電路、溫度采集電路、溫度顯示電路、獨(dú)立按鍵電路、驅(qū)蚊電路、驅(qū)動與調(diào)速電路。用DS18B20溫度傳感器采集當(dāng)前溫度送入單片機(jī)處理,LED數(shù)碼管能正常顯示當(dāng)前溫度和設(shè)定溫度,并能根據(jù)當(dāng)前溫度和設(shè)定溫度的差值調(diào)節(jié)風(fēng)扇轉(zhuǎn)速,在一定范圍內(nèi)實(shí)現(xiàn)了對風(fēng)扇的實(shí)時調(diào)速。獨(dú)立按鍵部分也能正常使用,可以調(diào)節(jié)預(yù)設(shè)溫度t0的值。同時超聲波發(fā)射器也能正常工作,達(dá)到了驅(qū)蚊目的。
本次設(shè)計對于現(xiàn)實(shí)生活具有積極的作用,可以用來作為降溫工具,環(huán)保且智能,能夠給人帶來很多方便,同時驅(qū)蚊的功能在夏季還是很有必要。
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |