用的51单片机,接受12路的调光台没有问题,可是接在珍珠台上,一至十路也没什么问题,十路以后就开始混乱,路数越大越乱,发现十路以后接收的不只是本地址,比如我设置的地址15,单片机一会接受15路的信号,一会接收16路的信号。越到后面接受的旁路信号越多。求高手指点
下面是接受子函数:
SCON=0x90;
PCON=0x80;
EA=1;
ES=1; ;//初始化函数,晶振8M
void see() interrupt 4 ;//串口中断
{
if(RI==1)
{
if(!RB8)
{ flag2=1;
num=0;
}
else if(flag2)
{
if(num==temp) //temp 是我自己设定的地址
{
P2=SBUF; //取出数据
flag2=0;
num=0;
}
num++;
}
RI=0;
}
}
谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
不过他走时遗漏了张纸片,于是我把它背了下来,不知是否有用。
SCON=0x90;
PCON=0x80;
EA=1;
ES=1; ;//初始化函数,晶振8M
unsigned char num,temp;
bit add256_num,add256_temp;
void see() interrupt 4 ;//串口中断
{
if(RI==1)
{
if(!RB8)
{ // flag2=1;
num=255; add256_num=1;
}
else // if(flag2)
{
if((num==temp) && (add256_num==add256_temp)) //temp 是我自己设定的地址
{
P2=SBUF; //取出数据
// flag2=0;
// num=0;
}
num++;
if(!num)
{
add256_num=~add256_num;
}
}
RI=0;
}
}
我打算换16M晶振,然后试了再说。我用的STC89C52RC,据说STC12C系列指令可以单时钟周期,可惜89不行。
您的那位长者真是宝贝啊,哈哈。做哪行的,是做舞台灯的吗?
提供DMX512产品方面的技术支持。
一周热门 更多>