摘要:為解決二維LED顯示單調(diào)與立體感差的問題,提出了以STC12c5a60s2為核心芯片,輔以ULN2803芯片和74HC573芯片對大功率的512個LED燈驅(qū)動來實現(xiàn)3D顯示的設(shè)計方案。通過對3D顯示屏原理分析,結(jié)合硬件電路設(shè)計與軟件編程,完成了8×8×8的顯示屏光立方制作,并給出了最終的交替變換動態(tài)效果。
1、總體方案設(shè)計
3D顯示屏由512個LED燈構(gòu)建的三維LED點陣模塊及相應(yīng)的控制系統(tǒng)構(gòu)成[3-4]。其外觀規(guī)格為18cm×18cm×18cm,各相鄰兩燈間距約為25.6mm。系統(tǒng)通過二維8×8的LED驅(qū)動電路控制XY基面,依次沿Z軸方向?qū)崿F(xiàn)8次掃描,恰好完成一次整體的8×8×8LED從底面到最高面的掃描。整體模型用X、Y、Z三軸模擬,其X軸控制鎖存器使能端,Y軸控制鎖存器數(shù)據(jù)端,X、Y軸控制XY基面,Z軸控制層面,如圖1所示。利用人眼的視覺暫留效應(yīng),分時段刷新每一層面數(shù)據(jù)就可達(dá)到立體顯示的動靜態(tài)效果。
本設(shè)計采用STC12c5a60s2單片機為核心芯片,該芯片不僅具有運算速度快、功率損耗低、抗干擾能力強等優(yōu)點,而且內(nèi)部功能完全兼并8051;同時集成了MAX810專用的復(fù)位電路,簡化了傳統(tǒng)的電路設(shè)計;其內(nèi)部還具有8路高速10位A/D轉(zhuǎn)換和2路PWM,能適應(yīng)電機控制以及干擾性較強的場合。ULN2803作為整體LED的8位共陰極驅(qū)動芯片以增強驅(qū)動電流的能力。采用8片規(guī)格完全相同的鎖存器74HC573對LED陽極端口控制,可實現(xiàn)圖形穩(wěn)定顯示、動態(tài)快速變換、亮度逐級可調(diào)等功能。系統(tǒng)的總體框圖如圖2所示。
2、硬件設(shè)計
2.1MCU主控模塊
本系統(tǒng)采用STC12c5a60s2單片機為核心芯片,內(nèi)部自帶高達(dá)60KB的FlashROM和1280BRAM數(shù)據(jù)儲存器,4組8bit的I/O口。其中P0端口與74HC573數(shù)據(jù)輸入端口相連,發(fā)送陽極數(shù)據(jù),對應(yīng)Y軸;P1口與ULN2803數(shù)據(jù)輸入端口相連,發(fā)送陰極數(shù)據(jù),對應(yīng)Z軸;P2口與74HC573使能端口相連,發(fā)送片選信號數(shù)據(jù),對應(yīng)X軸。XTAL1和XTAL2分別連接12MHz晶振兩端,串連30pF電容C1、C2后接地,其晶振可滿足運行速度的要求。由于STC12c5a60s2芯片自帶復(fù)位電路,因此忽略了電路中復(fù)位電路環(huán)節(jié),簡化了電路設(shè)計。主控電路如圖3所示。
2.2驅(qū)動模塊設(shè)計
2.2.1模塊ULN2803設(shè)計
由于本設(shè)計中LED較多,單片機本身的驅(qū)動能力顯得不足,考慮到ULN2803模塊具有較強的灌電流能力,因此作為共陰極(Z軸)驅(qū)動,其中com端口接地,1C~8C分別對應(yīng)主控器的P1.0~P1.7端口,輸出端口1B~8B分別對應(yīng)LED點陣的8個共陰極端口[5]。最初實驗中采用ULN2803模塊,電流還是未能滿足設(shè)計要求,因此增加了圖4所示的外部灌電流驅(qū)動電路,實驗效果明顯改善。
2.2.274HC573模塊設(shè)計
本設(shè)計采用74HC573模塊對陽極束(Y軸)進(jìn)行并行輸入并行輸出控制。其具有以下優(yōu)點:(1)具備高阻態(tài)功能,輸出既不是高電平,也不是低電平,而是高阻抗?fàn)顟B(tài),在這種狀態(tài)下,可將多個芯片并聯(lián)輸出,同時控制;(2)具備數(shù)據(jù)鎖存功能,當(dāng)輸入的數(shù)據(jù)消失時,在芯片的輸出端數(shù)據(jù)仍然保持;(3)具備數(shù)據(jù)緩沖功能,可加強電路的驅(qū)動能力。
74HC573模塊驅(qū)動電路如圖5所示。8片鎖存器使能端OE口均接地,LE鎖存端口P2.i分別與主控系統(tǒng)中P2對應(yīng)的第i位端口相連,8位數(shù)據(jù)輸入端口D0~D7分別與主控系統(tǒng)P0口并行連接,8位數(shù)據(jù)輸出端口Q0~Q7分別與對應(yīng)8列X軸即64位陽極束連接。
3、軟件設(shè)計
本實驗3D顯示屏LED點陣模塊是在二維的基礎(chǔ)上通過層疊加原理實現(xiàn)的[6],因此可將三維8×8×8模型看作是64×8的平面模型,即對應(yīng)的XY面與Z面的相互作用模型。其中64看作陽極束,一片74HC573芯片輸出端為8位,恰好設(shè)計8片74HC573芯片控制64位陽極束。8看作陰極束,用一片ULN2803芯片控制。因此64×8對應(yīng)了全部的512位即512個LED燈。每一位采用狀態(tài)0或1可對其進(jìn)行亮或滅控制,實現(xiàn)三維LED燈的發(fā)光或熄滅。
此設(shè)計采用X、Y、Z三軸三維模型模擬,其中任意LED燈的坐標(biāo)為LED(X,Y,Z),坐標(biāo)范圍均為0~7。當(dāng)要(3,4,5)點坐標(biāo)燈亮,控制其Z=4處平面燈全亮即輸入端口為高電平1,其余為低電平0;Y=3處平面燈全亮即輸入端口為高電平1,其余為低電平0;X=2處平面輸入端口對Y=3處平面數(shù)據(jù)進(jìn)行鎖存即由高電平1變?yōu)榈碗娖?,這樣便可實現(xiàn)LED(3,4,5)坐標(biāo)燈保持高亮,其余燈熄滅。由此通過點可實現(xiàn)線、面、體以及兩兩結(jié)合組成的各種三維立體動靜態(tài)圖形顯示。由于動畫顯示只有大于15幀時人眼才可看到流暢的動態(tài)效果,因此在動態(tài)圖形中掃描周期必須小于(1/15)s,即每層停留的時間t最多為(1/15)×(1/8)[7]。此效果的顯示都是通過軟件來實現(xiàn)的,這里顯示一個簡單的動態(tài)沙漏程序,代碼如下:
voidshalou()
{inti,j,d;
chushihua();//初始化函數(shù)
for(j=0;j《8;j++)
{
For(d=0;d《5*(8-j);d++)
{
For(i=0;i《=j;i++)
{
CLEAR();//清屏函數(shù)
P0=SHALOU[i];//Y軸掃描數(shù)據(jù)
P2=SHALOU[i];//X軸存入高電平數(shù)據(jù)
P2=0x00;//X軸低電平鎖存數(shù)據(jù)
P1=0x80》》i;//Z軸發(fā)送層掃描函數(shù)
Delayms(5);
}
}
}
For(j=7;j》=0;j--)
{
For(d=0;d《5*(8-j);d++)
{
For(i=0;i《=j;i++)
{
CLEAR();
P0=SHALOU[i];//Y軸掃描數(shù)據(jù)
P2=SHALOU[i];//X軸存入高電平數(shù)據(jù)
P2=0x00;//X軸低電平鎖存數(shù)據(jù)
P1=0x01《《i;//Z軸發(fā)送層掃描函數(shù)
Delayms(5);
}
}
}
實現(xiàn)該代碼的思路流程如圖6所示
4、仿真效果
本設(shè)計通過硬件電路設(shè)計與軟件編程實現(xiàn)了3D效果顯示,如圖7所示。其中,圖7(a)為動態(tài)沙漏的某一瞬間截取圖;圖7(b)為動態(tài)桃心的某一瞬間截取圖;圖7(c)為動態(tài)平面前后掃面的某一瞬間截取圖;圖7(d)為整體靜態(tài)顯示圖。從圖7(a)、(b)可明顯看出圖形的立體層次感;從圖7(c)、(d)可看出,與平面二維效果相比,三維立體方位感更強、更真實。
5、結(jié)論
本文實現(xiàn)了從開始的硬件設(shè)計到最終的軟件仿真,達(dá)到了以下目的:(1)該電路設(shè)計合理,不僅圖形的穩(wěn)定性好,而且觀賞性強,為其他三維效果設(shè)計提供了一定的實踐基礎(chǔ);(2)從仿真結(jié)果可看出三維效果比二維效果立體感更強、更真實,該設(shè)計方案是以后各立體效果圖形設(shè)計采納的主流趨勢。然而,由于條件限制,通過A/D轉(zhuǎn)換音頻控制LED未能進(jìn)一步設(shè)計,將在以后的工作中利用離散傅里葉光學(xué)變換展開研究。
評論