欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2486|回復: 0
打印 上一主題 下一主題
收起左側

STC單片機藍牙點亮LED代碼與調試,V1

[復制鏈接]
跳轉到指定樓層
樓主
硬件
l JDY-23藍牙模塊(配有官網的安卓和ios軟件)
l STC12c2052AD
l 11.0592晶振,30pf陶瓷電容x2
l LED,杜邦線若干

軟件
l 串口調試工具,電腦直接使用STC自帶的比較方便,其它的也可以下面附件壓縮包里面也有
l Ios使用的是jdy-23自帶的JDY-LED(應用商店搜索)
l 安卓附件里面帶有jdy官方軟件,或者其他藍牙串口調試工具都可以


接線
l 晶振和電容,最小系統對應接
l 藍牙模塊燒錄器接線一樣,R ----> TT ----> R
l LED,正極 ----> vcc,負極 ----> P3.7
線路簡單就沒必要配圖了


對我來說難點
1. 藍牙模塊的操作,實際上就是串口的操作
2. 串口十六進制,ASCII碼,字符串之間的關系
3. 藍牙中斷(串口中斷)相關寄存器配置(有的是現成的模塊,不過還是要自己消化一下)
(1) STC單片機可以在STC軟件的”波特率計算器”,里面直接生成方便。(生成的話要自己添加EA=1(總中斷),ES=1(串口中斷)

實際效果
1. 通過字符串 o,點亮LED(發送低電平),發送c,關閉LED(發送高電平)
(1) 也可以發送對應的十六進制,例如o ----> ASCII11110進制) ----> 6f16進制)。所以發送f6等同于發送o(可以直接找網站轉碼省的自己算)

存在的問題
  • 不穩定,雖然發送之后可以點亮LED,有時候會穩定常亮。但是有時候會閃爍一下之后LED就熄滅了(有人知道是啥問題嗎?)

單片機代碼
代碼很簡單,就是想記錄一下自己的學習(論壇的代碼格式真的太爛了,將就看看吧)
  1. #include "reg52.h"
  2. #include <intrins.h>

  3. sfr AUXR = 0x8E;  //reg52.h這個庫未對AUXR定義,這里額外定義一下

  4. sbit led = P3^7;

  5. char cmd;

  6. void UartInit()     //9600bps@11.0592MHz
  7. {
  8.     PCON &= 0x7F;       //波特率不倍速
  9.     SCON = 0x50;        //8位數據,可變波特率
  10.     AUXR &= 0xBF;       //定時器1時鐘為Fosc/12,即12T
  11.     AUXR &= 0xFE;       //串口1選擇定時器1為波特率發生器
  12.     TMOD &= 0x0F;       //清除定時器1模式位
  13.     TMOD |= 0x20;       //設定定時器1為8位自動重裝方式
  14.     TL1 = 0xFD;     //設定定時初值
  15.     TH1 = 0xFD;     //設定定時器重裝值
  16.     ET1 = 0;        //禁止定時器1中斷
  17.     TR1 = 1;        //啟動定時器1
  18.     EA = 1;         //開啟總中斷
  19.     ES = 1;        //開啟串口中斷
  20. }

  21. void send_byte(char data_msg)
  22. {
  23.     SBUF = data_msg;
  24.     while(!TI);
  25.     TI = 0;
  26. }

  27. void send_msg(char* data_msg)
  28. {
  29.     while(*data_msg != '\0')
  30.     {
  31.         send_byte(*data_msg);
  32.         data_msg++;
  33.     }
  34. }

  35. void main()
  36. {
  37.     UartInit();

  38.     led = 1;

  39.     while(1);
  40. }

  41. void UART_Routine() interrupt 4
  42. {
  43.     cmd = SBUF;
  44.     if(cmd == 'o')
  45.     {
  46.         led = 0;
  47.         send_msg("turn on.\r\n");
  48.     }
  49.     if(cmd == 'c')
  50.     {
  51.         led = 1;
  52.         send_msg("turn off.\r\n");
  53.     }
  54.   // SBUF接收到數據置1,只能通過軟件設置恢復成0
  55.   // 接受完數據處理之后需要恢復0,不然無法接受后續數據
  56.         RI = 0;
  57. }
復制代碼


JDY-23 5.0BLE藍牙模塊手冊-V1.2版本.7z (2.26 MB, 下載次數: 24)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表