引言
本文設計的是一種內容更新便捷、可擴展、低價格的點陣 LED文字顯示屏。
降低成本的途徑是:1、用幾乎人人都有的手機的藍牙數據傳輸功能進行LED顯示內容的更新,免去專業上位機軟件和控制卡的成本,操作也更簡單;2、單次顯示內容在5至30個漢字或英文字母,因為顯示內容較少,就可實現擴展電路的簡單化。
?
1 系統設計方案
1.1 系統組成
系統由帶藍牙功能的智能手機和LED顯示屏組成。其中,LED顯示屏由單片機、LED點陣模塊、字庫芯片、藍牙接收模塊、5V開關電源和3.3V穩壓電路組成,如圖1所示。系統工作過程是: 用戶通過智能手機的記事本編輯“數據”,并經無線藍牙發送到顯示屏上的藍牙接收模塊。主控單片機讀取藍牙接收模塊接收的“數據”并進行處理。“數據”由“控制命令”和“顯示內容”構成,兩部分數據用自定義特征符分隔開。“控制命令”用于對顯示屏的亮度、顯示內容移動速度和移動方向進行設置; 而單片機根據收到的“顯示內容”的字符代碼在字庫芯片中找到相應的32字節顯示代碼送點陣屏顯示。
圖1 系統組成
?
1.2 LED 點陣屏工作原理
LED 點陣顯示屏可按顯示需要由若干塊每塊LED 單元板拼接而成。通用LED單元板由2位16×16點陣LED構成,尺寸為160*320mm。
單元板的工作原理如下:
每板有16 行32列,數據的顯示采用傳統的行列式掃描方式。通常為了減小閃爍,提高掃描速度,采用1/4 掃描,即把16行分為4個4行,每次同時選通4個4行中的同序對應行,這樣掃描4次即可完成16行的掃描顯示。其中列控制由74HC595承擔,每塊單元板上有16片,每片分別控制4行8列的點陣小單元。行控制是由1片譯碼器74LS138承擔,每次使單元板的4個4行的同序對應行選通。為了保證正常的電流驅動( 亮度),74LS138 的輸出經AMP4593 驅動放大。每塊單元板有4 片,每片分別驅動4 行。16 片74HC595 接成級聯方式,由于每4 行32 列需4 片74HC595, 16 行32 列就是16 片。設第一個4 行的4片74HC595 序號為1、2、3、4,第二個4 行的4 片74HC595 序號為5、6、7、8,依次類推。每一片的數據輸出端接到下一片的輸入端,數據從第1 片的輸入端串行輸入,在移位脈沖的作用下一位一位依序移入,經過8×16 個脈沖,最先移入的數據位移到了第16 片的最低位(也是該片的輸出端),所有數據都移入后,就可顯示一板完整的內容,按此規律即可進行顯示的軟件設計。如果顯示的字數多,拼接的 LED 單元板就多,顯示一屏完整內容所需的移位脈沖就多。這種顯示方式要求主控單片機有較高的指令執行速度,否則就會有閃爍感。點陣單元板原理圖如圖2所示。
圖2 點陣單元板原理圖
2 系統主要模塊的選擇和電路設計
2.1 主控芯片
2.1.1 芯片選擇
為了滿足LED 顯示屏的顯示及多板的擴展,要求系統主控單片機有較快的運行速度; 較大的存儲空間用于存儲顯示數據,因此選用美國silicon公司的C8051F410。該芯片是一款高性能產品,FTQP-32 封裝(9mm* 9mm) 大大減小了體積; 由于采用了精簡指令結構,使得每個機器周期僅需一個時鐘周期,運算速度快大大加快,如果使用片內24. 5MHz 的內部時鐘,其運行速度大約是普通8051 單片機工作在12MHz 時鐘時的24 倍; 芯片內部資源豐富,自帶看門狗,通過JTAG 接口連接調試器,可方便硬件在線調試; 芯片內含UART、SPI、I2C等通信接口,方便與外圍芯片連接; 4個定時器/計數器使編程更方便; 自帶的16K/32KFLASH,可存儲大約1K個漢字。
2.1.2 最小系統電路設計
系統對單片機時鐘的精度和溫度穩定度都沒有特別要求,可以直接使用C8051F410單片機內部自帶的時鐘振蕩器,而無需外接振蕩器。使用時要注意的是,是芯片工作電源是從Vregin引腳引入(+ 3. 3V) ,VDD是內部基準電壓輸出引腳,VIO 是I /O口作為數字引腳時的電源輸入引腳。電路設計時必需在緊靠這3 個引腳的位置布上濾波和退耦電容(4. 7μ 和104p) .P1. 0~ P1. 3 是顯示屏的控制線CLK、SCLK、R 和OE; P1. 7、P0. 0 ~ P0. 2是字庫芯片控制線,采用SPI 接口; P2. 0和P2. 1是顯示屏的行掃控制線A 和B; P0. 4和P0. 5是串口通信線,與藍牙模塊連接。這12根引腳都需配置為數字引腳。最小系統電路如圖3所示。
圖3 C8051F410 單片機最小系統
?
2.2 藍牙模塊
2.2.1 模塊選擇
選用藍牙模塊的要求是: 價格便宜、體積小,使用方便。符合條件的藍牙模塊產品很多。設計選用的是南京國春電氣生產的GC-02 藍牙模塊,這是款高質量的CLASS2藍牙模塊。此藍牙模塊內部帶有對象交換協議(OPP)文件接收功能,只要上電后,就可被手機藍牙識別,并可成功配對建立連接,接收手機藍牙傳輸的文件。
GC-02 藍牙模塊共有29個引腳,可通過SPI 接口或UART接口與單片機通信。本系統單片機選擇UART方式與GC-02進行通信。藍牙模塊處于待機模式時,已配對過的手機向藍牙模塊發送文件,未配對的手機需先進行配對,輸入正確的PIN 碼(即配對密碼)即可配對。此藍牙模塊的出場廠PIN 碼是“1234”,其PIN 碼可通過向藍牙模塊發送指令進行修改。
2.2.2 電路設計
單片機通過引腳P0.4和P0. 5與藍牙模塊GC-2的串口(12 腳和13腳)進行通信,藍牙模塊的其他功能未用。單片機與藍牙模塊的連接如圖4所示。
圖4 單片機與藍牙模塊的連接圖。
2.3 字庫芯片
2.3.1 芯片選擇
由于使用中顯示的內容需要經常更換,采用文字“取模”獲得顯示數據的方法顯然行不通,在顯示電路中存儲字庫或采用字庫芯片是個可行的辦法。設計采用字庫芯片,選擇GT21L16S2W 標準漢字字庫芯片。
GT21L16S2W 是一款內含11×12點陣和15×16點陣的漢字庫芯片,支持GB2312國標簡體漢字(含有國家信標委合法授權) 、ASCII 字符及GB2312與Unicode編碼互轉表。排列格式為橫置橫排。根據字符點陣在芯片中的地址,就可從該地址連續讀出字符點陣信息。
以15X16點陣漢字為例,漢字信息需要32個字節(BYTE0-BYTE31) 來表示,點陣的數據是橫置橫排的,其具體排列結構如圖5。每個漢字在芯片中是以漢字點陣字模的形式存儲的,每個點用一個二進制位表示,存1 的點,當顯示時可以在屏幕上顯示亮點,存0 的點,則在屏幕上不顯示。點陣排列格式為橫置橫排: 即一個字節的高位表示左面的點,低位表示右面的點,排滿一行的點后再排下一行。這樣把點陣信息用來直接在顯示器上按上述規則顯示,則將出現對應的漢字。15X16 點陣漢字存儲在00000H~3B7BFH 的芯片地址范圍中,只要知道漢字的內碼,就可計算出漢字顯示數據的首地址。
圖5 漢字點陣排列格式
2.3.2 接口電路
字庫芯片GT21L16S2W的各引腳功能如下: 1、2、5、6腳是SPI接口,其中:1(CS#) 為片選輸入,2(SO) 為串行數據輸出,5(SI) 為串行數據輸入,6(SCLK) 為串行時鐘。
7腳(HOLD #) 為總線掛起,該信號可用于在片選信號有效期間暫停數據傳輸。單片機通過引腳P0.0~P0.2 以及P1.7 與字庫芯片進行通信,讀取顯示數據。HOLD#引腳懸空,Vcc 工作電源為3.3 V。單片機與字庫芯片的連接如圖6 所示。
圖6 單片機與字庫芯片的連接圖。
2.4 LED 點陣屏與單片機的連接
點陣屏選擇的是市場上應用最為廣泛的P10單紅戶外單元板。該模塊具有高穩定性,高亮度,顏色均勻等特點,進行的掃描方式是1 /4 掃,控制方法簡便,有利于優化軟件設計,采用點陣單元可以根據需要進行拼湊,靈活性強。LED點陣屏與單片機的連接如圖7 所示。其中,OE(P1. 3) 為使能信號,連接74HC138,用于亮度控制,也可用于顯示屏消隱。只要調整它的占空比就可以控制亮度的變化。ABCD 為行掃描信號,A 是最低位,如果ABCD信號全用上,控制掃描的最大范圍是16 行,1 /4 掃描中只要AB(P2. 0 和P2. 1) 信號就可以了。當行控制信號出現異常時,將會出現顯示錯位、高亮或圖像重疊等現象。
CLK(P1.0)為移位脈沖,每一個脈沖將數據移入或移出一位。當時鐘信號有異常時,會使整板顯示雜亂無章。STB(P1.1) 是鎖存信號,將移位寄存器內的數據鎖存并將其數據內容通過驅動電路點亮LED顯示出來。RI(P1.2) 是顯示數據的輸入端。
2.5 電源模塊
電源模塊由5V大功率電源和+3.3V小功率穩壓電路組成。前者是給LED屏提供電源,后者是把5V電壓穩壓成3.3V后提供給單片機、藍牙模塊和字庫模塊工作,這里選用ASM1117-3.3 芯片。市售通用的LED板輸入額定功率約為190W/ m2,每塊單元板面積是160*320 mm2 ,最大工作電流約為2 A(5V工作電壓時功耗是10W) ,可根據所要求的LED 顯示屏的面積選擇開關電源的功率。常用的開關電源,配合雙MOS管輸出以及加強型散熱器和濾波電容線圈,可保障純凈充足的電流輸出。
2.6 系統總體電路
本系統以單片機C8051F410作為MCU,外圍電路包括藍牙模塊、字庫芯片、LED點陣屏和電源模塊,系統電路原理如圖8所示。
圖8 系統原理圖。
3 系統軟件設計
單片機的初始化包括:1、時鐘初始化,選擇片內24.5MHz 內部時鐘。2、引腳配置: 配置P0.0~P0.2為SPI接口(3 線) ,與字庫芯片通信; 配置P0.4和P0.5為串口,與藍牙模塊實現通訊; 配置P1.0~P1. 3、P2.0 和P2.1為數字I /O,實現對顯示屏的控制。3、中斷、定時器/計數器和FLASH 相關寄存器初始化。系統軟件流程如圖9 所示。
圖9 系統軟件流程
?
初始化后系統將主動讀取FLASH 指定地址范圍內的數據,并將數據(Unicode 字符集) 轉換得到與Unicode數據對應的GB2312字符集代碼在字庫芯片的地址碼,然后將該地址碼送給字庫芯片提取該地址所對應的GB2312字符集,再將GB2312字符集代碼通過字庫芯片轉化提取相對應的16*16點陣代碼,通過SPI口將代碼送給單片機,進而單片機將點陣代碼送給點陣屏并控制點陣屏將數據顯示出來。
正常工作狀態下,當手機藍牙與系統藍牙模塊發生配對時,手機只有輸入正確的PIN 碼后,才可成功配對,配對成功后,若手機采用記事本軟件通過藍牙發送數據,藍牙模塊將接收數據并通過串口發送出去,這時單片機接收數據,如果識別到有效數據的開始位為標志位“#”,那么系統將認為該命令是控制命令,即控制LED 顯示的亮度、速度、移動方向。控制命令的格式自主定義。例如“#35 左”,意思為:“#”為控制標志位,“3”控制亮度(控制范圍為0-9,數值越大亮度越高) ,“5”控制速度(控制范圍0-9,數字越大速度越慢) ,“左”為方向控制位(左為移動方向向左移,右代表向右移,上表示向上移,下為向下移) 。如果有效數據的開始位不為“#”,那么將默認此次數據為LED要顯示的新內容,系統將把數據按順序存入指定的FLASH 地址范圍內,待復位后新數據將顯示于屏幕上。特別要指出的是,為了保證顯示屏工作的可靠性,要在顯示循環程序中得合適位置設置好“喂狗”參數。
4 結束語
系統實現了通過手機更新顯示屏顯示內容的目的,方便又快捷。經過一些用戶的使用,其顯示性能和控制性能均較為穩定。但是,在實際使用過程中也遇到了尚未解決的問題,主要有兩大方面:一是有部分手機不支持Unicode字符集格式;二是本設計僅限于智能機通過記事本編輯顯示數據的傳送,而不同手機采用的記事本編輯軟件不盡兼容,本設計是基于Nokia手機軟件設計的。
?
評論