版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 智能風扇設計報告</b></p><p><b> 學院:信息工程學院</b></p><p> 專業(yè):自 動 化</p><p><b> 班級: </b></p><p><b> 姓名: </b></p
2、><p> 日期:2012年6月14日</p><p> 基于單片機的智能電風扇控制系統(tǒng)</p><p><b> 引 言 </b></p><p> 電風扇曾一度被認為是空調產(chǎn)品沖擊下的淘汰品,其實并非如此,市場人士稱,家用電風扇并沒有隨著空調的普及而淡出市場,近兩年反而出現(xiàn)了市場銷售復蘇的態(tài)勢。其主要原因:一是
3、風扇和空調的降溫效果不同——空調有強大的制冷功能,可以快速有效地降低環(huán)境溫度,但電風扇的風更溫和,更加適合老人兒童和體質較弱的人使用;二是電風扇有價格優(yōu)勢,價格低廉而且相對省電,安裝和使用都非常簡單。</p><p> 盡管電風扇有其市場優(yōu)勢,但傳統(tǒng)電風扇還是有許多地方應當進行改良的,最突出的缺點是它不能根據(jù)溫度的變化適時調節(jié)風力大小,對于夜間溫差大的地區(qū),人們在夏夜使用電風扇時可能遇到這樣的問題:當凌晨降溫的
4、時候電風扇依然在工作,可是人們因為熟睡而無法察覺,既浪費電資源又容易引起感冒,傳統(tǒng)的機械定時器雖然能夠控制電風扇在工作一定后關閉,但定時范圍有限,且無法對溫度變化靈活處理。鑒于以上方面的考慮,我們需要設計一種智能電風扇控制系統(tǒng)來解決這些問題。</p><p> 1.1 智能電風扇控制系統(tǒng)概述 </p><p> 傳統(tǒng)電風扇是220V交流電供電,電機轉速分為幾個檔位,通過人為調整電機轉
5、速達到改變風力大小的目的,亦即,每次風力改變,必然有人參與操作,這樣勢必帶來諸多不便。</p><p> 本設計中的智能電風扇控制系統(tǒng),是指將電風扇的電機轉速作為被控制量,由單片機分析采集到的數(shù)字溫度信號,再通過可控硅對風扇電機進行調速。從而達到無須人為控制便可自動調整風力大小的效果。</p><p><b> 設計任務和主要內容</b></p>&
6、lt;p> 本設計以MCS51單片機為核心,通過溫度傳感器對環(huán)境溫度進行數(shù)據(jù)采集,從而建立一個控制系統(tǒng),使電風扇隨溫度的變化而自動變換檔位,實現(xiàn)“溫度高,風力大,溫度低,風力弱”的性能。另外,通過鍵盤控制面板,用戶可以在一定范圍內設置電風扇的最低工作溫度,當溫度低于所設置溫度時,電風扇將自動關閉,當高于此溫度時電風扇又將重新啟動。</p><p> 本設計主要內容如下:</p><p
7、> 風速設為從高到低6個檔位,可由用戶通過鍵盤手動設定。</p><p> ?、?當溫度每降低3℃則電風扇風速自動下降一個檔位。</p><p> ?、?當溫度每升高3℃則電風扇風速自動上升一個檔位。</p><p> 10℃最低工作溫度,當?shù)陀谠摐囟葧r,電風扇自動停轉。</p><p><b> 自動與手動的切換<
8、;/b></p><p> 系統(tǒng)主要硬件電路設計 </p><p><b> 總體硬件設計</b></p><p> 系統(tǒng)總體設計框圖如圖2-1所示</p><p> 圖2-1 系統(tǒng)原理框圖</p><p> 對于單片機中央處理系統(tǒng)的方案設計,根據(jù)要求,我們可以選用具有4KB片內E
9、2PROM的AT89C51單片機作為中央處理器。作為整個控制系統(tǒng)的核心,AT89C51內部已包含了定時器、程序存儲器、數(shù)據(jù)存儲器等硬件,其硬件能符合整個控制系統(tǒng)的要求,不需要外接其他存儲器芯片和定時器件,方便地構成一個最小系統(tǒng)。整個系統(tǒng)結構緊湊,抗干擾能力強,性價比高。是比較合適的方案</p><p><b> 溫度傳感器模塊設計</b></p><p> 溫度傳
10、感器可以選用LM324A的運算放大器,將其設計成比例控制調節(jié)器,輸出電壓與熱敏電阻的阻值成正比,但這種方案需要多次檢測后方可使采樣精確,過于煩瑣。所以我采用更為優(yōu)秀的DS18B20數(shù)字溫度傳感器,它可以直接將模擬溫度信號轉化為數(shù)字信號,降低了電路的復雜程度,提高了電路的運行質量。</p><p> 2.2.1 溫度傳感器模塊組成</p><p> 本模塊以DS18B20作為溫度傳感器,
11、AT89C51作為處理器,配以溫度顯示作為溫度控制輸出單元。整個系統(tǒng)力求結構簡單,功能完善。電路圖如圖2-2所示。</p><p><b> 系統(tǒng)工作原理如下:</b></p><p> DS18B20進行現(xiàn)場溫度測量,將測量數(shù)據(jù)送入AT89C51的P3.7口,經(jīng)過單片機處理后顯示溫度值,并與設定溫度值的上下限值比較,若高于設定上限值或低于設定下限值則控制電機轉速
12、進行調整。</p><p><b> 電路圖見附錄。</b></p><p> 電機調速與控制模塊設計</p><p> 電機調速是整個控制系統(tǒng)中的一個重要的方面。通過4905,使輸出端電壓發(fā)生改變,從而使施加在電風扇的輸入電壓發(fā)生改變,以調節(jié)風扇的轉速,實現(xiàn)各檔位風速的無級調速。</p><p> 2.3.1
13、電機調速原理</p><p> 可控硅的導通條件如下:</p><p> 1)陽-陰極間加正向電壓;</p><p> 2)控制極-陰極間加正向觸發(fā)電壓;</p><p> 3)陽極電流IA 大于可控硅的最小維持電流IH。</p><p> 電風扇的風速設為從高到低6、5、4、3、2、1檔,各檔風速都有一個限
14、定值。在額定電壓、額定功率下,以最高轉速運轉時, </p><p> 2.3.2 電機控制模塊硬件設計</p><p><b> 電路圖見附錄。</b></p><p> 溫度顯示與控制模塊設計</p><p> 溫度的顯示通過LED燈來顯示其變化,在表盤上,共有8個LED指示燈。分別為自動或手動,1級風蘇、2級
15、風速等。LED會隨著溫度以及操作的不同會進行相應的顯示。</p><p> 鍵盤控制系統(tǒng)模塊設計</p><p> 矩陣鍵盤是3*3的,接在P2口進行相應的控制,主要的操作是進行手動自動切換、風速手動調節(jié)等,同時,在相應的鍵盤操作下,在LED顯示部分,進行相應的操作顯示。這樣做的目地可以簡化操作,并且很簡單的便可以達到控制目的。</p><p><b>
16、; 電路圖見附錄。</b></p><p> 穩(wěn)壓電路 模塊的設計</p><p> 為了保證單片機在正常電壓下正常工作,我們采用7805來進行5V的穩(wěn)壓工作。電路原理圖如下:</p><p><b> 電路圖見附錄。</b></p><p> 第三節(jié) 系統(tǒng)軟件設計</p><p
17、> 在程序設計上,我們主要設計了四個模塊,主程序模塊、溫度掃描模塊、電機控制模塊和鍵盤掃描模塊。</p><p> 主程序主要涉及到對溫度采集及鍵盤采集回來的數(shù)據(jù)進行綜合性的處理。溫度掃描模塊,則結合溫度傳感器的原理,寫出了采集溫度用的函數(shù)。電機控制,通過延時實現(xiàn)了模擬的PWM波,對速度進行了分檔。鍵盤掃描,則采用定時中斷的方法,隔100ms時間進行一次掃描。具體思想見附錄1.</p>&
18、lt;p><b> 結 束 語</b></p><p> 首先,通過這次應用系統(tǒng)設計,在很大程度上提高了自己的獨立思考能力和單片機的專業(yè)知識,也深刻了解寫一篇應用系統(tǒng)的步驟和格式,有過這樣的一次訓練,相信在接下來的日子我們都會了,而且會做得更好。</p><p> 我所寫的系統(tǒng)主要根據(jù)目前節(jié)智能化電風扇技術的發(fā)展趨勢和國內實際的應用特點和要求,采用了自動化
19、的結構形式,實現(xiàn)對電風扇轉速的自動控制。</p><p> 系統(tǒng)以單片機AT89C51為核心部件,單片機系統(tǒng)完成對環(huán)境溫度信號的采集、處理、顯示等功能;用Protel軟件繪制電路原理圖和PCB電路印刷板圖,由Protues軟件進行訪真測試,利用MCS51匯編語言編制,運行程序該系統(tǒng)的主要特點是:</p><p> 1)適用性強,用戶只需對界面參數(shù)進行設置并啟動系統(tǒng)正常運行便可滿足不同用
20、戶對最適合溫度的要求,實現(xiàn)對最適溫度的實時監(jiān)控。</p><p> 2)系統(tǒng)成本低廉,操作非常簡單,隨時可以根據(jù)軟件編寫新的功能加入產(chǎn)品。操作界面可擴展性強,只要稍加改變,即可增加其他按鍵的使用功能。</p><p> 本系統(tǒng)在當今提倡人性化設計和健康產(chǎn)品的環(huán)境下具有非常好的市場前景。 </p><p> 本設計在模擬檢測中運行較好,但采樣據(jù)不太穩(wěn)定。功
21、能上的缺憾是對于兩個檔之間的臨界溫度處理不好,并且檔位太少。還有待改進。</p><p><b> 附錄1:</b></p><p><b> 主程序:</b></p><p> #include<reg52.h></p><p> #defineuchar unsigned
22、char</p><p> #define uint unsigned int</p><p> #include "wendu.h"</p><p> #include "dianji.h"</p><p> #include "jianpan.h"</p>
23、<p> //extern uint speed;</p><p> //extern unit anjian[9];</p><p><b> main()</b></p><p><b> { </b></p><p><b> uint tmp;</b&g
24、t;</p><p><b> EA=0;</b></p><p><b> P0=0xff;</b></p><p> dianji_kou=1;//dian ji chu shi wei gao</p><p> anjian_clear1();</p><p>
25、; anjian[0]=1;</p><p> anjian_dingshi_init(); </p><p> EA=1; //EA shi neng</p><p><b> while(1)</b></p><p><b> {</b></p><p&
26、gt; anjian_saomiao_1();</p><p> if(anjian[0]==1){</p><p> tmp=DS18B20_Tmp_Read();</p><p> if(tmp<=0x00a0){</p><p> P0=0x00;//<10c</p><p> spe
27、ed_0();</p><p><b> }</b></p><p> else if(tmp>0x00a0&&tmp<=0x0140){</p><p> P0=0x7f; //10--20c </p><p> speed_2();</p><p>
28、;<b> }</b></p><p> else if(tmp>0x0140&&tmp<=0x0170){</p><p> P0=0xbd;//20--23c</p><p> speed_3();</p><p><b> }</b></p>
29、<p> else if(tmp>0x0170&&tmp<=0x0190){</p><p> P0=0xdd;//23--26c </p><p> speed_4();</p><p><b> }</b></p><p> else if(tmp>0x0
30、190&&tmp<=0x01d0){</p><p> P0=0xed; //26--29c </p><p> speed_5();</p><p><b> }</b></p><p> else if(tmp>0x01d0&&tmp<=0x0200){&
31、lt;/p><p> P0=0xf5; //29--32c </p><p> speed_6();</p><p><b> }</b></p><p><b> else {</b></p><p> P0=0xf9; //>35c&l
32、t;/p><p> speed_7();</p><p><b> }</b></p><p><b> }</b></p><p> if(anjian[1]==1){</p><p><b> P0=0xfe;</b></p>&
33、lt;p> anjian_saomiao_1();</p><p> if(anjian[3]==1){</p><p> P0=0x7e;//<10c</p><p> speed_1();</p><p><b> } </b></p><p> else if(a
34、njian[4]==1){</p><p> P0=0xbe; //10--20c </p><p> speed_2();;</p><p><b> }</b></p><p> else if(anjian[5]==1){</p><p> P0=0xde;//20-
35、-25c</p><p> speed_3();</p><p><b> }</b></p><p> else if(anjian[6]==1){</p><p> P0=0xee; //25--30c </p><p> speed_4();</p><p&
36、gt;<b> }</b></p><p> else if(anjian[7]==1){</p><p> P0=0xf6; //30--35c </p><p> speed_5();</p><p><b> }</b></p><p> else if
37、(anjian[8]==1){</p><p> P0=0xfa; //>35c</p><p> speed_6();</p><p><b> } </b></p><p> else speed_0();</p><p><b> }</b
38、></p><p> else { P0=0xff; speed_0();}</p><p><b> } </b></p><p><b> } </b></p><p><b> 溫度采集程序:</b></p><p> //
39、/sbit TMDAT= P3^7;</p><p> /////////////////////////dian ji/////////////////////////////////////</p><p> sbit TMDAT= P3^7;</p><p> void Delay(int useconds)</p><p>&l
40、t;b> {</b></p><p><b> int s;</b></p><p> for (s=0;s<useconds;s++);</p><p><b> }</b></p><p> uchar Reset_Bus(void)</p>&l
41、t;p><b> {</b></p><p> uchar presence;</p><p><b> TMDAT=0;</b></p><p> Delay(29);</p><p><b> TMDAT=1;</b></p><p>
42、;<b> Delay(3);</b></p><p> presence=TMDAT;</p><p> Delay(25);</p><p> return(presence);</p><p><b> }</b></p><p> void Write_B
43、it(char bitval)</p><p><b> {</b></p><p><b> TMDAT=0;</b></p><p> if(bitval==1) TMDAT=1;</p><p><b> Delay(5);</b></p><
44、p><b> TMDAT=1;</b></p><p><b> }</b></p><p> void Write_Byte(char val)</p><p><b> {</b></p><p><b> uchar i;</b>&l
45、t;/p><p> uchar temp;</p><p> for (i=0;i<8;i++) </p><p><b> {</b></p><p> temp=val>>i;</p><p> temp&=0x01;</p><p>
46、 Write_Bit(temp);</p><p><b> }</b></p><p><b> Delay(5);</b></p><p><b> }</b></p><p> uchar Read_Bit(void) </p><p>
47、<b> {</b></p><p><b> uchar i;</b></p><p><b> TMDAT=0;</b></p><p><b> TMDAT=1;</b></p><p> for(i=0;i<3;i++);</
48、p><p> return(TMDAT);</p><p><b> }</b></p><p> uchar Read_Byte(void)</p><p><b> {</b></p><p><b> uchar i;</b></p&g
49、t;<p> uchar value=0;</p><p> for (i=0;i<8;i++)</p><p><b> {</b></p><p> if(Read_Bit()) value|=0x01<<i;</p><p><b> Delay(6);&
50、lt;/b></p><p><b> }</b></p><p> return(value);</p><p><b> }</b></p><p> uint DS18B20_Tmp_Read(void)</p><p><b> {</
51、b></p><p> uint TEMP;</p><p> uchar TEMP_LSB,TEMP_MSB;</p><p> Reset_Bus();</p><p> Write_Byte(0xCC);</p><p> Write_Byte(0x44);</p><p>
52、;<b> Delay(5);</b></p><p> Reset_Bus();</p><p> Write_Byte(0xCC);</p><p> Write_Byte(0xBE);</p><p> TEMP_LSB=Read_Byte();</p><p> TEMP_MS
53、B=Read_Byte();</p><p> TEMP=TEMP_MSB;</p><p> TEMP=TEMP<<8;</p><p> TEMP=TEMP|TEMP_LSB;</p><p> return(TEMP);</p><p><b> }</b></p
54、><p><b> 電機調速程序:</b></p><p> sbit dianji_kou=P3^6; //P3^6控制電機</p><p> void sudu(uint x){</p><p><b> uint i;</b></p><p> dian
55、ji_kou=0;</p><p> for(i=0;i<5001;i++){</p><p> if(i==x){dianji_kou=~dianji_kou;}</p><p><b> }</b></p><p><b> }</b></p><p>
56、void speed_0(void){</p><p><b> sudu(0);</b></p><p><b> }</b></p><p> void speed_1(void){</p><p> sudu(500);</p><p><b> }
57、</b></p><p> void speed_2(void){</p><p> sudu(700);</p><p><b> }</b></p><p> void speed_3(void){</p><p> sudu(800);</p><p
58、><b> }</b></p><p> void speed_4(void){</p><p> sudu(1000);</p><p><b> }</b></p><p> void speed_5(void){</p><p> sudu(1200)
59、;</p><p><b> }</b></p><p> void speed_6(void){</p><p> sudu(1500);</p><p><b> }</b></p><p> void speed_7(void){</p><
60、;p> sudu(1800);</p><p><b> }</b></p><p> sbit dianji_kou=P3^6; //P3^6控制電機</p><p> void sudu(uint x){</p><p><b> uint i;</b></p&g
61、t;<p> dianji_kou=0;</p><p> for(i=0;i<5001;i++){</p><p> if(i==x){dianji_kou=~dianji_kou;}</p><p><b> }</b></p><p><b> }</b><
62、/p><p> void speed_0(void){</p><p><b> sudu(0);</b></p><p><b> }</b></p><p> void speed_1(void){</p><p> sudu(500);</p>&l
63、t;p><b> }</b></p><p> void speed_2(void){</p><p> sudu(700);</p><p><b> }</b></p><p> void speed_3(void){</p><p> sudu(800
64、);</p><p><b> }</b></p><p> void speed_4(void){</p><p> sudu(1000);</p><p><b> }</b></p><p> void speed_5(void){</p>&l
65、t;p> sudu(1200);</p><p><b> }</b></p><p> void speed_6(void){</p><p> sudu(1500);</p><p><b> }</b></p><p> void speed_7(vo
66、id){</p><p> sudu(1800);</p><p><b> }</b></p><p><b> 鍵盤采集程序:</b></p><p><b> /*</b></p><p> p2^0 p2^1 p2^2</p&
67、gt;<p><b> p2^3</b></p><p><b> p2^4</b></p><p><b> p2^5</b></p><p><b> */</b></p><p> sbit KeyIn1 = P2^3;<
68、;/p><p> sbit KeyIn2 = P2^4;</p><p> sbit KeyIn3 = P2^5;</p><p> sbit KeyOut1 = P2^0;</p><p> sbit KeyOut2 = P2^1;</p><p> sbit KeyOut3 = P2^2;</p>
69、<p> uint anjian[9];</p><p> void anjian_dingshi_init(){ </p><p> TMOD=0x11;</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256; //100MS<
70、;/p><p> // EA=1; //KAI ZONG ZHONG DUAN</p><p> TR0=1; //T0 YUN XU</p><p><b> }</b></p><p> void anjian_clear1(void){</p><
71、;p><b> char i;</b></p><p> for(i=0;i<9;i++){</p><p> anjian[i]=0;</p><p><b> }</b></p><p><b> }</b></p><p>
72、 void anjian_clear2(void){</p><p><b> char i;</b></p><p> for(i=3;i<9;i++){</p><p> anjian[i]=0;</p><p><b> }</b></p><p><
73、;b> }</b></p><p> void anjian_saomiao_1(void){</p><p> KeyOut1 = 0;</p><p> KeyOut2 = 1;</p><p> KeyOut3 = 1;</p><p> if (KeyIn1 == 0){anjia
74、n_clear1();anjian[0]=1;}</p><p> if (KeyIn2 == 0){anjian_clear1();anjian[1]=1;}</p><p> if (KeyIn3 == 0){anjian_clear1();}</p><p> while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);&l
75、t;/p><p> KeyOut1 = 1;</p><p> KeyOut2 = 0;</p><p> KeyOut3 = 1;</p><p> if (KeyIn1 == 0){anjian_clear2();anjian[3]=1;}</p><p> if (KeyIn2 == 0){anjian_c
76、lear2();anjian[4]=1;}</p><p> if (KeyIn3 == 0){anjian_clear2();anjian[5]=1;}</p><p> while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);</p><p> KeyOut1 = 1;</p><p> KeyO
77、ut2 = 1;</p><p> KeyOut3 = 0;</p><p> if (KeyIn1 == 0){anjian_clear2();anjian[6]=1;}</p><p> if (KeyIn2 == 0){anjian_clear2();anjian[7]=1;}</p><p> if (KeyIn3 == 0)
78、{anjian_clear2();anjian[8]=1;}</p><p> while(KeyIn1 == 0||KeyIn2 == 0||KeyIn3 == 0);</p><p><b> }</b></p><p> void timer0() interrupt 1</p><p><b>
79、 {</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p> anjian_saomiao_1();</p><p><b> }</b></p><p><b> 附
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 51單片機課程設計——智能電風扇
- 電風扇課程設計
- 智能聲控電風扇--單片機課程設計
- 智能儀器設計課程設計報告
- 電風扇控制系統(tǒng)課程設計報告
- 智能電扇-課程設計報告
- 智能儀器課程設計報告
- 課程設計---智能電風扇自動調速控制器
- proe課程設計--電風扇
- 智能儀表課程設計報告
- 智能散熱系統(tǒng)課程設計報告
- 智能儀表課程設計報告
- 家用電風扇課程設計
- proe課程設計--節(jié)能電風扇
- 課程設計--基于藍牙通信和上位機控制的智能風扇設計
- 電風扇機械創(chuàng)新設計課程設計
- 機械原理課程設計--小風扇的設計
- 人工智能掃雷課程設計報告
- 智能交通燈課程設計報告
- 課程設計——基于單片機的智能電風扇控制系統(tǒng)
評論
0/150
提交評論