小弟最近使用STC15W201S的芯片 遇到点问题 求大神啊

2019-07-15 16:37发布

我在P3口接了共阳的LED  用串口中断来控制亮灭   中断程序如图  每次我发送0x02 LED闪一下就灭了  不加后面的灭灯程序就正常  我觉得程序是进入了后面的灭灯程序 但是我不知道是怎么进去的 并没有使dat[2]=0x00啊 好多方法试过了 求大神 好纠结
程序图 程序图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
dengxc
2019-07-15 21:08

STC15W系列单片机的中断系统好象有问题,for语句在中断服务函数中执行不了,忘记了还存在其它什么问题,不知道是什么原因。
你没有必要在中断服务函数中执行太多语句,LED的控制在其它函数中进行。为你提供一个可供参考的程序思路。
main()
{
        初始化;
        for(;;)
        {
                flag=1;
                while(flag);
                LED();
        }
}
void LED()
{
                if(dat1==0x02)
                {
                        P3=0;       
                }
                if(dat1==0)
                {
                        P3=0xff;
                }
}
void Uart(void) interrupt 4 using 1
{
        if(RI==1)
        {
                dat1=SBUF;
                RI=0;
                flag=0;
        }
        if(TI==1)
        {
                TI=0;
        }
}

一周热门 更多>