最近研究出一款安卓手機(jī)編程控制的基于藍(lán)牙的開(kāi)關(guān)裝置,體積很小。具體觀看優(yōu)酷網(wǎng)宣傳視頻: 現(xiàn)在分享下設(shè)計(jì)原理圖如下: 采用可編程芯片,編程實(shí)現(xiàn)無(wú)線(xiàn)傳輸接收端代碼如下: /******************************************************************** 主函數(shù)*********************************************************************/ void main(){ TMOD=0X00; //定時(shí)器T0設(shè)定AUXR=0X80; //輔助寄存器TL0=BAUD; //十六位寄存器TH0=BAUD>>8; //十六位寄存器TR0=1; //開(kāi)定時(shí)器ET0=1;PT0=1;EA=1; //開(kāi)總中斷UART_INIT(); //串口初始化while(1) //無(wú)線(xiàn)循環(huán){if(REND) { REND=0; r++; //but[r++&0x0f]=RBUF; dat=RBUF; } if(TEND) { if(t!=r) { TEND=0;// TBUF=dat;switch(dat) //接收數(shù)據(jù)判斷{uchar k;k=10;case 'A': P33=1;delay(k);TBUF =dat;dat=0xee;break; // 開(kāi)case 'B': P33=0;delay(k);TBUF =dat;dat=0xee;break; // 關(guān)case 'C': if(P33==1){TBUF ='A';}if(P33==0){TBUF = 'B';}delay(k);dat=0xee;break; // 讀輸出口狀態(tài)case 'D': P33=!P33;delay(k);TBUF =dat;dat=0xee;break; // 輸出口取反default:break; // 跳出} t++; //TBUF=but[t++&0x0f]; TING=1; } }/******************************************************************** 接收數(shù)據(jù)判斷函數(shù)*********************************************************************/ } } /******************************************************************** 定時(shí)器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;} 本程序代碼由本人編寫(xiě)而成,難免有疏漏之處,請(qǐng)各位多多指教。稍后,有需要安卓手機(jī)藍(lán)牙代碼的朋友。可以聯(lián)系QQ:615854698;電話(huà):13049863925。可以免費(fèi)索取的喲,歡迎多提寶貴意見(jiàn)。 |