【基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)6800字(論文)】_第1頁(yè)
【基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)6800字(論文)】_第2頁(yè)
【基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)6800字(論文)】_第3頁(yè)
【基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)6800字(論文)】_第4頁(yè)
【基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)6800字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于單片機(jī)的智能溫控風(fēng)扇的設(shè)計(jì)摘要:現(xiàn)如今智能家居產(chǎn)業(yè)的發(fā)展一日千里,給使用者帶來(lái)非常舒適的體驗(yàn)。為了使風(fēng)扇更加智能與實(shí)用,本設(shè)計(jì)對(duì)風(fēng)扇控制器部分進(jìn)行重新設(shè)計(jì),實(shí)現(xiàn)風(fēng)扇轉(zhuǎn)速隨溫度變化自動(dòng)調(diào)節(jié),從而提高用戶使用風(fēng)扇時(shí)的舒適性。目前在網(wǎng)上查閱相關(guān)設(shè)計(jì),大多為使用單片機(jī)來(lái)自動(dòng)控制風(fēng)扇轉(zhuǎn)速,而無(wú)法使用手機(jī)APP來(lái)控制,這就造成無(wú)法讓風(fēng)扇隨用戶主觀意愿來(lái)調(diào)節(jié)。本設(shè)計(jì)增加手機(jī)APP中的手動(dòng)模式,使用此模式時(shí)風(fēng)扇不再受傳感器控制而是由用戶控制。本設(shè)計(jì)將先進(jìn)行框架思路設(shè)計(jì),之后部署好開(kāi)發(fā)環(huán)境,再選擇易用的元器件,逐個(gè)編寫(xiě)模塊代碼,如溫度獲取模塊,液晶顯示模塊等,同時(shí)對(duì)不合適的元器件進(jìn)行優(yōu)缺點(diǎn)比較并確定是否更換,最后將各個(gè)分立模塊整合。預(yù)期效果為手機(jī)APP中可以看到兩種模式并進(jìn)行選擇:使用自動(dòng)模式時(shí),單片機(jī)根據(jù)溫度變化自動(dòng)控制風(fēng)扇;當(dāng)使用手動(dòng)模式時(shí),則單片機(jī)受用戶手機(jī)APP控制再而控制風(fēng)扇轉(zhuǎn)速。關(guān)鍵詞:89C52單片機(jī);自動(dòng)調(diào)溫;風(fēng)扇;藍(lán)牙目錄TOC\o"1-3"\h\u1.引言 11.1.研究背景 11.2.方案流程圖 12.開(kāi)發(fā)工具(軟件)簡(jiǎn)介 22.1.KeilμVision5 22.2.AndroidStudio 23.硬件介紹 43.1.STC89C52RC單片機(jī) 43.1.1.STC89C52RCMCU介紹 43.1.2.使用方法 43.2.DS18B20溫度傳感器 43.2.1.DS18B20溫度傳感器介紹 43.2.2.使用方法 53.3.LCD1602液晶顯示模塊 73.3.1.LCD1602液晶顯示模塊介紹 73.3.2.使用方法 83.4.HC-06藍(lán)牙模塊 93.4.1.HC-06藍(lán)牙模塊介紹 93.4.2.使用方法 93.5.色環(huán)電阻 93.5.1.色環(huán)電阻介紹及分辨方法 94.電路設(shè)計(jì)原理 114.1.總體概括 114.2.單片機(jī)最小系統(tǒng) 134.3.風(fēng)扇電路 134.4.其他電路 145.APP與藍(lán)牙通訊 155.1.APP調(diào)試工具 155.2.權(quán)限 155.3.布局 155.3.1.主頁(yè)面 155.3.2.設(shè)備列表頁(yè)面 165.4.藍(lán)牙模塊使用方法 166.調(diào)試 197.總結(jié) 20參考文獻(xiàn) 21附錄單片機(jī)主程序 22引言研究背景隨著移動(dòng)通信技術(shù)的發(fā)展,設(shè)備與設(shè)備之間的傳輸時(shí)延越來(lái)越低、丟包率越來(lái)越小。并且隨著國(guó)家對(duì)通信基站建設(shè)任務(wù)的進(jìn)一步加強(qiáng),以及家用無(wú)線路由器的普及,通信設(shè)備變得更容易接入互聯(lián)網(wǎng)。這就使智能家居產(chǎn)品越來(lái)越普及、實(shí)惠,并且這些產(chǎn)品極大的提高了用戶的生活質(zhì)量。用戶可以在燈、空調(diào)、熱水器、窗簾等家電上加入傳感器以及自動(dòng)控制芯片,使它們根據(jù)環(huán)境的變化完成不同的操作,解放雙手。作為家居產(chǎn)品,不可能使用PC或者手機(jī)那樣體積大且價(jià)格較高的CPU,本設(shè)計(jì)主控制器用的是MCS-51單片機(jī),這種超小型化的單片機(jī),具有體積小、價(jià)格低和RAM、ROM、I/O接口等資源齊全的顯著優(yōu)點(diǎn)[1];使用DS18B20芯片作為溫度獲取傳感器。當(dāng)用戶不想動(dòng)手或者由于其他原因騰不出手去控制設(shè)備時(shí),讓風(fēng)扇根據(jù)溫度自動(dòng)調(diào)節(jié)轉(zhuǎn)速,這是手動(dòng)模式;而當(dāng)用戶對(duì)當(dāng)前自動(dòng)風(fēng)速不滿意時(shí),可以通過(guò)APP來(lái)控制,這是手動(dòng)模式。手機(jī)與單片機(jī)間通信有兩種常見(jiàn)的方式:藍(lán)牙(如HC-05芯片)和WIFI(如ESP8266芯片)。對(duì)于使用ESP8266,可以在局域網(wǎng)內(nèi)通訊或者非同一局域網(wǎng)通訊,但缺點(diǎn)是在與單片機(jī)連接時(shí),會(huì)切斷正常使用的WIFI,影響正在使用的APP尤其是即時(shí)通訊類APP的信息接收與發(fā)送,藍(lán)牙芯片及藍(lán)牙功能存在于手機(jī)并且多數(shù)情況下處在閑置的狀態(tài),又因?yàn)樗{(lán)牙芯片價(jià)格低廉,本設(shè)計(jì)使用了藍(lán)牙通信方式。方案流程圖整體設(shè)計(jì)流程如圖1.1所示:DDS18B20初始化手動(dòng)模式DS18B20手動(dòng)模式DS18B20初始化初始化APP控制APP控制自動(dòng)模式傳感器控制 模式判斷自動(dòng)模式傳感器控制圖1.1方案流程圖開(kāi)發(fā)工具(軟件)簡(jiǎn)介KeilμVision52013年,美國(guó)的KeilSoftware公司設(shè)計(jì)并且面向全球硬件開(kāi)發(fā)者發(fā)布了KeilμVision5軟件,KeilμVision軟件是51型單片機(jī)開(kāi)發(fā)工具,并且用戶在進(jìn)行硬件開(kāi)發(fā)時(shí)可以使用C語(yǔ)言,非常方便,Keil被國(guó)內(nèi)80%以上電子工程師所使用,現(xiàn)如今在大學(xué)校內(nèi)仍是主流的硬件開(kāi)發(fā)工具。官網(wǎng):/官網(wǎng)首頁(yè)如圖2.1所示:圖2.1Keil官網(wǎng)AndroidStudioAndroidStudio是美國(guó)Google公司推出的安卓集成開(kāi)發(fā)工具,運(yùn)行速度快,安裝簡(jiǎn)單,可以自動(dòng)下載程序開(kāi)發(fā)時(shí)所要用到的環(huán)境依賴包,并且提供了強(qiáng)大的UI界面,能夠?qū)崟r(shí)展示頁(yè)面布局,對(duì)新手友好。官網(wǎng):/studio/AndroidStudio開(kāi)發(fā)工具主頁(yè)面如圖2.2所示:圖2.2AndroidStudio主頁(yè)面圖

硬件介紹STC89C52RC單片機(jī)STC89C52RCMCU介紹STC89C52MCU價(jià)格低、功耗低,抗干擾性與抗靜電能力強(qiáng),并且可靠性高,單片機(jī)具有40個(gè)管腳,且有32個(gè)I/O管腳,供單片機(jī)與外部設(shè)備連接、數(shù)據(jù)交換使用。MCS-51單片機(jī)由英特爾設(shè)計(jì),著名半導(dǎo)體公司TI、Atmel、NXP以及國(guó)內(nèi)的宏晶公司仍在生產(chǎn)基于51內(nèi)核結(jié)構(gòu)多種類型的單片機(jī)[2]。MCS-51單片機(jī)中采用CHMOS工藝生產(chǎn)的單片機(jī)在命名編號(hào)中加C來(lái)區(qū)分,如80C51。單片機(jī)與DIP封裝示意圖如下:圖3.1單片機(jī)與DIP封裝示意圖使用方法正極VCC與負(fù)極VSS管腳分別是40、20,分布在單片機(jī)的兩個(gè)對(duì)角位置,將其接規(guī)定電源即可供電。為了防止程序跑飛無(wú)法恢復(fù)需要將復(fù)位按鍵接入到9號(hào)腳,還需有晶振提供時(shí)鐘,晶振兩端分別接到19、20號(hào)腳。單片機(jī)必須執(zhí)行特定的程序才能實(shí)現(xiàn)用戶的要求,因此HEX文件燒錄軟件也是必不可少的,通常廠商會(huì)提供燒錄軟件以及連接電腦用到的驅(qū)動(dòng)程序。DS18B20溫度傳感器DS18B20溫度傳感器介紹硬件開(kāi)發(fā)時(shí)常用的溫度傳感器是DS18B20晶片,此元件硬件接口極其簡(jiǎn)單,并且精度很高,只有兩條電源線以及一條數(shù)據(jù)線,但是硬件的簡(jiǎn)單帶來(lái)了使用復(fù)雜的問(wèn)題。通過(guò)“1-Wire”協(xié)議可以只使用一條數(shù)據(jù)線實(shí)現(xiàn)單片機(jī)與溫度傳感器的半雙工雙向通信功能,可與此傳感器通信以讀取溫度。因?yàn)椴还苁亲x還是寫(xiě)操作都是在同一條線上傳遞信息,所以對(duì)時(shí)間要求非常嚴(yán)格。使用方法初始化,檢測(cè)傳感器是否存在單片機(jī)首先拉高數(shù)據(jù)線電平,做好準(zhǔn)備,稍微延時(shí)后就將電平拉低,將低電平狀態(tài)維持550微秒左右,然后拉高,此時(shí)就會(huì)產(chǎn)生一個(gè)上升沿脈沖,如果傳感器檢測(cè)到此脈沖,它將會(huì)在15至60微秒后產(chǎn)生低電平信號(hào)回應(yīng),此時(shí)需要將單片機(jī)IO口狀態(tài)調(diào)整為讀取,如果讀到了此回應(yīng),說(shuō)明傳感器存在,也就是初始化成功,初始化時(shí)序圖如圖3.2所示。圖3.2初始化時(shí)序初始化模塊源碼[3]: unsignedintDS18B20_Init(void){ unsignedintstate=0; DS1=1;//做好準(zhǔn)備 DS18B20_Delay(10);//稍做延時(shí) DS1=0;//拉低DS18B20數(shù)據(jù)線 DS18B20_Delay(80);//保持 DS1=1;//釋放 DS18B20_Delay(15);//稍做延時(shí) state=DS1; //state值為"0"代表初始化成功,否則失敗DS18B20_Delay(20); return(~state);}DS18B20的寫(xiě)數(shù)據(jù)操作寫(xiě)數(shù)據(jù)也是通過(guò)一個(gè)特定的時(shí)序來(lái)完成的,當(dāng)傳感器感知到對(duì)應(yīng)時(shí)序,就會(huì)寫(xiě)入1或0。首先單片機(jī)將數(shù)據(jù)線拉低并且持續(xù)1微秒以上,產(chǎn)生一個(gè)寫(xiě)數(shù)據(jù)信號(hào),寫(xiě)一個(gè)字節(jié)的周期在60微秒到120微秒之間,如果需要寫(xiě)入1,就在1微秒后拉高電平,如果是寫(xiě)0就保持低電平不動(dòng),一直持續(xù)到本周期結(jié)束。寫(xiě)入模塊源碼局部:for(i=8;i>0;i--) { DS1=0; DS1=dat2&0x01; DS18B20_Delay(5); DS1=1; dat2>>=1; }DS18B20的讀數(shù)據(jù)操作:讀數(shù)據(jù)與寫(xiě)數(shù)據(jù)非常相似,只是收發(fā)數(shù)據(jù)的主體交換,仍然是主機(jī)將數(shù)據(jù)線拉低1微秒后釋放,傳感器感知到此讀取信號(hào)后就開(kāi)始發(fā)送數(shù)據(jù),若要發(fā)送0就持續(xù)將數(shù)據(jù)線拉低,若要發(fā)送1就持續(xù)拉高數(shù)據(jù)線直到此周期結(jié)束。然后單片機(jī)在15微秒內(nèi)讀取數(shù)據(jù)。讀取模塊源碼局部:for(i=8;i>0;i--) { DS1=0;//信號(hào) dat1>>=1; DS1=1;//信號(hào) if(DS1)dat1|=0x80; DS18B20_Delay(5); } returndat1;LCD1602液晶顯示模塊LCD1602液晶顯示模塊介紹LCD1602是2x16字符型液晶顯示模塊,可以顯示兩行,每行16個(gè)字符,采用5x7點(diǎn)陣顯示[4],1602的控制器大部分為HD44780驅(qū)動(dòng)芯片。此模塊分為不帶和帶字庫(kù)兩種,帶字庫(kù)的偏厚一些。使用時(shí)首先設(shè)置要顯示的坐標(biāo),再設(shè)置要顯示的內(nèi)容,即可顯示用戶想要的字符。1602液晶主要參數(shù)如下表:顯示容量16x2個(gè)字符芯片工作電壓4.5~5.5V字符尺寸2.0mA(5.0V)模塊最佳工作電壓5.0V字符尺寸2.95x4.35mm(寬乘高)表3.11602液晶主要參數(shù)LCD1602液晶顯示模塊引腳說(shuō)明如下表:編號(hào)符號(hào)功能編號(hào)符號(hào)功能1VSS電源地6E使能2VDD電源正極7~14Di數(shù)據(jù)3VL液晶顯示偏壓15BLA背光正極4RS數(shù)據(jù)命令選擇16BLK背光負(fù)極5R/W讀寫(xiě)選擇表3.2LCD1602液晶顯示模塊引腳說(shuō)明如果在使用中,所有邏輯都正確但是不顯示字符,應(yīng)該檢查VL腳,這一腳控制背景光,應(yīng)該將所連電阻分別劃到最大值或者最小值檢查是否可以正常顯示,接線圖如下:圖3.3LCD接線圖使用方法開(kāi)始LCD初始化延時(shí)設(shè)置第i行開(kāi)始LCD初始化延時(shí)設(shè)置第i行顯示位置設(shè)置第i行顯示數(shù)據(jù)圖3.4LCD1602使用方法流程圖LCD1602液晶寫(xiě)入字符程序:voidLCD_Write_Char(unsignedchara,unsignedcharb,unsignedcharData){ if(b==0) { LCD1602_Write_Com(0x80+a); } else { LCD1602_Write_Com(0xC0+a); } LCD1602_Write_Data(Data);}HC-06藍(lán)牙模塊HC-06藍(lán)牙模塊介紹常見(jiàn)且使用較為廣泛的藍(lán)牙模塊有HC-06與HC-05,它們都是藍(lán)牙串口模塊,HC-05更貴一些,功能也更多一些,它可以作為主機(jī)向從機(jī)發(fā)送指令,也可以作為從機(jī)接收主機(jī)的指令。對(duì)于HC-06僅僅有從機(jī)模式。此模塊板載PCB天線,空曠的環(huán)境下能達(dá)到10米通信距離甚至能超過(guò)10米。HC-06模塊的第24腳LED燈常量代表配對(duì)成功。使用方法給模塊供電但不對(duì)它進(jìn)行連接會(huì)自動(dòng)進(jìn)去AT模式,可以通過(guò)專用數(shù)據(jù)線向它發(fā)送指令修改名字和密碼,AT模式常用指令與功能如下:指令返回功能ATOK確認(rèn)連接AT+VERSIONOKlinvorV1.8查看版本AT+NAMExxxxOKsetname設(shè)置藍(lán)牙名稱AT+PINxxxxOKsetPIN設(shè)定密碼AT+BAUD1OK1200波特率設(shè)為1200AT+BAUD2OK2400波特率設(shè)為2400AT+BAUD3OK4800波特率設(shè)為4800AT+BAUD4OK9600波特率設(shè)為9600AT+BAUD5OK19200波特率設(shè)為19200AT+BAUD6OK38400波特率設(shè)為38400AT+BAUD7OK57600波特率設(shè)為57600AT+BAUD8OK115200波特率設(shè)為115200表3.3藍(lán)牙模塊AT模式常用指令與功能APP實(shí)現(xiàn)通訊見(jiàn)本文5.3節(jié)藍(lán)牙模塊使用方法。色環(huán)電阻色環(huán)電阻介紹及分辨方法色環(huán)電阻是在封裝時(shí)涂上一層帶有顏色材料的電阻,用戶可以根據(jù)色環(huán)的顏色快速并且方便的讀出阻值,色環(huán)電阻阻值較大,在高度集成的電路中不適用,但是用在本設(shè)計(jì)中完全沒(méi)有問(wèn)題。對(duì)于四環(huán)電阻:前兩個(gè)色環(huán)按照以下數(shù)值對(duì)應(yīng)關(guān)系讀數(shù):第3環(huán)表示10的冪數(shù),最后一環(huán)代表誤差。誤差環(huán)通常是金色、銀色、棕色之一,金色誤差為百分之五,銀色誤差為百分之十,棕色誤差為百分之一,無(wú)色的誤差為百分之二十,軍用精密電阻誤差環(huán)用綠色表示。色環(huán)顏色對(duì)應(yīng)的誤差如下:例:綠紅黃銀即:52*104=520KΩ誤差10%。對(duì)于五環(huán)電阻:前三環(huán)表示數(shù)字,按照1中的對(duì)照關(guān)系讀數(shù),第四第五環(huán)同上。三環(huán)電阻誤差是20%(無(wú)色)。

電路設(shè)計(jì)原理總體概括總體電路圖如圖3.7所示圖3.7總體電路圖本設(shè)計(jì)以單片機(jī)作為核心,并設(shè)計(jì)了interrupt1定時(shí)器中斷與interrupt4串口中斷,在選擇手動(dòng)模式時(shí),串口中斷服務(wù)函數(shù)實(shí)時(shí)檢測(cè)藍(lán)牙模塊傳遞過(guò)來(lái)的數(shù)據(jù),在本設(shè)計(jì)中,分別以APP通過(guò)藍(lán)牙串口向單片機(jī)發(fā)送a、b、c、d、e、f六個(gè)字母代表手動(dòng)模式、自動(dòng)模式、風(fēng)扇加速、減速、風(fēng)扇關(guān)、開(kāi)六個(gè)狀態(tài),檢測(cè)函數(shù)源碼如下:/*串口服務(wù)函數(shù)*/voidtime()interrupt4{ if(RI) { RI=0; switch(SBUF) { case'a':Ctrl_Mode=0;set=0;break;//手動(dòng) case'b':Ctrl_Mode=1;set=0;break;//自動(dòng) case'c':set++;break; case'd':set--;break; case'e':set=0;break; case'f':set=10;break; } } } 風(fēng)扇轉(zhuǎn)速由定時(shí)器中斷服務(wù)函數(shù)來(lái)控制,沒(méi)有專門編寫(xiě)PWM脈寬調(diào)制函數(shù),本設(shè)計(jì)共設(shè)定了6個(gè)檔位,0檔位停止即關(guān)閉檔,并且可以使用APP中的加速、減速按鈕來(lái)調(diào)節(jié)檔位。在自動(dòng)模式中,若判斷為溫度小于10℃,則自動(dòng)調(diào)為0檔位且風(fēng)扇停止,大于等于10攝氏度且小于15攝氏度時(shí)為1檔,以此每增加5攝氏度增加一個(gè)檔位。風(fēng)扇風(fēng)速調(diào)節(jié)的原理是:設(shè)定一個(gè)參考值比如10,定義一個(gè)初值為零的unsignedchar型變量count,在定時(shí)器中斷服務(wù)函數(shù)中,比較count與檔位(比如3檔)的大小,若相等則風(fēng)扇停止,之后count進(jìn)行一次自增再與10進(jìn)行比較,若count增到與10相等則打開(kāi)風(fēng)扇同時(shí)對(duì)count賦0值,這樣使得變量count在0到檔位(比如3檔)之間是開(kāi)啟狀態(tài),檔位到10之間是關(guān)閉狀態(tài),因此檔位越高風(fēng)速越快。代碼如下:voidtimer()interrupt1{ TH0=(65536-1000)/256; TL0=(65536-1000)%256; if(count==set) {Fan1=1; } count++; if(count==refer) { count=0; if(set!=0) Fan1=0; }}單片機(jī)最小系統(tǒng)[5]電源:為MCU提供能量。晶振電路:由晶振與電容組成,在程序運(yùn)行中要有先后順序,還需要有計(jì)時(shí)程序,因此晶振電路來(lái)提供此服務(wù)。復(fù)位電路:當(dāng)單片機(jī)開(kāi)機(jī)時(shí),要進(jìn)行一個(gè)初始化過(guò)程,這屬于上電復(fù)位;當(dāng)單片機(jī)受不明因素跑飛時(shí),需要一個(gè)按鍵,按一下此按鈕以使單片機(jī)重新運(yùn)行,本設(shè)計(jì)將會(huì)使用一個(gè)四角按鍵作為復(fù)位按鈕;往往單片機(jī)還有自動(dòng)復(fù)位機(jī)制。風(fēng)扇電路風(fēng)扇電路如下圖所示,為了方便連接,本設(shè)計(jì)使用了USB-A口插針式的風(fēng)扇,USB-A端口共四條電纜,分別是電源正、電源負(fù)、以及兩條數(shù)據(jù)線,本設(shè)計(jì)只使用兩條電源線即可。端口母座的負(fù)極已經(jīng)接好,對(duì)于正極,為了避免單片機(jī)IO口供電能力不足的問(wèn)題,采用了一個(gè)由PNP三極管構(gòu)成的簡(jiǎn)易電路來(lái)實(shí)現(xiàn),電路圖如下:圖3.8風(fēng)扇電路PNP晶體管是半導(dǎo)體基本元器件中比較重要的,有放大,飽和,截止三種工作情形,以下圖為例,晶體管經(jīng)過(guò)一個(gè)1K的限壓電阻接到單片機(jī)上(本設(shè)計(jì)接到了P2.0口上),發(fā)射極已經(jīng)接到電源,集電極接到了風(fēng)扇接口母座的電源正極接線端,如果單片機(jī)P2.0口給出高電平信號(hào)“1”時(shí),此時(shí)發(fā)射極與基極之間沒(méi)有壓降,晶體管就不會(huì)導(dǎo)通,風(fēng)扇母座正極這條線路可以看做是開(kāi)路的因此風(fēng)扇不會(huì)工作,如果單片機(jī)P2.0口給出低電平,那么將產(chǎn)生壓降,并且晶體管處于導(dǎo)通狀態(tài),風(fēng)扇可以正常工作。其他電路為了設(shè)計(jì)需要,還設(shè)計(jì)了一些其它的電路,比如用來(lái)指示工作狀態(tài)(手動(dòng)模式與自動(dòng)模式)的LED燈電路,它們連接到了MCU的P2.1口與P2.2口;還有為使用DS18B20傳感器而設(shè)計(jì)的電路,它的數(shù)據(jù)線引腳連接到了MCU的P1.3口;為了方便供電,還設(shè)計(jì)了電源電路等。

APP與藍(lán)牙通訊APP調(diào)試工具在進(jìn)行Android開(kāi)發(fā)時(shí),一定會(huì)遇到程序調(diào)試問(wèn)題,本設(shè)計(jì)在安卓程序設(shè)計(jì)中使用逍遙模擬器進(jìn)行程序調(diào)試,在開(kāi)發(fā)完成之后再將程序安裝在手機(jī),這樣可以避免程序設(shè)計(jì)錯(cuò)誤對(duì)手機(jī)帶來(lái)的不良影響,并且模擬器直接安裝在PC機(jī)上,更加方便。除此之外,AndroidStudio官方也提供了模擬器,但是運(yùn)行比較緩慢,本設(shè)計(jì)沒(méi)有使用。權(quán)限隨著用戶對(duì)隱私越來(lái)越重視,應(yīng)用程序如果要使用一些硬件設(shè)備,必須要申請(qǐng)權(quán)限,防止信息泄露,使用藍(lán)牙要申請(qǐng)如下:BLUETOOTHBLUETOOTH_ADMINACCESS_COARSE_LOCATION在安卓6.0以前的版本中,只需要申請(qǐng)前兩者,在“Manifest”文件中申請(qǐng)即可;在6.0以后的版本中,需要在手機(jī)開(kāi)啟位置服務(wù)的前提下動(dòng)態(tài)申請(qǐng),需要加如下權(quán)限:<uses-permission-sdk-23android:name="android.permission.ACCESS_COARSE_LOCATION"/>布局主頁(yè)面在進(jìn)行頁(yè)面布局開(kāi)發(fā)時(shí),可以將工程切換成Project視圖,找到.xml文件,并將工作區(qū)選為Spilt結(jié)構(gòu),同時(shí)顯示代碼與視圖元素,這樣非常方便。主頁(yè)面圖如圖4.1所示,可以看到在主頁(yè)面中分為五部分:實(shí)時(shí)溫度顯示部分,工作模式選擇部分,手動(dòng)模式參數(shù)設(shè)置部分,以及l(fā)ogo、查找設(shè)備。用戶打開(kāi)APP進(jìn)入此頁(yè)面,此時(shí)可以看到實(shí)時(shí)溫度,并根據(jù)需要選擇工作模式,并可以手動(dòng)調(diào)節(jié)速度。圖4.1APP主頁(yè)面圖圖4.2APP搜索藍(lán)牙設(shè)備頁(yè)面設(shè)備列表頁(yè)面當(dāng)用戶點(diǎn)擊主頁(yè)面中的連接設(shè)備按鈕后,會(huì)跳出窗口形式的頁(yè)面,如上圖4.2所示,點(diǎn)擊搜索設(shè)備,后臺(tái)會(huì)搜索周圍藍(lán)牙設(shè)備,并把新搜索到的設(shè)備顯示在左列,已配對(duì)過(guò)的設(shè)備顯示在右列,共用戶選擇。藍(lán)牙模塊使用方法流程概括:首先判斷設(shè)備是否支持藍(lán)牙,若不支持,拋出提示信息并結(jié)束,若支持,則下一步檢查藍(lán)牙功能是否處于開(kāi)啟狀態(tài),如果未開(kāi)啟,提示用戶打開(kāi)藍(lán)牙開(kāi)關(guān),待藍(lán)牙打開(kāi)后,需要搜索設(shè)備,搜索設(shè)備時(shí)分別可以搜索到已連接過(guò)、未連接過(guò)的設(shè)備,如果搜索到設(shè)備,系統(tǒng)會(huì)以廣播的方式將信息傳給APP,因此要注冊(cè)廣播接收器,到搜索結(jié)束時(shí)銷毀,在實(shí)際邏輯中,搜索到設(shè)備后需要用戶進(jìn)行選擇,因此在搜索前需要?jiǎng)?chuàng)建設(shè)備顯示頁(yè)面和取消搜索按鈕,用戶選擇設(shè)備后建立連接通信,發(fā)送數(shù)據(jù)。判斷開(kāi)啟狀態(tài)并跳轉(zhuǎn)的方法:publicvoidonClick(Viewv){ if(wfu_bluetooth.isEnabled()==false){//未開(kāi)啟,則提示 Toast.makeText(BTClient.this,"請(qǐng)打開(kāi)藍(lán)牙開(kāi)關(guān)...",Toast.LENGTH_LONG).show(); return; } /*跳轉(zhuǎn)到DeviceListActivity進(jìn)行搜索*/ if(wfu_socket==null){ IntentserverIntent=newIntent(BTClient.this,DeviceListActivity.class); startActivityForResult(serverIntent,REQUEST_CONNECT_DEVICE); } else{ /*關(guān)閉連接socket*/ try{ Data_in.close(); wfu_socket.close(); wfu_socket=null; Flag=false; }catch(IOExceptione){} } return; }查找與搜索設(shè)備方法局部:publicvoidonReceive(Contextcontext,Intentintent){

Stringaction=intent.getAction();

StringNoDevice="沒(méi)有找到";

if(BluetoothDevice.ACTION_FOUND.equals(action)){

BluetoothDevicedevice=intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

if(device.getBondState()!=BluetoothDevice.BOND_BONDED){

WFUDeviceAdapter.add(device.getName()+"\n"+device.getAddress());

}else{

mPairedDevicesArrayAdapter.add(device.getName()+"\n"+device.getAddress());

}

}elseif(BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)){

setProgressBarIndeterminateVisibility(false);

setTitle("請(qǐng)選擇:");

if(WFUDeviceAdapter.getCount()==0){

WFUDeviceAdapter.add(NoDevice);

}

}

}

調(diào)試本設(shè)計(jì)調(diào)試使用的是普中科技試驗(yàn)儀HC6800-EM3V2.2版本,在試驗(yàn)儀中,LCD1602的RD、WR、LCDE引腳已經(jīng)接好到P26、P25、P27腳,數(shù)據(jù)線已經(jīng)接好到P0口,溫度數(shù)據(jù)線接好到P37口,因此在調(diào)試時(shí)要修改源代碼中的引腳對(duì)應(yīng)關(guān)系以匹配試驗(yàn)儀中的真實(shí)電路。測(cè)試時(shí),對(duì)P1.1口賦值為“1”產(chǎn)生高電平作為5V電源使用,以LED燈代表風(fēng)扇,接入到電路中可以看到在檔位變化時(shí),LED燈有輕微閃爍,并且LCD數(shù)字有變化,符合實(shí)驗(yàn)時(shí)房間溫度正常值,代表風(fēng)扇調(diào)速功能正常以及顯示功能正常,另一顆LED燈接入到自動(dòng)模式指示電路,可以看到LED燈亮,指示電路沒(méi)有問(wèn)題。藍(lán)牙模塊測(cè)試將在手機(jī)上調(diào)試。圖6.1單片機(jī)實(shí)驗(yàn)箱調(diào)試圖

總結(jié)本次設(shè)計(jì)以51單片機(jī)為“大腦”,輔以所需的電路部分,在實(shí)現(xiàn)必要功能的基礎(chǔ)上做到了低成本,在價(jià)格上具有可行性,并且設(shè)計(jì)的功能合理,符合需求,在設(shè)計(jì)邏輯上也可行。單片機(jī)電流驅(qū)動(dòng)能力較小,因此多數(shù)將元器件負(fù)極接到單片機(jī)。在設(shè)計(jì)程序時(shí),需要仔細(xì)思考程序執(zhí)行流程邏輯,例如,隨著加速按鈕的點(diǎn)擊,set的值不斷增加,但它不可能會(huì)超過(guò)參考值,因此要想修改風(fēng)扇調(diào)節(jié)精度,就需要多方面思考,還有一些延遲程序,在數(shù)據(jù)交換時(shí)要求非常精確,需要嚴(yán)格控制,在Android程序設(shè)計(jì)方面,比如用戶點(diǎn)擊搜索時(shí),可能系統(tǒng)并未打開(kāi)藍(lán)牙開(kāi)關(guān),此時(shí)需要有提示,否則用戶會(huì)認(rèn)為按鍵失靈。在硬件設(shè)計(jì)方面,需要注意元件的工作電壓,防止供電不足而無(wú)法工作的現(xiàn)象,也要兼顧電流太大會(huì)擊穿元器件的問(wèn)題,作為一個(gè)長(zhǎng)期通電的系統(tǒng),散熱是設(shè)計(jì)中非常重要的一項(xiàng),如果散熱效果差,又長(zhǎng)期運(yùn)行,極有可能會(huì)燒毀電路引起火災(zāi)。這次設(shè)計(jì)過(guò)程中,所用到知識(shí)都可以在大學(xué)課程中找到,通過(guò)這次設(shè)計(jì),更加深刻理解了單片機(jī)的工作原理,各種中斷的機(jī)制,也更加熟悉了模擬電路的部分內(nèi)容,對(duì)于Android程序設(shè)計(jì),學(xué)到了更多環(huán)境配置的知識(shí)與糾錯(cuò)的本領(lǐng)。

參考文獻(xiàn)[1]曹建樹(shù).單片機(jī)原理與應(yīng)用實(shí)例[M].北京:機(jī)械工業(yè)出版社,2014年.[2]毋茂盛.單片機(jī)原理與開(kāi)發(fā)[M].北京:高等教育出版社,2015.2.[3]王冬星,許有軍.單片機(jī)技術(shù)及51仿真與應(yīng)用[M].北京:北京理工大學(xué)出版社,2015.2.[4]謝維成,楊加國(guó).單元機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2020年.[5]宋雪松,李冬明,崔長(zhǎng)勝.手把手教你學(xué)51單片機(jī)[M].北京:清華大學(xué)出版社,2014年.

附錄單片機(jī)主程序#include<reg52.h>#include<intrins.h>//晶振:11.0592MhzsbitDS1=P1^3; //傳感器引腳sbitFan1=P2^2;//風(fēng)扇引腳sbitRS=P2^6;//LCD1602液晶控制腳sbitRW=P2^5;sbitLCDE=P2^7;bitCtrl_Mode=0; //控制模式sbitAutoModeLed=P2^0;//自動(dòng)模式LED燈引腳sbitManualModeLed=P2^1;//手動(dòng)模式LED燈引腳unsignedinta=0;uns

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論