标题: 搞不定这段程序,在此请教 [打印本页]

作者: river    时间: 2009-8-28 20:22
标题: 搞不定这段程序,在此请教

#include <reg51.H>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count=0;

unsigned char temp;

void delay1ms(void)
{
unsigned char k;     
for(k=0;k<121;k++);
}
void main(void)
{
while(1)
temp=count;
P0=table[count%10];P2=0xfe;
delay1ms();
P0=table[count/10];P2=0xfd;
delay1ms();

P3=0xff;
if(P3==0xfb)
{
count++;
if(count==100);
{
count=0;
}
}
}

 这段程序编译没有错误,只有2个警告

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?DELAY1MS?COUNT
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?CO?COUNT

 不懂是什么意思,也不能调试运行


作者: pzcaofang    时间: 2009-8-28 20:40

改成这样就好了 

#include <reg51.H>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count=0;

unsigned char temp;

void delay1ms(void)
{
unsigned char k;    
for(k=0;k<121;k++);
}
void main(void)
{
while(1)
{
P0=table[count%10];P2=0xfe;
delay1ms();
P0=table[count/10];P2=0xfd;
delay1ms();

P3=0xff;
if(P3==0xfb)
{
count++;
if(count==100);
{
count=0;
}
}
}
}
参考资料:http://sjcxlab.5d6d.com


作者: f328500920    时间: 2009-8-29 00:05

你这个程序 循环 while(1)

后面必须要有个大括号 才能实现你要的目的


作者: river    时间: 2009-8-31 20:28

很感谢两位老兄,程序可以调试了,也可以显示。但还有个问题就是不能递加,一直显示两个0






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