基于藍(lán)牙技術(shù)的LED點(diǎn)陣屏設(shè)計(jì)方案
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)方向。控制命令的格式自主定義。例如#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ù)。
評(píng)論