一、硬方面 1.LED:CUBE4光立方需要64個LED,LED的顏色可以自己隨意挑選紅 黃 藍 綠 白,個人推薦霧狀藍色LED,夜晚效果超屌。 2.單片機:單片機上采用程序空間大的,運行速度快的STC12C60S2單片機。如果你覺得大了,你可以選擇28腳的,能保證有16個IO口控制LED的亮滅。也能自己擴展光立方功能。 3. 一個12Mhz晶振,兩個30pF電容,搭建單片機的最小系統(tǒng) 4.上拉電阻:為了提高LED亮度,選用200歐2/1W的。(可加可不加) 5.電源:5V電源。電腦USB口電源或手機適配器輸出的即可,不需要太苛刻的要求! 二、電路連接 很多人會在這里糾結,到底該怎么連接電路。不用糾結了,接下來我給大家詳細說說怎么連接LED。 本光立方采用的電路與LED點陣屏一樣的。接下來看圖。
0.png (553.01 KB, 下載次數(shù): 87)
下載附件
2016-9-24 18:41 上傳
內附有取模 模板,可實現(xiàn)各種漢字,符號在光立方上切換。
從正面看:紅色是LED的正極,正極接下去,中間兩列相連,外面兩列相連接后面依次如此連接。藍色是LED負極相連,已經(jīng)標出連接到的IO口號上了。 本光立方負極接到P2口上,所以按照上面的圖,左邊上面第一個連接到的應該是P2.0口。
0.png (427.73 KB, 下載次數(shù): 78)
下載附件
2016-9-24 18:42 上傳
從上面看:IO口號已標出,要注意的是中間兩列相連的,如5和5是相連的。外面兩列相連,如0和0相連的。本光立方在這里連的是P0口,0就連接到P0.0上 5就接到P0.5上 說說上拉電阻:在IO口連接到LED正極的基礎上再把電阻連接到VCC和IO口間。好了,硬件就說到這里。有什么不懂的可以加我QQ1323811540.驗證信息填光立方三、軟方面本光立方有專用取模軟件,如果你按上面電路連接,只需要在C語言程序中做一些小修改就可以使用了!C語言程序下面我會打包
你可以不用上面的P0,P2口但是 0.1.2.3.4.5.6.7的順序必須同上如果你改了,那就請看下面,怎么在程序中改。首先你需要頭文件#include <STC12C2052AD.h>,如果沒有不用擔心我已經(jīng)打包了,下載再放到keil頭文件的文件夾里就OK,如果不會自己百~度。動畫我都是封裝到一個函數(shù)里,看到這里你應該打開C程序來對著看找個短的說明吧!
- void allfalloff() //由全亮到下落關閉只剩一排 動畫函數(shù)
- {
- unsigned char code tabP0[4][8]={ 把取模取到的數(shù)組直接復制粘貼到這里
- {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
- {0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF}, 要改的是數(shù)組標號
- {0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF}, tabP0[4][8]
- {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF} 這里取了4次 所以填寫4
- };
- int j,k,i;
- for(j=0;j<4;j++) 這里的4改成和上面數(shù)組第一維的數(shù)
- {
- for(k=0;k<15;k++) 15是LED點亮的時間 加大LED點亮時間加長
- {
- for(i=0;i<8;i++) 這里不用改
- {
- P0=0; 在看到這里 如果你改了IO組號的話,那這里也需要改 P0改成你接到LED正極上的那個組號
- P2=tabP2; 這里是接到LED負極上的組號
- P0=tabP0[j]; 這里是正極上的組號
- ys(10); 這里是LED熄滅的時間。也就是這個LED亮滅后間隔多少時間才到下一個 加大熄滅時間加長
- }
- }
- }
- }
- 怎么自己加動畫?
- 看完這個你在和其他函數(shù)做做對比,相信你會懂的
- 不懂還是加我QQ1323811540 驗證消息:光立方
- void 函數(shù)名自己定義() //記得加上動畫注釋說明
- {
- unsigned char code tabP0[4][8]={
- 把取模取到的數(shù)組直接貼到這里 在根據(jù)你取模的次數(shù)修改上面的4
- };
- int j,k,i;
- for(j=0;j<4;j++) 這里的4改成和上面數(shù)組第一維的數(shù)
- {
- for(k=0;k<15;k++) 15是LED點亮的時間 加大LED點亮時間加長
- {
- for(i=0;i<8;i++) 這里不用改
- {
- P0=0; 在看到這里 如果你改了IO組號的話,那這里也需要改 P0改成你接到LED正極上的那個組號
- P2=tabP2; 這里是接到LED負極上的組號
- P0=tabP0[j]; 這里是正極上的組號
- ys(10); 這里是LED熄滅的時間。也就是這個LED亮滅后間隔多少時間才到下一個 加大熄滅時間加長
- }
- }
- }
- }
復制代碼
0.png (28.71 KB, 下載次數(shù): 62)
下載附件
2016-9-24 18:43 上傳
軟件本身無毒,因為是易語言編寫,所有360可能會誤報。請加入白名單打開軟件 上面就是光立方的LED,灰色表示LED熄滅,淡藍色表示點亮我們看到的是LED的正面。
0.png (32.96 KB, 下載次數(shù): 101)
下載附件
2016-9-24 18:44 上傳
單擊上面的圓點LED自動亮或滅確定圖形后點擊 給我取!這樣你就取得第一幀了、 這里取得的幀數(shù)也就是在上面那個數(shù)組4要改成的幀數(shù)如果需要,繼續(xù)取模。 方法同上,相信電子愛好者們都會,如果不會的話,那就別.....那什么了。 取模好后直接復制到上面就好了。
- MAIN()主函數(shù)
- Void main() 一小部分說明
- {
- while(1)
- {
- begin(); //全滅 呼吸亮
- allfalloff(); //由全亮到下落關閉只剩一排 直接把動畫函數(shù)粘貼下來就行
- turnR(); //由下面一排轉到右面
- righttoleft(); //右面平移到左面
- lefttoright(); //左面平移到右面
- righttoleft(); //右面平移到左面
- lefttoright(); //左面平移到右面
- {
- }
復制代碼
|