實物電路連接
我也是在測試,所以先用LED 等來代替繼電器輸出,然后才用到繼電器上面。單片機直接放在我做的最小系統版上面,然后用導線來連接到藍牙開關的小板子上,等測試無誤之后再安裝在上面,不然不好寫程序上去。輸出接的是一個小電機,用的一個12v蓄電池代替220V電源,如果要用220V的電源,要注意安全了!提醒一下,絕緣一定要做好,畢竟不是開玩笑的。簡單說一下電路連接,首先你得需要焊接一個51單片機最小系統板,(如果這個都不會,那你需要先學習一下,不然肯定是沒辦法做的)然后是由三極管驅動繼電器的電路,記得加二極管,不然三極管很有幾率被擊穿,最后是藍牙模塊與單片機的連接,電源接好,一般藍牙模塊都是寬電壓的,所以直接接到5V電源上,與單片機共用電源,不用什么電壓轉換,很方便的,把藍牙模塊的TX與單片機的RX連接,就是P3.0那個引腳,RX接單片機的TX,就是P3.1那個引腳,至于繼電器哪里你需要接成常開還是常閉的模式就你自己決定了,當然還要加一點錄濾波的,因為繼電器啟動的一瞬間電流很大,擔心是單片機死機!這些就是主要的東西了!)
0.png (90.37 KB, 下載次數: 115)
下載附件
2018-9-2 17:05 上傳
0.png (6.92 KB, 下載次數: 108)
下載附件
2018-9-2 17:06 上傳
藍牙開關單片機代碼
- /********************************************************************
- 制 作 人:林景福
- *********************************************************************/
- #include <reg52.h>
- #include <intrins.h>
- #include <math.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar receive=0;
- uchar send=0xff;
- sbit out1=P2^0; //繼電器1
- sbit out2=P2^1; //繼電器2
- sbit out3=P2^2; //繼電器3
- sbit out4=P2^3; //繼電器4
- sbit out5=P2^4; //繼電器5
- sbit out6=P2^6; //繼電器6
- sbit out7=P2^5; //繼電器7
- sbit out8=P2^7; //繼電器8
- /********************************************************************
- * 名稱 : Delay_1ms()
- * 功能 : 延時子程序,延時時間為 1ms * x
- * 輸入 : x (延時一毫秒的個數)
- * 輸出 : 無
- **********************************************************************/
- void Delay_1ms(uint i) //1ms延時
- {
- uchar x,j;
- for(j=0;j<i;j++)
- for(x=0;x<=148;x++);
- }
- /********************************************************************
- * 名稱 : Com_Init()
- * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷
- * 輸入 : 無
- * 輸出 : 無
- **********************************************************************/
- void Com_Init(void)
- {
- TMOD = 0x20; //設置定時器工作方式2
- // PCON = 0x00; //設置波特率不加倍
- SCON = 0x50; //設置為工作方式1
- TH1 = 0xfd; //設置波特率 9600
- TL1 = 0xfd;
- TR1 = 1; //啟動定時器1
- ES = 1; //開串口中斷
- EA = 1; //開總中斷
- }
- //開關操作函數,接收到一次數據改變一次狀態
- void alloff()
- {
- P2=0xff;
- }
- void main()
- {
- Delay_1ms(100);
- Com_Init();//串口初始化
- while (1);
- }
- /********************************************************************
- * 名稱 : Com_Int()
- * 功能 : 串口中斷子函數
- * 輸入 : 無
- * 輸出 : 無
- **********************************************************************/
- void Com_Int(void) interrupt 4
- {
- EA = 0;
- if(RI == 1) //當硬件接收到一個數據時,RI會置位
- {
- receive = SBUF ; //接收=SBUF
- RI = 0; //令接收中斷標志位為0(軟件清零)
- switch (receive)
- {
- case 0x00:alloff();break; //關閉所有
- case 0x01: P2=0xfe;break;
- case 0x20: out2=1;break;
- case 0x21: out2=0;break;
- case 0x30: out3=1;break;
- case 0x31: out3=0;break;
- case 0x40: out4=1;break; //關
- case 0x41: out4=0;break; //開
- case 0x50: out5=1;break;
- case 0x51: out5=0;break;
- case 0x60: out6=1;break;
- case 0x61: out6=0;break;
- case 0x70: out7=1;break;
- case 0x71: out7=0;break;
- case 0x80: out8=1;break;
- case 0x81: out8=0;break;
- // case常量表達式x:語句x;break;
- default:P2=0xff;break;
- }
- }
- EA = 1;
- }
復制代碼
捕獲.PNG (12.5 KB, 下載次數: 124)
下載附件
2018-9-2 10:41 上傳
全部資料51hei下載地址:
簡易制作藍牙控制開關(程序 藍牙APP 制作講解).rar
(405.42 KB, 下載次數: 506)
2018-9-2 10:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|