#include<reg51.h>
#include<intrins.h>
void delaylms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<125;j++)
{
;
}
}
}
void main()
{
unsigned char code led[]={0x7f,0xdf,0xbf,0xef,0xf7,0xfd,0xfb,0xfe};
unsigned int m;
unsigned int n;
for(m=0;m<3;m++)
{
for(n=5;n<7;n++)
{
P0=0xff;
P1=led[n];
delaylms(500);
}
for(n=7;n>=0;n--)
{
P1=0xff;
P0=led[n];
delaylms(500);
}
for(n=0;n<5;n++)
{
P0=0xff;
P1=led[n];
delaylms(500);
}
}
for(m=0;m<3;m++)
{
for(n=5;n>=0;n--)
{
P0=0xff;
P1=led[n];
delaylms(500);
}
for(n=0;n<7;n++)
{
P1=0xff;
P0=led[n];
delaylms(500);
}
for(n=7;n>=5;n--)
{
P0=0xff;
P1=led[n];
delaylms(500);
}
}
}
uj5u.com熱心網友回復:
你的n定義的是無符號型,所以n一定是>=0的,for(n=7;n>=0;n--)
{
P1=0xff;
P0=led[n];
delaylms(500);
}
你的程式進到這里就出不來啦。
uj5u.com熱心網友回復:
而且,n還導致了led陣列越界。。。。uj5u.com熱心網友回復:
把 unsigned int n; 變成 int n; 就行了轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/85852.html
標籤:單片機/工控
下一篇:stm32串口問題
