3.上面说了点亮一个Led灯,还有控制Led灯的闪烁,下面可以用一个比较笨的方法来做一个流水灯,思路就是先点亮第一个灯,然后点亮第二个,剩下的也是依次点亮,在每一个亮灭中间进行停顿,这样就能够形成所谓的流水灯效果了。代码如下
#include<REGX52.H> #include<INTRINS.H> void Delay500ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 4; j = 129; k = 119; do { do { while (--k); } while (--j); } while (--i); } void main() { while(1) { P2=0xFE;//1111 1110 Delay500ms(); P2=0xFD;//1111 1101 Delay500ms(); P2=0xFB;//1111 1011 Delay500ms(); P2=0xF7;//1111 0111 Delay500ms(); P2=0xEF;//1110 1111 Delay500ms(); P2=0xDF;//1101 1111 Delay500ms(); P2=0xBF;//1011 1111 Delay500ms(); P2=0x7F;//0111 1111 Delay500ms(); } }
下面就是流水灯的PLUS 版本可以控制流水灯的速度,也就是调节延时函数的大小对延时函数进行更改一下,使延时函数更加的灵活,
延时函数更改如下
void Delay1ms(unsigned int xms) //@11.0592MHz { unsigned char i, j; while(xms); { i = 2; j = 199; do { while (--j); } while (--i); xms--; } }
标签:P2,1111,--,51,学习,单片机,while,延时,Delay500ms From: https://www.cnblogs.com/Zhang-xingping-shuo/p/18077803