久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口通信程序在發送兩個字符以上時出現亂碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:10568 發表于 2017-10-20 09:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用的單片機芯片是STC15W408AS,程序是STC下載器軟件的的例子上改了一點,都因為我希望能接收一段字串
現象是,通電 可以收到發過一來的字串,用串口軟件發一個字符及接收回顯都沒有問題,但發兩個及以上字符,第一個字符顯示正常,之后就是亂碼了。請指教。
  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15F4K60S4 ?? ???2????1?????????------------*/
  4. /* --- Mobile: (86)13922805190 ----------------------------------------*/
  5. /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
  6. /* --- Tel: 86-0513-55012928,55012929,55012966-------------------------*/
  7. /* ????????????,??????????STC??????        */
  8. /* ????????????,??????????STC??????        */
  9. /*---------------------------------------------------------------------*/

  10. //????Keil????????Intel?8058????????
  11. //??????,???????11.0592MHz


  12. #include "reg51.h"
  13. #include "intrins.h"

  14. typedef unsigned char BYTE;
  15. typedef unsigned int WORD;

  16. #define FOSC 11059200L          //????
  17. #define BAUD 115200             //?????

  18. #define NONE_PARITY     0       //???
  19. #define ODD_PARITY      1       //???
  20. #define EVEN_PARITY     2       //???
  21. #define MARK_PARITY     3       //????
  22. #define SPACE_PARITY    4       //????

  23. #define PARITYBIT EVEN_PARITY   //?????

  24. sfr P0M1 = 0x93;
  25. sfr P0M0 = 0x94;
  26. sfr P1M1 = 0x91;
  27. sfr P1M0 = 0x92;
  28. sfr P2M1 = 0x95;
  29. sfr P2M0 = 0x96;
  30. sfr P3M1 = 0xb1;
  31. sfr P3M0 = 0xb2;
  32. sfr P4M1 = 0xb3;
  33. sfr P4M0 = 0xb4;
  34. sfr P5M1 = 0xC9;
  35. sfr P5M0 = 0xCA;
  36. sfr P6M1 = 0xCB;
  37. sfr P6M0 = 0xCC;
  38. sfr P7M1 = 0xE1;
  39. sfr P7M0 = 0xE2;

  40. sfr AUXR  = 0x8e;               //?????
  41. sfr T2H   = 0xd6;               //???2?8?
  42. sfr T2L   = 0xd7;               //???2?8?

  43. sfr P_SW1   = 0xA2;             //?????????1

  44. #define S1_S0 0x40              //P_SW1.6
  45. #define S1_S1 0x80              //P_SW1.7

  46. sbit P22 = P2^2;

  47. bit busy;
  48. unsigned char date;

  49. void SendData(BYTE dat);
  50. void SendString(char *s);

  51. void main()
  52. {
  53.     P0M0 = 0x00;
  54.     P0M1 = 0x00;
  55.     P1M0 = 0x00;
  56.     P1M1 = 0x00;
  57.     P2M0 = 0x00;
  58.     P2M1 = 0x00;
  59.     P3M0 = 0x00;
  60.     P3M1 = 0x00;
  61.     P4M0 = 0x00;
  62.     P4M1 = 0x00;
  63.     P5M0 = 0x00;
  64.     P5M1 = 0x00;
  65.     P6M0 = 0x00;
  66.     P6M1 = 0x00;
  67.     P7M0 = 0x00;
  68.     P7M1 = 0x00;

  69.     ACC = P_SW1;
  70.     ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=0
  71.     P_SW1 = ACC;                //(P3.0/RxD, P3.1/TxD)

  72. //  ACC = P_SW1;
  73. //  ACC &= ~(S1_S0 | S1_S1);    //S1_S0=1 S1_S1=0
  74. //  ACC |= S1_S0;               //(P3.6/RxD_2, P3.7/TxD_2)
  75. //  P_SW1 = ACC;  
  76. //  
  77. //  ACC = P_SW1;
  78. //  ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=1
  79. //  ACC |= S1_S1;               //(P1.6/RxD_3, P1.7/TxD_3)
  80. //  P_SW1 = ACC;  

  81. #if (PARITYBIT == NONE_PARITY)
  82.     SCON = 0x50;                //8??????
  83. #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY)
  84.     SCON = 0xda;                //9??????,??????1
  85. #elif (PARITYBIT == SPACE_PARITY)
  86.     SCON = 0xd2;                //9??????,??????0
  87. #endif

  88.     T2L = (65536 - (FOSC/4/BAUD));   //????????
  89.     T2H = (65536 - (FOSC/4/BAUD))>>8;
  90.     AUXR = 0x14;                //T2?1T??, ??????2
  91.     AUXR |= 0x01;               //?????2???1???????
  92.     ES = 1;                     //????1??
  93.     EA = 1;

  94.     SendString("STC15F2K60S2\r\nUart Test !\r\n");
  95.     while(1);
  96. }

  97. /*----------------------------
  98. UART ??????
  99. -----------------------------*/
  100. void Uart() interrupt 4 using 1
  101. {
  102.     if (RI)
  103.     {
  104.         RI = 0;                 //??RI?
  105.         P1 = SBUF;              //P0??????
  106.                 date=P1;
  107.         P22 = RB8;              //P2.2?????
  108.                 SendData(date);
  109.                 //SBUF=P1;
  110.     }
  111.     if (TI)
  112.     {
  113.         TI = 0;                 //??TI?
  114.         busy = 0;               //????
  115.     }
  116. }

  117. /*----------------------------
  118. ??????
  119. ----------------------------*/
  120. void SendData(BYTE dat)
  121. {
  122.     while (busy);               //???????????
  123.     ACC = dat;                  //?????P (PSW.0)
  124.     if (P)                      //??P??????
  125.     {
  126. #if (PARITYBIT == ODD_PARITY)
  127.         TB8 = 0;                //??????0
  128. #elif (PARITYBIT == EVEN_PARITY)
  129.         TB8 = 1;                //??????1
  130. #endif
  131.     }
  132.     else
  133.     {
  134. #if (PARITYBIT == ODD_PARITY)
  135.         TB8 = 1;                //??????1
  136. #elif (PARITYBIT == EVEN_PARITY)
  137.         TB8 = 0;                //??????0
  138. #endif
  139.     }
  140.     busy = 1;
  141.     SBUF = ACC;                 //????UART?????
  142. }

  143. /*----------------------------
  144. ?????
  145. ----------------------------*/
  146. void SendString(char *s)
  147. {
  148.     while (*s)                  //?????????
  149.     {
  150.         SendData(*s++);         //??????
  151.     }
  152. }
復制代碼




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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 自拍视频精品 | 亚洲一区二区在线播放 | 亚洲欧美综合精品另类天天更新 | caoporn免费在线视频 | 国产欧美日韩综合精品一区二区 | 中文字幕成人 | 天天躁人人躁人人躁狂躁 | 91欧美精品成人综合在线观看 | 国产美女在线播放 | a网站在线观看 | 婷婷激情五月网 | 久久国 | 久草精品视频 | 欧美一级黄色免费 | 久久久久久久电影 | 亚洲乱码一区二区三区在线观看 | 久久久久国产精品午夜一区 | 日本大香伊一区二区三区 | 久久精品欧美一区二区三区不卡 | 中文字幕在线不卡 | 日韩成人免费视频 | 日韩精品一区二区三区在线观看 | 精品国产一区二区三区免费 | 久久久久国产精品 | 欧美一级黄 | 国产在线小视频 | 日韩在线中文字幕 | 国产成人免费观看 | 一区二区视频在线 | 91啪影院 | 久久国际精品 | 日韩欧美视频免费在线观看 | 日韩在线小视频 | 国产激情在线观看 | 亚洲一区二区欧美 | 欧美日韩综合一区 | 日本精品久久久久久久 | 国产日韩在线观看一区 | 丝袜 亚洲 另类 欧美 综合 | 天堂视频中文在线 | 日本不卡一区二区三区在线观看 |