找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 51827|回復: 95
收起左側

STC89C52通過HC-06藍牙模塊與Android手機通信

  [復制鏈接]
ID:109770 發(fā)表于 2016-3-27 20:53 | 顯示全部樓層 |閱讀模式
環(huán)境
         1
、任意單片機開發(fā)板即可(當時用的芯片STC90C516RD+),約定為下位機
          2
、無線藍牙串口透傳模塊 HC-06從機
          3
、windows xp操作系統
          4
、Android智能手機(藍牙串口通信助手軟件),約定為上位機
二、連接的部分電路圖(有集成板子的直接插上就可以了,但是要注意若單片機的TXD無上拉能力需要加上拉電阻)
      上拉電阻的阻值有人問我,我當時用的是1KΩ。


三、下位機測試程序
  1. /***********************************************************
  2. STC90C51RD+與HC-06藍牙連線:
  3.         藍牙  STC90C51RD+
  4.         RXD    TXD
  5.         TXD    RXD
  6. 其他連線:
  7.         P2.0、P2.1、P2.3分別接一個指示燈

  8. �。。�!
  9. !�。�!注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
  10. �。。�!

  11. 手機采用藍牙串口通信助手
  12. 最后已改用Android自編藍牙通信軟件
  13.                                         By itas109
  14. ***********************************************************/
  15. #include <reg52.h>
  16. #include <intrins.h>
  17. unsigned char tmp;
  18. unsigned int c=0;

  19. sbit led1=P2^0;                    //指示燈0
  20. sbit led2=P2^1;                        //指示燈1
  21. sbit led3=P2^3;                        //指示燈3

  22. void init();   //串口初始化
  23. void send(unsigned char a);        //單字節(jié)發(fā)送函數
  24. void ctrl(); //接收處理函數

  25. void main()
  26. {
  27.                 init();
  28.           while(1)
  29.           {         
  30.                   if(RI==1)                     // 是否有數據到來
  31.                   {
  32.                    RI = 0;
  33.                   tmp = SBUF;                   // 暫存接收到的數據
  34.                                   ctrl();
  35.                                   }      
  36.           }
  37. }

  38. void init()        //串口初始化
  39. {
  40.                   ES=0;                                                                  //關中斷
  41.                   SCON = 0x50;                        // REN=1允許串行接受狀態(tài),串口工作模式1,
  42.                                                                                           //10位UART(1位起始位,8位數據位,1位停止位,無奇偶校驗),波特率可變

  43.                   TMOD = 0x20;                        // 定時器1工作于方式2,8位自動重載模式, 用于產生波特率
  44.           TH1=TL1=0xFD;                       // 波特率9600 (本次測試采用晶振為11.0592)
  45.          
  46.           PCON &= 0x7f;                       // 波特率不倍增
  47.           TR1 = 1;                                                          //定時器1開始工作,產生波特率
  48.                                                                                           //發(fā)送標志位置0
  49.                   TI=0;                                                                  //接收標志位置0
  50.                   RI=0;
  51.                   
  52.                   //EA=0;
  53.               ES=1;


  54.           led1=0;                                   //初始化設置3個指示燈全亮
  55.                   led2=0;
  56.                   led3=0;
  57. }
  58.    
  59. void send(unsigned char a)        //單字節(jié)數據發(fā)送
  60. {                                                        //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
  61.         TI=0;       
  62.         SBUF=a;
  63.         while(TI==0);
  64.         TI=0;

  65.         if(c%2)                                        //發(fā)送指示燈標志,每接收一次,此燈亮滅交替
  66.          led3=1;
  67.         else
  68.          led3=0;
  69.         c++;
  70. }

  71. void ctrl()                            //接收處理函數
  72. {
  73.                                     switch(tmp)
  74.                                   {
  75.                                           case '1':
  76.                                                 led1=1;                                   //收到字符1,指示燈0滅
  77.                                                 send(tmp);
  78.                                                 break;                                       
  79.                                         case '2':                                         //收到字符2,指示燈1滅
  80.                                                  led2=1;
  81.                                                  send(tmp);
  82.                                                  break;
  83.                                         case '3':                                    //收到字符3,指示燈0、1亮
  84.                                                  led1=0;
  85.                                                  led2=0;
  86.                                                  send(tmp);
  87.                                                  break;
  88.                                         case '4':                                        //收到字符4,指示燈0、1滅
  89.                                                   led1=1;
  90.                                                   led2=1;
  91.                                                   send(tmp);
  92.                                                   break;
  93.                                         case '5':                                        //收到字符5,指示燈3亮
  94.                                                 led3=0;
  95.                                                 send(tmp);
  96.                                                 break;
  97.                                         default:                   //其他,燈全滅
  98.                                                   led1=1;
  99.                                                   led2=1;
  100.                                                   led3=1;
  101.                                                   send(tmp);
  102.                                   }
  103. }
復制代碼




程序地址(整個工程): STC89C52單片機與HC-06模塊下位機測試程序.zip (28.44 KB, 下載次數: 637)

評分

參與人數 5黑幣 +49 收起 理由
maimai + 6 共享資料的黑幣獎勵!
1522388816 + 5 共享資料的黑幣獎勵!
LYC666 + 5 共享資料的黑幣獎勵!
lverniu777 + 3
sunlei058378 + 30 很給力!

查看全部評分

回復

使用道具 舉報

ID:115017 發(fā)表于 2016-4-18 18:41 | 顯示全部樓層
看看程序
回復

使用道具 舉報

ID:124445 發(fā)表于 2016-6-1 13:18 | 顯示全部樓層

 看看程序
回復

使用道具 舉報

ID:73762 發(fā)表于 2016-6-1 20:26 | 顯示全部樓層
謝謝樓主分享資料
回復

使用道具 舉報

ID:127540 發(fā)表于 2016-6-21 13:11 | 顯示全部樓層
好東西!謝謝樓主
回復

使用道具 舉報

ID:122102 發(fā)表于 2016-6-21 16:33 | 顯示全部樓層
感謝樓主,學習了
回復

使用道具 舉報

ID:128560 發(fā)表于 2016-7-1 14:20 | 顯示全部樓層
好東西!謝謝樓主
回復

使用道具 舉報

ID:113858 發(fā)表于 2016-7-14 15:16 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:71297 發(fā)表于 2016-7-16 12:13 | 顯示全部樓層
我也來看看。謝謝樓主了
回復

使用道具 舉報

ID:61840 發(fā)表于 2016-7-21 22:28 | 顯示全部樓層
我也來看看。謝謝樓主
回復

使用道具 舉報

ID:96926 發(fā)表于 2016-8-20 15:56 | 顯示全部樓層
謝謝,看看測式
回復

使用道具 舉報

ID:138373 發(fā)表于 2016-9-28 15:15 | 顯示全部樓層
來看看是怎么樣,感謝樓主
回復

使用道具 舉報

ID:67274 發(fā)表于 2016-10-17 19:41 | 顯示全部樓層
STC12C5A60S2代碼沒變,試驗成功。
回復

使用道具 舉報

ID:112749 發(fā)表于 2016-10-17 19:53 | 顯示全部樓層
本來準備用紅外遙控的,不過感覺藍牙透傳更好
回復

使用道具 舉報

ID:143197 發(fā)表于 2016-10-18 11:21 | 顯示全部樓層
謝謝樓主分享資料
回復

使用道具 舉報

ID:143197 發(fā)表于 2016-10-18 11:25 | 顯示全部樓層
謝謝樓主分享資料
回復

使用道具 舉報

ID:145780 發(fā)表于 2016-11-2 20:09 | 顯示全部樓層

謝謝樓主分享資料
回復

使用道具 舉報

ID:145780 發(fā)表于 2016-11-2 20:10 | 顯示全部樓層
謝謝樓主分享資料
回復

使用道具 舉報

ID:106000 發(fā)表于 2016-11-18 23:35 | 顯示全部樓層
看看能用不
回復

使用道具 舉報

ID:162935 發(fā)表于 2017-2-12 22:49 來自觸屏版 | 顯示全部樓層
怎么沒有中斷函數
回復

使用道具 舉報

ID:175092 發(fā)表于 2017-3-20 21:37 | 顯示全部樓層

謝謝樓主分享資料
回復

使用道具 舉報

ID:175862 發(fā)表于 2017-3-20 23:07 | 顯示全部樓層
感謝樓主
回復

使用道具 舉報

ID:100515 發(fā)表于 2017-3-21 19:01 | 顯示全部樓層
Android的程序呢,是用的output輸出流嗎?
回復

使用道具 舉報

ID:128134 發(fā)表于 2017-3-24 10:05 | 顯示全部樓層
藍牙還是很靠譜的
回復

使用道具 舉報

ID:184049 發(fā)表于 2017-4-9 19:03 | 顯示全部樓層
謝謝分享

回復

使用道具 舉報

ID:185258 發(fā)表于 2017-4-10 18:26 | 顯示全部樓層
動手操作了下  謝謝樓主
回復

使用道具 舉報

ID:190252 發(fā)表于 2017-4-16 21:44 | 顯示全部樓層
感謝樓主
回復

使用道具 舉報

ID:186936 發(fā)表于 2017-4-23 15:00 | 顯示全部樓層
手機連接的話需要什么app呢,求樓主給個app
回復

使用道具 舉報

ID:192589 發(fā)表于 2017-4-25 17:26 | 顯示全部樓層
樓主你好,我用手機發(fā)送字符沒有得到所寫的結果呢。發(fā)字符只會讓第三個燈亮滅,而且是任何字符都可以,不是所寫的12345,麻煩樓主了
回復

使用道具 舉報

ID:192589 發(fā)表于 2017-4-25 17:28 | 顯示全部樓層
發(fā)送第一個字符會讓第一個第二個燈滅,之后就是只能讓第三燈亮滅,與前兩個無關
回復

使用道具 舉報

ID:192589 發(fā)表于 2017-4-25 17:28 | 顯示全部樓層
wxc19960311 發(fā)表于 2017-4-23 15:00
手機連接的話需要什么app呢,求樓主給個app

藍牙串口,應用商店有的,就是那個符號spp的
回復

使用道具 舉報

ID:110278 發(fā)表于 2017-4-26 19:15 | 顯示全部樓層
有沒有APP
回復

使用道具 舉報

ID:97561 發(fā)表于 2017-4-28 21:15 | 顯示全部樓層
謝謝樓主
回復

使用道具 舉報

ID:97561 發(fā)表于 2017-4-28 21:15 | 顯示全部樓層
STC89C52通過HC-06藍牙模塊與Android手機通信 [修改]
回復

使用道具 舉報

ID:196906 發(fā)表于 2017-5-5 13:25 | 顯示全部樓層
謝謝樓主,回復得黑幣嗎
回復

使用道具 舉報

ID:196906 發(fā)表于 2017-5-5 13:26 | 顯示全部樓層
很給力啊
回復

使用道具 舉報

ID:198804 發(fā)表于 2017-5-9 20:18 | 顯示全部樓層
未來的技術女 發(fā)表于 2017-3-21 19:01
Android的程序呢,是用的output輸出流嗎?

特地去注冊了一個賬號,就想對你說一句,你真好看
回復

使用道具 舉報

ID:194780 發(fā)表于 2017-5-9 22:08 | 顯示全部樓層
感謝分享!��!下載來用一下!�。�
回復

使用道具 舉報

ID:202195 發(fā)表于 2017-5-26 22:59 | 顯示全部樓層
樓主這個程序可以用于at89s52嗎
回復

使用道具 舉報

ID:91691 發(fā)表于 2017-5-27 08:30 | 顯示全部樓層
來看看是怎么樣,感謝樓主
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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