<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設計應用 > 基于藍牙技術的LED點陣屏設計方案

          基于藍牙技術的LED點陣屏設計方案

          作者: 時間:2012-11-13 來源:網(wǎng)絡 收藏

          2. 2. 2 電路

          單片機通過引腳P0.4 和P0. 5 與模塊GC- 2 的串口( 12 腳和13腳) 進行通信,模塊的其他功能未用。單片機與模塊的連接如圖4所示。

          圖4 單片機與藍牙模塊的連接圖

          圖4 單片機與藍牙模塊的連接圖。

          2. 3 字庫芯片

          2. 3. 1 芯片選擇

          由于使用中顯示的內容需要經(jīng)常更換,采用文字取模獲得顯示數(shù)據(jù)的方法顯然行不通,在顯示電路中存儲字庫或采用字庫芯片是個可行的辦法。采用字庫芯片,選擇GT21L16S2W 標準漢字字庫芯片。

          GT21L16S2W 是一款內含11 × 12 和15 × 16 的漢字庫芯片,支持GB2312 國標簡體漢字( 含有國家信標委合法授權) 、ASCII 字符及GB2312 與Unicode 編碼互轉表。排列格式為橫置橫排。根據(jù)字符在芯片中的地址,就可從該地址連續(xù)讀出字符點陣信息。

          以15X16點陣漢字為例,漢字信息需要32 個字節(jié)( BYTE 0- BYTE31 ) 來表示,點陣的數(shù)據(jù)是橫置橫排的,其具體排列結構如圖5.每個漢字在芯片中是以漢字點陣字模的形式存儲的,每個點用一個二進制位表示,存1 的點,當顯示時可以在屏幕上顯示亮點,存0 的點,則在屏幕上不顯示。點陣排列格式為橫置橫排: 即一個字節(jié)的高位表示左面的點,低位表示右面的點,排滿一行的點后再排下一行。這樣把點陣信息用來直接在顯示器上按上述規(guī)則顯示,則將出現(xiàn)對應的漢字。15X16 點陣漢字存儲在00000H ~3B7BFH 的芯片地址范圍中,只要知道漢字的內碼,就可計算出漢字顯示數(shù)據(jù)的首地址。

          圖5 漢字點陣排列格式

          圖5 漢字點陣排列格式

          2. 3. 2 接口電路

          字庫芯片GT21L16S2W 的各引腳功能如下: 1、2、5、6 腳是SPI接口,其中: 1( CS#) 為片選輸入,2 ( SO) 為串行數(shù)據(jù)輸出,5( SI) 為串行數(shù)據(jù)輸入,6( SCLK) 為串行時鐘。

          7 腳( HOLD #) 為總線掛起,該信號可用于在片選信號有效期間暫停數(shù)據(jù)傳輸。單片機通過引腳P0. 0 ~ P0.2 以及P1.7 與字庫芯片進行通信,讀取顯示數(shù)據(jù)。HOLD#引腳懸空,Vcc 工作電源為3. 3 V.單片機與字庫芯片的連接如圖6 所示。

          圖6 單片機與字庫芯片的連接圖。

          圖6 單片機與字庫芯片的連接圖。

          2. 4 點陣屏與單片機的連接

          點陣屏選擇的是市場上應用最為廣泛的P10 單紅戶外單元板。該模塊具有高穩(wěn)定性,高亮度,顏色均勻等特點,進行的掃描方式是1 /4 掃,控制方法簡便,有利于優(yōu)化軟件,采用點陣單元可以根據(jù)需要進行拼湊,靈活性強。 點陣屏與單片機的連接如圖7 所示。其中,OE( P1. 3) 為使能信號,連接74HC138,用于亮度控制,也可用于顯示屏消隱。只要調整它的占空比就可以控制亮度的變化。ABCD 為行掃描信號,A 是最低位,如果ABCD信號全用上,控制掃描的最大范圍是16 行,1 /4 掃描中只要AB( P2. 0 和P2. 1) 信號就可以了。當行控制信號出現(xiàn)異常時,將會出現(xiàn)顯示錯位、高亮或圖像重疊等現(xiàn)象。

          CLK( P1. 0) 為移位脈沖,每一個脈沖將數(shù)據(jù)移入或移出一位。當時鐘信號有異常時,會使整板顯示雜亂無章。STB( P1. 1) 是鎖存信號,將移位寄存器內的數(shù)據(jù)鎖存并將其數(shù)據(jù)內容通過驅動電路點亮顯示出來。RI( P1. 2) 是顯示數(shù)據(jù)的輸入端。

          2. 5 電源模塊

          電源模塊由5 V 大功率電源和+ 3. 3 V 小功率穩(wěn)壓電路組成。前者是給LED 屏提供電源,后者是把5V 電壓穩(wěn)壓成3. 3 V后提供給單片機、藍牙模塊和字庫模塊工作,這里選用ASM1117- 3. 3 芯片。市售通用的LED 板輸入額定功率約為190 W/ m2 ,每塊單元板面積是160* 320 mm2 ,最大工作電流約為2 A( 5 V 工作電壓時功耗是10 W) ,可根據(jù)所要求的LED 顯示屏的面積選擇開關電源的功率。常用的開關電源,配合雙MOS 管輸出以及加強型散熱器和濾波電容線圈,可保障純凈充足的電流輸出。

          2. 6 系統(tǒng)總體電路

          本系統(tǒng)以單片機C8051F410 作為MCU,外圍電路包括藍牙模塊、字庫芯片、LED 點陣屏和電源模塊,系統(tǒng)電路原理如圖8 所示。

          圖8 系統(tǒng)原理圖

          圖8 系統(tǒng)原理圖。

          3 系統(tǒng)軟件設計

          單片機的初始化包括: ①時鐘初始化,選擇片內24.5MHz 內部時鐘。②引腳配置: 配置P0. 0 ~ P0. 2 為SPI 接口(3 線) ,與字庫芯片通信; 配置P0. 4 和P0. 5 為串口,與藍牙模塊實現(xiàn)通訊; 配置P1. 0 ~ P1. 3、P2. 0 和P2. 1 為數(shù)字I /O,實現(xiàn)對顯示屏的控制。

          ③中斷、定時器/計數(shù)器和FLASH 相關寄存器初始化。系統(tǒng)軟件流程如圖9 所示。

          圖9 系統(tǒng)軟件流程

          圖9 系統(tǒng)軟件流程

          初始化后系統(tǒng)將主動讀取FLASH 指定地址范圍內的數(shù)據(jù),并將數(shù)據(jù)( Unicode 字符集) 轉換得到與Unicode 數(shù)據(jù)對應的GB2312字符集代碼在字庫芯片的地址碼,然后將該地址碼送給字庫芯片提取該地址所對應的GB2312 字符集,再將GB2312 字符集代碼通過字庫芯片轉化提取相對應的16* 16 點陣代碼,通過SPI 口將代碼送給單片機,進而單片機將點陣代碼送給點陣屏并控制點陣屏將數(shù)據(jù)顯示出來。

          正常工作狀態(tài)下,當手機藍牙與系統(tǒng)藍牙模塊發(fā)生配對時,手機只有輸入正確的PIN 碼后,才可成功配對,配對成功后,若手機采用記事本軟件通過藍牙發(fā)送數(shù)據(jù),藍牙模塊將接收數(shù)據(jù)并通過串口發(fā)送出去,這時單片機接收數(shù)據(jù),如果識別到有效數(shù)據(jù)的開始位為標志位#,那么系統(tǒng)將認為該命令是控制命令,即控制LED 顯示的亮度、速度、移動方向??刂泼畹母袷阶灾鞫x。例如#35 左,意思為:#為控制標志位,3控制亮度( 控制范圍為0 - 9,數(shù)值越大亮度越高) ,5控制速度( 控制范圍0 - 9,數(shù)字越大速度越慢) ,左為方向控制位( 左為移動方向向左移,右代表向右移,上表示向上移,下為向下移) .如果有效數(shù)據(jù)的開始位不為#,那么將默認此次數(shù)據(jù)為LED 要顯示的新內容,系統(tǒng)將把數(shù)據(jù)按順序存入指定的FLASH 地址范圍內,待復位后新數(shù)據(jù)將顯示于屏幕上。特別要指出的是,為了保證顯示屏工作的可靠性,要在顯示循環(huán)程序中得合適位置設置好喂狗參數(shù)。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();