找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3488|回復(fù): 2
收起左側(cè)

串口程序問題

[復(fù)制鏈接]
ID:43980 發(fā)表于 2012-9-19 21:13 | 顯示全部樓層 |閱讀模式

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

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

 

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

回復(fù)

使用道具 舉報

ID:34608 發(fā)表于 2012-9-20 14:57 | 顯示全部樓層
//     if(tmp=0xff)
你的這句寫錯了 應(yīng)該是  if(tmp==0xff)
我的qq:676733417 有問題可以交流
回復(fù)

使用道具 舉報

ID:43980 發(fā)表于 2012-9-21 21:26 | 顯示全部樓層
謝謝~但是好像不是這句的問題~我改過來了還是不行~請問還有別的地方有問題嗎?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表