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