版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、光電信息協(xié)會電子設(shè)計競賽鐘培文小組基于STC89C52RC單片機(jī)的智能風(fēng)扇設(shè)計鐘培文小組重慶大學(xué) 光電信息協(xié)會電子設(shè)計競賽2014年6月10日 目錄摘要3ABSTRACT4一.總體方案和功能設(shè)計51.1 功能詳細(xì)描述51.2設(shè)計思路6二.詳細(xì)電路設(shè)計72.1電機(jī)調(diào)速電路72.2按鍵檢測和LED指示82.3蜂鳴器模塊92.4 LCD1602顯示部分92.5紅外接收模塊10第三節(jié).系統(tǒng)軟件設(shè)計113.1主程序流程圖113.2速度選擇程序框圖123.3模式選擇框圖123.4定時器0程序框圖133.5定時器1程序框圖133.6定時功能框圖143.7LCD顯示框圖14結(jié)束語15附錄1:源程序16附錄2:
2、實物照片35摘要本小組選擇的題目為D題“智能風(fēng)扇設(shè)計”,實際完成了所有題設(shè)要求部分,以及具有實用的創(chuàng)意設(shè)計。本文介紹了一臺以STC89C52為控制核心,集調(diào)速,多模式,定時,液晶顯示,紅外遙控功能一體的智能風(fēng)扇控制器設(shè)計過程。將傳統(tǒng)的風(fēng)扇用單片機(jī)來控制后極大增加了其智能化和實用化,同時也增強(qiáng)了功能性。關(guān)鍵字: STC89C52單片機(jī) , 智能風(fēng)扇ABSTRACTOur team chose the subject D called "intelligent fan design", and we have achieved all the requirements in t
3、his subject. Besides, we add our own ideas and creativity to make our design more functional. This report mainly introduces that we use the STC89C52 as the central controller, to design a intelligent fun integrated with speed setting, multi-mode, timer, LCD display and infrared remote control. After
4、 using the MCU to control the traditional fan, we have greatly improved its intelligence ,practicability, and also, the functionality.Keywords: STC89C52 Single chip microcomputer Intelligent fan一 總體方案和功能設(shè)計1.1 功能詳細(xì)描述本設(shè)計以STC89C52單片機(jī)為控制核心,通過PWM控制直流電機(jī)3檔調(diào)速,通過定時器實現(xiàn)對風(fēng)扇3種模式的模擬,外部按鍵檢測輸入或者紅外遙控輸入指令,LED指示風(fēng)扇速度和模
5、式,LCD1602同步顯示風(fēng)扇速度(S),模式(M),提供定時功能,蜂鳴器按鍵發(fā)聲。 功能詳細(xì)描述:1、 控制器面板為:按鈕5個,分別為風(fēng)速、類型、停止、定時選時、啟動定時,LED指示燈六個,指示風(fēng)速強(qiáng)、中、弱,類型為睡眠、自然和正常。 2、 電扇處于停轉(zhuǎn)狀態(tài)時,所有指示燈不亮,只有按下“風(fēng)速”鍵時,才會響應(yīng),進(jìn)入起始工作狀態(tài);電扇在任何狀態(tài),只要按停止鍵,則進(jìn)入停轉(zhuǎn)狀態(tài)。3、 處于工作狀態(tài)時,有:初始狀態(tài)為:風(fēng)速-“弱”,類型-“正?!?;按“風(fēng)速”鍵,其狀態(tài)由“弱” “中” “強(qiáng)” “弱” 往復(fù)循環(huán)改變,每按一下按鍵改變一次;按“類型”鍵,其狀態(tài)由“正常” “睡眠” “自然” “正?!?往復(fù)
6、循環(huán)改變;4、 風(fēng)速的弱、中、強(qiáng)對應(yīng)于電扇的轉(zhuǎn)動由慢到快。 類型的不同選擇,分別為:正常 電扇連續(xù)運轉(zhuǎn);自然 電扇模擬自然風(fēng),即轉(zhuǎn)4s,停8s;睡眠 電扇慢轉(zhuǎn),產(chǎn)生輕柔的微風(fēng),運轉(zhuǎn) 8s,停轉(zhuǎn)8s;5、紅外遙控器按鍵1到5分別對應(yīng)按鍵1到5。按鍵1為調(diào)速,按鍵2為調(diào)整模式,按鍵3為停止,按鍵4為定時選時,按鍵5為啟動定時(重復(fù)按鍵會取消定時)。6、當(dāng)按鍵被按下或者接收到紅外指令時蜂鳴器發(fā)聲。7、LCD1602同步顯示。當(dāng)系統(tǒng)關(guān)閉時顯示“Welcome!”,系統(tǒng)啟動后顯示“SYSTEM RUN!”8、定時功能,提供10s(測試),30分鐘,1小時,2小時,3小時定時功能1.2設(shè)計思路 整體電路采
7、用模塊化設(shè)計制作,整體框圖如下:按鍵輸入STC89C52LED顯示PWM電機(jī)ULN2003驅(qū)動LCD1602外部中斷0蜂鳴器紅外輸入ULN2003驅(qū)動USB TO TTL外接5v 1A供電二 詳細(xì)電路設(shè)計2.1電機(jī)調(diào)速電路 電機(jī)調(diào)速是整個控制裝置中的一個相當(dāng)重要的方面。對于電機(jī)的轉(zhuǎn)速調(diào)整,我們是采用脈寬調(diào)制(PWM)辦法,控制電機(jī)的時候,電源并非連續(xù)地向電機(jī)供電,而是在一個特定的頻率下以方波脈沖的形式提供電能。不同占空比的方波信號能對電機(jī)起到調(diào)速作用,這是因為電機(jī)實際上是一個大電感,它有阻礙輸入電流和電壓突變的能力,因此脈沖輸入信號被平均分配到作用時間上,這樣,改變輸入方波的占空比就能改變加在
8、電機(jī)兩端的電壓大小,從而改變了轉(zhuǎn)速。通過控制PWM輸出占空比控制輸出,可以實現(xiàn)對電機(jī)的無極調(diào)速。 2.2按鍵檢測和LED指示 設(shè)計中用到的按鍵數(shù)目不多,所以可以直接用STC89C51的通用IO端口且選用SYC89C51的P1口(內(nèi)部有上拉電阻)作為按鍵掃描接口。對于按鍵只需一端接地另一接P1口即可。 LED選用共陽接法,對應(yīng)于P2.0至P2.52.3蜂鳴器模塊蜂鳴器工作原理簡介:當(dāng)控制端口通以不同頻率及不同占空比的信號時蜂鳴器將發(fā)出不同強(qiáng)度及不同頻率的聲音。由于其具有比傳統(tǒng)的喇叭體積小格低等優(yōu)點,所以此次提示音電路選用蜂鳴器。具體電路見下圖:2.4 LCD1602顯示部分通過1602
9、同步顯示各參數(shù)。采用P0口8位并行數(shù)據(jù)傳輸,液晶屏對比度加入電位器可調(diào)。2.5紅外接收模塊外接收電路通常被廠家集成在一個元件中,成為一體化紅外接收頭。 內(nèi)部電路包括紅外監(jiān)測二極管,放大器,限幅器,帶通濾波器,積分電路,比較器等。紅外監(jiān)測二極管監(jiān)測到紅外信號,然后把信號送到放大器和限幅器,限幅器把脈沖幅度控制在一定的水平,而不論紅外發(fā)射器和接收器的距離遠(yuǎn)近。交流 信號進(jìn)入帶通濾波器,帶通濾波器可以通過30khz到60khz的負(fù)載波,通過解調(diào)電路和積分電路進(jìn)入比較器,比較器輸出 高低電平,還原出發(fā)射端的信號波形。注意輸出的高低電平和發(fā)射端是反相的,這樣的目的是為了提高接收的靈敏度。三 系統(tǒng)軟件設(shè)計
10、3.1主程序流程圖3.2速度選擇程序框圖3.3模式選擇框圖3.4定時器0程序框圖3.5定時器1程序框圖3.6定時功能框圖3.7LCD顯示框圖 結(jié)束語首先,通過這次應(yīng)用系統(tǒng)設(shè)計,在很大程度上提高了自己的獨立思考能力和團(tuán)隊協(xié)作能力以及單片機(jī)的專業(yè)知識,也深刻了解制作電路的步驟和方法,有過這樣的一次訓(xùn)練,相信在接下來的日子我們都會了,而且會做得更好。我所寫的系統(tǒng)主要根據(jù)競賽題目要求,采用了單片機(jī)控制自動化的結(jié)構(gòu)形式,實現(xiàn)對電風(fēng)扇轉(zhuǎn)速的自動控制。系統(tǒng)以單片機(jī)STC89C52為核心部件,單片機(jī)系統(tǒng)完成對外界輸入采集、處理、顯示等功能;由Protues軟件繪制電路圖并進(jìn)行仿真測試,利用C語言編制,運行程序
11、該系統(tǒng)的主要特點是:l 適用性強(qiáng),用戶只需對界面參數(shù)進(jìn)行設(shè)置并啟動系統(tǒng)正常運行便可實現(xiàn)傳統(tǒng)風(fēng)扇各種功能。l 系統(tǒng)成本低廉,操作非常簡單方便,隨時可以根據(jù)軟件編寫新的功能加入產(chǎn)品。操作界面可擴(kuò)展性強(qiáng),只要稍加改變,即可增加其他按鍵的使用功能。l 具有非常強(qiáng)的使用價值。附錄1:源程序#include<reg52.h>#define KeyPort P1/按鍵掃描#define CYCLE 10 #define uint unsigned int#define uchar unsigned charsbit PWM = P37; /定義pwm端口 sbit led1=P20;/速度1sb
12、it led2=P21;/速度2sbit led3=P22;/速度3sbit led4=P23;/正常sbit led5=P24;/自然sbit led6=P25;/睡眠sbit DSPORT=P36; sbit spk=P35;/蜂鳴器sbit lcden=P26;/1602sbit lcdrs=P27;sbit IR=P32; /紅外接口/* 變量聲明區(qū) */uchar PWM_ON; /定義高電平時間uchar num,num2,key,beep_time,time3; /定時器1計時uint time1,time2; /tim是定時的時間,單位秒,為60的倍數(shù)uchar timing_
13、flag=0;uint tim=0; /定時時間bit run_flag,r_flag,timing_run,timing_on,timing_r=1;/啟動標(biāo)志bit mode2_flag=0,mode3_flag=0,beep_on; bit p;/pwm開關(guān) uchar i=0,j=0,a; /速度和模式切換標(biāo)志unsigned char irtime; /紅外用全局變量bit irpro_ok,irok;unsigned char IRcord4;unsigned char irdata33;uchar code table_1="Welcome!" ;uchar
14、code table_21="S:" ;uchar code table_22="M:" ;/* 變量聲明區(qū) */* 函數(shù)聲明區(qū)*/unsigned char KeyScan(void); /鍵盤掃描void Delayus(uint t);void Delayms(uint t); /us延遲 void Init_timer(void);/定時器初始化 void Init_all(void);void run(void);void start(void);void stop(void);void change_speed(void);void chan
15、ge_mode(void);void led(uchar i,uchar j);void fan_normal(void);void fan_natural(void);void fan_sleep(void);void write_com(uchar com);void write_data(uchar Data);void Init_1602(void);void Timing(void);void display2(void);void write_string(unsigned char x,unsigned char y,unsigned char *s) ; void write_
16、char(unsigned char x,unsigned char y,unsigned char Data) ;void change_display2(void);void Ir_work(void);void Ircordpro(void);void beep();/* 函數(shù)聲明區(qū) */void main (void) Init_all();while(1) key=KeyScan();if(irok) /如果接收好了進(jìn)行紅外處理 Ircordpro(); irok=0;if(irpro_ok) /如果處理好后進(jìn)行工作處理,如按對應(yīng)的按/鍵后顯示對應(yīng)的數(shù)字等Ir_work(); swi
17、tch(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;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(timin
18、g_flag)Timing();run();change_display2();if(time2=0 && timing_on)stop();void Init_all(void)/全局初始化 PWM_ON=0;Init_timer();Init_1602();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
19、(); 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=0;timing_on=0;write_string(11,1,"OFF "); /速度切換void change_speed(void) switch(i) case 1: PWM_ON=2;led(1,0);break;case 2: PWM_ON=4;led(2,0)
20、;break;case 3: PWM_ON=8;led(3,0);break; /模式切換void change_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);fan_sleep();break; /.led控制函數(shù)void led(uchar o,uchar p)switch(o) case 0: break; case 1: led1=0;led2=1;led3=1;break; case 2: led1=1;led2
21、=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=1;break;case 3: led4=1;led5=1;led6=0;break;case 4: led4=1;led5=1;led6=1;break;/* 模式函數(shù) */void fan_normal(void) p=1; void fan_na
22、tural(void)if(mode2_flag=0) time1=0; p=1;mode2_flag=1; if(time1=4)p=0;if(time1=12) p=1;time1=0;void fan_sleep(void) if(mode3_flag=0) i=1;time1=0; p=1;mode3_flag=1; if(time1=8) p=0;if(time1=16) p=1; time1=0; /* 模式函數(shù) */void Delayus(uint t) while(-t);void Delayms(uint n) while(-n) Delayus(245);Delayus(
23、245); /*.初始化定時器 . */void Init_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; ET1=1; TR0=1; TR1=1;/*-外部中斷0初始化-*/ /定時器1pwmvoid Timer1(void) interrupt 3 using 1 static uchar count; TH1=(655
24、36-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!=0)PWM = 1; /定時器0void Timer0(void) interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; num+; if(nu
25、m=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(KeyPort!=0xff);switch(keyvalue)case 0xfe:return 1;break;case 0xfd:return 2;break;case 0xfb:return 3;br
26、eak;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;/*.定時功能 定時器2.*/void Timing(void)switch(timing_flag)case 1: tim=10; if(timing_on=0)write_string(11,1,"00010");break; case 2: tim=
27、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(timing_on=0)write_string(11,1,"10800&
28、quot;);break; /180mincase 6: tim=0;timing_flag=0; write_string(11,1," "); /定時取消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部分.*/void write_com(uchar com)Delayms(5); lcdrs=0;lcden=1;P0=com;lcden=0;void
29、write_data(uchar Data) Delayms(5); lcdrs=1; lcden=1; P0=Data; ; lcden=0; /寫入1602字符串 void write_string(uchar x,uchar y,uchar *s) if (y = 0) write_com(0x80 + x); else write_com(0xC0 + x); while (*s) write_data( *s); s +; /1602寫字符 void write_char(uchar x,uchar y,uchar Data) if (y = 0) write_com(0x80 +
30、x); else write_com(0xC0 + 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)uchar time_asc5,a;
31、time_asc0=time2/10000+0x30;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;a<5;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(4,0,table_1);switch(i)case 1: write_char(2,1,'1');break;case 2: write_char(2,1,'2');break;case 3: write_char(2,1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國超彈力透氣型護(hù)腰數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國咖啡粉專用機(jī)數(shù)據(jù)監(jiān)測研究報告
- 2025年中國染色毛巾布拖鞋市場調(diào)查研究報告
- 2025至2031年中國黃芪生脈飲行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國酒店用便簽夾行業(yè)投資前景及策略咨詢研究報告
- 2025年智能櫥柜研發(fā)與生產(chǎn)制造合同4篇
- 二零二五年度美團(tuán)團(tuán)購業(yè)務(wù)合作協(xié)議范本6篇
- 2025年度大數(shù)據(jù)存單質(zhì)押擔(dān)保服務(wù)合同2篇
- 2025年度城市出租車特許經(jīng)營權(quán)承包合同3篇
- 2025柴油居間代理服務(wù)及質(zhì)量檢測合同4篇
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 光伏項目風(fēng)險控制與安全方案
- 9.2提高防護(hù)能力教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 催收培訓(xùn)制度
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機(jī)構(gòu)要求》中文版(機(jī)翻)
- 人教版六年級上冊解方程練習(xí)300道及答案
- 2024年廣東省高考地理真題(解析版)
- 2024高考物理廣東卷押題模擬含解析
- 人教版五年級上冊數(shù)學(xué)簡便計算大全600題及答案
- 城市軌道交通的網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)
評論
0/150
提交評論