![]() |
小車使用遙控器控制的嗎 |
這車是自己做的嗎? |
/////// 51單片機藍牙測試代碼 //////// #include <reg52.h> typedef unsigned char u8; typedef unsigned int u16; u8 r_buf; //藍牙接收到的字符存儲緩沖區(qū) sbit led1 = P1^0; //燈1,當接收字符0時,燈1亮 sbit led2 = P1^1; //燈2,當接收字符1時,燈2亮 sbit led3 = P1^2; //燈2,當接收其它字符時,燈3亮 sbit led4 = P1^3; //藍牙連接狀態(tài)燈,當藍牙連通時,燈4亮 sbit state = P3^6; //藍牙連通的狀態(tài)標志位 void delay(u16 z) //延遲函數(shù) { u16 x,y; for(x=z;x>0;x--) for(y=125;y>0;y--); } void InitUART() //串口初始化9600 { //初始化串口定時器9600 TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFF; TL1 = 0xFD; TR1 = 1; ES = 1; EA = 1; } void SendOneByte(unsigned char c) //發(fā)送字符函數(shù) { SBUF = c; while(!TI); TI = 0; } void main(void) { InitUART(); led1 = 1; led2 = 1; led3 = 1; led4 = 1; r_buf = '2'; while(1) { if(state == 1)//藍牙連通狀態(tài)判斷 { led4 = 0; //如果藍牙匹配成功,燈4亮 } else { led4 = 1; //如果藍牙匹配不成功,燈4不亮 } } } void UARTInterrupt(void) interrupt 4 //串口接收字符 { if(RI) { RI = 0; //add your code here! r_buf = SBUF; if(r_buf == '0')//如果為字符‘0’,燈1亮 { led1 = 0; delay(1000); led1 = 1; } if(r_buf == '1')//如果為字符‘1’,燈2亮 { led2 = 0; delay(1000); led2 = 1; } else //如果為其它字符,燈3亮 { led3 = 0; delay(1000); led3 = 1; } SendOneByte(r_buf);//回發(fā)該字符 } } |