简单的拖尾流水灯
时间:10-02
整理:3721RD
点击:
最近在学51单片机,前段时间看到有人问拖尾流水灯怎么做,发现自己连拖尾流水灯是什么都不知道
查了一下,感觉不算太难,可是编程序的时候还是出了很多问题
最后编出一个没有用指针,没有用数组,只用了位运算的简单拖尾流水灯
程序贴一下:共享:
- #include<reg52.h>
- void Delay(unsigned int t);
- void main()
- {
- unsigned char a,b,i,k,l,m,t1=20,Temp,Temp2,Temp3,Temp4,Temp5;
- while(1)
- {
- a=0xff;
- b=0;
- for(k=0;k<8;k++)
- {
- for(m=0;m<t1;m++)//控制循环频率
- {Temp=a;
- Temp2=b;
- Temp3=b;
- Temp4=a;
- for(l=0;l<k;l++)
- {
- P1=a|Temp3;
- P0=a|Temp3;
- Delay(350);
- Temp2>>=1;
- Temp3=Temp3&Temp2;
- }
- for(i=l;i<8;i++)
- {
- P1=Temp4;
- P0=Temp4;
- Delay(350);
- Temp>>=1;
- Temp4=Temp&(~b);
- }
- }
- a<<=1;
- Temp5=b;
- Temp5<<=1;
- b=Temp5|0x01;
- }
- }
- }
- void Delay(unsigned int t)
- {
- while(--t);
- }
原理就是利用点亮时间和熄灭时间的比例不同,把很短时间内一直点亮为最亮,一直熄灭为最暗,平均分成8种亮度,再让他们“流动”起来即可
好,谢!
新手围观···很有研究精神,学习啦···
我也是啥也不懂啊,该怎么学习?
大家一起努力,好好学吧
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶的顶顶顶顶顶
3Q....回去也试试.
不错的文件,值得收藏
知道拖尾流水灯,但是没做过,谢谢分享。
