#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不知道是怎么搞的~刚刚接触单片机不是很熟悉~请教哈各位~非常感谢~
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |