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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

串口程序問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:43980 發表于 2012-9-19 21:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include<reg52.h>
#include<intrins.h>
void send_char(unsigned char txd);
unsigned char tmp;
void main()
{
 TMOD=0x20;                          //設置定時器1為方式2
 TH1=TL1=0xfd;                       //設置波特率為9600
 TR1=1;                              //啟動定時器1
 SCON=0x50;                          //設置串口工作方式為方式1
 while(1)
 {
   if(RI==1)                       //判斷是否接收到數據,為1表示接收完數據
  {
      RI=0;                       //清除RI狀態
      tmp=SBUF;
//     if(tmp=0xff)
//     {
        send_char(tmp);
//     }
  }
 }
}

void send_char(unsigned char txd)
{
 SBUF=txd;
 while(!TI);
 TI=0;
}

 

想請教下各位這個程序的問題在哪~目的就是想讓串口接收到0xff的時候將數據傳送回去~如果不加if那一句就沒有問題~串口可以接收到什么返回什么~但是加上一個判斷就不行了~弄了很久都不知道問題在哪~Debug的時候通過watch窗口監視tmp和串口手動設置SBUF為0xff~tmp一直都顯示0x00不知道是怎么搞的~剛剛接觸單片機不是很熟悉~請教哈各位~非常感謝~

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

使用道具 舉報

沙發
ID:34608 發表于 2012-9-20 14:57 | 只看該作者
//     if(tmp=0xff)
你的這句寫錯了 應該是  if(tmp==0xff)
我的qq:676733417 有問題可以交流
回復

使用道具 舉報

板凳
ID:43980 發表于 2012-9-21 21:26 | 只看該作者
謝謝~但是好像不是這句的問題~我改過來了還是不行~請問還有別的地方有問題嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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