LED大屏幕顯示器由于其醒目、內容靈活多變等特點,已經越來越多地應用于廣告、信息發布、交通指示等公共場所,取得了良好效果。LED顯示屏主要分為數碼顯示和點陣顯示兩大數,本文只討論點陣顯示。目前的LED顯示屏基本上都是先由用戶提出要求,生產廠這根據需要訂做,每次都要重復設計電路和機械結構,造成資源浪費,而且若用戶的需求改變,改動將十分困難。
實際上不論顯示屏的大小,其原理都是相同的,因此完全可以設計出一種標準化、模塊化的LED顯示屏,會對不同的需要,只需要得意組合相應的模塊即可。本文介紹的就是一種模塊化的LED顯示屏,可以根據需要靈活改變大小,并可以脫離計算機獨立運行,還可以實現如閃爍、滾動顯示等特效。對整體式顯示屏刷新率不足發生閃爍的常見問題,在這個設計中由于被分割成小模塊,不再成為問題。
1 基本原理
基本的設計思路是把整個顯示屏分成若干相同大小、相同功能的顯示模塊,而另外用一個中央控制模塊控制,同步所有顯示模塊的運行,實現整體協調的顯示。
所以本系統主要由兩部分組成:顯示模塊和控制模塊。
顯示模塊實際都是相同大小的小LED驅動板,能夠驅動LED陣列,具有基本的顯示功能,并可以接收來自控制模塊的數據和命令,此外一些常用的顯示效果如閃爍、滾動等也包括在顯示模塊中。現有國標點陣漢字庫有16×16和24×24兩種,考慮到軟件編寫的方便和硬件的能力,我們把顯示模塊作為16×16點陣大小。
控制模塊負責控制各顯示模塊,向各顯示模塊發送數據和命令。控制模塊儲存要顯示的點陣數據信息,定時向各顯示模塊下傳。控制模塊上還帶有小鍵盤和通用異步串行口,即可以用鍵盤操作,也可以用計算機控制,還可以用計算機更新控制模塊內的數據。
顯示模塊和控制模塊之間用總線的方式連接,我們選用了I2C總線。
整個系統的設計使用有很大的自由度:控制模塊控制的顯示模塊數量可以改變,顯示模塊的排列方式也可以改變(如16個顯示模塊,既可以是2×8也可以是4×4),對同一塊顯示屏可以保存若干條件用信息分別顯示,每條信息的點陣大小可以不同,超過屏幕大小的信息可以滾動顯示出來。這樣基本可以滿足多種多樣的需求。
2 電路結構
采用PIC16C73作為中央控制器。該單片機內置I2C接口、串行口,而且具有比較強的口線驅動能力(每根口線25mA),使用它可以簡化很多外圍電路。
數據存儲使用兩片EEPROM:X24256共提供64K字節的數據空間,可以反復擦除重定民,掉電數據不丟失。如果全部用來顯示16×16點陣的漢字,可以顯示2000個左右。數據存儲器與各個顯示模塊共用I2C總線,依靠各自的地址區分究竟是存儲器還是顯示模塊。
小鍵盤外接4個限流電阻直接接到CPU的口線上,對鍵盤采用4×4掃描方式。
控制模塊與計算機的連接使用RS232串行口,用一片MAX202做電平轉換。
此外控制模塊還帶有一個光強度傳感器,其作用是調節顯示屏的亮度。由于白天和夜晚的環境光強差異很大,白天覺得合適的亮芳到了晚上可能會很刺眠,因此根據外界的光強使用這個傳感器自動調節顯示屏的度。這里使用的是TI公司的TLS235光頻轉換元件。
每個顯示模塊要驅動一塊16×16的LED陣列,由于單片機的口線數量少,使用靜態顯示是不可能的,這里使用了動態掃描顯示。考慮到刷新速度的因素,使用16行掃描刷新可能會有閃爍,所以使用8行掃描、32位數據的方式。
每條數據線每個時刻只對應一個發光單元,要求電流較小;而當顯示屏全開的時候,8路共陽極掃描線將會對應32個發光單元,電流要求大,所以兩端的驅動電路是分別設計的。數據線端使用TI公司的4片TPIC6B595。掃描端使用Allegro公司的兩片2944。
顯示模塊與控制模塊用I2C總線相連。由于顯示模塊的任務只是顯示,所以不另外增加存儲器,只有內部的RAM單元保存欲顯示的點陣數據,并不停地掃描顯示到LED陣列上。諸如滾動、閃爍等顯示效果只是對顯示數據做額外處理,如滾動顯示實際對應數據的移位操作。這些功能也編寫在顯示模塊中,由控制模塊發送命令激活這些功能。
此外需說明的是,顯示模塊的驅動電路與LED陣列可以看作分離的兩部分,只要在驅動電路的驅動能力范圍內,可以使用發光單元不同的LED陣列,如1個發光單元僅為1個LED的小型顯示牌或者1個發光單元包括5~7個LED的大型顯示牌等。
3 軟件設計
本系統的軟件包括一個部分:顯示模塊、控制模塊和PC機。
顯示模塊的軟件主要包括掃描顯示、特效處理和I2C通信三部分。三顯示模塊CPU的RAM中開辟出32字節作為顯示緩沖區,掃描顯示程序只是定時從顯示緩沖區中取數據發往移動寄存器,并設置相對應的掃描線,實現一次掃描。掃描顯示并不識別緩沖區里的數據是什么。掃描是利用了人眼的圖象滯留效果,如果掃描頻率達到60Hz以上,對掃描頻率的波動就不大敏感了,所以這里的掃描顯示程序沒有使用定時器中斷,僅由循環完成。
特效處理是指對掃描緩沖區的數據做移位的操作,主要對應滾動顯示效果。滾動時每次滾動一個像素行或列,大部分數據已經存在于顯示模塊中,控制模塊發送滾動命令時聯合國加兩個字節(1行或1列)的新數據。由于使用的掃描方式是32×8的方式,因此數據存放并非完全線性,而有跳躍存儲的部分,加之字符滾動顯示有上下左右四個方向,要把新來的數據移入緩沖區并移出兩字節的舊數據,因而需要比較繁復的RAM地址計算。
I2C通信是PIC16C73內部硬件實現的功能,比較簡單,只用中斷就可實現。
顯示亮度的調節功能是通過調節發光單元點亮時間實現的。具體來講,由于是掃描顯示,每個發光單元最多只有1/8的時間可以點亮,如果這1/8的時間全部點亮,其效果就是最大亮度,如果在這1/8的時間內仍有部分時間不亮,則總體的顯示亮度就下降。顯示模塊從控制模塊接收環境亮度數據,調節這個點亮時間的比例,以實現調節亮度的功能。
控制模塊程序包括與顯示模塊的I2C通信,與EEPROM的I2C通信,與計算機的串行通信,數據的地址計算,外界光強度檢測幾個部分。
兩個I2C通信部分和串行通信由硬件支持,比較容易。外界光強度傳感器直接把光強轉化成頻率送入CPU,所以只要定時計數即可。比較復雜的部分是數據的地址計算。由于本系統的自由度、數據使用索引的辦法在EEPROM中存儲,地址計算邏輯上簡單但實現起來比較繁復,要對每個顯示模塊發送不同的內容。對于滾動顯示的情況則更加復雜。
如果是靜態顯示,則控制模塊僅接收到命令后傳送一次數據就進入空閑等待:如果是閃爍、滾動等顯示,則需要定時從EEPROM中取數據發生各顯示模塊。
PC機部分的程序主要是點陣編輯功能和RS232通信功能。點陣編輯不僅可以寫各種字體的字符,還可以繪制簡單圖形;RS232通信不僅包括所有可以用鍵盤實現的功能外,還可以直接在顯示屏上顯示圖形而不用先保存到控制模塊中,實現即時的信息發布。
本系統對常用的LED大屏幕顯示裝置作了規范化、模塊化的有益嘗試,并已應用在交通狀況顯示場合,取得了良好效果,證明該設計是合理可行的。由于設計時為使用保留了很大自由芳,使得它可以靈活組合運用于各種不同需求的場合,而不必重復設計,有效節約了資源。由于最初本系統對應一個比較小的顯示屏,怕以選用了I2C總線,如果要做相當大的顯示零還可以換成RS485等總線,提供更大的擴展余地。此外基于這個設計思路,還可以進一步開發彩色LED大屏幕顯示屏等產品。
來源;國際led網
評論
查看更多