把主函数改成这样:
void main()
{
uchar i,j,k=0x80;
while(1)
{
for(i=8;i>0;i--)
{
for(j=250;j>0;j--)
{
P2=0xff;
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
k=_crol_(k,1);
}
}
补充:
你要是想从左到右依次显示0到7,并且依次一个一个的显示过去,那你只需要改你一个数组里的内容就OK了。
uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
具体怎么改要看你电路是怎么接的,就是任意时刻只让一个发光管点亮,很明显,你上面的这个数组里的数据估计不能完成你所要的功能,我也没法知道你的电路,你要按你的电路去改这个数组的内容,就是任意一个数同时只让八个数码管其中一个点亮就OK了,至于细节,还是你自己慢慢试,印象深些。呵呵。