标题:
如何实现单片机8个led灯从两边向中间流水灯的程序?目前只会单向的流水
[打印本页]
作者:
fff废旧恶气
时间:
2023-5-8 15:17
标题:
如何实现单片机8个led灯从两边向中间流水灯的程序?目前只会单向的流水
51单片机程序(8个LED灯)
想问一下如何实现51单片机8个led灯从两边向中间流水灯效果的程序,只会单向的流水效果。
作者:
名字不是重点
时间:
2023-5-8 17:10
查表,简单粗暴绝对给力!
8个太少了,32个才好看。。
或是计算,如下:
//m^n函数
//返回值:m^n次方.
unsigned long prv_pow(unsigned char m,unsigned char n)
{
unsigned long result=1;
while(n--) result=result*m;
return result;
}
void main()
{ unsigned char i;
for(i=0;i<4;i++)
{
P1=prv_pow(2,i)+prv_pow(2,7-i);
delay_ms(500);
}while(1);
}
作者:
HU1123
时间:
2023-5-8 17:32
可以定义一个数组每次取数组预存好的数,或者高位,低位分别*2或/2计算,看自己的喜好方法还是有不少
作者:
man1234567
时间:
2023-5-8 17:32
这个很简单,最多几十行代码就可以。
你会单向的流水效果,可以试下反向的流动,再合成从中间起流动就可以了。
作者:
yzwzfyz
时间:
2023-5-9 09:04
换个思想吧,没有方向这一说!
1、将各个灯的明暗状态,看作是的个数组的组元素(A1,A2,A3,A4……)。A的每一位0/1对应一个灯的明暗。
2、每间隔一个时间TG,切换一个组元素,送出显示。
这样,改变TG的大小,就改变了速度。
改变,A1,A2,A3,A4值(或排序),就改变的LED灯的显示状态。
如果,A1,A2,A3,A4……的组合,形成左移的效果,看上去就左移了;形成右移的效果,看上去就右移了;看上去形成跳动的效果,看上去就跳动了……
你想怎么玩就怎么玩!
程序构思巧妙,易写,逻辑清晰。
你要玩的花色,就是在如何将LED的各种显示组合,编制了A1,A2,A3……
如果,你设计了N个方案(单灯左移,单灯右移,双灯左移,双灯右移,暂停、全闪、……),就做成N的数组。每按一次键就换一个数组取值,显示。"
作者:
li64331218
时间:
2023-5-9 09:20
集思广益,多多益善。有想法就能实现
作者:
13205495918
时间:
2023-5-9 09:32
定义一个数组是一个思路
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1