這次的立方體,不管是原理圖、源程序、制作流程,都會(huì)像以前一樣毫無保留的分享給大家,“Chinked-out”工作室就是堅(jiān)持開源,毫無保留的分享,借助網(wǎng)絡(luò),讓大家指出不足,共同進(jìn)步?。?!我向大家保證,工作室后面的師弟會(huì)繼續(xù)做出更好的作品,以后我也會(huì)堅(jiān)持創(chuàng)作!現(xiàn)在我只完成了立方體部分,后期會(huì)推出“USB在線編輯”功能的立方體和“觸摸編輯動(dòng)畫的”立方體,以后的立方體顯示無需下載程序到到單片機(jī),甚至支持高級(jí)語言編輯動(dòng)畫,也無需其他第三方軟件編輯動(dòng)畫(點(diǎn)擊鼠標(biāo)那是個(gè)很痛苦的事情),適合業(yè)余愛好者。后期程序測(cè)試中,敬請(qǐng)期待!??!
組裝部分
一, 燈珠焊接
最開始的金字塔,我給大家的方案是泡沫板,現(xiàn)在我把焊接燈珠的方式改進(jìn)了,焊接速度更快、質(zhì)量更好,方法如圖:
就是這個(gè),用一張18X30CM的萬能板,上面焊接上間距2.54的排針,用法如下圖:橫向的孔數(shù)是7個(gè),縱向孔數(shù)是8個(gè),這樣焊接出來的燈珠間距就都是8個(gè)了
一目了然,這樣就把燈珠固定好了,如果管腳的彎折方法和我圖片一樣的話(朝下的是正極),那么最優(yōu)的方法是從右到左,從上到下排放。焊接我就不多說了,這個(gè)是最講究的,雖然有這個(gè)模板焊接起來很方便,但焊錫一定要上好,否則開焊后還是很難搞的。溫度要適當(dāng),免得燒毀燈珠,一般情況下,能把焊錫剛好溶化時(shí)的溫度即可。用這種方法焊接出的點(diǎn)陣,要比用泡沫做模板的點(diǎn)陣質(zhì)量更好,很少有開焊點(diǎn),取下的點(diǎn)陣橫平豎直,效率上也有了極大的提高。
焊接好的平面如圖:
二, 燈珠組裝
在組裝之前,先準(zhǔn)備2張18X30cm的萬能板,噴上黑色的噴漆,比較常用的那種,價(jià)格不貴,如圖:
再拿出個(gè)8x8的點(diǎn)陣,比劃一下,量好裁剪的尺寸,用斜口鉗剪切還是很方便的。
然后就需要給底板和側(cè)板焊接彎排針,間距都是8個(gè)孔,朝向請(qǐng)自己把握,下面是我做的圖:
我想看了圖后,大家都應(yīng)該明白了,除了彎排針,還要給每個(gè)面的管腳都焊接上2.54的冷壓端子,很容易的,東西也很便宜。這樣做的好處就是非常容易拆裝,第一次的時(shí)候我用的是直排針,結(jié)果就很難組裝,彎排針不會(huì)影響美觀。
在組裝之前,先要焊接底板和側(cè)板焊接上連接線,如圖:
每個(gè)面都是有64根線,我用的是以前零散、沒了頭子的杜邦線,長(zhǎng)度剛剛好夠的,讀者可以自己做線或者買成品,買成品我覺得也不貴,成品線的好處是,一端是8P的插座,另一端是裸線,直接焊接就好。
這個(gè)過程還是相當(dāng)漫長(zhǎng)的,我焊接512個(gè)燈珠用了三個(gè)下午,底板的焊接和接線同樣是三個(gè)下午,可以說,老老實(shí)實(shí)的焊接的話,還是需要一周的時(shí)間的,我希望喜歡DIY的朋友們要有耐心,過程肯定是枯燥乏味的,但成功的喜悅也是難以言喻的。
看上面的圖大家就應(yīng)該知道了,我延續(xù)了以前金字塔的焊接方法,只不過這次是8輸入全部并聯(lián),沒有遞減到1,輸入的并聯(lián)還是用的廢棄管腳,焊接起來沒什么難度,之所以用2組驅(qū)動(dòng),是考慮到了電流,每個(gè)面的電流還是不小的,8個(gè)面組合起來電流就更大了,單片機(jī)自己的驅(qū)動(dòng)能力是遠(yuǎn)遠(yuǎn)不夠的,一組的驅(qū)動(dòng)也是不夠的,這是我實(shí)際測(cè)試過的結(jié)果。所以還希望大家不要嫌麻煩,當(dāng)然我更期待網(wǎng)友給出更好的解決方案,既能節(jié)約IC也能減少焊接的工作量。
四, 總裝和美化
這些工作都完成后,就是把每個(gè)面的燈珠組裝上去了,實(shí)在是沒什么難度,如果后期發(fā)現(xiàn)有壞點(diǎn)現(xiàn)象,拆卸也很方便的,補(bǔ)焊就是。然后就是根據(jù)原理圖把后面的總線連接到245的輸出上,每個(gè)面64跟線,64個(gè)輸出與之對(duì)應(yīng)。
初裝好后,就是這樣了:
后面就是美化了,軟件調(diào)試過后,硬件可以正常工作的話,就開始美化,把線都整理好,用熱熔膠固定,在圍上護(hù)板,把電路遮擋起來。我得承認(rèn),我沒老外做的好,但畢竟人家用的是16位單片機(jī),驅(qū)動(dòng)方式不一樣的,自然電路不一樣,這個(gè)電路還算是復(fù)雜的,不過原理簡(jiǎn)單,程序設(shè)計(jì)上也沒什么難度。
原理圖部分
一,原理介紹
Ledcube1里面的圖是為底面的驅(qū)動(dòng)圖,也就是我實(shí)物的下面的板子和下面的驅(qū)動(dòng)電路原理,大家看到的那64個(gè)發(fā)光二極管代表了64個(gè)共陽極接點(diǎn),并不是真正的燈珠,這樣畫是因?yàn)?a target="_blank">proteus里我找不到更好的表達(dá)方式了,希望大家切記,那不是真的燈珠,而是底面的64個(gè)共陽極接點(diǎn)(每個(gè)面8個(gè)陽極8個(gè)陰極)。
至于說單片機(jī)(請(qǐng)忽略圖里的AT單片機(jī),做樣子的),我這次用的是STC12C5A60S2,倒不是因?yàn)?9C52速度不行,而是儲(chǔ)存空間不夠大,我手里64K的單片機(jī)只有這么一塊,所以就用上了,大家不要擔(dān)心普通51單片機(jī)的能力問題,非增強(qiáng)型的單片機(jī)是完全可以勝任這個(gè)程序的,我親自測(cè)試,保證通過。
Ledcube2里面的圖就是側(cè)面板子和驅(qū)動(dòng)的電路了,完全一樣,只不過沒畫出單片機(jī),側(cè)面245的輸出全部連接的是共陰極,同樣是64個(gè)。
兩個(gè)圖的19腳請(qǐng)大家注意,是兩兩一組的,大家在焊接的時(shí)候也注意到這個(gè)部分的布局,否則以后組裝的時(shí)候還是很麻煩的。
二,注意事項(xiàng)
1
驅(qū)動(dòng)芯片選型:我實(shí)物用的是LS系列245,因?yàn)槲覍?shí)在是比較懶,沒有在所有的輸出上加上拉電阻,因?yàn)長(zhǎng)S系列的剛剛好就和單片機(jī)的TTL電平兼容,即便是P0端口,不加上拉一樣可以直接準(zhǔn)確輸出??蒆C系列的就不行了,19腳和8跟輸入腳都必須加上拉電阻,否則硬件調(diào)試的結(jié)果是不對(duì)的,這個(gè)也是我親自測(cè)試的結(jié)果。
但不是因?yàn)檫@個(gè)就不選HC系列的,HC的IC扇出系數(shù)(這部分請(qǐng)自行網(wǎng)上學(xué)習(xí))比相比LS系列就大了很多,也就是說,HC的負(fù)載能力要好,而且功耗低,在兩種IC的發(fā)熱上來說,我是深有體會(huì)的,HC系列的做驅(qū)動(dòng)時(shí),芯片發(fā)熱不明顯,但LS的就明顯發(fā)熱,雖然發(fā)熱溫度也是符合范圍的,但感覺上還是不舒服的,所以在骨牌時(shí)鐘的時(shí)候,我就用了HC系列的,那時(shí)候用的都是大功率二極管,換成HC的IC后,發(fā)熱明顯降低。
希望讀者根據(jù)自己的實(shí)際情況選用IC,不管選用哪種,都要做好對(duì)應(yīng)的處理方案。
2
限流電阻,我在原理圖上是都畫了限流電阻的,這部分加不加要看你選用什么材質(zhì)的發(fā)光管,我這次用的經(jīng)過測(cè)試,就不需要加限流電阻,但不保證別人選用的也能承受住IC的輸出電流,而導(dǎo)致二極管亮度過亮。大家把買來的二極管一定要做好電流測(cè)試,看你的二極管工作在那個(gè)電流范圍最穩(wěn)定,再選擇對(duì)應(yīng)的電阻,如果大家選用的和我的是一樣,自然就不需要加電阻了,我的制作清單會(huì)附在表格里,給大家參考。
3
原理圖請(qǐng)用proteus7.5版本打開,大家就不要再加我好友問為什么圖打不開或者要99se的圖了,我沒有,也不怎么熟悉那個(gè)軟件。
程序部分
這次的程序依然是匯編,控制部分有60多行,我覺得算是簡(jiǎn)短的程序了。我在這里小小的抱怨下,希望大家不要再問我為什么不用c語言了,今天我可以告訴大家,不用c語言是因?yàn)槲也粫?huì),我也比較反感別人問我這些,我也知道自己用的是匯編,很多人理解起來有困難,所以我是給了中午注釋的,大家可以根據(jù)程序解構(gòu)和中午注釋來修改成c語言版本的。不懂匯編不是什么問題,但是不懂漢字我就不能再說什么了,本人能力有限,不能再給出c語言程序,希望大家理解。
下面,我根據(jù)我對(duì)c語言的理解,給大家做出c語言的結(jié)構(gòu)
1初始化部分,主要是設(shè)置對(duì)應(yīng)的中斷,定時(shí)工作方式,與匯編是完全一樣的
2 顯示部分
A 把立方體看作8位數(shù)碼管,每個(gè)面即為一個(gè)數(shù)碼管
B,每個(gè)面的顯示原理是和8X8點(diǎn)陣是完全一樣的,保證這段程序正確的,可以直接調(diào)用
C 查表的方式是自0起遞增的,每次加1,每個(gè)畫面查表64次,查表的上限為65536/64,當(dāng)然,實(shí)際的情況是要小于65536的,控制程序的代碼也會(huì)占用rom空間,就會(huì)導(dǎo)致了畫面次數(shù)減少,所以,要想在有限的空間內(nèi)顯示更多的畫面,就得盡量把程序?qū)懙暮?jiǎn)短,當(dāng)然了,有的朋友會(huì)選用更大容量的單片機(jī),查表的上線自然會(huì)增加。
注意:c語言可以直接定義16位變量,匯編在這方面是比較麻煩的,但好處是我可以調(diào)試程序來直接計(jì)算我的程序可以寫到多少的上限,c語言的方法我就不知道了。但肯定是可以通過調(diào)試計(jì)算出來的。
3中斷部分,為了達(dá)到動(dòng)畫效果切換時(shí)間可準(zhǔn)確調(diào)節(jié)性,畫面的切換用中斷方式。建議大家像我這樣,把時(shí)間通過一個(gè)變量來表示,這樣每次只需修改一個(gè)變量,就可以設(shè)置動(dòng)畫的速度了。每次發(fā)送中斷后,查表的變量就加64(i=i+64),然后返回顯示程序繼續(xù)顯示,中斷程序只做變量的計(jì)算,改變的是查表的地址。
4循環(huán)
A程序循環(huán),循環(huán)的條件是i變量不滿足動(dòng)畫顯示的上限值。比如你做了八個(gè)畫面,那么i的的值不滿足8X64時(shí),就繼續(xù)顯示,滿足就清零從新開始。
B 顯示循環(huán)
這個(gè)比較重要,主題的顯示程序,應(yīng)該是一個(gè)死循環(huán),一直在顯示一個(gè)畫面,只有中斷產(chǎn)生的時(shí)候,改變了查表的變量,才切換一次動(dòng)畫,每個(gè)畫面都顯示后,注意修正變量,能使其顯示同一個(gè)畫面,不管是查表的變量還是Z軸,Y軸的控制變量,都要進(jìn)行初始化,直到中斷的產(chǎn)生才改變查表的變量數(shù)值。
-
led
+關(guān)注
關(guān)注
240文章
23062瀏覽量
657064
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論