手機APP開源的太少了,用了單片開發好程序想要和手機互聯就是很難,打算自己學手機E4A開發,感覺很像C語言,如果,否則的,但是還是不習慣。慢慢來吧。開源一個例程,大家研究。
單片機源碼如下:
#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=P1^0; //LED1
sbit out2=P1^1; //LED2
sbit out3=P1^2; //LED3
//藍牙要接串口P3.0 P3.1
/********************************************************************
* 名稱 : 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;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xfd; //設置波特率 9600
TL1 = 0xfd;
TR1 = 1; //啟動定時器1
ES = 1; //開串口中斷
EA = 1; //開總中斷
}
//開關操作函數,接收到一次數據改變一次狀態
void alloff()
{
//P1=0xff;
out1=0;//關閉
out2=0;
out3=0;
}
void main()
{
Delay_1ms(100);
Com_Init();//串口初始化
alloff();
while (1)
{
}
}
/********************************************************************
* 名稱 : Com_Int()
* 功能 : 串口中斷子函數
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Com_Int(void) interrupt 4
{
EA = 0;
if(RI == 1) //當硬件接收到一個數據時,RI會置位
{
receive = SBUF ; //
RI = 0;
switch (receive)
{
case 0x00: alloff();break;//LED 全部OFF
case 0x10: out1=0;break;//LED1//關閉
case 0x11: out1=1;break;//打開
case 0x20: out2=0;break;//LED2//關閉
case 0x21: out2=1;break;//打開
case 0x30: out3=0;break;//LED3//關閉
case 0x31: out3=1;break; //打開
default:break;
}
}
EA = 1;
}
全部資料51hei下載地址:
藍牙開關手機APP軟件e4a源碼.zip
(278.27 KB, 下載次數: 241)
2018-12-19 13:52 上傳
點擊文件名下載附件
藍牙開關單片程序ok.zip
(39.01 KB, 下載次數: 153)
2018-12-19 13:52 上傳
點擊文件名下載附件
|