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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于串行口問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:80127 發表于 2015-6-1 23:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我輸入1后但是回來的卻是亂碼,原本應該是i get 1,對吧!



#include<reg52.h>
#define uchar unsigned char
uchar flag,a,i;
  uchar code table[]={'I',' ','g','e','t',' '};

void main()
{
  
  TMOD=0X20;  //開定時器2
  TH1=0XFD;          //自動八位重裝
  TL1=0XFD;
  TR1=1;           //開啟定時器
  REN=1;                //允許串行接收
  EA=1;                         //開總中斷
  ES=1;                         //串行口中斷允許位
  SM1=1;                 //選擇模式1
  SM0=0;                 //選擇模式1

  while(1)
  {
/*if(RI==1)         
     RI=0;
         P0=SBUF;
           */
   if(flag==1)          //標志位
   {
    ES=0;
        for(i=0;i<6;i++)
                {
                 SBUF=table[i];
                 while(!TI);
                 TI=0;
                }
    flag=0;
        SBUF=a;                  //再將a送給SBUF  ??????
        while(!TI);           //送數據。。。。。檢測TI是否為1,串行發送停止位的中間時 由內部硬件使RI置1,開中斷,后人工置0
       
         TI=0;
         ES=1;
   
   }
  }
}
   void ser() interrupt 4         //進入串行中斷
{
  RI=0;                                        // 接收時。。。。。 串行發送停止位的中間時 由內部硬件使RI置1,開中斷,后人工置0
  P1=SBUF;                           //P1接收SBUF中的數據
  a=SBUF;                           //將SBUF送給a
  flag=1;                           //開啟標志位
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:74245 發表于 2015-6-2 08:19 | 只看該作者
這個是郭老師教材上面的程序,串口中斷服務程序里面,把上位機發送給單片機的數據給a,然后置flag=1,返回主函數之后,
for(i=0;i<6;i++)
                {
                 SBUF=table[i];
                 while(!TI);
                 TI=0;
                }
就首先把“I get ”這六個字符發送給上位機。
SBUF=a;                  //再將a送給SBUF  ??????
這句的意思就是接著把剛才單片機接收到的a也發送給上位機咯。
這樣上位機發送一個字符x后,單片機就會馬上返回一個I get x
在這里有個小小的技巧,自己一直在用也覺得很好記憶。在串口通信中肯定存在SBUF這寄存器賦值的情況,我就這樣理解,等號一邊是寄存器另外一邊是單片機,比如SBUF=a,那么a就是單片機,單片機賦值給SBUF,很明顯就是單片機發送數據,反之a=SBUF就是寄存器賦值給單片機,就是單片機接收數據。

評分

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

查看全部評分

回復

使用道具 舉報

板凳
ID:74245 發表于 2015-6-2 19:36 | 只看該作者
之前搞錯了沒看到你的提問。
波特率要用定時器0產生,TMOD=0x02;
串口助手波特率要與設置一致;
串口助手接收與發送的類型要相同,同是文本或16進制數據。

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黄色网 | 一区二区日本 | 一级黄色绿像片 | 在线视频a| 午夜天堂精品久久久久 | 欧美成人精品一区二区三区 | 成人在线电影在线观看 | 日韩高清中文字幕 | 高清人人天天夜夜曰狠狠狠狠 | 天天舔天天 | 亚洲三级视频 | 国产精品免费一区二区三区 | 久草免费电影 | 国产一在线观看 | 日本高清中文字幕 | 成人一区二区三区在线观看 | 国产一区二区自拍 | 国产亚洲精品精品国产亚洲综合 | 久久伊人一区 | www.日本三级 | 亚洲国产精品一区 | 日韩成人在线免费视频 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 五月天天丁香婷婷在线中 | 久热久| 欧美人妇做爰xxxⅹ性高电影 | а天堂中文最新一区二区三区 | 国产精品久久精品 | 久草网址 | 久久国产日韩欧美 | 日韩毛片免费视频 | 2020天天操| 国产精品视频在线播放 | 日本久久久久久久久 | 女生羞羞网站 | 欧美电影免费观看高清 | 大象一区 | 搞黄网站在线观看 | 四虎永久影院 | 91久久夜色 | 亚洲一在线|