通过本站学习单片机有一段时间了,按照自己的理解,做了个心形流水灯,写了个花样流水的程序。嗯,有三四个花样吧,感觉程序有点繁琐,还有每个花样流水灯循环次数怎么控制,流星灯,呼吸灯程序怎么写等好多问题,目前本人的水平就这样了,发出来和刚学单片机的朋友交流交流写出更多的花样来,更好的程序。有路过的大神们也给指点指点,在此先谢过。
- #include <REGX51.H>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- void delayms(uint);
- void liushui0();
- void liushui1();
- void liushui2();
- void liushui3();
- void liushui4();
- uchar aa;
- uchar bb;
- uchar i;
- void main()
- {
-
- while(1)
- {aa=0xfe;
- bb=0x7f;
- liushui0();
- P0=0xff;
- delayms(500);
- liushui1();
- P0=0xff;
- P1=0xff;
- P2=0xff;
- P3=0xff;
- delayms(1500);
- liushui2();
- liushui3();
- liushui4();
- delayms(500);
-
- }
- }
- void delayms(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void liushui0()
- {
- for(i=0;i<8;i++)
- {
-
- P0=aa;
- delayms(500);
- aa=_crol_(aa,1);
- P0=0xff;
- }
- for(i=0;i<8;i++)
- {
-
- P1=aa;
- delayms(500);
- aa=_crol_(aa,1);
- P1=0xff;
- }
- for(i=0;i<8;i++)
- {
-
- P2=aa;
- delayms(500);
- aa=_crol_(aa,1);
- P2=0xff;
- }
- for(i=0;i<8;i++)
- {
-
- P3=aa;
- delayms(500);
- aa=_crol_(aa,1);
- P3=0xff;
- }
- for(i=0;i<8;i++)
- {
- P3=bb;
- delayms(500);
- bb=_cror_(bb,1);
- P3=0xff;
- }
- for(i=0;i<8;i++)
- {
- P2=bb;
- delayms(500);
- bb=_cror_(bb,1);
- P2=0xff;
- }
- for(i=0;i<8;i++)
- {
- P1=bb;
- delayms(500);
- bb=_cror_(bb,1);
- P1=0xff;
- }
- for(i=0;i<8;i++)
- {
- P0=bb;
- delayms(500);
- bb=_cror_(bb,1);
- P0=0xff;
- }
- }
- void liushui1()
- {
- for(i=0;i<8;i++)
- {P0=aa;
-
- P1=P0;
- P2=P0;
- P3=P0;
- delayms(500);
- aa=_crol_(aa,1);
- }
- for(i=0;i<8;i++)
- {
- P0=aa;
- P1=P0;
- P2=P0;
- P3=P0;
- delayms(500);
- aa=_cror_(aa,1);
- P0=0xff;
- P1=0xff;
- P2=0xff;
- P3=0xff;
- }
- }
- void liushui2()
- {
- P0=0xfe;
- P3=0x7f;
- delayms(500);
- P0=0xfc;
- P3=0x3f;
- delayms(500);
- P0=0xf8;
- P3=0x1f;
- delayms(500);
- P0=0xf0;
- P3=0x0f;
- delayms(500);
- P0=0xe0;
- P3=0x07;
- delayms(500);
- P0=0xc0;
- P3=0x03;
- delayms(500);
- P0=0x80;
- P3=0x01;
- delayms(500);
- P0=0x00;
- P3=0x00;
- delayms(500);
-
- P1=0xfe;
- P2=0x7f;
- delayms(500);
- P1=0xfc;
- P2=0x3f;
- delayms(500);
- P1=0xf8;
- P2=0x1f;
- delayms(500);
- P1=0xf0;
- P2=0x0f;
- delayms(500);
- P1=0xe0;
- P2=0x07;
- delayms(500);
- P1=0xc0;
- P2=0x03;
- delayms(500);
- P1=0x80;
- P2=0x01;
- delayms(500);
- P1=0x00;
- P2=0x00;
- delayms(500);
-
- P1=0x00;
- P2=0x00;
- delayms(500);
- P1=0x80;
- P2=0x01;
- delayms(500);
- P1=0xc0;
- P2=0x03;
- delayms(500);
- P1=0xe0;
- P2=0x07;
- delayms(500);
- P1=0xf0;
- P2=0x0f;
- delayms(500);
- P1=0xf8;
- P2=0x1f;
- delayms(500);
- P1=0xfc;
- P2=0x3f;
- delayms(500);
- P1=0xfe;
- P2=0x7f;
- delayms(500);
- P1=0xff;
- P2=0xff;
- delayms(400);
-
- P0=0x00;
- P3=0x00;
- delayms(500);
- P0=0x80;
- P3=0x01;
- delayms(500);
- P0=0xc0;
- P3=0x03;
- delayms(500);
- P0=0xe0;
- P3=0x07;
- delayms(500);
- P0=0xf0;
- P3=0x0f;
- delayms(500);
- P0=0xf8;
- P3=0x1f;
- delayms(500);
- P0=0xfc;
- P3=0x3f;
- delayms(500);
- P0=0xfe;
- P3=0x7f;
- delayms(500);
- P0=0xff;
- P3=0xff;
- delayms(500);
-
- }
- void liushui3()
- {
-
- P3=0x7f;
- delayms(500);
- P3=0x3f;
- delayms(500);
- P3=0x1f;
- delayms(500);
- P3=0x0f;
- delayms(500);
- P3=0x07;
- delayms(500);
- P3=0x03;
- delayms(500);
- P3=0x01;
- delayms(500);
- P3=0x00;
- delayms(500);
-
-
- P2=0x7f;
- delayms(500);
- P2=0x3f;
- delayms(500);
- P2=0x1f;
- delayms(500);
- P2=0x0f;
- delayms(500);
- P2=0x07;
- delayms(500);
- P2=0x03;
- delayms(500);
- P2=0x01;
- delayms(500);
- P2=0x00;
- delayms(500);
-
-
- P1=0x7f;
- delayms(500);
- P1=0x3f;
- delayms(500);
- P1=0x1f;
- delayms(500);
- P1=0x0f;
- delayms(500);
- P1=0x07;
- delayms(500);
- P1=0x03;
- delayms(500);
- P1=0x01;
- delayms(500);
- P1=0x00;
- delayms(500);
-
-
- P0=0x7f;
- delayms(500);
- P0=0x3f;
- delayms(500);
- P0=0x1f;
- delayms(500);
- P0=0x0f;
- delayms(500);
- P0=0x07;
- delayms(500);
- P0=0x03;
- delayms(500);
- P0=0x01;
- delayms(500);
- P0=0x00;
- delayms(500);
-
- P0=0x00;
- delayms(500);
- P0=0x01;
- delayms(500);
- P0=0x03;
- delayms(500);
- P0=0x07;
- delayms(500);
- P0=0x0f;
- delayms(500);
- P0=0x1f;
- delayms(500);
- P0=0x3f;
- delayms(500);
- P0=0x7f;
- delayms(500);
- P0=0xff;
- delayms(500);
-
-
- P1=0x00;
- delayms(500);
- P1=0x01;
- delayms(500);
- P1=0x03;
- delayms(500);
- P1=0x07;
- delayms(500);
- P1=0x0f;
- delayms(500);
- P1=0x1f;
- delayms(500);
- P1=0x3f;
- delayms(500);
- P1=0x7f;
- delayms(500);
- P1=0xff;
- delayms(500);
-
- P2=0x00;
- delayms(500);
- P2=0x01;
- delayms(500);
- P2=0x03;
- delayms(500);
- P2=0x07;
- delayms(500);
- P2=0x0f;
- delayms(500);
- P2=0x1f;
- delayms(500);
- P2=0x3f;
- delayms(500);
- P2=0x7f;
- delayms(500);
- P2=0xff;
- delayms(500);
-
- P3=0x00;
- delayms(500);
- P3=0x01;
- delayms(500);
- P3=0x03;
- delayms(500);
- P3=0x07;
- delayms(500);
- P3=0x0f;
- delayms(500);
- P3=0x1f;
- delayms(500);
- P3=0x3f;
- delayms(500);
- P3=0x7f;
- delayms(500);
- P3=0xff;
- delayms(500);
- }
- void liushui4()
- {
- P0=0x00;
- P1=0x00;
- P2=0x00;
- P3=0x00;
- delayms(500);
- P0=0x00;
- P1=0x00;
- P2=0x00;
- P3=0x00;
- delayms(500);
- P0=0xff;
- P1=0xff;
- P2=0xff;
- P3=0xff;
- delayms(500);
- P0=0xff;
- P1=0xff;
- P2=0xff;
- P3=0xff;
- delayms(500);
- }
复制代码 |