單片機(jī)課程設(shè)計(jì)報(bào)告智能電風(fēng)煽_第1頁
單片機(jī)課程設(shè)計(jì)報(bào)告智能電風(fēng)煽_第2頁
單片機(jī)課程設(shè)計(jì)報(bào)告智能電風(fēng)煽_第3頁
單片機(jī)課程設(shè)計(jì)報(bào)告智能電風(fēng)煽_第4頁
單片機(jī)課程設(shè)計(jì)報(bào)告智能電風(fēng)煽_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 課題名稱 智能電風(fēng)煽 專 業(yè) 電子信息工程 班 級(jí) 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)老師 _ _ 摘 要本設(shè)計(jì)以80c52單片機(jī)作為智能電風(fēng)扇控制系統(tǒng)的測量和控制核心。采用霍爾集成芯片測量電風(fēng)扇的轉(zhuǎn)速,pwm脈寬調(diào)制技術(shù)控制電機(jī)的轉(zhuǎn)速,用ds18b20溫度傳感器來完成溫度的采集,單片機(jī)通過串行通信來完成電風(fēng)扇轉(zhuǎn)速數(shù)據(jù)處理及轉(zhuǎn)速控制,用液晶12864lcd顯示來實(shí)現(xiàn)人機(jī)交互,采用紅外遙控與接收裝置來完成遙控功能。該系統(tǒng)風(fēng)速調(diào)節(jié)范圍寬、精度高且風(fēng)的舒適度良好、使用起來非常方便。關(guān)鍵字:電風(fēng)扇、單片機(jī)、lcd、無線遙控、ds18b20目 錄一、題目的意義及功能要求.二、系統(tǒng)框架設(shè)計(jì).三、硬件電路設(shè)計(jì)及描述四

2、、軟件流程及描述.五、源代碼六、測試與分析.七、設(shè)計(jì)體會(huì)與總結(jié).一、 題目意義及功能要求作為一種老式家電,電風(fēng)扇具有價(jià)格便宜、擺放方便、體積輕巧等特點(diǎn)。由于大部分家庭消費(fèi)水平的限制,電風(fēng)扇作為一個(gè)成熟的家電行業(yè)的一員,尤其在中小城市,以及鄉(xiāng)村將來一段時(shí)間內(nèi)仍然會(huì)占有市場的大部分份額。 面臨龐大的市場需要的同時(shí),也要提高電風(fēng)扇的市場競爭力。使之在技術(shù)含量上有所提高,應(yīng)使風(fēng)扇不僅功能多樣,操作簡便,而且更加安全可靠。 本設(shè)計(jì)主要目標(biāo)是使普通的電風(fēng)扇的功能更加強(qiáng)大,使操作簡單化、智能化,主要實(shí)現(xiàn)以下幾個(gè)部分的功能:1> 溫度智控功能:風(fēng)扇可以感知環(huán)境的溫度,以調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,達(dá)到更好的工作效果

3、。用戶可以選擇這種智能調(diào)速方式,也可以選擇手動(dòng)設(shè)定方式來控制轉(zhuǎn)速。當(dāng)選擇手動(dòng)設(shè)定方式時(shí),該功能不發(fā)揮作用。2>多級(jí)調(diào)速功能:提供更多的風(fēng)力級(jí)別和風(fēng)型,提高用戶的舒適度。3>液晶顯示功能:使用液晶屏顯示當(dāng)前室溫,風(fēng)扇的轉(zhuǎn)速,風(fēng)扇的工作模式,當(dāng)前時(shí)間,風(fēng)扇工作時(shí)間等參數(shù),美觀大方。4>紅外遙控功能:提供遠(yuǎn)距離非接觸式的風(fēng)扇控制操作。二、 系統(tǒng)框架設(shè)計(jì)1、方案比較a、風(fēng)速轉(zhuǎn)速測量方案一:采用脈沖調(diào)制的紅外發(fā)射接收器。通過在電風(fēng)扇一邊用紅外管發(fā)射脈沖信號(hào),另一邊接收信號(hào),在脈沖被擋和通過的情況下,接收端分別對(duì)應(yīng)低電平和脈沖串,可檢出此信號(hào)的包絡(luò),其頻率的三分之一即相當(dāng)于單位時(shí)間內(nèi)接收

4、到信號(hào)的次數(shù),也即電風(fēng)扇的轉(zhuǎn)速。但此方法接收到的脈沖會(huì)產(chǎn)生抖動(dòng),容易引起誤判,從而導(dǎo)致處理接受信號(hào)次數(shù)出現(xiàn)較大誤差,是電風(fēng)扇轉(zhuǎn)速計(jì)算不準(zhǔn)確,故不采用此方案。方案二:采用霍爾集成傳感器?;魻柤蓚鞲衅魇菍⒒魻栐?、放大器、施密特觸發(fā)器以及輸出電路集成在一塊芯片上,為用戶提供了一種簡化和較完善功能的磁敏傳感器。將磁片貼在電風(fēng)扇葉上,將霍爾集成傳感器固定在扇葉前的保護(hù)架上,由于霍爾效應(yīng),每當(dāng)磁片通過傳感器時(shí),在輸出端就會(huì)產(chǎn)生一個(gè)脈沖,對(duì)該輸出脈沖計(jì)數(shù),即可測出電風(fēng)扇轉(zhuǎn)速。此輸出信號(hào)明快,傳送過程中無抖動(dòng)現(xiàn)象,且功耗低,對(duì)溫度的變化穩(wěn)定,靈敏度于磁場移動(dòng)速度無關(guān),用此方法測出的電風(fēng)扇轉(zhuǎn)速較準(zhǔn)確,故采用

5、此方案。b、轉(zhuǎn)速控制轉(zhuǎn)速控制既是通過控制功率來實(shí)現(xiàn)的。輸入功率大轉(zhuǎn)速快,輸入功率小轉(zhuǎn)速慢。通常調(diào)節(jié)功率的途徑有兩條:一是改變電壓波形的導(dǎo)通角,稱之為調(diào)相:另一個(gè)是波形不變改變其電壓波出現(xiàn)的次數(shù),常稱為脈沖調(diào)功。方案一:采用調(diào)相方式。此方法的優(yōu)點(diǎn)是輸出相對(duì)的連續(xù)、均勻而且調(diào)節(jié)精細(xì)。但有一個(gè)很大的缺點(diǎn)就是不規(guī)則的脈沖電流會(huì)引起輸出畸變及對(duì)負(fù)載產(chǎn)生干擾。方案二:采用脈沖調(diào)功方式。此方法的優(yōu)點(diǎn)是線性度好、抗噪性能強(qiáng)、輸出穩(wěn)定便于微控制器控制。通過比較分析以及綜合考慮系統(tǒng)的要求我們選擇第二種方案。c、顯示界面方案本系統(tǒng)要能夠切換顯示電風(fēng)扇的轉(zhuǎn)速、當(dāng)前溫度、當(dāng)前擋位、工作模式等,要顯示的內(nèi)容較多。方案一:

6、采用led顯示。led只能顯示非常有限的符號(hào)和數(shù)字,對(duì)于本系統(tǒng)如此復(fù)雜的功能是難以實(shí)現(xiàn)的。方案二:采用液晶12864lcd顯示器。可以用中文顯示較為清晰的內(nèi)容,界面良好、直觀。采用此方案來實(shí)現(xiàn)。d、無線控制方案一: 315無線模塊采用平衡傳輸方式,可以實(shí)現(xiàn)多點(diǎn)通信,遙控距離遠(yuǎn),但價(jià)格昂貴。方案二: rs-232是低速率串行單端標(biāo)準(zhǔn),采取不平衡傳輸方式(即所謂單端通信),收、發(fā)端的數(shù)據(jù)信號(hào)是相對(duì)于信號(hào)地的電平而言,其共模抑制能力差,傳送距離短,其為點(diǎn)對(duì)點(diǎn)的通信方式。方案三: 紅外遙控體積小,靈敏度高,外接元件少,抗干擾能力強(qiáng),使用十分方便.且價(jià)格便宜,缺點(diǎn)是遙控距離短,經(jīng)綜合考慮用在本系統(tǒng)上完全

7、能夠滿足要求,所以我們選擇此方案。2、系統(tǒng)總體框圖設(shè)計(jì) 圖1、系統(tǒng)總體框圖三、硬件電路設(shè)計(jì)及描述:硬件電路主要分為主控電路及顯示電路、紅外接收電路、電機(jī)驅(qū)動(dòng)電路、溫度檢測電路等四個(gè)部分。相關(guān)電路可以分為如下幾個(gè)部分:3.1主控電路及顯示電路 采用stc89s52單片機(jī)作為本系統(tǒng)的核心控制部分,既充分的利用了單片機(jī)的各引腳資源基礎(chǔ),又控制了成本。外加振蕩電路采用12mhz高精度的晶振,以獲得較穩(wěn)定時(shí)鐘頻率,減小測量誤差。復(fù)位電路采用按鍵電平復(fù)位電路。p0口作為液晶顯示的數(shù)據(jù)口。具體電路如下圖所示: 圖2、主控電路及顯示電路3.2紅外接收電路 紅外接收電路采取紅外接收器件hs0038,一體化紅外接

8、收頭hs0038價(jià)格便宜,外圍電路簡單,只有三個(gè)引腳,分別為電源、地、數(shù)據(jù)腳,其中數(shù)據(jù)腳與p3.2口相接,通過外部中斷接收紅外遙控信號(hào)。電路圖如下: 3.3電機(jī)驅(qū)動(dòng)電路 l298是sgs公司的產(chǎn)品,可驅(qū)動(dòng)2個(gè)電動(dòng)機(jī),out1,out2和out3,out4之間可分別接電動(dòng)機(jī),本實(shí)驗(yàn)裝置我們選用驅(qū)動(dòng)一臺(tái)電動(dòng)機(jī)。5,7腳分別接單片機(jī)的p1.1和p1.2口,控制電機(jī)的正反轉(zhuǎn)。ena,enb接控制使能端,由于我們只用來驅(qū)動(dòng)一個(gè)電風(fēng)扇的停轉(zhuǎn)。所以用ena接單片機(jī)的p1.0口。電路圖如下所示: 圖4、電機(jī)驅(qū)動(dòng)電路3.4溫度檢測電路 單線數(shù)字溫度傳感器ds18b20 采用一線總線接口,大大節(jié)省了系統(tǒng)的i/o

9、資源。 圖5、溫度檢測電路四、 軟件流程及描述智能電風(fēng)煽支持手動(dòng)和自動(dòng)兩種工作模式,開機(jī)時(shí)默認(rèn)的工作模式為自動(dòng)但總開關(guān)為關(guān),我們可以通過紅外遙控進(jìn)行控制,當(dāng)按下遙控器開關(guān)鍵把總開關(guān)打開時(shí),電風(fēng)扇進(jìn)入自動(dòng)工作模式,通過感知環(huán)境的溫度,以調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,達(dá)到更好的工作效果。用戶可以選擇這種智能調(diào)速方式,也可以選擇手動(dòng)設(shè)定方式來控制轉(zhuǎn)速。當(dāng)選擇手動(dòng)設(shè)定方式時(shí),該功能不發(fā)揮作用。系統(tǒng)在開機(jī)的同時(shí)lcd能顯示出當(dāng)前溫度、工作模式、當(dāng)前擋位等,讓使用者及時(shí)了解系統(tǒng)運(yùn)行前況。4.1系統(tǒng)軟件框圖 圖6、系統(tǒng)軟件框圖4.2、ds18b20測溫程序 ds18b20采用單線制數(shù)據(jù)傳輸,其內(nèi)部數(shù)據(jù)采用兩字節(jié)存儲(chǔ),其中

10、高字節(jié)的低三位和低字節(jié)為溫度數(shù)值大小,高字節(jié)的高五位為符號(hào)位。單片機(jī)溫度采集程序流程圖如下圖。單片機(jī)不斷通過ds18b20獲取外界的溫度值。 ds18b20溫度采集程序流程圖五、 源代碼#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define lcd_data p0 / 液晶引腳定義sbit lcd_rs = p27; sbit lcd_rw = p26; sbit lcd_en = p25; sbit lcd_psb = p24; s

11、bit dq=p16; / ds18b20引腳定義bittflag;sbit en=p10; / 電機(jī)引腳定義sbit c=p11;sbit d=p12;sbit jia_key=p30;/加速鍵sbit jian_key=p31;/減速鍵sbit zongza=p34; /總控制開關(guān)sbit xuan=p36; /模式選擇按鈕uint aa=0;uchar ms=0,temp,num=0,show_num=0,gao_num=1,di_num=3;ucharcodetable=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39 ;uchar c

12、ode hang1="歡迎您使用"uchar code hang2="智能電風(fēng)扇"uchar code hang3="當(dāng)前溫度:"uchar code hang4="度"uchar code hang5="當(dāng)前檔位:"uchar code hang6="檔"uchar code hang7="開關(guān)狀態(tài):"uchar code hang8="開"uchar code hang9="關(guān)"uchar code hang10

13、="工作模式:"uchar code hang11="自動(dòng)"uchar code hang12="手動(dòng)"void delay_ms(unsigned int ms)/延時(shí)函數(shù) 1msunsigned int i,j;for(j=0;j<=ms;j+)for(i=0;i<=120;i+); void delayus(uint t) while(t-);/*歡迎界面*void welcom(void) uchar i; lcd_wcmd(0x91);for(i=0;i<10;i+) lcd_wdat(hang1i);de

14、lay_ms(100);delay_ms(100);lcd_wcmd(0x89);for(i=0;i<10;i+) lcd_wdat(hang2i);delay_ms(100); delay_ms(100); delay_ms(1000); for(i=0;i<2;i+)lcd_wcmd(0x08); /關(guān)顯示delay_ms(700);lcd_wcmd(0x0c); /開顯示delay_ms(700); /* ds18b20函數(shù)*void init_ds18b20(void) / 初始化ds18b20uchar n;dq=1;delayus(8);dq=0;delayus(80)

15、;dq=1;delayus(8);n=dq;delayus(4);void write_byte(uchar dat) /*寫入一個(gè)字節(jié) */uchar i;for(i=0;i<8;i+)dq=0;/delayus(4);dq=dat&0x01;delayus(4);dq=1;dat>>=1;delayus(4); uchar read_byte(void) /讀一個(gè)字節(jié)uchar i,value;for(i=0;i<8;i+)dq=0;value>>=1;dq=1;if(dq) value|=0x80;delayus(4);return value

16、; uchar readtemperature(void)uchar a,b;uchar y1,y2,y3;init_ds18b20(); write_byte(0xcc);/跳過romwrite_byte(0x44);/啟動(dòng)溫度測量delayus(300); init_ds18b20();write_byte(0xcc);/跳過romwrite_byte(0xbe); /讀溫度命令delayus(300);a=read_byte();/讀低8位b=read_byte();/讀高8位if(b&0x80)=0x80) /判斷溫度正負(fù)b=b; /負(fù)溫度處理(ds18b20的負(fù)溫度是正的a=

17、a+1;y1=a>>4;/降低精度(去掉小數(shù)點(diǎn))y2=b<<4; /減小測量范圍(-55°c-99°c)y3=y2|y1;tflag=0;elsey1=a>>4;/降低精度(去掉小數(shù)點(diǎn))y2=b<<4; /減小測量范圍(-55°c-99°c)y3=y2|y1;tflag=1; return y3;/* 電機(jī)控制模塊*void su_du_zhuan_huan() /根據(jù)速度標(biāo)志進(jìn)行數(shù)據(jù)處理switch(num)case 0: show_num=1;/數(shù)碼管第一位顯示的數(shù)據(jù) gao_num=2;/pwm信號(hào)中

18、高電平持續(xù)時(shí)間標(biāo)志為1 di_num=6;/pwm信號(hào)中低電平持續(xù)時(shí)間標(biāo)志為3, break;case 1: show_num=2;/數(shù)碼管第一位顯示的數(shù)據(jù) gao_num=4;/pwm信號(hào)中高電平持續(xù)時(shí)間標(biāo)志為2 di_num=4;/pwm信號(hào)中低電平持續(xù)時(shí)間標(biāo)志為2 break;case 2: show_num=3;/數(shù)碼管第一位顯示的數(shù)據(jù) gao_num=6;/pwm信號(hào)中高電平持續(xù)時(shí)間標(biāo)志為3 di_num=2;/pwm信號(hào)中低電平持續(xù)時(shí)間標(biāo)志為1 break;case 3: show_num=4;/數(shù)碼管第一位顯示的數(shù)據(jù) gao_num=8;/pwm信號(hào)中高電平持續(xù)時(shí)間標(biāo)志為4 di

19、_num=0;/pwm信號(hào)中低電平持續(xù)時(shí)間標(biāo)志為0 break;void qudong() /控制電機(jī)程序uchar i;if(di_num!=0)for(i=0;i<di_num;i+)c=0; /實(shí)現(xiàn)pwm信號(hào)低電平輸出display(); /利用顯示函數(shù)起延時(shí)作用,這樣也不影響數(shù)for(i=0;i<gao_num;i+)c=1;/實(shí)現(xiàn)pwm信號(hào)高電平輸出display();void key() /按鍵檢測處理函數(shù)if(jia_key=0)delay_ms(5); /消抖if(jia_key=0)num+; /加速鍵按下,速度標(biāo)志加1if(num=4)num=3; /已經(jīng)達(dá)到3

20、,就保持while(jia_key=0) ; /等待按鍵松開if(jian_key=0)delay_ms(5);if(jian_key=0)if(num!=0) /減速鍵按下,速度標(biāo)志減1num-;elsenum=0; /已經(jīng)達(dá)到最小則保持while(jian_key=0);/* 溫度控制*void wendu(void)if(temp>38) num=3;else if(temp>32) num=2;else if(temp>26) num=1;else if(temp>20) num=0;else en=0;/* 總開關(guān)控制*void sw(void)uchar i

21、;if(zongza=0) delay_ms(5); /消抖if(zongza=0)aa+; while(zongza=0) ; /等待按鍵松開if(aa%2!=0) en=1;lcd_wcmd(0x8f); for(i=0;i<2;i+) lcd_wdat(hang8i);delay4us(); if(aa%2=0) en=0;lcd_wcmd(0x8f); for(i=0;i<2;i+) lcd_wdat(hang9i);delay4us(); /* 模式選擇*void chose(void)if(xuan=0) delay_ms(5); /消抖if(xuan=0)ms+;if

22、(ms=2) ms=0; while(zongza=0) ; /等待按鍵松開void main()/ 主函數(shù)uchar i;en=0;d=0; lcd_psb=1; / 選擇顯示模式為串行通信模式lcd_init(); /初始化液晶,清屏ddramwelcom();/歡迎界面lcd_wcmd(0x01);/清屏while(1)lcd_wcmd(0x01);/清屏temp=readtemperature(); /讀取溫度delay_ms(5);sw();chose();if(ms=0)wendu();lcd_wcmd(0x9e); for(i=0;i<4;i+) lcd_wdat(hang11i);delay4us(); if(ms=1)key();lcd_wcmd(0x9e); for(i=0;i<4;i+) lcd_wdat(hang12i);delay4us(); su_du_zhuan_huan();qudong();display(); /送12864顯示delay_ms(5); clear_gdram();六、 測試與分析1、 測試儀器示波器:tektronix tds1002萬用表:fluke 17b2、 指

溫馨提示

  • 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)論