這個東西是我學習搞得,還沒搞完,屬于半成品,目前有的 功能是遠程控制LED燈亮滅,而我的設計是要控制PWM波來控制COB光源。
先來講講這個東西吧,就是屬于藍牙接收個指令,然后通過判斷指令來作出相應的操作。同時我的設想是把命令弄成數組,然后接收到的指令也一點一點存入數組,這樣就可以支持無限多的指令了(懶得搞,論壇里有,但是有點毛病還沒調,懶得弄,反正我要設計還有很多時間,俺不急。。。)
單片機源碼(藍牙模塊設置為從機,波特率9600等等自己調哈)E4A源碼:
遙控器.zip
(27.58 KB, 下載次數: 71)
2019-12-3 17:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
單片機源程序如下:
/*************** ***********************************************************************
* 串口通信控制 *
實現現象:下載程序后打開串口調試助手,將波特率設置為4800,根據串口接收到的數據執行不同命令。
注意事項:無。
***************************************************************************************/
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
#include "string.h"
#include "stdio.h"
#include "intrins.h"
typedef unsigned int uint; //對數據類型進行聲明定義
typedef unsigned char uchar;
uchar receiveData;
sbit LED=P1^0;
/*******************************************************************************
* 函數名 :UsartInit()
* 函數功能 :設置串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //設置為工作方式1
TMOD=0X21; //設置計數器工作方式2
//PCON=0X80; //波特率加倍
TH1=0XFd; //計數器初始值設置,注意波特率是4800的,晶振11.0592
TL1=0XFd;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數器
}
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
UsartInit(); // 串口初始化
while(1)
{
}
}
/*******************************************************************************
* 函數名 : Usart() interrupt 4
* 函數功能 : 串口通信中斷函數
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void Usart() interrupt 4
{
receiveData=SBUF;//出去接收到的數據
if(receiveData=='A')LED=1;
if(receiveData=='B')LED=0;
RI = 0;
TI=1;printf("zhiling:");
SBUF=receiveData;//將接收到的數據放入到發送寄存器
TI=1;printf("\n");while(!TI); //等待發送數據完成
TI=0; //清除發送完成標志位
}
|