標(biāo)題: 如何實(shí)現(xiàn)單片機(jī)8個(gè)led燈從兩邊向中間流水燈的程序?目前只會(huì)單向的流水 [打印本頁]

作者: fff廢舊惡氣    時(shí)間: 2023-5-8 15:17
標(biāo)題: 如何實(shí)現(xiàn)單片機(jī)8個(gè)led燈從兩邊向中間流水燈的程序?目前只會(huì)單向的流水
51單片機(jī)程序(8個(gè)LED燈)
想問一下如何實(shí)現(xiàn)51單片機(jī)8個(gè)led燈從兩邊向中間流水燈效果的程序,只會(huì)單向的流水效果。

作者: 名字不是重點(diǎn)    時(shí)間: 2023-5-8 17:10
查表,簡單粗暴絕對給力!
8個(gè)太少了,32個(gè)才好看。。
或是計(jì)算,如下:
//m^n函數(shù)
//返回值: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    時(shí)間: 2023-5-8 17:32
可以定義一個(gè)數(shù)組每次取數(shù)組預(yù)存好的數(shù),或者高位,低位分別*2或/2計(jì)算,看自己的喜好方法還是有不少
作者: man1234567    時(shí)間: 2023-5-8 17:32
這個(gè)很簡單,最多幾十行代碼就可以。
你會(huì)單向的流水效果,可以試下反向的流動(dòng),再合成從中間起流動(dòng)就可以了。
作者: yzwzfyz    時(shí)間: 2023-5-9 09:04
換個(gè)思想吧,沒有方向這一說!
1、將各個(gè)燈的明暗狀態(tài),看作是的個(gè)數(shù)組的組元素(A1,A2,A3,A4……)。A的每一位0/1對應(yīng)一個(gè)燈的明暗。
2、每間隔一個(gè)時(shí)間TG,切換一個(gè)組元素,送出顯示。
這樣,改變TG的大小,就改變了速度。
改變,A1,A2,A3,A4值(或排序),就改變的LED燈的顯示狀態(tài)。
如果,A1,A2,A3,A4……的組合,形成左移的效果,看上去就左移了;形成右移的效果,看上去就右移了;看上去形成跳動(dòng)的效果,看上去就跳動(dòng)了……
你想怎么玩就怎么玩!
程序構(gòu)思巧妙,易寫,邏輯清晰。
你要玩的花色,就是在如何將LED的各種顯示組合,編制了A1,A2,A3……
如果,你設(shè)計(jì)了N個(gè)方案(單燈左移,單燈右移,雙燈左移,雙燈右移,暫停、全閃、……),就做成N的數(shù)組。每按一次鍵就換一個(gè)數(shù)組取值,顯示。"

作者: li64331218    時(shí)間: 2023-5-9 09:20
集思廣益,多多益善。有想法就能實(shí)現(xiàn)

作者: 13205495918    時(shí)間: 2023-5-9 09:32
定義一個(gè)數(shù)組是一個(gè)思路




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1