標(biāo)題: 36個(gè)LED不同單片機(jī)IO口的驅(qū)動(dòng)問(wèn)題,想了一天了求指導(dǎo) [打印本頁(yè)]

作者: toaaa    時(shí)間: 2019-1-11 15:44
標(biāo)題: 36個(gè)LED不同單片機(jī)IO口的驅(qū)動(dòng)問(wèn)題,想了一天了求指導(dǎo)
本人單片機(jī)小白,只會(huì)用玩同一個(gè)IO口4*4的矩陣。在一個(gè)IO口上可以用十六進(jìn)制設(shè)置4個(gè)引腳高,4個(gè)引腳低,P1=0xF0;  12*3的36個(gè)燈怎么驅(qū)動(dòng),想了一天了跪求大佬

IMG_20190111_112752.jpg (981.41 KB, 下載次數(shù): 40)

IMG_20190111_112752.jpg

作者: jeffwang2011    時(shí)間: 2019-1-11 16:05
P1=0xF0是全亮啊,你這36個(gè)LED也是要全亮和全滅嗎?

全亮:P1&=0xf8;P2=0xff;P0|=0xff;
全滅:P1|=0xff;P2=0xff;P0|=0xff;

好久沒(méi)搞51了,都不敢肯定對(duì)不對(duì)。。。
作者: xuyaqi    時(shí)間: 2019-1-11 16:35
要L1頭一個(gè)燈亮,p10低,p11與p12高,p20高,p21-p27以及p00-p03全低。
要L1第二個(gè)燈亮,p10低,p11與p12高,p21高,p20-p27以及p00-p03全低。
。
。
。
要L2頭一個(gè)燈亮,p11低,p10與p12高,p20高,p21-p27以及p00-p03全低。
。

。
以此類推。
作者: l6931639    時(shí)間: 2019-1-11 16:49
相信P0和P2的數(shù)據(jù)你都會(huì)了,P1你可以這樣:P1=10000000B 表示第一行,P1=01000000B表示第二行,P1=00100000B表示第三行
作者: yzwzfyz    時(shí)間: 2019-1-11 16:49
如法炮制:6高6低。
作者: l6931639    時(shí)間: 2019-1-11 16:51
相信P0,P2的數(shù)據(jù)你都會(huì)了,P1可以這樣表示:第一行P1=10000000B,第二行P1=01000000B,第三行P1=00100000B
作者: yzwzfyz    時(shí)間: 2019-1-11 16:59
如果必須用8個(gè)IO來(lái)做可以這樣:4*3*3。
3*3用6個(gè)IO可以做成9個(gè)驅(qū)動(dòng),這樣的驅(qū)動(dòng)做4組,這4四組用剩下的兩IO做選通,剛好可以有4個(gè)狀態(tài)的選通。不過(guò),3*3之后,如何再被選通要下功夫了。需要增加其它器件,得不償失。
所以幾乎無(wú)人采用這種方式,但作為學(xué)習(xí),你可以按照這個(gè)思路試試。
大多會(huì)采用6*6的方案。即用12個(gè)IO口。
作者: yzwzfyz    時(shí)間: 2019-1-11 17:01
其實(shí),這是個(gè)數(shù)學(xué)分解質(zhì)因素的問(wèn)題。
作者: gordonzhang240    時(shí)間: 2019-1-11 17:03
可以考慮采用掃描方式控制,只要掃頻大于20Hz,人眼基本就分辨不出來(lái)。
作者: wulin    時(shí)間: 2019-1-11 17:59
本帖最后由 wulin 于 2019-1-12 08:00 編輯

最簡(jiǎn)單的方法就像操作數(shù)碼管一樣,設(shè)置unsigned int 數(shù)組控制行,設(shè)置unsigned char 數(shù)組控制列,把不同組的端口組合成一個(gè)unsigned int變量來(lái)操作。參看我以前的回壇友的帖子:“異組端口組成矩陣鍵盤的讀寫(xiě)操作方法”。也可以按點(diǎn)陣LED方法驅(qū)動(dòng)。

作者: yaoji123    時(shí)間: 2019-1-12 13:39
根據(jù)你的電路用動(dòng)態(tài)掃描方式,列提供數(shù)據(jù),行掃描,頻率在50*12Hz,每次單片機(jī)一個(gè)引腳上只有一個(gè)LED點(diǎn)亮,關(guān)鍵程序的寫(xiě)好,單片機(jī)引腳能承受電流的20MA,要加限流電阻。
作者: toaaa    時(shí)間: 2019-1-14 22:22
wulin 發(fā)表于 2019-1-11 17:59
最簡(jiǎn)單的方法就像操作數(shù)碼管一樣,設(shè)置unsigned int 數(shù)組控制行,設(shè)置unsigned char 數(shù)組控制列,把不同組 ...

大佬牛逼,這么多方法,我還是覺(jué)得這種比較易實(shí)現(xiàn)多種功能組合
作者: weidoit    時(shí)間: 2019-1-18 15:36
動(dòng)態(tài)掃描,Proteus仿真。




作者: 璀璨星芒    時(shí)間: 2019-1-19 15:45
兩個(gè)P0總共可以驅(qū)動(dòng)8*8=64個(gè)燈,方式原理與4*4一般




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