标题: WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 求助单片机大神 [打印本页]

作者: CROSE    时间: 2018-12-24 18:27
标题: WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 求助单片机大神
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?ER?CCC51
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?SAN?CCC51
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?SI?CCC51
出现了这个警告,应该怎么修改程序?急用,求大神们帮忙!

基本功能:八个彩灯,四个按键。一个按键控制彩灯启动和停止,一个按键控制彩灯正向、反向运行,一个按键控制彩灯奇、偶数灯亮,最后一个按键包含以上所有状态。
以下是我的程序

#include<reg51.h>
#include<intrins.h>
#define unchar unsigned char
#define unit unsigned int
void delay(void);
void yi();
void er();
void san();
void si();
sbit sb1=P1^2;
sbit sb2=P1^3;
sbit sb3=P1^4;
sbit sb4=P1^5;
int n;
void delay(void)
{
        unsigned int x,y;
        for(x=0;x<200;x++);
        for(y=0;y<250;y++);
}
void yi()
{
        P0=0x7f;
        delay();
        P0=0xbf;
        delay();
        P0=0xdf;
        delay();
        P0=0xef;
        delay();
        P0=0xf7;
        delay();
        P0=0xfb;
        delay();
        P0=0xfd;
        delay();
        P0=0xfe;
        delay();
}
void er()
{
        P0=0xff;
}
void san()
{
        P0=0xfe;
        delay();
        P0=0xfd;
        delay();
        P0=0xfb;
        delay();
        P0=0xf7;
        delay();
        P0=0xef;
        delay();
        P0=0xdf;
        delay();
        P0=0xbf;
        delay();
        P0=0x7f;
        delay();
}
void si()
{
        P0=0xaa;
        delay();
        P0=0x55;
        delay();
}

void main()
{while(1)
        {if(sb1==0)
        yi();
        }
        {if(sb1==1)
        er();
        }
        {if(sb1==0&&sb2==0)
        san();
        }
        {if(sb1==0&&sb3==0)
        si();
        }
        {if(sb4==0)
        for(n=0;n<4;n++)
        {if(n==0)
        yi();
        }
        {if(n==1)
        san();
        }
        {if(n==2)
        si();
        }
        {if(n==3)
        er();
        }
        }
}


作者: HC6800-ES-V2.0    时间: 2018-12-25 08:44
一个初学者,最重要的是要守规矩!!!!!
你看看你的程序,学别人乱来——花括号乱写,别人有经验不会错,你没经验就会错!!!!!
给你的程序修改了一下,没警告了。
void main()
{
        while(1)
    {
                if(sb1==0)
                yi();
        if(sb1==1)
                er();
        if(sb1==0&&sb2==0)
                san();
        if(sb1==0&&sb3==0)
                si();
        if(sb4==0)
                for(n=0;n<4;n++)
                {
                                if(n==0)
                                yi();
                }
        if(n==1)
                san();
        if(n==2)
                si();
        if(n==3)
                er();
        }
}




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