标题: 单片机串口怎么控制流水灯加一呢?写的程序总是运行错误 [打印本页]

作者: 石头人    时间: 2021-3-17 15:09
标题: 单片机串口怎么控制流水灯加一呢?写的程序总是运行错误
void main()
{
        usartinit();
        led=0xfe
        delay(50000);
        while(1)
        {
                if(state==3)
                {
                        i=i+1;
                        if(i>8) {i=0;}
                  led=LED[i ]
                        
                }
        }
}
void usart() interrupt  4
{
        if(RI==1)
        {
        if(SBUF==3){state=3;}
        RI=0;
        }
}


作者: wulin    时间: 2021-3-17 16:38
按楼主题意,只有串口收到一次3,流水灯才移动一位。那么state==3用过就要复位,否则流水灯快到你无法分辨。
void main()
{
        usartinit();
        led=0xfe
        delay(50000);
        while(1)
        {
                if(state==3)
                {
                        state=0;
                        i=i+1;
                        if(i>7) {i=0;}
                        led=LED[i]       
                }
        }
}

void usart() interrupt  4
{
        RI=0;
        state=SBUF;
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1