arduino蓝牙无线自动下载程序

arduino蓝牙无线自动下载程序测试成功,[img][/img]

下面随便写的程序,请各位不要用与商业,谢谢合作

#include<reg52.h>

#define BAUD 0xfe80 //22.1184

#define uchr unsigned char

#define uint unsigned int

sfr AUXR=0x8e;

sbit RXB=P3^0;

sbit TXB=P3^1;

sbit out=P3^4;

uint cnt;

typedef bit BOOL;

typedef unsigned char BYTE;

typedef unsigned int WORD;

BYTE TBUF,RBUF;

BYTE TDAT,RDAT;

BYTE TCNT,RCNT;

BYTE TBIT,RBIT;

BOOL TING,RING;

BOOL TEND,REND;

void UART_INIT();

void delay();

void delay1();

BYTE t,r;

BYTE buf[16];

void main()

{

TMOD=0x00;

AUXR=0x80;

TL0=BAUD;

TH0=BAUD>>8;

TR0=1;

ET0=1;

PT0=1;

EA=1;

UART_INIT();

while(1)

{

if(REND)

{

REND=0;

if(RBUF == 0x20)

{

out=0;

delay();

delay();

}



if(RBUF == 0x20)

{

EA=0;

out=1;

delay1();

delay1();

RBUF=0;

EA=1;

}

}

}

}

void tm0() interrupt 1 using 1

{

if(RING)

{

if(--RCNT==0)

{

RCNT=3;

if(--RBIT==0)

{

RBUF=RDAT;

RING=0;

REND=1;

}

else

{

RDAT>>=1;

if(RXB)RDAT|=0X80;

}

}

}

else if(!RXB)

{

RING=1;

RCNT=4;

RBIT=9;

}

}

void UART_INIT()

{

RING=0;

REND=0;

RCNT=0;

out=1;

}

void delay()

{

uint x,y;

for(x=0;x<500;x++)

{

for(y=0;y<1000;y++);

}

}

void delay1(uint u)

{

uint x,y;

for(x=0;x<3000;x++)

{

for(y=0;y<5000;y++);

}

}

本自动下载是通过单片机STC15F104E实现的,成本很低的单片机,手机电池供电.

以下是缺点

蓝牙无线下载问题

1:数据量大了无法下载。

2:串口调试使用不方便,如9600就无法使用

3:如果是无线就要考虑充电电池供点电

4:成本高,一套收发蓝牙和板下来成本价格100左右

5:可靠性不是很高

以上问题还的不断解决

电路还没画了,好了上传,谢谢次论坛的教程,小小贴子给大家一点动力
via - 极客工坊

标签: Arduino教程