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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

程序在STC89C52RC單片機上不能運行

[復制鏈接]
跳轉到指定樓層
樓主
用藍牙模塊通信,和開發學習板。板子和單片機都沒有壞。燒錄也成功了。RXT對的單片機的RXT,TXD對單片機的TDXD.ER腳通了VCC的電。用KEil模擬仿真,手機可以的到Success.
可是換成RXD對單片機的RTXD.TXD對單片機的RXD.仿真也沒有數據是怎么回事?
剛自學。不知道那有問題。求教各位大神
  1. #include "reg52.h"
  2. #include "intrins.h"

  3. unsigned char SenData,Flag;

  4. char code str1[]="Success";
  5. char code str2[]="Error";

  6. void send_str();
  7. void InitUART(void);
  8. void send_str2();
  9. void delayms(unsigned char ms);
  10. void send_char(unsigned char txd);

  11. void InitUART(void)
  12. {
  13. /*******************設定串口**********************/
  14. SCON=0x50;                        //設置為工作方式1
  15. TMOD=0x20;                        //設置計數器工作方式2
  16. PCON =0x80;                        //波特率加倍
  17. TH1=0xFA;                                //計數器初始值設置,注意波特率是9600的
  18. TL1=TH1;
  19. ES=1;                                                //打開接收中斷
  20. EA=1;                                                //打開總中斷
  21. TR1=1;                                        //打開計數器
  22. /******************設定中斷**********************/
  23. }
  24. void main()  //主函數
  25. {        
  26. InitUART();
  27. while(1){
  28. if(Flag==1)
  29. {
  30. ES = 0;
  31. delayms(50);
  32. //----------------------該段即對接收的數據進行處理
  33. if(SenData==97)//97為字符a的ascii
  34. {
  35. delayms(10);//延時去抖動
  36. send_str();//發送數據
  37. }
  38. else
  39. {
  40. delayms(10);
  41. send_str2();
  42. }
  43. Flag=0;//數據處理完畢后將標志位置0,表示沒有新數據要處理
  44. }
  45. ES = 1;
  46. }
  47. }

  48. void ser_int()interrupt 4//接收字符串
  49. {  

  50. if(RI==1)//RI接受中斷標志
  51. {
  52. SenData = SBUF ;
  53. RI=0;//清除標志.
  54. Flag =1;//標志位置1表示有新數據進來
  55. }
  56. else
  57. TI = 0;
  58. }


  59. void send_str()//發送字串
  60. {
  61. unsigned char i=0;
  62. while(str1[ i]!='\0')
  63. {
  64. SBUF =str1[ i];
  65. while(!TI);//等待數據傳送
  66. TI=0;//清除數據傳輸標志
  67. i++;//下一個字符串
  68. }
  69. }

  70. void send_str2()//發送字串
  71. {
  72. unsigned char i=0;
  73. while(str2[ i]!='\0')
  74. {
  75. SBUF =str2[ i];
  76. while(!TI);//等待數據傳送
  77. TI=0;//清除數據傳輸標志
  78. i++;//下一個字符串
  79. }
  80. }



  81. void delayms( unsigned char ms)//延時子程序
  82. {
  83. unsigned char i;
  84. while(ms--)
  85. {
  86. for(i=0;i<120;i++);
  87. }
  88. }
復制代碼


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

使用道具 舉報

沙發
ID:140371 發表于 2017-6-17 11:02 | 只看該作者
最少這裡SBUF =str1;SBUF =str2;要改成 SBUF =str1[];SBUF =str2[i];

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
地板
ID:164602 發表于 2017-6-17 15:18 | 只看該作者
“用藍牙模塊通信,和開發學習板。板子和單片機都沒有壞。燒錄也成功了。RXT對的單片機的RXT,TXD對單片機的TDXD.ER腳通了VCC的電。”
你說的。程序我就不看了,因為這里錯了啊:藍牙RXT是接收端,那么就應該對應單片機發送端TXD,同理,藍牙TXD發送端應該對應單片機接收端。

1.jpg (9.77 KB, 下載次數: 113)

1.jpg

評分

參與人數 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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