#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
不懂是什么意思,也不能调试运行
改成这样就好了
#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
你这个程序 循环 while(1)
后面必须要有个大括号 才能实现你要的目的
很感谢两位老兄,程序可以调试了,也可以显示。但还有个问题就是不能递加,一直显示两个0
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |