|
/* 流水燈各種模式:左移(單個亮)、右移(單個亮)、左移、右移、反相左右移、中間到兩邊移位等模式*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P3^5;
void yin();
void yin1();
void yin2();
void yin3();
void yin4();
void yin5();
void yin6();
void delay(uint);
uchar a,b,c,d,i,tem;
void main()
{
while(1)
{
yin();
yin1();
yin2();
yin3();
yin4();
yin5();
yin6();
yin4();
yin3();
yin2();
yin1();
yin6();
yin3();
yin2();
yin4();
yin6();
}
}
void yin()
{
for(a=2;a>0;a--)
{
tem=0x01;
for(i=0;i<8;i++)
{
P0=~tem;
delay(200);
tem<<=1;
}
}
}
void yin1()
{
for(a=2;a>0;a--)
{
tem=0x80;
for(i=0;i<8;i++)
{
P0=~tem;
delay(200);
tem>>=1;
}
}
}
void yin2()
{
for(a=2;a>0;a--)
{
tem=0xfe;
for(i=0;i<8;i++)
{
P0=tem;
delay(200);
tem<<=1;
}
}
}
void yin3()
{
for(a=2;a>0;a--)
{
tem=0xff;
for(i=0;i<8;i++)
{
P0=~tem;
delay(200);
tem<<=1;
}
}
}
void yin4()
{
for(a=2;a>0;a--)
{
tem=0x7f;
for(i=0;i<8;i++)
{
P0=tem;
delay(200);
tem>>=1;
}
}
}
void yin5()
{
for(a=2;a>0;a--)
{
tem=0xff;
for(i=0;i<8;i++)
{
P0=~tem;
delay(200);
tem>>=1;
}
}
}
void yin6()
{
for(a=2;a>0;a--)
{
{
tem=0x10;
for(i=4;i>0;i--)
{
P0=~tem;
delay(200);
tem<<=1;
}
}
{
tem=0x10;
for(i=5;i>0;i--)
{
P0=~tem;
delay(200);
tem>>=1;
}
}
}
}
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
for(y=z;y>0;y--);
}
|
|