蘇 珊,肖 英,李行杰
(廣西科技大學(xué)電氣與信息工程學(xué)院,廣西柳州 545006)
基于STC單片機的8×8×8LED光立方系統(tǒng)設(shè)計*
蘇 珊,肖 英,李行杰
(廣西科技大學(xué)電氣與信息工程學(xué)院,廣西柳州 545006)
為解決二維LED顯示屏顯示單調(diào)和立體性差的問題,以STC系列單片機為核心,采用鎖存器74HC573和ULN2803芯片實現(xiàn)大功率LED的驅(qū)動,提出了軟硬件系統(tǒng)設(shè)計方案,并完成了8×8×8的LED光立方系統(tǒng)設(shè)計.該系統(tǒng)能動態(tài)和靜態(tài)地立體顯示文字、圖案和動畫,適用于傳媒信息和裝飾顯示,為進一步開發(fā)三維顯示器提供了一定的理論與實踐基礎(chǔ).
單片機;光立方;LED點陣;74HC573;ULN2803
在信息化社會的高速發(fā)展過程中,LED顯示屏扮演著越來越重要的角色,隨著各種信息的傳播和人們視覺審美的提高,人們對LED顯示屏提出了更高的要求[1].當(dāng)下二維LED顯示屏技術(shù)已經(jīng)相當(dāng)成熟,但是二維平面點陣顯示單調(diào)、乏味,人們已經(jīng)不再滿足于二維平面顯示,從而在二維平面LED顯示屏基礎(chǔ)上,開發(fā)設(shè)計三維LED點陣屏——光立方,顯示色彩鮮艷畫面,立體感強,不僅可以用于室外環(huán)境信息傳播,還可用于室內(nèi)環(huán)境裝飾,其顯示給人們帶來全新的娛樂體驗,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點[2].筆者提出了基于STC單片機8×8×8光立方設(shè)計方案,該系統(tǒng)電路結(jié)構(gòu)簡單,控制系統(tǒng)穩(wěn)定.
單色8×8×8光立方由512個LED構(gòu)建的三維LED點陣模塊及其控制系統(tǒng)組成.三維LED點陣模塊規(guī)格約為18cm ×18cm×18.5cm,分8層共陰和64列共陽,每個LED之間的空間間距約22mm.系統(tǒng)的工作原理是在二維LED點陣的基礎(chǔ)上,擴大LED之間的距離,應(yīng)用層疊技巧搭建成一個實心LED立方體,用主控系統(tǒng)直接控制外圍驅(qū)動電路輸出,間接實現(xiàn)對LED的亮滅控制.采用逐層掃描的工作方式,利用人們視覺暫留效應(yīng),實現(xiàn)動靜態(tài)文字和圖像顯示[3].因為控制涉及的LED較多,且要求自由控制每個LED的亮滅,所以對控制系統(tǒng)的功能有較高的要求.
硬件系統(tǒng)主要分為3大模塊:主控模塊、驅(qū)動模塊和顯示模塊.其中主控系統(tǒng)發(fā)送顯示信息和控制驅(qū)動電路顯示;驅(qū)動模塊分為陽極驅(qū)動模塊和陰極驅(qū)動模塊,驅(qū)動電路傳輸顯示信息和放大電流驅(qū)動三維LED點陣模塊顯示;顯示模塊顯示預(yù)設(shè)文字或圖像信息.
設(shè)計方案總體結(jié)構(gòu)框圖如圖1所示.
圖1 總體結(jié)構(gòu)框圖
2.1 主控模塊
主控采用STC12系列單片機STC12C5A60S2作為核心芯片,該芯片運算速度快,功率損耗低,抗干擾能力強,完全兼容傳統(tǒng)8051指令代碼,內(nèi)部自帶高達60kB FLASH ROM,集成MAX810專用復(fù)位電路,8路高速10位A/D轉(zhuǎn)換(250kB/s),2路PWM,適用于電機控制以及干擾性較強的場合[4].主控模塊電路如圖2所示.單片機引腳P1.0~P1.7分別與陰極驅(qū)動芯片ULN2803的8個數(shù)據(jù)輸入口相連,發(fā)送層掃描信號;引腳P0.0~P0.7分別與8片74HC573的8個數(shù)據(jù)輸入端口相連,發(fā)送共陽束數(shù)據(jù);引腳P2.0~P2.7分別與8片74HC573的使能端相連,發(fā)送片選信號.復(fù)位電路由按鍵、10μF電解電容和1 0kΩ電阻組成,復(fù)位引腳REST連接復(fù)位電路,實現(xiàn)按鍵復(fù)位.XTAL1和XTAL2分別接1 2MHz晶振兩端,串接電容接地,為單片機工作提供時鐘源.P3.0RXD(串行輸入口)和P3.1TXD(串行輸出口)分別連接USB轉(zhuǎn)串口的TXD和RXD,用于串口通信,向內(nèi)部FLASH ROM寫入程序.
圖2 主控模塊電路
2.2 驅(qū)動模塊
光立方顯示部分由512個LED組成,整體顯示需要較大的功率,若功率不夠,則顯示會出現(xiàn)不亮、半亮等現(xiàn)象,嚴(yán)重影響顯示效果.因此,光立方對驅(qū)動方式有較高的要求.驅(qū)動部分模塊選用NPN達林頓連接晶體管ULN2803作為共陰層驅(qū)動,8進制3態(tài)非反轉(zhuǎn)透明鎖存器74HC573為主要芯片作為共陽束驅(qū)動.
2.2.1 共陰層驅(qū)動電路設(shè)計 8個共陰層采用逐層掃描的工作方式,使用八重達林頓管ULN2803放大電流驅(qū)動.ULN2803達林頓管一般用來驅(qū)動功率稍大的被動器件,內(nèi)部設(shè)計了二極管防止被擊穿,使用的時候不需要外接二極管,同時驅(qū)動多路器件的時候可以節(jié)省PCB空間,方便走線[5].共陰層驅(qū)動電路如圖3所示.ULN2803的引腳9和10分別接GND和VCC,8個數(shù)據(jù)輸入口IN1~IN8分別與主控電路的P1.0~P1.7引腳相連,8個數(shù)據(jù)輸出端均接1個1kΩ限流電阻后,分別與三維LED點陣模塊的8個共陰層相連,工作過程中向數(shù)據(jù)輸入端發(fā)送層掃描信號,數(shù)據(jù)輸出端反相輸出選中相應(yīng)層.
圖3 共陰層驅(qū)動模塊電路
圖4 1片74HC573驅(qū)動模塊電路
2.2.2共陽束驅(qū)動電路 共陽束采用并行輸入并行輸出控制方式,使用8進制3態(tài)反轉(zhuǎn)透明鎖存器74HC573設(shè)計共陽束驅(qū)動電路.8片74HC573的三態(tài)允許控制端OE均接地,64個數(shù)據(jù)輸入口按D1~D8對應(yīng)相連后,再分別與主控系統(tǒng)的P0.0~P0.7引腳相連,8個鎖存控制端LE分別與主控系統(tǒng)的P2.0~P2.7引腳相連,64個數(shù)據(jù)輸出端分別與三維LED點陣模塊的64個共陽束相連.1片74HC573的驅(qū)動電路如圖4所示.
在工作中,單片機從P0口將共陽束數(shù)據(jù)送到D端,然后控制數(shù)據(jù)鎖存端,使LE從“0→1→0”,此時需要輸出的數(shù)據(jù)就鎖存在Q端上,不受輸入的數(shù)據(jù)變化影響.
2.3 三維LED點陣顯示模塊
顯示模塊利用LED在空間上的亮滅實現(xiàn)文字或圖形的顯示.該設(shè)計用到512個LED,整體顯示需要功率較高,選用小功率插件式長腳草帽形LED(陽極引腳27~28mm,陰極引腳25~26mm)可降低對驅(qū)動電路的要求,發(fā)光集中,LED點陣整體的通透性強.在孔間距為8×8平面模板上,根據(jù)所選用LED規(guī)格大小設(shè)定孔大小,LED統(tǒng)一彎折管腳使燈帽、陰極、陽極三者之間分別成90°,其中陰極平LED根部往一水平方向折90°,陽極距離LED根部4mm處往另一水平方向折90°[6].將折好的LED放置模板上,將同極管腳首尾焊接即可快速制作一面8×8的LED二維平面點陣.用同樣的方法制作8面8×8的LED二維平面點陣后,將它們組成立方型(面與面間距22mm),并將不同面的行依次相接,構(gòu)成8層共陽、64列共陰的三維LED點陣模塊.
3.1 設(shè)計思路
三維LED點陣模塊是在二維點陣模塊的基礎(chǔ)上,應(yīng)用層疊技巧搭建而成的,因此在控制上可以將三維LED點陣模塊看作一個64×8的平面矩陣.從數(shù)據(jù)結(jié)構(gòu)上分析,控制一個8×8×8的三維LED點陣模塊顯示,或者是一個64×8的平面LED矩陣,就是對長度為64byte數(shù)組的控制.一個字節(jié)有8位(bit),64×8=512位,對應(yīng)了三維LED點陣的512個LED,每一位有“1”和“0”2種狀態(tài),對應(yīng)了LED的亮和滅.
雖然光立方和二維點陣控制原理相似,采用“逐層掃描”或者“逐行掃描”方式,但是在實際應(yīng)用中,編程控制卻有很大的差別.光立方控制,需要應(yīng)用三維空間中點、線、面、體的算法規(guī)律.在幾何上,通常計算一個立方體的體積,需要知道立方體的長、寬、高.在光立方的三維LED點陣模塊中,任意取一點都可以與其他相應(yīng)的點構(gòu)成一個立方體.因此,要控制光立方中的任意LED亮滅,可以建立三維坐標(biāo)系xyz,定義光立方中任一個LED的坐標(biāo)為(x,y,z),其中x,y,z值域為[0,7].光立方共有64束,束用k表示,k的值域為[0,63].另外,每束上有8個LED,可以用一個字節(jié)的8個位數(shù)據(jù)定義其顯示狀態(tài).各束上對應(yīng)位置的LED陰極連在一起構(gòu)成了層,采用逐層掃描方式可以避免同層不同束LED之間的相互影響.
固定畫面控制顯示過程如下:(1)主控系統(tǒng)控制片選將第1層64個點的數(shù)據(jù)有序地發(fā)送到8片74HC573進行鎖存;(2)發(fā)送接通第1層且其他層關(guān)閉的掃描信號;(3)延遲時間t;(4)發(fā)送關(guān)閉所有層信號.依此類推,掃描完8層為1個周期T.利用人眼的視覺暫留特性,只要掃描得夠快,一個掃描周期的時間就小于人眼的視覺暫留時間;從人眼看來,光立方顯示的就是一幅完整的立體圖形.由于掃描完8層為1個周期,若每層點亮的時間t占整個周期T的比值不同,因此必然導(dǎo)致光立方整體顯示亮度不同,要使得光立方顯示亮度均勻,就必須讓每層點亮?xí)r間t相等.一般情況下,顯示動畫大于15幀時,人眼才能看到比較流暢的動畫效果,故一個掃描周期T最多s,即每層停留時間t最多
3.2 運行程序設(shè)計
在層掃描工作方式中,無論是動態(tài)顯示圖文還是靜態(tài)顯示圖文,在整個顯示過程中,主控單片機不斷發(fā)送數(shù)據(jù)和不斷掃描,每次發(fā)送數(shù)據(jù)只能點亮1層,掃描完1個周期,即可看到完整的立體圖形.為保證點亮每層停留時間相等,需要單片機中斷設(shè)定1個時間基準(zhǔn).采用動畫程序和輸出顯示程序分離設(shè)計,運行程序可以分為3大部分:第1部分是上層的系統(tǒng)應(yīng)用程序,第2部分是顯示數(shù)據(jù)運算程序,第3部分是中斷刷新顯示程序.系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境的初始化設(shè)置和循環(huán)調(diào)用驅(qū)動顯示子程序等工作;顯示數(shù)據(jù)運算程序負責(zé)運算出動畫結(jié)果存放到指定數(shù)組中;中斷刷新顯示程序負責(zé)向屏體發(fā)送指定數(shù)組中顯示數(shù)據(jù),并產(chǎn)生行掃描信號[7].程序流程如圖5所示.
圖5 程序流程
圖6是實驗的顯示效果.使用STC12C5A60S2作為下位機,設(shè)置串口通訊波特率為57 600,根據(jù)上位機控制三維LED點陣顯示所需的格式,編寫文字或圖像數(shù)據(jù)信息,通過串行口與下位機連接通訊,發(fā)送有效的文字或圖像數(shù)據(jù)信息,即可控制光立方,實現(xiàn)顯示功能[8].主控系統(tǒng)對上位機類型要求不高,只需要上位機能與主控系統(tǒng)實現(xiàn)串口通訊,設(shè)置相同的串口通訊波特率.
圖6 實驗顯示效果
文中以高性能的STC芯片為硬件基礎(chǔ),完成了光立方的硬件和軟件系統(tǒng)主設(shè)計.實驗效果表明,該方案有效可行,設(shè)計的光立方牢固、美觀,LED顯示屏各點亮度均勻、充足,可以動靜態(tài)、立體顯示三維文字或圖形,顯示過程穩(wěn)定.
[1] 梁銘林.LED顯示技術(shù)的應(yīng)用[J].智能建筑,2010(3):42-45.
[2] 楊富強,朱利強.基于單片機的LED點陣動態(tài)顯示系統(tǒng)[J].工業(yè)控制計算機,2013(1):101-102.
[3] 官微宏.3D8S的設(shè)計理念與開發(fā)心得——基于Arduino的8×8×8光立方[J].無線電,2012(10):66-69.
[4] 顏兵兵,任 翔,賈俊成,等.基于單片機的LED立體成像系統(tǒng)設(shè)計[J].佳木斯大學(xué)學(xué)報:自然科學(xué)版,2013,31(3):393-395.
[5] 楊清德.LED驅(qū)動電路設(shè)計與工程施工案例精講[M].北京:化學(xué)工業(yè)出版社,2010.
[6] 劉小平,李志遠.單片機版光立方的制作[J].無線電,2012(10):70-74.
[7] 王浩然,秦會斌.LED點陣屏顯示單元的設(shè)計與驅(qū)動控制[J].電子器件,2010,33(5):550-552.
[8] 李行杰,李克儉,肖 英.基于AVR單片機的8×8×8三維LED點陣設(shè)計[J].大眾科技,2013(5):42-44.
(責(zé)任編輯 陳炳權(quán))
Design of 8×8×8LED Light Cube Based on STC Microcontroller
SU Shan,XIAO Ying,LI Hang-jie
(Institute of Electrical and Information Engineering,Guangxi University of Science and Technology,Liuzhou 545006,Guangxi China)
In order to solve the problems of drab display and poor stereoscopic of 2DLED screen,based on the core of STC single chip,a LED light cube of 8×8×8is designed,with application of latch 74HC573&ULN2803to obtain high power drive.In this design,text,graph and animation are displayed in multiple 3Dforms statically and dynamically.It is suitable for the display of media information and decoration information,and contributes to further development and design of 3Ddisplay screen.
microcontroller;light cube;LED lattice;74HC573;ULN2803
TP332
A
10.3969/j.issn.1007-2985.2013.06.010
1007-2985(2013)06-0033-04
2013-09-12
廣西省教育廳科學(xué)研究項目(201203YB131);廣西省2012年度“大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃”資助項目(35)
蘇 珊(1979-),女,廣西柳州人,廣西科技大學(xué)電氣與信息工程學(xué)院講師,主要從事應(yīng)用電子技術(shù)及自動控制系統(tǒng)設(shè)計研究.