马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
最近研究出一款安卓手机编程控制的基于蓝牙的开关装置,体积很小。 具体观看优酷网宣传视频:
现在分享下设计原理图如下:
采用可编程芯片,编程实现无线传输
接收端代码如下: /********************************************************************
主函数
*********************************************************************/ void main() {
TMOD=0X00; //定时器T0设定 AUXR=0X80; //辅助寄存器 TL0=BAUD; //十六位寄存器 TH0=BAUD>>8; //十六位寄存器 TR0=1; //开定时器 ET0=1; PT0=1; EA=1; //开总中断 UART_INIT(); //串口初始化 while(1) //无线循环 { if(REND) { REND=0; r++; //but[r++&0x0f]=RBUF; dat=RBUF; } if(TEND) { if(t!=r) { TEND=0; // TBUF=dat; switch(dat) //接收数据判断 { uchar k; k=10; case 'A': P33=1;delay(k);TBUF =dat;dat=0xee;break; // 开 case 'B': P33=0;delay(k);TBUF =dat;dat=0xee;break; // 关 case 'C': if(P33==1){TBUF ='A';}if(P33==0){TBUF = 'B';}delay(k);dat=0xee;break; // 读输出口状态 case 'D': P33=!P33;delay(k);TBUF =dat;dat=0xee;break; // 输出口取反 default:break; // 跳出 } t++; //TBUF=but[t++&0x0f]; TING=1; } } /********************************************************************
接收数据判断函数
*********************************************************************/
}
}
/********************************************************************
定时器T0
*********************************************************************/ 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; } if(--TCNT==0) { TCNT=3; if(TING) { if(TBIT==0) { TXB=0; TDAT=TBUF; TBIT=9; } else { TDAT>>=1; if(--TBIT==0) { TXB=1; TING=0; TEND=1; } else { TXB=CY; } } } } } /********************************************************************
功能:串口初始化,波特率9600,方式1
*********************************************************************/ void UART_INIT() { TING=0; RING=0;
TEND=1; REND=0;
TCNT=0; RCNT=0; }
本程序代码由本人编写而成,难免有疏漏之处,请各位多多指教。稍后,有需要安卓手机蓝牙代码的朋友。 可以联系QQ:615854698; 电话:13049863925。 可以免费索取的哟,欢迎多提宝贵意见。 |