這個心形燈自己寫的,希望對你們有用
- #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--);
- }
復制代碼
0.png (57.44 KB, 下載次數: 53)
下載附件
2017-3-18 02:57 上傳
下載:
心形燈程序.zip
(1.26 KB, 下載次數: 18)
2017-3-17 20:53 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|