8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程
#include<iom16v.h>
#include<macros.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<1141;j++);
}
void main()
{
uint k,m;
DDRD=0XFF;
PORTD=0XFF;
while(1)
{
uint i;
for(k=0;k<8;k++)
{
PORTD&=~BIT(k);
delay(200);
PORTD|=BIT(k);
delay(200);
}
for(m=7;m>=0;m--)
{
PORTD&=~BIT(m);
delay(200);
PORTD|=BIT(m);
delay(200);
}
PORTD=0XFF;
for(i=0;i<5;i++)
{
PORTD=0X00;
delay(300);
PORTD=0XFF;
delay(300);
}
}
}
这个程序为什么只能实现前两个for循环啊,并且while循环也不能实现,但是把第二个for循环删除的话就可以完全实现了啊。谢谢…… |