标题: 串口程序问题 [打印本页]

作者: 奈何    时间: 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不知道是怎么搞的~刚刚接触单片机不是很熟悉~请教哈各位~非常感谢~


作者: zuoluo    时间: 2012-9-20 14:57
//     if(tmp=0xff)
你的这句写错了 应该是  if(tmp==0xff)
我的qq:676733417 有问题可以交流
作者: 奈何    时间: 2012-9-21 21:26
谢谢~但是好像不是这句的问题~我改过来了还是不行~请问还有别的地方有问题吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1