unsigned int counter = 0; //转速编码计数变量
void Init_Serial()
{
TMOD = 0x20; //设定定时器1的工作方式2
TH1 = 250;
TL1 = 250; //定时器1的初值
PCON = 0x80; //把波特率的变大由原来的250增大到9600
SCON = 0x50; //串行接口控制器串口方式1允许接收
EA = 1; //开总的中断
TR1 = 1; //启动定时
}
main()
{
unsigned int i,j;
Init_Serial();
TMOD |= 0x05; //改变定时器2的工作方式3
while(1)
{
counter = 0;
for(j=0;j<10;j++)
{
TR0 = 1; //启动定时
i = 511;
while(i--);
TR0 = 0; //关闭定时 //精确延时,i的数值就决定了延时的时间长短
counter = TH0 * 256 + TL0 + counter; //把获得的计数值由两个8位寄存器重装为16位的整数
TH0 = TL0 = 0;
}
counter = counter / 10; //十次的平均值
SBUF = counter / 256; //sbuf代表串口的数据缓存,这是清缓存的操作
while(!TI);
TI = 0;
SBUF = (unsigned char)counter;
while(!TI);
TI = 0; //拆成两个字节发送。
}
}
网上找的 没看懂 是每隔5毫秒会像上位机发送数据的程序,望大神指教,在哪里写到是5毫秒发送的数据