<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 基于多端口串行Flash的條形LED顯示屏控制

基于多端口串行Flash的條形LED顯示屏控制

作者: 時(shí)間:2012-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
 首先采用第( 1) 種模式,單片機先向串行存儲器輸出命令字、存儲地址和虛擬字節,然后將單片機的數據口P2. 0 ~ P2. 3全部置高電平,通過(guò)SPI 時(shí)鐘從串行存儲器讀取顯示數據,同時(shí)以"DMA"方式進(jìn)入LED 單元板,當讀取完一行數據后,在LED單元板上的數據鎖存端RCK 上產(chǎn)生有效信號,就可以顯示該行數據。 當采用這種模式時(shí),一定要將單片機STC12C5616 的引腳P2. 0 ~ P2. 3設置為"弱上拉"模式。

  4 超長(cháng)LED 顯示屏顯示程序設計

  在1 /16 單色LED 顯示屏硬件電路設計中,74HC595 采用直通方式連接。 根據直通方式特點(diǎn),預先對單色顯示數據進(jìn)行優(yōu)化組織,將組織后的顯示數據預先存放在串行 存儲器SST26VF016B 中。 如圖4 所示,單片機輸出顯示每行數據時(shí)按"輸出數據→送移位脈沖→地址加1"的順序重復進(jìn)行,顯示完一行后,RCK 鎖存顯示,通過(guò)ABCD 切換行選通線(xiàn)。

基于多端口串行Flash的條形LED顯示屏控制

圖4 1 /16 掃描單色F3. 75 或F5. 0 單元板( 64 × 32 點(diǎn)) 連接方式。

  以L(fǎng)ED 顯示屏的水平方向點(diǎn)數為4 096 點(diǎn)為例,其顯示一幀數據的程序代碼如下:

  woid Display( unsigned long begin_Addr)

  {

  unsigned char Ln

  ,Bv = 1;

  unsigned int Data_Length,Lw = 4096;

  unsigned long Addr;

  Data_Length = Bv* Lw

 ?。?;

  for ( Ln = 0; Ln 16; Ln + + )

  {

  Addr = Begin_Addr + Ln* Data_Length;

  CS = 0;

  SendSQI_Byte( 0x0B) ; / /送讀命令

  / /送3 個(gè)字節地址

  SendSQI_Byte( ( Addr 》 16) 0xff) ;

  SendSQI_Byte( ( Addr 》 8) 0xff) ;

  SendSQI_Byte( ( Addr0xff) ;

  SendSQI_Byte( ( 0xff) ; / /送虛字節

  P2 = P2 |0x0f;

  SPCTL = 0xd0; / /允許SPI 接口

  SPDAT = 0xff; / /啟動(dòng)第1 次SPI 發(fā)送

  Data_Length = ( Data_Length 》 3) - 1;

  while( Data_Length! = 0)

  { / /SPI 時(shí)鐘每次傳輸8 個(gè)脈沖

  while( ( SPSTAT0x80) == 0) ;

  SPSTAT = 0x80; / /清接收標志

  SPDAT = 0xff; / /啟動(dòng)SPI 發(fā)送

  Data_Length -- ;

  }

  while( ( SPSTAT0x80) == 0) ;

  SPSTAT = 0x80; / /清接收標志

  SPCTL = 0x90; / /禁止SPI 接口

  CS = 1; /* disable devicce * /

  EN = 0;

  RCK = 1; RCK = 0;

  PI = ( ( P10xf0) | Ln

 ?。?;

  EN = 1;

  }

  }

  在設計程序時(shí),僅在換行時(shí)關(guān)閉顯示屏,避免它產(chǎn)生余輝,其余時(shí)間都點(diǎn)亮。 在該程序中,Bv為數據線(xiàn)在垂直方向使用595 的組數; Lw為L(cháng)ED 顯示屏水平方向像素點(diǎn)數; Ln為當前LED 顯示屏顯示數據行號。 當顯示數據時(shí),采用存儲器和LED 顯示屏的數據輸出模式,單片機先向串行存儲器輸出"讀數據"命令字"0x0B",然后輸出24 位地址和虛擬字節,再使單片機數據口輸出高電平,就可以根據LED 顯示屏的長(cháng)度輸出SCK 脈沖。 送完一行數據后,禁止SPI 接口,RCK 鎖存信號有效,切換至下一行,按重復步驟繼續輸出顯示數據。

  5 測試

  經(jīng)過(guò)測試后,顯示屏顯示正常,沒(méi)有抖動(dòng)情況,使用邏輯分析儀測試了其刷新率,如圖5( b) 所示,信號A 的電平寬度表示顯示1 行所需要的時(shí)間,其寬度為1. 036 16 ms,顯示1 幀的時(shí)間為16 ×1. 036 16 ms≈16 ms,所以L(fǎng)ED 顯示屏的刷新率為1 /16 ms = 62. 5 Hz. 而當LED 顯示屏的刷新率大于50 次/s 時(shí),就可以滿(mǎn)足設計要求,故本設計能夠滿(mǎn)足正常顯示要求。 通過(guò)測試SCK 信號,如圖5( a)所示,可以看出SCK 信號每8 個(gè)脈沖1 組,每組之間的時(shí)間間隔僅為570 ns,該時(shí)間主要消耗在判斷SPI 數據傳輸完成標志和循環(huán)上。

基于多端口串行Flash的條形LED顯示屏控制

圖5 LED 屏信號測試

  6 結論

  本文提出了基于多端口串行 存儲器的LED 顯示系統,利用單片機的SPI 接口產(chǎn)生可控時(shí)鐘,將多端口串行 存儲器中的顯示數據以"DMA"方式直接輸出至超長(cháng)條形LED 顯示屏。

  其制造成本低廉,根據本文程序及邏輯分析儀得到的時(shí)序圖可知,該方法可以4 096 × 64 點(diǎn)陣單色LED 顯示屏,在超長(cháng)顯示屏市場(chǎng)上有很好的應用前景。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Flash LED顯示屏 控制

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>