基于STC89c52RC單片機(jī)的智能風(fēng)扇設(shè)計(jì)_第1頁
基于STC89c52RC單片機(jī)的智能風(fēng)扇設(shè)計(jì)_第2頁
基于STC89c52RC單片機(jī)的智能風(fēng)扇設(shè)計(jì)_第3頁
基于STC89c52RC單片機(jī)的智能風(fēng)扇設(shè)計(jì)_第4頁
基于STC89c52RC單片機(jī)的智能風(fēng)扇設(shè)計(jì)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、光電信息協(xié)會(huì)電子設(shè)計(jì)競賽鐘培文小組基于stc89c52rc單片機(jī)的智能風(fēng)扇設(shè)計(jì)鐘培文小組重慶大學(xué) 光電信息協(xié)會(huì)電子設(shè)計(jì)競賽2014年6月10日目錄摘要3abstract4一.總體方案和功能設(shè)計(jì)51.1 功能詳細(xì)描述51.2設(shè)計(jì)思路6二.詳細(xì)電路設(shè)計(jì)72.1電機(jī)調(diào)速電路72.2按鍵檢測和led指示82.3蜂鳴器模塊92.4 lcd1602顯示部分92.5紅外接收模塊10第三節(jié).系統(tǒng)軟件設(shè)計(jì)113.1主程序流程圖113.2速度選擇程序框圖123.3模式選擇框圖123.4定時(shí)器0程序框圖133.5定時(shí)器1程序框圖133.6定時(shí)功能框圖143.7lcd顯示框圖14結(jié)束語15附錄1:源程序16附錄2:實(shí)

2、物照片35摘要本小組選擇的題目為d題“智能風(fēng)扇設(shè)計(jì)”,實(shí)際完成了所有題設(shè)要求部分,以及具有實(shí)用的創(chuàng)意設(shè)計(jì)。本文介紹了一臺(tái)以stc89c52為控制核心,集調(diào)速,多模式,定時(shí),液晶顯示,紅外遙控功能一體的智能風(fēng)扇控制器設(shè)計(jì)過程。將傳統(tǒng)的風(fēng)扇用單片機(jī)來控制后極大增加了其智能化和實(shí)用化,同時(shí)也增強(qiáng)了功能性。關(guān)鍵字: stc89c52單片機(jī) , 智能風(fēng)扇abstractour team chosethe subjectdcalled intelligentfan design, and we have achieved allthe requirementsin this subject. beside

3、s, we add our own ideas and creativity to make our design more functional.this report mainly introduces that we use thestc89c52as the central controller, to design a intelligent fun integrated with speed setting, multi-mode, timer, lcd display and infraredremote control. after usingthe mcuto control

4、 thetraditional fan, we have greatlyimproved itsintelligence ,practicability,and also, thefunctionality.keywords: stc89c52 single chip microcomputer intelligent fan一總體方案和功能設(shè)計(jì)1.1功能詳細(xì)描述本設(shè)計(jì)以stc89c52單片機(jī)為控制核心,通過pwm控制直流電機(jī)3檔調(diào)速,通過定時(shí)器實(shí)現(xiàn)對(duì)風(fēng)扇3種模式的模擬,外部按鍵檢測輸入或者紅外遙控輸入指令,led指示風(fēng)扇速度和模式,lcd1602同步顯示風(fēng)扇速度(s),模式(m),提供定時(shí)功

5、能,蜂鳴器按鍵發(fā)聲。功能詳細(xì)描述:1、 控制器面板為:按鈕5個(gè),分別為風(fēng)速、類型、停止、定時(shí)選時(shí)、啟動(dòng)定時(shí),led指示燈六個(gè),指示風(fēng)速強(qiáng)、中、弱,類型為睡眠、自然和正常。2、 電扇處于停轉(zhuǎn)狀態(tài)時(shí),所有指示燈不亮,只有按下“風(fēng)速”鍵時(shí),才會(huì)響應(yīng),進(jìn)入起始工作狀態(tài);電扇在任何狀態(tài),只要按停止鍵,則進(jìn)入停轉(zhuǎn)狀態(tài)。3、 處于工作狀態(tài)時(shí),有:初始狀態(tài)為:風(fēng)速-“弱”,類型-“正?!保话础帮L(fēng)速”鍵,其狀態(tài)由“弱” “中” “強(qiáng)” “弱” 往復(fù)循環(huán)改變,每按一下按鍵改變一次;按“類型”鍵,其狀態(tài)由“正?!?“睡眠” “自然” “正常” 往復(fù)循環(huán)改變;4、 風(fēng)速的弱、中、強(qiáng)對(duì)應(yīng)于電扇的轉(zhuǎn)動(dòng)由慢到快。 類型的不

6、同選擇,分別為:正常 電扇連續(xù)運(yùn)轉(zhuǎn);自然 電扇模擬自然風(fēng),即轉(zhuǎn)4s,停8s;睡眠 電扇慢轉(zhuǎn),產(chǎn)生輕柔的微風(fēng),運(yùn)轉(zhuǎn) 8s,停轉(zhuǎn)8s;5、紅外遙控器按鍵1到5分別對(duì)應(yīng)按鍵1到5。按鍵1為調(diào)速,按鍵2為調(diào)整模式,按鍵3為停止,按鍵4為定時(shí)選時(shí),按鍵5為啟動(dòng)定時(shí)(重復(fù)按鍵會(huì)取消定時(shí))。6、當(dāng)按鍵被按下或者接收到紅外指令時(shí)蜂鳴器發(fā)聲。7、lcd1602同步顯示。當(dāng)系統(tǒng)關(guān)閉時(shí)顯示“welcome!”,系統(tǒng)啟動(dòng)后顯示“system run!”8、定時(shí)功能,提供10s(測試),30分鐘,1小時(shí),2小時(shí),3小時(shí)定時(shí)功能1.2設(shè)計(jì)思路整體電路采用模塊化設(shè)計(jì)制作,整體框圖如下:按鍵輸入stc89c52led顯示pw

7、m電機(jī)uln2003驅(qū)動(dòng)lcd1602外部中斷0蜂鳴器紅外輸入uln2003驅(qū)動(dòng)usb to ttl外接5v 1a供電二詳細(xì)電路設(shè)計(jì)2.1電機(jī)調(diào)速電路電機(jī)調(diào)速是整個(gè)控制裝置中的一個(gè)相當(dāng)重要的方面。對(duì)于電機(jī)的轉(zhuǎn)速調(diào)整,我們是采用脈寬調(diào)制(pwm)辦法,控制電機(jī)的時(shí)候,電源并非連續(xù)地向電機(jī)供電,而是在一個(gè)特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號(hào)能對(duì)電機(jī)起到調(diào)速作用,這是因?yàn)殡姍C(jī)實(shí)際上是一個(gè)大電感,它有阻礙輸入電流和電壓突變的能力,因此脈沖輸入信號(hào)被平均分配到作用時(shí)間上,這樣,改變輸入方波的占空比就能改變加在電機(jī)兩端的電壓大小,從而改變了轉(zhuǎn)速。通過控制pwm輸出占空比控制輸出,可以

8、實(shí)現(xiàn)對(duì)電機(jī)的無極調(diào)速。2.2按鍵檢測和led指示設(shè)計(jì)中用到的按鍵數(shù)目不多,所以可以直接用stc89c51的通用io端口且選用syc89c51的p1口(內(nèi)部有上拉電阻)作為按鍵掃描接口。對(duì)于按鍵只需一端接地另一接p1口即可。led選用共陽接法,對(duì)應(yīng)于p2.0至p2.52.3蜂鳴器模塊蜂鳴器工作原理簡介:當(dāng)控制端口通以不同頻率及不同占空比的信號(hào)時(shí)蜂鳴器將發(fā)出不同強(qiáng)度及不同頻率的聲音。由于其具有比傳統(tǒng)的喇叭體積小格低等優(yōu)點(diǎn),所以此次提示音電路選用蜂鳴器。具體電路見下圖:2.4 lcd1602顯示部分通過1602同步顯示各參數(shù)。采用p0口8位并行數(shù)據(jù)傳輸,液晶屏對(duì)比度加入電位器可調(diào)。2.5紅外接收模塊

9、外接收電路通常被廠家集成在一個(gè)元件中,成為一體化紅外接收頭。 內(nèi)部電路包括紅外監(jiān)測二極管,放大器,限幅器,帶通濾波器,積分電路,比較器等。紅外監(jiān)測二極管監(jiān)測到紅外信號(hào),然后把信號(hào)送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發(fā)射器和接收器的距離遠(yuǎn)近。交流 信號(hào)進(jìn)入帶通濾波器,帶通濾波器可以通過30khz到60khz的負(fù)載波,通過解調(diào)電路和積分電路進(jìn)入比較器,比較器輸出 高低電平,還原出發(fā)射端的信號(hào)波形。注意輸出的高低電平和發(fā)射端是反相的,這樣的目的是為了提高接收的靈敏度。三系統(tǒng)軟件設(shè)計(jì)3.1主程序流程圖3.2速度選擇程序框圖3.3模式選擇框圖3.4定時(shí)器0程序框圖3.5定時(shí)器

10、1程序框圖3.6定時(shí)功能框圖3.7lcd顯示框圖結(jié)束語首先,通過這次應(yīng)用系統(tǒng)設(shè)計(jì),在很大程度上提高了自己的獨(dú)立思考能力和團(tuán)隊(duì)協(xié)作能力以及單片機(jī)的專業(yè)知識(shí),也深刻了解制作電路的步驟和方法,有過這樣的一次訓(xùn)練,相信在接下來的日子我們都會(huì)了,而且會(huì)做得更好。我所寫的系統(tǒng)主要根據(jù)競賽題目要求,采用了單片機(jī)控制自動(dòng)化的結(jié)構(gòu)形式,實(shí)現(xiàn)對(duì)電風(fēng)扇轉(zhuǎn)速的自動(dòng)控制。系統(tǒng)以單片機(jī)stc89c52為核心部件,單片機(jī)系統(tǒng)完成對(duì)外界輸入采集、處理、顯示等功能;由protues軟件繪制電路圖并進(jìn)行仿真測試,利用c語言編制,運(yùn)行程序該系統(tǒng)的主要特點(diǎn)是:l 適用性強(qiáng),用戶只需對(duì)界面參數(shù)進(jìn)行設(shè)置并啟動(dòng)系統(tǒng)正常運(yùn)行便可實(shí)現(xiàn)傳統(tǒng)風(fēng)扇

11、各種功能。l 系統(tǒng)成本低廉,操作非常簡單方便,隨時(shí)可以根據(jù)軟件編寫新的功能加入產(chǎn)品。操作界面可擴(kuò)展性強(qiáng),只要稍加改變,即可增加其他按鍵的使用功能。l 具有非常強(qiáng)的使用價(jià)值。附錄1:源程序#include#define keyport p1/按鍵掃描#define cycle 10 #define uint unsigned int#define uchar unsigned charsbit pwm = p37; /定義pwm端口sbit led1=p20;/速度1sbit led2=p21;/速度2sbit led3=p22;/速度3sbit led4=p23;/正常sbit led5=p2

12、4;/自然sbit led6=p25;/睡眠sbit dsport=p36; sbitspk=p35;/蜂鳴器sbitlcden=p26;/1602sbitlcdrs=p27;sbit ir=p32; /紅外接口/* 變量聲明區(qū) */uchar pwm_on; /定義高電平時(shí)間uchar num,num2,key,beep_time,time3; /定時(shí)器1計(jì)時(shí)uint time1,time2; /tim是定時(shí)的時(shí)間,單位秒,為60的倍數(shù)uchartiming_flag=0;uinttim=0; /定時(shí)時(shí)間bit run_flag,r_flag,timing_run,timing_on,tim

13、ing_r=1;/啟動(dòng)標(biāo)志bit mode2_flag=0,mode3_flag=0,beep_on;bit p;/pwm開關(guān)uchari=0,j=0,a;/速度和模式切換標(biāo)志unsigned char irtime; /紅外用全局變量bitirpro_ok,irok;unsigned char ircord4;unsigned char irdata33;uchar code table_1=welcome! ;uchar code table_21=s: ;uchar code table_22=m: ;/* 變量聲明區(qū) */* 函數(shù)聲明區(qū)*/unsigned char keyscan(v

14、oid); /鍵盤掃描voiddelayus(uint t);void delayms(uint t); /us延遲void init_timer(void);/定時(shí)器初始化voidinit_all(void);void run(void);void start(void);void stop(void);voidchange_speed(void);voidchange_mode(void);void led(uchari,uchar j);voidfan_normal(void);voidfan_natural(void);voidfan_sleep(void);voidwrite_com

15、(uchar com);voidwrite_data(uchar data);void init_1602(void);void timing(void);void display2(void);voidwrite_string(unsigned char x,unsigned char y,unsigned char *s) ;voidwrite_char(unsigned char x,unsigned char y,unsigned char data) ;void change_display2(void);voidir_work(void);voidircordpro(void);v

16、oid beep();/* 函數(shù)聲明區(qū) */void main (void) init_all();while(1)key=keyscan();if(irok) /如果接收好了進(jìn)行紅外處理 ircordpro();irok=0;if(irpro_ok) /如果處理好后進(jìn)行工作處理,如按對(duì)應(yīng)的按/鍵后顯示對(duì)應(yīng)的數(shù)字等ir_work(); switch(key)case 1: run_flag=1;beep();if(i=3)i=0;i+;start();break;case 2: beep();if(j=3)j=0;if(run_flag)+j;mode2_flag=0;mode3_flag=0

17、;break;case 3: beep();if(run_flag)stop();break;case 4: beep();if(run_flag)timing_flag+;break; case 5: beep();if(run_flag)timing_run=timing_run;timing_on=timing_on;if(timing_flag)timing();run();change_display2();if(time2=0 &timing_on)stop();void init_all(void)/全局初始化 pwm_on=0;init_timer();init_1602();

18、display2(); led(4,4);/關(guān)閉所有l(wèi)edvoid start(void)if(run_flag=1 &r_flag=0)pwm_on=2;fan_normal();j=1; i=1;led(0,1);r_flag=1;p=1;void run(void)change_speed();change_mode(); /停止系統(tǒng)void stop(void)p=0;pwm_on=0;run_flag=0;r_flag=0;init_all();i=0,j=0,a=0;mode2_flag=0;mode3_flag=0;timing_flag=0;tim=0; timing_run=

19、0;timing_on=0;write_string(11,1,off ); /速度切換voidchange_speed(void)switch(i) case 1: pwm_on=2;led(1,0);break;case 2: pwm_on=4;led(2,0);break;case 3: pwm_on=8;led(3,0);break; /模式切換voidchange_mode(void)switch(j) case 1: led(0,1);fan_normal();break;case 2: led(0,2);fan_natural();break;case 3: led(0,3);f

20、an_sleep();break; /.led控制函數(shù)void led(ucharo,uchar p)switch(o)case 0: break;case 1: led1=0;led2=1;led3=1;break;case 2: led1=1;led2=0;led3=1;break;case 3: led1=1;led2=1;led3=0;break;case 4: led1=1;led2=1;led3=1;break; switch(p)case 0: break;case 1: led4=0;led5=1;led6=1;break;case 2: led4=1;led5=0;led6=

21、1;break;case 3: led4=1;led5=1;led6=0;break;case 4: led4=1;led5=1;led6=1;break;/* 模式函數(shù)*/voidfan_normal(void) p=1;voidfan_natural(void)if(mode2_flag=0)time1=0; p=1;mode2_flag=1;if(time1=4)p=0;if(time1=12) p=1;time1=0;voidfan_sleep(void)if(mode3_flag=0)i=1;time1=0;p=1;mode3_flag=1; if(time1=8) p=0;if(t

22、ime1=16) p=1; time1=0; /* 模式函數(shù)*/voiddelayus(uint t) while(-t);voiddelayms(uint n)while(-n) delayus(245);delayus(245); /*.初始化定時(shí)器 . */voidinit_timer(void) tmod=0x11; th1=0x00; tl1=0x00; th0=(65536-50000)/256; tl0=(65536-50000)%256;irtime+; /外部中斷 ea=1; it0 = 1; /指定外部中斷0下降沿觸發(fā),int0 (p3.2) ex0 = 1; et0=1;

23、 et1=1; tr0=1; tr1=1;/*-外部中斷0初始化-*/ /定時(shí)器1pwmvoid timer1(void) interrupt 3 using 1 staticuchar count; th1=(65536-256)/256; tl1=(65536-256)%256;irtime+;time3+;if(time3=255 time3=0;if(beep_on=1)spk=!spk; if(beep_time=1)beep_on=0;if(p)if (count=pwm_on) pwm = 0; count+;if(count = cycle) count=0;if(pwm_on

24、!=0)pwm = 1; /定時(shí)器0void timer0(void) interrupt 1 th0=(65536-50000)/256; tl0=(65536-50000)%256;num+;if(num=1)beep_time=1;if(num=20) num=0;time1+;if(time2)time2-; /*. .按鍵掃描. . */unsigned char keyscan(void)unsigned char keyvalue;if(keyport!=0xff) delayms(3);if(keyport!=0xff)keyvalue=keyport;while(keypor

25、t!=0xff);switch(keyvalue)case 0xfe:return 1;break;case 0xfd:return 2;break;case 0xfb:return 3;break;case 0xf7:return 4;break;case 0xef:return 5;break;case 0xdf:return 6;break;case 0xbf:return 7;break;case 0x7f:return 8;break;default:return 0;break; return 0;/*.定時(shí)功能定時(shí)器2.*/void timing(void)switch(timi

26、ng_flag)case 1: tim=10; if(timing_on=0)write_string(11,1,00010);break;case 2: tim=1800; if(timing_on=0)write_string(11,1,01800);break;/30mincase 3: tim=3600; if(timing_on=0)write_string(11,1,03600);break;/60mincase 4: tim=7200;if(timing_on=0)write_string(11,1,07200);break;/120mincase 5: tim=10800;if

27、(timing_on=0)write_string(11,1,10800);break; /180mincase 6: tim=0;timing_flag=0; write_string(11,1, );/定時(shí)取消if(timing_on=0)timing_r=1;time2=0;if(timing_run&timing_r&timing_on)time2=tim;timing_r=0;timing_flag=0;/*.1602部分.*/voidwrite_com(uchar com)delayms(5);lcdrs=0;lcden=1;p0=com;lcden=0;voidwrite_dat

28、a(uchar data) delayms(5);lcdrs=1;lcden=1; p0=data; ;lcden=0; /寫入1602字符串voidwrite_string(ucharx,uchary,uchar *s) if (y = 0) write_com(0x80 + x); else write_com(0xc0 + x); while (*s) write_data( *s); s +; /1602寫字符voidwrite_char(ucharx,uchary,uchar data) if (y = 0) write_com(0x80 + x); else write_com(0

29、xc0 + x); write_data(data); void init_1602(void) /初始化1602參數(shù)lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);void display2(void)write_string(4,0,table_1);write_string(0,1,table_21);write_string(6,1,table_22);void change_display2(void)uchartime_asc5,a;time_asc0=time2/10000+0x30;

30、time_asc1=time2%10000/1000+0x30;time_asc2=time2%10000%1000/100+0x30;time_asc3=time2%10000%1000%100/10+0x30;time_asc4=time2%10000%1000%100%10+0x30;if(timing_on=1)for(a=0;a5;a+)write_char(11+a,1,time_asca);if(timing_flag=0 &timing_on=0)write_string(14,1, );write_string(11,1,off);if(run_flag)write_string(2,0,system run!);elsewrite_string(

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論