基于51單片機(jī)藍(lán)牙開關(guān)控制家電系統(tǒng)_第1頁
基于51單片機(jī)藍(lán)牙開關(guān)控制家電系統(tǒng)_第2頁
基于51單片機(jī)藍(lán)牙開關(guān)控制家電系統(tǒng)_第3頁
基于51單片機(jī)藍(lán)牙開關(guān)控制家電系統(tǒng)_第4頁
基于51單片機(jī)藍(lán)牙開關(guān)控制家電系統(tǒng)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.1單片機(jī)與嵌入式系統(tǒng)基于AVR單片機(jī)的“智能+手機(jī)藍(lán)牙控制開關(guān)及相關(guān)電器專業(yè):電子信息科學(xué)與技術(shù)年級(jí):2021級(jí):王德坤*:2021142110摘要 利用所學(xué)51單片機(jī)根底知識(shí)結(jié)合自動(dòng)控制技術(shù)和藍(lán)牙2.0通信技術(shù)設(shè)計(jì)完成一套無線遙控開關(guān)系統(tǒng)。整個(gè)系統(tǒng)以STC89C52單片機(jī)為核心,單片機(jī)實(shí)現(xiàn)HC-05藍(lán)牙指令的解析與繼電器開關(guān)控制指令的發(fā)出。 藍(lán)牙通信單元采用工業(yè)級(jí)的HC-05藍(lán)牙模塊來完成,藍(lán)牙模塊在整個(gè)系統(tǒng)中負(fù)責(zé)藍(lán)牙指令的接收和傳輸;家電開關(guān)的自動(dòng)控制局部采用繼電器開關(guān)來實(shí)現(xiàn),繼電器開關(guān)是典型的弱電信號(hào)控制型開關(guān)。設(shè)計(jì)原理繼電器開關(guān)HC-05藍(lán)牙模塊采用手機(jī)藍(lán)牙終端進(jìn)展遙控控制,系統(tǒng)通過

2、手機(jī)藍(lán)牙實(shí)現(xiàn)家用電器開關(guān)的遙控開啟和關(guān)閉,采用此方案進(jìn)展設(shè)計(jì)的硬件框圖如下列圖51單片機(jī)控制終端智能手機(jī)終端三.設(shè)計(jì)過程采用直流電源同時(shí)增加LDO電源管理芯片進(jìn)展系統(tǒng)的穩(wěn)壓,由于系統(tǒng)單片機(jī)需要直流5V電壓供電,HC-05藍(lán)牙模塊需要3.3V直流電源供電,因而系統(tǒng)采用單一的電源不能同時(shí)滿足單片機(jī)和藍(lán)牙模塊的電壓需求,系統(tǒng)電源管理電路需要增加5V和3.3V的電壓管理芯片,系統(tǒng)采用直流9V供電,5V電壓輸出采用LM7805穩(wěn)壓芯片穩(wěn)壓后輸出給單片機(jī)及板上的5V電壓系統(tǒng)供電,3.3V的電壓采用RT9193-3.3V穩(wěn)壓輸出給系統(tǒng)的HC-05藍(lán)牙模塊供電。系統(tǒng)電源電路主要包括5V穩(wěn)壓輸出電路,5V轉(zhuǎn)3.

3、3V穩(wěn)壓電路,電源濾波電路和電源輸出指示電路。系統(tǒng)9V轉(zhuǎn)直流5V電壓局部電路如圖a所示,5V轉(zhuǎn)3.3V穩(wěn)壓電路如圖b所示。圖a 圖b采用HC-05藍(lán)牙模塊,HC-05藍(lán)牙模塊是一款高性能的藍(lán)牙主從一體串口通信模塊,它可以和多種帶藍(lán)牙功能的電腦、手機(jī)、PAD等智能終端進(jìn)展配對(duì),該模塊支持非常寬的波特率圍:4,并且可兼容5V和3.3V單片機(jī)系統(tǒng),使用方便連接靈活具有較高的性價(jià)比,同時(shí)HC-05為工業(yè)級(jí)產(chǎn)品,性能穩(wěn)定、可靠性較高。圖HC-05通信模塊電路圖藍(lán)牙模塊電路設(shè)計(jì)焊接好后,為了保證模塊能夠正常使用,首先要測(cè)試一下藍(lán)牙模塊收發(fā)功能是否正常,具體測(cè)試過程如下所述。首先HC-05模塊通過usb轉(zhuǎn)T

4、TL模塊連接到電腦串口,連接方式如圖3-4所示。圖藍(lán)牙模塊與TTL模塊接線方式圖統(tǒng)HC-05藍(lán)牙模塊設(shè)置為從設(shè)備,手機(jī)藍(lán)牙為主設(shè)備,當(dāng)手機(jī)安裝好藍(lán)牙串口助手后,翻開藍(lán)牙調(diào)試助手界面,搜索藍(lán)牙設(shè)備,然后選擇鍵盤模式,設(shè)置鍵盤指令即可單片機(jī)最小系統(tǒng)電路為整個(gè)系統(tǒng)的控制核心,用于控制這個(gè)系統(tǒng)的正常運(yùn)行,單片機(jī)最小系統(tǒng)電路主要有STC89C52單片機(jī)、晶振電路、復(fù)位電路組成,此局部電路圖如下列圖。圖 單片機(jī)最小系統(tǒng)電路圖控制電路采用繼電器控制實(shí)現(xiàn)。繼電器控制電路采用弱電控制強(qiáng)電的工作原理,單片機(jī)通過控制繼電器的斷開和吸合來控制外接家電的通斷,具體控制電路如下列圖。圖 繼電器控制電路圖系統(tǒng)軟件設(shè)計(jì)采用C

5、語言編程,編譯環(huán)境為Keil。系統(tǒng)主程序主要包括系統(tǒng)的初始化、藍(lán)牙串口通信、信號(hào)的輸出控制等,系統(tǒng)主程序流程圖如下列圖復(fù)位NY藍(lán)牙是否接收到數(shù)據(jù).啟動(dòng)N數(shù)據(jù)是Y.將空調(diào)狀態(tài)翻轉(zhuǎn)Y系統(tǒng)藍(lán)牙通信模塊子程序主要完成手機(jī)藍(lán)牙指令的接收以及和單片機(jī)直接的數(shù)據(jù)通信等,此局部程序的完成是整個(gè)系統(tǒng)軟件設(shè)計(jì)成功與否的關(guān)鍵所在。圖4-2為系統(tǒng)藍(lán)牙通信子程序流程圖。開場(chǎng)開機(jī)啟動(dòng)藍(lán)牙模塊未匹配指示狀態(tài)燈N判斷是否與手機(jī)藍(lán)牙終端匹配成功.完成匹配,切換匹配成功指示燈狀態(tài)判斷是否接收到手機(jī)藍(lán)牙終端發(fā)送的指令.通過串行通信把數(shù)據(jù)傳輸?shù)絾纹瑱C(jī)圖系統(tǒng)藍(lán)牙通信子程序流程圖四.本卷須知1、首先先不要插芯片,要先測(cè)量一下各點(diǎn)的電壓,

6、尤其是單片機(jī)工作電壓,藍(lán)牙模塊電路工作電壓,在保證模塊工作電壓正常的前提下再安插主要先芯片,不然會(huì)燒壞芯片或者模塊造成不可挽回的損失;2、系統(tǒng)工作之前首先要對(duì)藍(lán)牙模塊進(jìn)展測(cè)試,保證藍(lán)牙模塊能夠?qū)崿F(xiàn)正常的指令收發(fā)功能。藍(lán)牙遙控測(cè)試主要完成繼電器的開啟和關(guān)閉,手機(jī)藍(lán)牙指令“Y控制繼電器的的開啟和關(guān)閉,手機(jī)藍(lán)牙發(fā)送指令“Y一次繼電器1吸合,再次發(fā)送指令“Y繼電器斷開。五系統(tǒng)源程序 多路繼電器控制家電*include main.h*include LCD12864.h*include uart.h/定義變量/*/主函數(shù)/*void main()LCD12864_Reset();/初始化液晶LCD128

7、64_HAIZI_SET();/設(shè)置為普通模式 Relay1 = Relay2 = Relay3 = Relay4 = 0; /初始化設(shè)置為0,不吸合Delay_ms(100); Uart_Init();while(1) Relay1 = Flag_Relay1; Relay2 = Flag_Relay2; Relay3 = Flag_Relay3; Relay4 = Flag_Relay4; if(Flag_Relay1 = 1) LCD12864_NoWaitIdle_Write(0*80);/設(shè)置指針 LCD12864_write_word(冰箱狀態(tài):開); else LCD12864_

8、NoWaitIdle_Write(0*80);/設(shè)置指針 LCD12864_write_word(冰箱狀態(tài):關(guān)); if(Flag_Relay2 = 1) LCD12864_NoWaitIdle_Write(0*90);/設(shè)置指針 LCD12864_write_word(空調(diào)狀態(tài):開); else LCD12864_NoWaitIdle_Write(0*90);/設(shè)置指針 LCD12864_write_word(空調(diào)狀態(tài):關(guān)); if(Flag_Relay3 = 1) LCD12864_NoWaitIdle_Write(0*88);/設(shè)置指針 LCD12864_write_word(電視狀態(tài):

9、開); else LCD12864_NoWaitIdle_Write(0*88);/設(shè)置指針 LCD12864_write_word(電視狀態(tài):關(guān)); if(Flag_Relay4 = 1) LCD12864_NoWaitIdle_Write(0*98);/設(shè)置指針 LCD12864_write_word(燈泡狀態(tài):開); else LCD12864_NoWaitIdle_Write(0*98);/設(shè)置指針 LCD12864_write_word(燈泡狀態(tài):關(guān)); /*/MS延時(shí)函數(shù)(12M晶振下測(cè)試)/*void Delay_ms(unsigned int n)unsigned int i,

10、j;for(i=0;in;i+)for(j=0;j123;j+);*include uart.h/unsigned char R*_Buffer30;unsigned char Num = 0;bit Flag_Relay1 = 0;bit Flag_Relay2 = 0;bit Flag_Relay3 = 0;bit Flag_Relay4 = 0;unsigned char temp = 0;void Uart_Init() SCON = 0*50; /UART方式1;8位UARTREN = 1; /不允許串行口接收數(shù)據(jù)PCON = 0*00; /SMOD=0;波特率不加倍TMOD = 0

11、*20; /T1方式2,用于產(chǎn)生波特率TH1 = 0*FD; /裝初值TL1 = 0*FD;TR1 = 1; /啟動(dòng)定時(shí)器1EA = 1; /翻開全局中斷控制ES = 1; /串行口中斷void UartPrintf(unsigned char *p)/發(fā)送字符串 while(*p) SBUF=*(p+);while(TI=0);TI=0; void UartPrintASCII(unsigned char c)/發(fā)送一個(gè)字符 TI=0; SBUF=c; while(TI=0); TI=0; void RECEIVE_DATA(void) interrupt 4 using 1 /串口中斷 if(RI = 1) temp = SBUF;if(temp = A) Flag_Relay1 = !Flag_Relay1; UartPrintf(Receive A); else if(temp = B) Flag_Relay2 = !F

溫馨提示

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