求用52单片机制作16个led流水灯的方法。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp1,temp2,i,j;
void delay(uint z) //1MS
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void diyizhong()
{
P1=0x00;
P3=0x00;
delay(300);
for(i=0;i<4;i++)
{
P1=~P1;
P3=~P3;
delay(300);
}
}
void dierzhong()
{
for(j=0;j<3;j++)
{
temp1=0xfe;
P1=temp1;
P3=0xff;
for(i=0;i<8;i++)
{
delay(100);
temp1=_crol_(temp1,1);
P1=temp1;
}
temp2=0xfe;
P1=0xff;
P3=temp2;
for(i=0;i<8;i++)
{
delay(100);
temp2=_crol_(temp2,1);
P3=temp2;
}
}
}
void disanzhong()
{
P1=0x55;
P3=0x55;
delay(300);
for(i=0;i<4;i++)
{
P1=~P1;
P3=~P3;
delay(300);
}
}
void disizhong()
{
for(j=0;j<3;j++)
{
temp1=0x01;
P1=temp1;
P3=0x00;
for(i=0;i<8;i++)
{
delay(100);
temp1=_crol_(temp1,1);
P1=temp1;
}
temp2=0x01;
P1=0x00;
P3=temp2;
for(i=0;i<8;i++)
{
delay(100);
temp2=_crol_(temp2,1);
P3=temp2;
}
}
}
void diwuzhong()
{
for(j=0;j<3;j++)
{
temp1=0x7f;
P1=temp1;
P3=0xff;
for(i=0;i<1;i++)
{
delay(100);
temp1=_cror_(temp1,1);
P1=temp1;
}
temp2=0xfe;
P3=temp2;
delay(100);
for(i=0;i<6;i++)
{
temp1=_cror_(temp1,1);
P1=temp1;
temp2=_crol_(temp2,1);
P3=temp2;
delay(100);
}
P1=0xff;
P3=0x7f;
delay(100);
}
}
void main()
{
while(1)
{
diyizhong();
dierzhong();
disanzhong();
disizhong();
diwuzhong();
}
}
写了5种花样 行的话给分吧
其实很多卖单片机学习板的网站上都有大量这些资源可以下载。
#include <intrins.h>
void delay (unsigned int i)
{
unsigned int k;
for (k=0;k<i;k++);
}
void main()
{
unsigned char aa,bb,i;
while(1)
{
aa=0x80;
for(i=0;i<8;i++)
{
P0=~aa;
delay(5000);
aa>>=1;
}
bb=0x80;
for(i=0;i<8;i++)
{
P1=~bb;
delay(5000);
bb>>=1;
}
P0=0XFF;P1=0XFF;
}
}
191324276@qq.com