本帖最后由 wulin 于 2017-11-6 13:15 编辑
你这是通过串口, 实现每100ms发送一次数据串,与串口中断无关。
直接与之相关程序:
unsigned char code str[12]={0xEB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55};
bit flag=0;
unsigned char num;
void InitUART()//11.0592MHz
{
TMOD = 0x21;//定时器0方式1,定时器1方式2(8位重载)
TH0 = 0x4C; //50ms
TL0 = 0x00; //50ms
TH1=0xfd;//波特率9600
TL1=0xfd;//波特率9600
SM0=0; //设置串口方式1(8位UART波特率可变)
SM1=1; //设置串口方式1(8位UART波特率可变)
TR0 = 1;//开定时器0
TR1 = 1;//开定时器1
}
void main()
{
unsigned char i;
InitUART();
while(1)
{
if(flag==1)
{
flag=0;
for(i=0;i<12;i++)//数据头+10帧有效数据+数据尾共12帧
{
SBUF = dis;
while(!TI);
TI = 0;
}
}
}
}
void ser() interrupt 1
{
TH0 = 0x4C; //重装50ms
TL0 = 0x00; //重装50ms
num++;
if(num>=2)
flag=1;
}
|