void init() //串口初始化
{
ES=0; //关中断
SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1,
//10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变
TMOD = 0x20; // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
TH1=TL1=0xFD; // 波特率9600 (本次测试采用晶振为11.0592)
PCON &= 0x7f; // 波特率不倍增
TR1 = 1; //定时器1开始工作,产生波特率
//发送标志位置0
TI=0; //接收标志位置0
RI=0;
//EA=0;
ES=1;
}
void main()
{
TMOD = 0x01;
//TL0 = 0xC9; //设置定时初值
//TH0 = 0xFF;
ET0 = 1;
TR0 = 1;
ConfigTimer0(1); //配置T0定时1ms
init();
delay(1);
while(1)
{
EA = 1;
if(RI==1) // 是否有数据到来
{
RI = 0;
tmp = SBUF;
ctrl();
}
}
}
我这个是只用来接收蓝牙发过来的东西,所以把接收的放在while里了,要是还要做其他,可以放在中断里 |