最好还是自己写,有成就感啊。依次点亮的话可以用循环移位加延时的方法,同时亮只要相应位输出相应电平即可,闪亮的话只要同时亮与全灭间加个延时可以解决。当然也可以用定时中断来定时移位或闪亮,一定要自己想法写出来的才能有深刻的印象。
main()
{
char i=0,,j=0,k=0;
while(1)
{
p1=0xfe;
for(i=0,i<9,i++)
{
p1<<1;
p1=p1&&0xfe;//从右向左依次点亮,IO口低电平点亮。
delay(500);
}
i=0;
for(j=0,j<4.j++)
{
p1=0xaa;
delay(500);
p1=0xff;
delay(500);
}
j=0;
for(kj=0,k<4.k++)
{
p1=0x55;
delay(500);
p1=0xff;
delay(500);
}
k=0;
}
}
//---------延时子程序----------
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=109;b>0;b--);
}