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

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

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

IMG_20190111_112752.jpg

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

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

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

要L2頭一個燈亮,p11低,p10與p12高,p20高,p21-p27以及p00-p03全低。
。


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

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

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

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




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




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