電路原理圖如下:
風車圖片.jpg (903.27 KB, 下載次數: 30)
下載附件
2022-1-24 07:33 上傳
可以進行自主進行10種閃爍方案。
單片機軟件設計:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar i;
uchar tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar tab2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar tab3[]={0xe7,0xdb,0xbd,0x7e};
uchar tab4[]={0xbd,0xdb,0xe7,0x7e};
uchar tab5[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
void delay()
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void pattern1()
{
P1=0xfe;
for(i=0;i<9;i++)
{
delay();
P1=tab5[ i];
}
P1=0x00;
P0=0xfe;
for(i=0;i<9;i++)
{
delay();
P0=tab5[ i];
}
P0=0x00;
P2=0xfe;
for(i=0;i<9;i++)
{
delay();
P2=tab5[ i];
}
P2=0x00;
P3=0xfe;
for(i=0;i<9;i++)
{
delay();
P3=tab5[ i];
}
P3=0x00;
P0=P1=P2=P3=0xff;
}
void pattern2()
{
P1=0xfe;
for(i=0;i<9;i++)
{
delay();
P1=tab1[ i];
}
P1=0xff;
P0=0xfe;
for(i=0;i<9;i++)
{
delay();
P0=tab1[ i];
}
P0=0xff;
P2=0xfe;
for(i=0;i<9;i++)
{
delay();
P2=tab1[ i];
}
P2=0xff;
P3=0xfe;
for(i=0;i<9;i++)
{
delay();
P3=tab1[ i];
}
P3=0xff;
}
void pattern3()
{
P1=0xfe;
for(i=0;i<9;i++)
{
delay();
P1=~tab1[ i];
}
P1=0xff;
P0=0xfe;
for(i=0;i<9;i++)
{
delay();
P0=~tab1[ i];
}
P0=0xff;
P2=0xfe;
for(i=0;i<9;i++)
{
delay();
P2=~tab1[ i];
}
P2=0xff;
P3=0xfe;
for(i=0;i<9;i++)
{
delay();
P3=~tab1[ i];
}
P3=0xff;
}
void pattern4()
{
P0=P1=P2=P3=0xfe;
for(i=0;i<9;i++)
{
delay();
P0=P1=P2=P3=~tab1[ i];
}
P0=P1=P2=P3=0xff;
}
void pattern5()
{
P1=0x7f;
for(i=0;i<9;i++)
{
delay();
P1=tab2[ i];
}
P1=0xff;
P0=0x7f;
for(i=0;i<9;i++)
{
delay();
P0=tab2[ i];
}
P0=0xff;
P2=0x7f;
for(i=0;i<9;i++)
{
delay();
P2=tab2[ i];
}
P2=0xff;
P3=0x7f;
for(i=0;i<9;i++)
{
delay();
P3=tab2[ i];
}
P3=0xff;
}
void pattern6()
{
P1=0x7f;
for(i=0;i<9;i++)
{
delay();
P1=~tab2[ i];
}
P1=0xff;
P0=0x7f;
for(i=0;i<9;i++)
{
delay();
P0=~tab2[ i];
}
P0=0xff;
P2=0x7f;
for(i=0;i<9;i++)
{
delay();
P2=~tab2[ i];
}
P2=0xff;
P3=0x7f;
for(i=0;i<9;i++)
{
delay();
P3=~tab2[ i];
}
P3=0xff;
}
void pattern7()
{
P0=P1=P2=P3=0x7f;
for(i=0;i<9;i++)
{
delay();
P0=P1=P2=P3=~tab2[ i];
}
P0=P1=P2=P3=0xff;
}
void pattern8()
{
P0=P1=P2=P3=0xff;
for(i=0;i<9;i++)
{
delay();
P0=P1=P2=P3=tab3[ i];
}
P0=P1=P2=P3=0xff;
}
void pattern9()
{
P0=P1=P2=P3=0xff;
for(i=0;i<9;i++)
{
delay();
P0=P1=P2=P3=tab4[ i];
}
P0=P1=P2=P3=0xff;
}
void pattern10()
{
P0=P1=P2=P3=0x00;
for(i=0;i<9;i++)
{
delay();
}
P0=P1=P2=P3=0xff;
P0=P1=P2=P3=0xff;
for(i=0;i<9;i++)
{
delay();
}
P0=P1=P2=P3=0xff;
}
void main()
{
while (1)
{
pattern1();
pattern2();
pattern3();
pattern4();
pattern5();
pattern6();
pattern7();
pattern8();
pattern9();
pattern10();
}
}
|