基于51單片機藍牙開關控制家電系統設計_第1頁
基于51單片機藍牙開關控制家電系統設計_第2頁
基于51單片機藍牙開關控制家電系統設計_第3頁
基于51單片機藍牙開關控制家電系統設計_第4頁
基于51單片機藍牙開關控制家電系統設計_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機與嵌入式系統基于AVR單片機的“智能 年機藍牙控制開關及相關電器”專業:電子信息科學與技術年級:2013級姓名:王德坤學號:2013142110摘要利用所學51單片機基礎知識結合自動控制技術和藍牙 2.0通信技術設計完成一套 無線遙控開關系統。整個系統以 STC89C521l片機為核心,單片機實現 HC-05藍牙 指令的解析與繼電器開關控制指令的發出。藍牙通信單元采用工業級的HC-05藍牙模塊來完成,藍牙模塊在整個系統中負責藍牙指令的接收和傳輸;家電開關的 自動控制部分采用繼電器開關來實現, 繼電器開關是典型的弱電信號控制型開關。設計原理采用手機藍牙終端進行遙控控制,系統通過手機藍牙實現

2、家用電器開關的遙控開 啟和關閉,采用此方案進行設計的硬件框圖如圖所示三.設計過程采用直流電源同時增加LDO電源管理芯片進行系統的穩壓,由于系統單片機需要 直流5V電壓供電,HC-05藍牙模塊需要3.3V直流電源供電,因而系統采用單一的 電源不能同時滿足單片機和藍牙模塊的電壓需求,系統電源管理電路需要增加5V和3.3V的電壓管理芯片,系統采用直流9V供電,5V電壓輸出采用LM7805急壓芯 片穩壓后輸出給單片機及板上的 5V電壓系統供電,3.3V的電壓采用RT9193-3.3V 穩壓輸出給系統的HC-05藍牙模塊供電。系統電源電路主要包括5V穩壓輸出電路, 5V轉3.3V穩壓電路,電源濾波電路和

3、電源輸出指示電路。系統9V轉直流5V電壓 部分電路如圖a所示,5V轉3.3V穩壓電路如圖b所示。vcvPcurer電;空系統電熔圖aU5J4WCRT919J-33VDD犯采用HC-05藍牙模塊,HC-05藍牙模塊是一款高性能的藍牙主從一體串口通信模塊, 它可以和多種帶藍牙功能的電腦、手機、 PAD等智能終端進行配對,該模塊支持非常寬的波特率范圍:4800-1382400,并且可兼容5V和3.3V單片機系統,使用方便連接靈活 具有較高的性價比,同時HC-05為工業級產品,性能穩定、可靠性較高。1"富> T1> X fl.ram1L4*t-TkDLAKIJN M血IX KMa

4、nr M M-& H MuhYX.'UlL 黛21WCJ 1事Kl 1TH; )10 r»»FKK no? 碑人HEM ma flCK!I1l30 口HIH DQHaHCQ 5番牙瞰電路圖HM圖HC-05通信模塊電路圖藍牙模塊電路設計焊接好后,為了保證模塊能夠正常使用,首先要測試一下藍牙模 塊收發功能是否正常,具體測試過程如下所述。首先HC-05模塊通過usb轉TTL模塊連接到電腦串口 ,連接方式如圖 3-4所示I hmHDND 53 T RcL T TB 5 u圖 藍牙模塊與TTL模塊接線方式圖統HC-05藍牙模塊設置為從設備,手機藍牙為主設備,當手機安裝

5、好藍牙用口助手 后,打開藍牙調試助手界面,搜索藍牙設備,然后選擇鍵盤模式,設置鍵盤指令即可單片機最小系統電路為整個系統的控制核心,用于控制這個系統的正常運行,單片機最 小系統電路主要有STC89C52I片機、晶振電路、復位電路組成,此部分電路圖如圖所 示。單片機復位F1Q FUmBl112PlOfnPOJOZADOPl 1/T2E3LP0.1ZAD1PliPO 3 MMP13PQ 期ADMPl 4FQ.4/AI4P1JPQ5/AD5P1UPQjG/ADCPh7P3 O/RKDP3.TAAL5P3 IjTXDPWMMTOP25M13P3 3ZOmP2 4/A12P3 4/TQP13/A11P3J

6、m_PJWA】QP3«/P2.l/P3 了而P30MSpg nr志KTALEVGCXTAL1麗XTAL2蕭口研 _ DB11J.P123事5 67 口io37 DB?州 DEW 一“DB4利 DEW -,勢DM給10KHKD-TTL 112?132$132514姆 P231523 P221522 P211721 R普29+5JjT930-54Q_J2j ±C43Crp卜卜2013 不;“n TSTCS9C52望片機最小車也出圖單片機最小系統電路圖控制電路采用繼電器控制實現。繼電器控制電路采用弱電控制強電的工作原理,單 片機通過控制繼電器的斷開和吸合來控制外接家電的通斷,具體

7、控制電路如圖所示。繼電器控制電路圖 繼電器控制電路圖系統軟件設計采用C語言編程,編譯環境為Keil。系統主程序主要包括系統的初始化、藍牙串口通信、信號的輸出控制等,系統主程序流程圖如圖所示系統藍牙通信模塊子程序主令的接收以及和單片機直接的數據通信等,此部分程序的完成是整臬贊聊峻計成功與否的關鍵所在。圖 4-2為系統藍牙通 翻轉信子程序流程圖。判斷是否與手機藍 牙終端匹配成功?完成匹配,切換匹配成功指示 燈狀態通過串行通信把數據傳輸到 單片機圖系統藍牙通信子程序流程圖四.注意事項1、首先先不要插芯片,要先測量一下各點的電壓,尤其是單片機工作電壓,藍牙模塊 電路工作電壓,在保證模塊工作電壓正常的前

8、提下再安插主要先芯片,不然會燒壞芯 片或者模塊造成不可挽回的損失;2、系統工作之前首先要對藍牙模塊進行測試,保證藍牙模塊能夠實現正常的指令收發 功能。藍牙遙控測試主要完成繼電器的開啟和關閉,手機藍牙指令" Y'控制繼電器的的 開啟和關閉,手機藍牙發送指令“ Y” 一次2電器1吸合,再次發送指令“ Y”繼電器 斷開。五.系統源程序(多路繼電器控制家電)#include "main.h"#include "LCD12864.h"#include "uart.h"/定義變量*/主函數/* void main()LCD128

9、64_Reset();LCD12864_HAIZI_SET();Relayl = Relay2 = Relay3 = Relay4 = 0;/初始化液晶/設置為普通模式初始化設置為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_COM_Write(0x80);LCD12864_write_word("冰箱狀態

10、:開”); elseLCD12864_NoWaitIdle_COM_Write(0x80);LCD12864_write_word("冰箱狀態:關");if(Flag_Relay2 = 1)LCD12864_NoWaitIdle_COM_Write(0x90);LCD12864_write_word("空調狀態:開”); elseLCD12864_NoWaitIdle_COM_Write(0x90);LCD12864_write_word("空調狀態:關");if(Flag_Relay3 = 1)LCD12864_NoWaitIdle_COM_

11、Write(0x88);LCD12864_write_word("電視狀態:開”); elseLCD12864_NoWaitIdle_COM_Write(0x88);LCD12864_write_word("電視狀態:關");/設置指針/設置指針/設置指針/設置指針/設置指針/設置指針if(Flag_Relay4 = 1) 一LCD12864_NoWaitIdle_COM_Write(0x98);LCD12864_wAte_word("燈泡狀態:開”); elseLCD12864_NoWaitIdle_COM_Write(0x98);LCD12864_w

12、rite_word("燈泡狀態:關");*/MS延時函數(12M晶振下測試)/*void Delay_ms(unsigned int n)unsigned int i,j;for(i=0;i<n;i+) for(j=0;j<123;j+);#include "uart.h"/unsigned char RX_Buffer30;unsigned char Num = 0;bit Flag_Relay1 = 0;bit Flag_Relay2 = 0;bit Flag_Relay3 = 0;bit Flag_Relay4 = 0;unsigned

13、 char temp = 0;/設置指針/設置指針void Uart_Init()SCON = 0X50; /UART 方式 1 ; 8 位 UARTREN = 1; /不允許串行口接收數據PCON = 0x00; /SMOD=0;波特率不加倍TMOD = 0x20; /T1 方式2,用于產生波特率TH1 = 0xFD; / 裝初值TL1 = 0xFD;TR1 = 1;/啟動定時器1EA = 1;/打開全局中斷控制ES = 1;/串行口中斷void UartPrintf(unsigned char *p) while(*p)/發送字符串SBUF=*(p+);while(TI=0) ;TI=0;/發送一個字符void UartPrintASCII(unsigned char c)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 = !Flag_Relay

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論