




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于at89s52的智能電風扇設計【摘要】本設計以at89s52單片機為控制中心,主要通過提取熱釋電紅外傳感器感應到的人體紅外線信息和溫度傳感器ds18b20得到的溫度以及內部定時器設定時間長短來控制電風扇的開關及轉速的變化。 【關鍵字】 單片機(at89s52)、溫度傳感器(ds18b20)、熱釋電紅外傳感器、繼電器、蜂鳴器 移位寄存器、數碼管目錄引言 31、總體方案設計及功能描述42、功能模塊硬件簡介與實現4 2.1、鍵盤輸入電路 4 2.2、熱釋電紅外傳感器模塊 4 2.2.1、熱釋電紅外線傳感器原理簡介4 2.2.2、熱釋電紅外線傳感器應用5 2.3、溫度傳感器5 2.3.1、溫度傳感
2、器ds18b20簡介5 2.3.2、ds18b20讀寫及初始化時序5 2.3.3、ds18b20的一般操作過程6 2.3.4、ds18b20的溫度存儲方式即溫度計算6 2.4、數碼管顯示電路6 2.4.1、74ls164簡介6 2.4.2、共陰極八段數碼管簡介 6 2.4.3、顯示電路設計 7 2.5、發光二極管電路7 2.6、蜂鳴器電路7 2.7、繼電器控制電路8 2.7.1、繼電器簡介 8 2.7.2、繼電器驅動電路設計及工作原理簡介 8 2.8、整體電路硬件設計93、at89s52軟件設計與實現 10 3.1、整體設計思路介紹 10 3.2、主要部分流程圖 10 3.2.1、主程序流程圖
3、 10 3.2.2、外部中斷流程圖 10 3.2.3、定時器0中斷流程圖 11 3.2.4、定時器1中斷流程圖 114、總結11致謝詞12參考文獻12附頁:13引言隨著人們生活水平及科技水平的不斷提高,現在家用電器在款式、功能等方面日益求精,并朝著健康、安全、多功能、節能等方向發展。過去的電器不斷的顯露出其不足之處。電風扇作為家用電器的一種,同樣存在類似的問題。 現在電風扇的現狀:大部分只有手動調速,再加上一個定時器,功能單一。 存在的隱患或不足:比如說人們常常離開后忘記關閉電風扇,浪費電且不說還容易引發火災,長時間工作還容易損壞電器。再比如說前半夜溫度高電風扇調的風速較高,但到了后半夜氣溫下
4、降,風速不會隨著氣溫變化,容易著涼。 之所以會產生這些隱患的根本原因是:缺乏對環境的檢測。 如果能使電風扇具有對環境進行檢測的功能,當房間里面沒有人時能自動的關閉電風扇;當溫度下降時能自動的減小風速甚至關閉風扇,這樣一來就避免了上述的不足。本次設計就是圍繞這兩點對現有電風扇進行改進。1、 總體方案設計及功能描述本設計是以at89s52單片機控制中心,主要通過提取熱釋電紅外傳感器感應到的人體紅外線信息和溫度傳感器ds18b20得到的溫度以及內部定時器設定時間長短來控制電風扇的開關及轉速的變化。功能描述:電風扇工作在四種狀態:手動調速狀態、自動調速狀態、定時狀態、停止狀態。手動狀態時可以手動調節速
5、度;自動狀態時通過溫度高低自動調節速度,如果出現手動現象則變為手動狀態;定時狀態時可以調節定時時間,并設定是否啟動定時,之后可以手動退出,也可以在不操作6秒后自動退出進入手動狀態;停止狀態時可以被喚醒并進入自動狀態。當沒有檢測到人體存在超過3分鐘或定時完畢時進入停止狀態。在數碼管顯示方面,當沒有定時時,只顯示氣溫,當定時啟動時氣溫和定時剩余時間以3秒的速度交替顯示。系統方框圖如下圖所示,主要包括:輸入、控制、輸出三大部分8個功能模塊。圖 1-12、 功能模塊硬件簡介與實現2.1、鍵盤輸入電路由于設計中用到的按鍵數目不多,所以可以直接用at89s52的通用io端口且選用at89s52的p1口(內
6、部有上拉電阻)作為鍵盤接口。對于按鍵只需一端接地另一端接p1口即可。見下圖(2-1):2.2、熱釋電紅外傳感器模塊2.2.1、熱釋電紅外線傳感器原理簡介 人體輻射的紅外線中心波長為 910-um,而探測元件的波長靈敏度在 0.220-um 范圍內幾乎穩定不變。在傳感器頂端開設了一個裝有濾光鏡片的窗口,這個濾光片可通過光的波長范圍為 710-um,正好適合于人體紅外輻射的探測,而對其它波長的紅外線由濾光片予以吸收,這樣便形成了一種專門用作探測人體輻射的紅外線傳感器。 實質上熱釋電傳感器是對溫度敏感的傳感器。它由陶瓷氧化物或壓電晶體元件組成,在元件兩個表面做成電極,如圖2所示。在環境溫度有t的變化
7、時,由于有熱釋電效應,在兩個電極上會產生電荷q,即在兩電極之間產生一微弱的電壓v。2.2.2、熱釋電紅外線傳感器應用熱釋電紅外線傳感器有三個端口,一個接電源、一個接地、一個信號端口,當有人進入其檢測區域時,信號端口便產生一個電平跳變,并維持數秒鐘,我們就是利用這個跳變來判斷是否有人在這個檢測區域。2.3、溫度傳感器2.3.1、溫度傳感器ds18b20簡介新型數字溫度傳感器ds18b20具有體積更小、精度更高、適用電壓更寬、采用一線總線,在實際應用中取得了良好的測溫效果。ds18b20的主要特性:(2)獨特的單線接口方式,ds18b20在與微處理器連接時僅需要一條口線即可實現微處理器與ds18b
8、20的雙向通訊。(5)測溫溫范圍55125(6)最高分辨率為0.0625。2.3.2、ds18b20讀寫及初始化時序2.3.3、ds18b20的一般操作過程(1)、初始化;(2)、跳過rom(命令:cch);(3)、溫度變換(命令:44h);(4)、讀暫存存儲器(命令:beh);注意:每次讀取溫度都要經過上面四個過程。2.3.4、ds18b20的溫度存儲方式即溫度計算 ds18b20是用12位存儲溫度,最高位為符號位,下圖為它的溫度存儲方式:這是12位轉化后得到的12位數據,存儲在ds18b20的兩個8比特的ram中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數
9、值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。2.4、數碼管顯示電路2.4.1、74ls164簡介 移位寄存器是一類應用很廣的時序邏輯電路,在時鐘脈沖的作用下,低位寄存器的數碼送給高位寄存器,作為高位寄存器的次態輸出。 在時鐘脈沖的作用下,高位寄存器的數碼送給低位寄存器,作為低位寄存器的次態輸出;移位寄存器:除具寄存器的功能外,所存儲的數碼在時鐘脈沖的作用下還可以移位。74ls164是八位串入并出移位寄存器,其工作電壓范圍4.755.25v,大于2v的高電平輸入、小于0.8v的低電平輸入,clock最高響應頻率為25m
10、hz,八位并行輸出可以直接驅動八段數碼管。74ls164的引腳圖及功能圖如下所示:2.4.2、共陰極八段數碼管簡介共陰極八段數碼管是將八段發光二極管封裝在一起且二極管的陰極連在一起,原理圖如下圖所示,公共端接低電平,其它八個端口高電平點亮相應的二極管,低電平相反。2.4.3、顯示電路設計此顯示電路采用兩位靜態數碼管顯示,用八位串入并出移位寄存器74ls164作為驅動電路,采用共陰極八段數碼管原理圖示意圖如下:從圖中可以看出控制線只有兩條:1、數據線;2、移位脈沖線。它只占用很少的io口。2.5、發光二極管電路發光二極管簡稱為led,它是半導體二極管的一種。發光二極管的反向擊穿電壓約5伏。它的正
11、向伏安特性曲線很陡,使用時必須串聯限流電阻以控制通過管子的電流。限流電阻r可用下式計算:r(euf)if式中e為電源電壓,uf為led的正向壓降,if為led的一般工作電流。發光二極管的兩根引線中較長的一根為正極,應按電源正極。與小白熾燈泡和氖燈相比,發光二極管的特點是:工作電壓很低(有的僅一點幾伏);工作電流很小(有的僅零點幾毫安即可發光);抗沖擊和抗震性能好,可靠性高,壽命長;通過調制通過的電流強弱可以方便地調制發光的強弱。由于有這些特點,發光二極管在一些光電控制設備中用作光源,在許多電子設備中用作信號顯示器。由于at89s52的p0口是開漏輸出,所以此電路可以設計位如下簡單形式:2.6、
12、蜂鳴器電路蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。由于蜂鳴器具有比傳統的喇叭體積小,價格低等優點,所以此次提示音電路選用蜂鳴器。具體電路見下圖:工作原理簡介:當控制端口通以不同頻率及不同占空比的信號時蜂鳴器將發出不同強度及不同頻率的聲音。2.7、繼電器控制電路2.7.1、繼電器簡介繼電器是一種電子控制器件,它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調節、安全保護
13、、轉換電路等作用。它有幾個重要指標:1、額定工作電壓:正常工作時線圈所需要的電壓。2、直流電阻:繼電器中線圈的直流電阻。3、吸合電流:繼電器能夠產生吸合動作的最小電流。4、釋放電流:繼電器產生釋放動作的最大電流。5、觸點切換電壓和電流:繼電器允許加載的電壓和電流。2.7.2、繼電器驅動電路設計及工作原理簡介采用晶閘管也可以用于小電流控制大電流電路,但是其控制電路比較復雜,而采用繼電器其控制電路就比較簡單,且具有電氣隔離作用。雖然其響應速度沒有晶閘管快但在低頻情況下采用繼電器控制電路較為方便。其電路圖如下所示:電路工作原理簡介:當控制端口為低電平時,三極管導通繼電器吸合,常閉觸電斷開,常開觸點閉
14、合。當控制端口為高電平時三極管關斷,繼電器線圈通過二極管放電并斷開,常閉、常開觸電復位。2.8、整體電路硬件設計3、 at89s52軟件設計與實現3.1、整體設計思路介紹軟件設計整體思路:主程序部分進行一些初始化以及溫度的讀?。煌獠恐袛?進行紅外線感應延時時間的從新加載;定時器0進行鍵盤的掃描及相關操作;定時器1進行顯示、溫控速度、以及相關需要延時(如倒計時等等)的操作。在顯示方面,進行了一些改善-要顯示的值有變化才進行從新刷新,否則不刷新。這樣就大大提高了效率及最終的顯示效果(不會出現不該亮的部分還有亮的現象)。3.2、主要部分流程圖如下:3.2.1、主程序流程圖 圖 3-13.2.2、外部
15、中斷流程圖 圖 3-23.2.3、定時器0中斷流程圖 圖 3-33.2.4、定時器1中斷流程圖 圖 3-44、 總結本設計最終實現了電風扇的手動調速、溫控自動調速、定時、溫度顯示、人體檢測等預期功能,其中定時在1到99分鐘連續可調,人體檢測范圍角度120度、距離6米,人體檢測延時時間3分鐘,定時器自動退出時間6秒。存在不足之處就是人體檢測抗干擾方面不夠好,需要提高。致謝詞在這段時間里,因為有了指導老師的指導、同學們的幫忙,此次畢業設計才得以順利完成,在此對他們表示由衷的感謝。大學四年即將結束,借此機會也對這四年來幫助、關心、鼓勵過我的老師、同學說聲謝謝。參考文獻1 蘇家鍵、曹柏榮、汪志鋒.單片
16、機原理及應用技術m .2006年4月2 龔運新.單片機c語言開發技術m.清華大學出版社.2006年10月3 余成波.傳感器與自動檢測技術m.高等教育出版社 .2006年11月4 康華光.電子技術基礎(模擬部分)第四版 m.高等教育出版社 .2004年4月5 康華光.電子技術基礎(數字部分)第四版 m.高等教育出版社 .2004年4月intelligent design fans【abstract】 the design at89s52 microcontroller for the control centre, mainly through the extraction pyroelectr
17、ic infrared sensor to the human infra-red sensors and temperature sensors ds18b20 information obtained temperature and the duration of the internal timer set to control fan speed switching and the changes 。【keyword】 mcu(at89s52)、temperature sensor (ds18b20)、pyroelectric infrared sensors、relay、buzzer
18、、shift register、led附頁:程序清單/* touwenjian.h*/typedef unsigned char byte; typedef unsigned int word;/以下管腳配置/ds18b20部分sbit dq =p25; /顯示部分sbit db=p10;sbit cp=p11;/發光顯示部分sbit led_dingshi =p00;sbit led_shoudong =p01;sbit led_zidong =p02;sbit led_kuai =p05;sbit led_zhong =p06;sbit led_man =p07;/鍵盤定義部分#defin
19、e wujian 0x3fsbit key1=p12 ; /狀態轉換 /啟動sbit key2=p13 ; /+10 / 1sbit key3=p14 ; /-10/ 2sbit key4=p15 ; / 3sbit key5=p16 ; / 0確定/繼電器控制部分sbit jdq1=p21; /0表示開通,1表示關斷sbit jdq2=p22;sbit jdq3=p23;/蜂鳴器部分sbit call=p24; /低電平鳴叫/* ds18b20.c*/#include #includetouwenjian.h/* 延時子程序*/extern void delay(word useconds)
20、 for(;useconds0;useconds-); /* 復位子程序 */static byte ow_reset(void) byte presence;ea=0; dq = 0; / pull dq line low delay(45); / leave it low for 480us /551usdq = 1; / allow line to return high delay(4); / wait for presence /61uspresence = dq; / get presence signal delay(40); / wait for end of timeslot
21、 /491usea=1;return(presence); / presence signal returned / 0=presence, 1 = no part /* 從 1-wire 總線上讀取一個字節子程序*/ static byte read_byte(void) byte i; byte value = 0;ea=0; for (i=8;i0;i-) value=1; dq = 0; / pull dq low to start timeslot dq = 1; / then return high unsigned char i; for(i=0;i0; i-) / writes
22、 byte, one bit at a time dq = 0; / pull dq low to start timeslotdq=0; dq = val&0x01; /6usdelay(5); / hold value for remainder of timeslot /74usdq = 1; val=val1; ea=1; delay(5); /* 讀取溫度 */ word read_temperature(void) union byte c2; word x; temp; ow_reset(); write_byte(0xcc); / skip rom write_byte(0xb
23、e); / read scratch pad temp.c1=read_byte(); temp.c0=read_byte(); ow_reset(); write_byte(0xcc); /skip rom write_byte(0x44); / start conversion return temp.x; /* 求解溫度*/extern byte real_tem(void) word wen; wen=read_temperature(); return(wen4)&0x00ff);/* main.c*/#include #includetouwenjian.h/數據區#define
24、time_default 41byte dingshi_time=time_default;/存放定時時間bit flag_dingshi=0; /0表示沒有定時word dingshi_jishu3=1000;/1000*60=1分鐘/bit flag_dingshi_delay=0;/1表示有byte dingshi_delay=100;/#define hwx_delay_const 3 /人體感應延時時間byte hwx_delay=hwx_delay_const;/用于保存紅外線觸發延長時間word hwx_jishu1=0;/byte wendu=0;/用于存放溫度值/#defin
25、e low_wen 18#define mid_wen 20#define hig_wen 24#define vhi_wen 28/byte time_stor=100; /存儲主觀時間/觸發顯示byte wendu_stor=low_wen;/存儲主觀溫度/觸發顯示/enum station0zidong,dingshi,shoudong,weakstate;/函數說明區extern byte real_tem(void );extern void delay(word useconds);void mingjiao(void);void display(byte input,bit kk
26、l);void auto_speed(void);void weak_default(void);/* 主程序*/void main() /定時器0用于鍵盤掃描 tmod=0x01|tmod; /定時器0的1方式 th0=0xd8;tl0=0xf0; /定時器0初始化10ms掃描一次 /定時器1用于顯示 tmod=0x10|tmod; /定時器1的1方式 th1=0x15;tl1=0xa0; /定時器1初始化60ms中斷一次 /外部中斷 tcon=tcon|0x01; /外部中斷0都下降沿觸發 /以下為開啟部分 ip=0x01; /兩個定時器同等優先級?想想為什么? ie=0x8b; /開啟定
27、時器0,1,外部中斷0中斷 / while(real_tem()=85); auto_speed(); led_zidong=0; /剛開始為自動方式 p1=p1|0x7c; /拉高五個鍵盤 wendu_stor=100; /兩個不可能值/用于啟動顯示 time_stor=100; /兩個不可能值/用于啟動顯示 / tr0=1; /開啟定時器0 tr1=1; while(1) wendu=real_tem(); /* 定時器0中斷服務子程序 功能:進行鍵盤處理 說明:鍵盤輸入為p1.0到p1.5*/ void time0(void) interrupt 1 byte jianpan; th0=
28、0xd8;tl0=0xf0; jianpan = p1 & wujian; if(jianpan != wujian) /如果還有鍵盤值提取鍵盤值 delay(500); /延時消抖 jianpan = p1 & wujian; if(jianpan=wujian)goto time_out; switch(state) case dingshi: if(key1=0)/狀態轉換時做些相應的處理 state=shoudong;led_shoudong=0;flag_dingshi_delay=0;dingshi_delay=100;time_stor=100;wendu_stor=100;/觸
29、發mingjiao();while(key1=0); else if(key2=0)/加分 if(dingshi_time10)dingshi_time-=10;dingshi_delay=100;/mingjiao();while(key3=0); else if(key4=0)/定時與否 flag_dingshi=flag_dingshi;if(flag_dingshi=1)led_dingshi=0;else led_dingshi=1;dingshi_jishu3=1000;dingshi_delay=100;/mingjiao();while(key4=0); else if(key
30、5=0) weak_default();mingjiao();while(key5=0); break;case shoudong:if(key1=0) /狀態轉換時做些相應的處理 state=zidong;auto_speed();led_shoudong=1;led_zidong=0; mingjiao();while(key1=0); else if(key2=0)/快1 jdq2=1;jdq3=1;jdq1=0;/關斷其它led_zhong=led_man=1;led_kuai=0;mingjiao();while(key2=0); else if(key3=0)/中2 jdq1=1;
31、jdq3=1;jdq2=0;/關斷其它led_kuai=led_man=1;led_zhong=0;mingjiao();while(key3=0); else if(key4=0)/慢3 jdq1=1;jdq2=1;jdq3=0;/關斷其它led_zhong=led_kuai=1;led_man=0;mingjiao();while(key4=0); else if(key5=0)/停4 weak_default();mingjiao();while(key5=0); break;case zidong: if(key1=0) /狀態轉換時做些相應的處理 state=dingshi;led_
32、zidong=1;flag_dingshi_delay=1;dingshi_delay=100;/開始延時time_stor=100;/mingjiao();while(key1=0); else if(key2=0)/快1 jdq2=1;jdq3=1;jdq1=0;/關斷其它led_zhong=led_man=1;led_kuai=0;state=shoudong;led_zidong=1;led_shoudong=0;mingjiao();while(key2=0); else if(key3=0)/中2 jdq1=1;jdq3=1;jdq2=0;/關斷其它led_kuai=led_man
33、=1;led_zhong=0;state=shoudong;led_zidong=1;led_shoudong=0;mingjiao();while(key3=0); else if(key4=0)/慢3 jdq1=1;jdq2=1;jdq3=0;/關斷其它led_zhong=led_kuai=1;led_man=0;state=shoudong;led_zidong=1;led_shoudong=0;mingjiao();while(key4=0); else if(key5=0)/停4 weak_default();mingjiao();while(key5=0); break; case
34、 weak: if(key1=0) state=zidong;led_zidong=0;wendu_stor=100;/兩個不可能值time_stor=100;/兩個不可能值auto_speed();mingjiao();while(key1=0); break; time_out: ;/* 定時器1中斷服務子程序 功能: 用于定時 0.060s*/void timer1(void) interrupt 3 th1=0x15;tl1=0xa0;/紅外線到記時ex0=0;if(hwx_jishu10)dingshi_jishu3-; else dingshi_jishu3=1000; if(di
35、ngshi_time1)dingshi_time-; elseweak_default(); /5秒延時if(flag_dingshi_delay=1) if(dingshi_delay1)dingshi_delay-;else state=shoudong;flag_dingshi_delay=0;dingshi_delay=100; led_shoudong=0; time_stor=100;wendu_stor=100; / mingjiao();/顯示和溫控switch(state) case dingshi:/在定時的時候只顯示時間if(time_stor!=dingshi_time)display(dingshi_time,1);time_stor=dingshi_time;/ break; case shoudong: case zidong:/是否有定時,有則交替顯示溫度和時間,沒有則只顯示溫度 if(flag_dingshi!=0)/ static byte jiaoti_jishu2=0; static bit flag_jiaoti=0; if(jiaoti_jishu249)jiaoti_jishu2+; else flag_jiaoti=flag_jiaoti;jia
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行監管檢查管理辦法
- 杜集區游樂設施管理辦法
- 上海商品房管理辦法細則
- 曲靖小餐飲備案管理辦法
- 市級儲備糧熏蒸管理辦法
- 個人存款與結算管理辦法
- 醫用耗材管理辦法Spd
- 舞蹈機構課程管理辦法
- 采購計劃細化管理方案
- 鄉村拆遷改建方案
- 2025-2030中國轉輪除濕機行業前景動態及投資規劃分析報告
- 八年級上冊語文必背課文資料合集
- 針灸醫學的歷史回顧之古代名醫的針灸先例
- 【艾瑞咨詢】2024年中國健康管理行業研究報告494mb
- 年產xxx千件自行車配件項目可行性研究報告
- DZ/T 0261-2014滑坡崩塌泥石流災害調查規范(1∶50 000)
- T/CQAP 3014-2024研究者發起的抗腫瘤體細胞臨床研究細胞制劑制備和質量控制規范
- 初中體育教學中德育教育的現狀、問題與突破路徑探究
- 基層供銷社管理制度
- 農業供應鏈管理考試試題及答案
- 人行雨棚施工方案
評論
0/150
提交評論