**请教各位,为啥我复位后发送的都是00而不是我输入的66 ? 如图所示
#include <REGX52.H>
void URET_TX(unsigned int key)
{
SBUF=key;//写入数据进SBUF缓存器
while(TI==0)//检测标志位,是否置1,如果置1,表示数据传输完成
{TI=0;}//重置标志位位0
P2=SBUF;//读取发送过来的SBUF数据
//完成上述步骤 重新进入总WHILE循环
}
void URET_Tu(void)
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0x15; //设置定时初值
TH1 = 0x15; //设置定时重载值
TF1 = 0; //清除TF1标志
ET1 = 0; //禁止定时器1中断
TR1 = 1; //允许止定时器1中断
ES=1; //串口中断
}
void main(void)
{
URET_Tu();
while(1)
{
URET_TX(0X66);
}
}