[分享]学单片机一个星期完成了郭老师的一个作业发上来鼓励一下自己 也请高手们给指点指点程序还可以怎样改的更好
间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar LED;
uchar a,b;
void delay(uint);
void delay(uint z)
{
uint x,y;
for( x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
for(a=3;a>0;a--)
{
P1=0xaa;
delay(400);
P1=0x55;
delay(400);
}
LED=0xfe;
for(b=0;b<3;b++)
{
for(a=0;a<7;a++)
{
P1=LED;
delay(400);
LED=_crol_(LED,1);
}
LED=0x7f;
for(a=0;a<7;a++)
{
P1=LED;
delay(400);
LED=_cror_(LED,1);
}
}
P1=0xfe;
delay(400);
P1=0xff;
delay(400);
for(b=0;b<3;b++)
{
P1=0x7e;
delay(400);
P1=0xbd;
delay(400);
P1=0xdb;
delay(400);
P1=0xe7;
delay(400);
}
P1=0xff;
delay(400);
for(b=0;b<3;b++)
{
P1=0xe7;
delay(400);
P1=0xdb;
delay(400);
P1=0xbd;
delay(400);
P1=0x7e;
delay(400);
}
P1=0xff;
delay(400);
for(b=0;b<3;b++)
{
P1=0x00;
delay(400);
P1=0xff;
delay(400);
}
while(1)
{}
}
|