标题:
最炫心形灯单片机代码,值得你拥有
[打印本页]
作者:
122429
时间:
2020-7-21 17:34
标题:
最炫心形灯单片机代码,值得你拥有
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
void delayms(int z);
void main(void)
{
int n,i;
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
/******************* 单个灯循环亮,间隔0.4s**********************/
for(i=0;i<8;i++)
{
P0=table1[i];
delayms(100);
}
P0=0XFF;
for(i=0;i<8;i++)
{
P1=table0[i];
delayms(100);
}
P1=0XFF;
for(i=0;i<8;i++)
{
P3=table0[i];
delayms(100);
}
P3=0XFF;
for(i=0;i<8;i++)
{
P2=table0[i];
delayms(100);
}
P2=0XFF;
/*****************四个分开转圈亮*************************/
for(n=3;n>0;n--)
{
for(i=0;i<8;i++)
{
P0=table0[i];
P1=table1[i];
P2=table1[i];
P3=table1[i];
delayms(200);
}
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
/*四个循环转圈////////////////////////////////////////////////////////四个循环转圈//////////////////////////////////////*/
for(i=0;i<3;i++)
{
P0=0X0F; delayms(50);
P0=0X87; delayms(50);
P0=0XC3; delayms(50);
P0=0XE1; delayms(50);
P0=0XF0; delayms(50);
P0=0xf8;P1=0xfe;delayms(50);
P0=0xfc;P1=0xfc;delayms(50);
P0=0xfe;P1=0xf8;delayms(50);
P0=0xff;P1=0xf0;
for(n=0;n<4;n++)
{
delayms(50);
P1=_crol_(P1,1);
}
delayms(50);
P1=0x1f;P3=0xfe;delayms(50);
P1=0x3f;P3=0xfc;delayms(50);
P1=0x7f;P3=0xf8;delayms(50);
P1=0xff;P3=0xf0;delayms(50);
for(n=0;n<4;n++)
{
delayms(50);
P3=_crol_(P3,1);
}
delayms(50);
P3=0x1f;P2=0xfe;delayms(50);
P3=0x3f;P2=0xfc;delayms(50);
P3=0x7f;P2=0xf8;delayms(50);
P3=0xff;P2=0xf0;delayms(50);
for(n=0;n<4;n++)
{
delayms(50);
P2=_crol_(P2,1);
}
delayms(50);
P2=0X1F;delayms(50);
P2=0X3F;delayms(50);
P2=0X7F;delayms(50);
P2=0XFF;delayms(50);
}
/****************左右两边的灯轮流亮//////////////////////////////////左右两边的灯轮流亮/////////////*************/
for(i=0;i<2;i++)
{
P0=0x00;P1=0x00;delayms(500);
P0=0xff;P1=0xff;delayms(500);
P3=0X00;P2=0X00;delayms(500);
P3=0XFF;P2=0XFF;delayms(500);
}
/******************************间隔亮,相邻的灯轮流亮///////////////////////////////// 间隔亮,相邻的灯轮流亮/////*************/
for(i=0;i<3;i++)
{
P0=0X55;
P1=0XAA;
P2=0XAA;
P3=0XAA;delayms(500);
P0=0XAA;
P1=0X55;
P2=0X55;
P3=0X55;delayms(500);
}
P0=0XFF;P3=0XFF;P2=0XFF;P1=0XFF;delayms(50);
/***************************上下闪,左上右下闪,全闪***************************************/
P0=0X00;P3=0X00;delayms(500);
P0=0XFF;P3=0XFF;
P1=0X00;P2=0X00;delayms(500);
P1=0XFF;P2=0XFF;delayms(500);
P0=0X00;P2=0X00;delayms(500);
P0=0XFF;P2=0XFF;
P1=0X00;P3=0X00;delayms(500);
P1=0XFF;P3=0XFF;delayms(500);
P0=0X00;P1=0X00;P2=0X00;P3=0X00; delayms(5000);
/****************************上下相碰撞,返回***************************************************/
for(i=0;i<8;i++)
{
P0=table1[i];
P1=table1[i];
P3=table0[i];
P2=table1[i];
delayms(100);
}
for(i=0;i<8;i++)
{
P0=table0[i];
P1=table0[i];
P3=table1[i];
P2=table0[i];
delayms(100);
}
/**************************逐渐全亮,逐渐全灭**********************************/
for(i=0;i<8;i++)
{
P0=table3[i];P2=table3[i];delayms(100);
}
for(i=0;i<8;i++)
{
P1=table2[i];P3=table3[i];delayms(100);
}
for(i=0;i<8;i++)
{
P0=table5[i];P2=table5[i];delayms(100);
}
for(i=0;i<8;i++)
{
P1=table4[i];P3=table5[i];delayms(100);
}
/*从两边开始逐渐全亮到逐渐全灭************************************************************************/
for(i=0;i<8;i++)
{
P0=table3[i];P2=table3[i];delayms(100);
}
for(i=0;i<8;i++)
{
P1=table2[i];P3=table3[i];delayms(100);
}
for(i=0;i<8;i++)
{
P0=table5[i];P2=table5[i];delayms(100);
}
for(i=0;i<8;i++)
{
P1=table4[i];P3=table5[i];delayms(100);
}
}
/******************************延时函数/////////////////////////////延时函数//////////////////////////////*/
void delayms(int z)
{
int m,q;
for(q=0;q<z;q++)
for(m=110;m>0;m--);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1