单片机流水灯花样代码
时间: 2023-12-20 11:30:23 浏览: 28
以下是单片机流水灯花样代码的示例:
```c
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uchar code duanxuan[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f
};
uchar Light_Mode=0; //流水灯效果变量
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void DigDisplay(uchar num)
{
uchar i;
for(i=0;i<8;i++)
{
switch(i)
{
case(0):LSA=0;LSB=0;LSC=0;break;
case(1):LSA=1;LSB=0;LSC=0;break;
case(2):LSA=0;LSB=1;LSC=0;break;
case(3):LSA=1;LSB=1;LSC=0;break;
case(4):LSA=0;LSB=0;LSC=1;break;
case(5):LSA=1;LSB=0;LSC=1;break;
case(6):LSA=0;LSB=1;LSC=1;break;
case(7):LSA=1;LSB=1;LSC=1;break;
}
P0=duanxuan[i];
P1=table[num];
delay(1);
P1=0x00;
}
}
void main()
{
uchar i,j,k;
while(1)
{
switch(Light_Mode)
{
case(0):
for(i=0;i<8;i++)
{
DigDisplay(i);
}
break;
case(1):
for(i=0;i<8;i++)
{
DigDisplay(0);
DigDisplay(i);
}
break;
case(2):
for(i=0;i<8;i++)
{
DigDisplay(i);
DigDisplay(0);
}
break;
case(3):
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
DigDisplay(i);
DigDisplay(j); }
}
break;
case(4):
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
for(k=0;k<8;k++)
{
DigDisplay(i);
DigDisplay(j);
DigDisplay(k);
}
}
}
break;
}
}
}
```