李行杰 李克儉 肖 英
(廣西科技大學電氣與信息工程學院,廣西 柳州 545006)
LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息傳播媒體[1][2],隨著大規(guī)模集成電路和計算機技術(shù)的發(fā)展,LED顯示屏作為一種新興的顯示媒體得到了高速的發(fā)展,其中以二維平面點陣屏顯示的廣泛應(yīng)用作為標志之一[3],但是隨著人們對視覺享受的要求越來越高,二維的平面點陣顯示開始顯得單調(diào)、粗糙、乏味,人們已經(jīng)不再滿足于二維平面顯示,2009年10月1日天安門廣場舉行的國慶聯(lián)歡晚會上,四千多棵光藝高科技“發(fā)光樹”,吸引了全國人民的眼球,一個全新的名詞“光立方”,引起了眾多學者的熱議,隨后三維點陣顯示屏的出現(xiàn)更是令人耳目一新,本設(shè)計的8*8*8三維 LED點陣[4][5]顯示模塊是以AVR單片機為核心控制系統(tǒng),顯示部分用512個白發(fā)藍高亮LED交錯搭建而成,極具光賞性,可以動靜態(tài)顯示三維文字及圖形,給人強烈的立體感,同時炫酷、多樣式的顯示也給人們帶來全新的娛樂體驗。
本設(shè)計使用孔距為22mm的8*8平面模板快速搭建8面二維LED點陣,把8面二維點陣組成立方型,并將不同面的行依次相接,構(gòu)成8層共陽64列共陰的三維LED點陣。系統(tǒng)的工作原理,是在簡單二維LED點陣的基礎(chǔ)上,擴大LED之間的距離,并應(yīng)用層疊技巧搭建成一個實心LED立方體,用AVR單片機直接控制外圍驅(qū)動電路輸出,間接實現(xiàn)對LED的亮滅控制。采用逐層掃描的工作方式,利用人們視覺暫留效應(yīng),實現(xiàn)簡單的動靜態(tài)文字和圖像顯示。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
8*8*8三維LED點陣由512個LED組成的實心立方體,分為8層,64列,展開后相當于一個64x8的平面點陣。設(shè)計選用工作電壓為2.7~3.3V,大小為3mm白發(fā)藍高亮長腳LED,直接使用LED管腳實現(xiàn)矩陣的搭建,構(gòu)成8層共陽,64列共陰的三維LED點陣。每個LED與相鄰LED間距約22mm,提高了整體的通透性,達到良好的三維顯示效果。
三維LED點陣的控制根據(jù)系統(tǒng)對復雜數(shù)據(jù)的運算處理以及外部擴展接口配置需求,結(jié)合ATMEL公司的AVR單片機[6]高可靠性、功能強、高速度、低功耗和低價位等特點,采用ATMEGA328P-PU單片機作為主控芯片。設(shè)計的主控系統(tǒng)原理圖如圖2所示。
ATMEGA328P-PU的內(nèi)核具有豐富的指令集,32×8通用工作寄存器可保存大量的操作數(shù)據(jù)和運算結(jié)果;32K字節(jié)的系統(tǒng)自可編程Flash程序內(nèi)存可寫入大量控制光立方的功能代碼;高達1 MIPS/MHz的吞吐率解決TM1816串入并出效率問題;兩個8位定時器/計數(shù)器,一個16位的定時器/計數(shù)器,可用來實現(xiàn)串口中斷和擴展外部中斷;6通道的PWM輸出可對全局LED進行無級亮度調(diào)節(jié);6通道10位ADC輸入可用于擴展AD功能接口等。工作時,主控系統(tǒng)產(chǎn)生層掃描信號,通過譯碼器譯碼控制陽極驅(qū)動芯片STM4953的輸出,實現(xiàn)逐層掃描[7],結(jié)合陰極驅(qū)動電路中鎖存數(shù)據(jù)的輸出,點亮相應(yīng)的LED,實現(xiàn)三圍顯示功能。
圖2 主控系統(tǒng)原理圖
8*8*8三維LED點陣采用陽極驅(qū)動電路放大電流和陰極驅(qū)動電路恒流輸出驅(qū)動。陽極驅(qū)動電路接共陽層,起層選通開關(guān)作用;陰極驅(qū)動電路接共陰束,起束選通開關(guān)和全局LED亮度控制作用。
(1)陽極驅(qū)動電路
三維LED點陣采用逐層掃描的工作方式,8個共陽層使用典型的平面點陣驅(qū)動芯片STM4953驅(qū)動,驅(qū)動電路如圖3所示。為了減少占用單片機的I/O接口數(shù)量,STM4953通過譯碼器74HC138與主控系統(tǒng)相接。STM4953控制端為低電平有效,且74HC138輸出為低電平,為了避免不確定信號導致STM4953誤導通,增強系統(tǒng)的坑干擾能力,在譯碼器輸出端接上拉電阻,把不確定信號通過電阻鉗位在高電平。工作時,由主控系統(tǒng)輸出層控制掃描信號,經(jīng)74HC138譯碼器譯碼后選通或者關(guān)閉STM4953輸出,實現(xiàn)對三維LED點陣逐層掃描。
圖3 陽極驅(qū)動電路
(2)陰極驅(qū)動電路
三維LED點陣的64列共陰束使用4片16位恒流驅(qū)動IC- TM1816驅(qū)動,驅(qū)動電路如圖4所示。選用TM1816,首先是其擁有16個驅(qū)動能力較強的恒流輸出端口,每個輸出端可口提供3~45mA恒定電流量以驅(qū)動對應(yīng)列的8個LED,并且當環(huán)境發(fā)生變化時,對其輸出電流影響很小,用4片即可驅(qū)動64列共陰束,從硬件上提高了三維LED點陣顯示的均勻性和一致性;其次,串行輸入并行輸出[5]以及聯(lián)級功能可以大大減小占用主控系統(tǒng)I/O數(shù)量,同時降低了編程的復雜性;此外各個輸出端口的電流大小可調(diào),可實現(xiàn)對三維LED點陣整體亮度調(diào)整,使顯示效果更加豐富。
工作時,由主控系統(tǒng)產(chǎn)生時鐘脈沖,發(fā)送串行數(shù)據(jù),并控制數(shù)據(jù)鎖存和使能輸出。在CLK上升沿期間,數(shù)據(jù)端串入的數(shù)據(jù)被發(fā)送到移位寄存器中,即每當來一個上升沿,從TM1816的 SDI引腳送入一位數(shù)據(jù)或者 SDO引腳輸出一位數(shù)據(jù),如果需要發(fā)送16位的數(shù)據(jù)則需要16個CLK上升沿才能將 16位數(shù)據(jù)全部輸入或移出移位寄存器。當控制三維 LED點陣陰極的所有數(shù)據(jù)全部輸入到移位寄存器后,數(shù)據(jù)鎖存控制端被至為高電平,串行數(shù)據(jù)全部輸入鎖存器后至為低電平。需要輸出時,輸出使能控制端至為低電平即啟動輸出端輸出。與此同時,用PWM控制三極管使R-EXT引腳對地導通,能集中控制各個輸出引腳的電流大小,實現(xiàn)對LED亮度進行無級調(diào)節(jié)。
圖4 陰極驅(qū)動電路
采用層掃描工作方式,整個顯示過程,主控單片機不斷發(fā)送數(shù)據(jù)、不斷掃描,每次發(fā)送數(shù)據(jù)只能點亮一層,掃描完8層為一個周期。上位機只需根據(jù)主控系統(tǒng)控制三維LED點陣顯示所需的格式[8],編寫文字或圖像數(shù)據(jù)信息,通過串行口發(fā)送給主控系統(tǒng)。
控制程序設(shè)計分為兩大模塊:與上位機通訊部分和驅(qū)動顯示部分[9-11]:
與上位機通訊部分主要是利用主控單片機中斷服務(wù)通過串口接收上位機發(fā)送的文字或圖像等數(shù)據(jù)信息,實現(xiàn)與上位機的實時數(shù)據(jù)信息傳輸,并對接收數(shù)據(jù)信息進行處理,本設(shè)計設(shè)計串口通訊波特率為 57600;驅(qū)動顯示部分主要是從顯示緩沖區(qū)讀取要顯示的文字或圖像等數(shù)據(jù)信息,運算處理后發(fā)送給驅(qū)動電路,并控制驅(qū)動電路輸出實現(xiàn)顯示功能。
程序流程圖如圖5所示
圖5 程序流程圖
程序控制流程:
(1)主程序:對堆棧、串口進行初始化,然后循環(huán)調(diào)用驅(qū)動顯示子程序、響應(yīng)串行接收或發(fā)送中斷指令;
(2)中斷服務(wù)程序:從串口接收上位機發(fā)送的數(shù)據(jù)信息處理后存至顯示數(shù)據(jù)緩沖區(qū),實現(xiàn)與上位機實時數(shù)據(jù)信息傳輸;
(3)驅(qū)動顯示子程序:不斷讀取顯示緩沖區(qū)的數(shù)據(jù)信息,運算處理后,串行輸出列選通信號至陰極驅(qū)動電路控制輸出,配合層動態(tài)掃描信號,實現(xiàn)顯示數(shù)據(jù)輸出。
實驗分別使用STC12系列單片機12C5A60S2和Arduino USB接口系列的最新版 Arduino UNO R3作為上位機,12C5A60S2單片機使用Keil uVision4編程,Arduino UNO R3使用Arduino IDE編程,設(shè)置串口通訊波特率為57600,根據(jù)下位機控制三維LED點陣顯示所需的格式,編寫文字或圖像數(shù)據(jù)信息,通過串行口與主控系統(tǒng)連接通訊。
顯示效果如圖6所示
圖6 顯示效果圖
實驗結(jié)果表明:該方案有效可行,主控系統(tǒng)不挑上位機類型,只需上位機能與主控系統(tǒng)實現(xiàn)串口通訊,設(shè)置相同的串口通訊波特率,發(fā)送有效的文字或圖像數(shù)據(jù)信息,即可控制8*8*8三維LED點陣實現(xiàn)顯示。
三維點陣是未來顯示的發(fā)展方向,根據(jù)三維LED點陣顯示模塊進行文字或圖案顯示的功能需求,利用單片機構(gòu)成主控系統(tǒng)添加外部擴展接口,結(jié)合上位機通訊,可實現(xiàn)一個較為完善的綜合信息顯示平臺。設(shè)計選擇使用上位機控制,意在將“光立方”設(shè)計成為單純的三維顯示屏,為將來進一步研究標準三維顯示器的制作及控制提供一定的參考。對單色8*8*8三維LED點陣的研究,對于灰度不同的真彩色或分辨率要求更大的 三維LED點陣設(shè)計,有待于進一步的研究設(shè)計。
[1] 徐振方,孟艷花,王艷.基于AVR單片機的LED顯示屏控制系統(tǒng)的研究[J].照明工程學報,2010,21(2):77-80.
[2] 王浩然,秦會斌.LED 點陣屏顯示單元的設(shè)計與驅(qū)動控制[J].電子器件,2010,33(5):550-552.
[3] 梁銘林.LED顯示技術(shù)的應(yīng)用[J].2010,(3):42-45.
[4] 劉小平,李志遠.單片機版光立方的制作[J].無線電,2012,(10):70-74.
[5] 官微宏.3D8S的設(shè)計理念與開發(fā)心得——基于 Arduino的×8×8光立方[J].無線電,2012,(10):66-69.
[6] 鄒清平,盧森幸.一種基于ATmega32控制的MP3播放器的設(shè)計與實現(xiàn)[J].2012,(24):118-118.
[7] 康志強,汪佳,湯勇明.基于FPGA的3D光立方設(shè)計[J].電子器件,2012,6(35):683-686.
[8] 杜洋.制作CUBE8光立方[J].無線電,2011,(7):20-25.
[9] 杜洋.CUBE8光立方的圖形 DIY[J].無線電,2012,(12):34-38.
[10] 劉小平,李志遠.按鍵操控的LED點陣動畫編輯器[J].無線電,2013,(2):42-44.
[11] 楊富強,朱利強.基于單片機的LED點陣動態(tài)顯示系統(tǒng)[J].工業(yè)控制計算機,2013,(1):101-102.