0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

音樂頻譜LED顯示屏驅(qū)動控制程序案例解析

454398 ? 來源:博客園 ? 作者: 依舊淡然 ? 2020-10-21 16:00 ? 次閱讀

前些日子,購得一塊08接口的雙色LED顯示屏(打算做個音樂頻譜顯示器),搗鼓了好幾天,終于搞清楚了其控制原理,在這里做個總結(jié),算是備忘吧。

1.LED顯示屏的掃描方式

LED顯示屏的掃描方式有靜態(tài)、1/2、1/4、1/8、1/16幾種。

這些掃描方式具體是什么意思呢?我們以1/16掃描方式為例來說明。因為LED顯示屏是逐行刷新顯示的,所以在任意時刻我們只能控制其任意一行的顯示,每次刷新顯示一行,16行為一個掃描周期,這就是1/16掃描方式。當(dāng)然了,一個掃描周期的時間必須要小于人眼視覺暫留的時間(約0.05秒到0.2秒),否則,人眼會觀察到LED顯示屏所呈現(xiàn)的畫面出現(xiàn)閃爍。

2.LED顯示屏的接口形式

LED顯示屏的接口形式有04接口、08接口、12接口幾種,這里只介紹08接口。

08接口的管腳定義如圖1所示。

圖108接口管腳定義

其中,管腳LA、LB、LC、LD表示行信號;管腳R1、R2、G1、G2表示列信號;管腳EN表示使能信號;管腳SCK表示時鐘信號;管腳STB表示鎖存信號;管腳GND表示接地。

那么,管腳LA、LB、LC、LD是如何來控制行信號,從而實現(xiàn)1/16掃描方式的。其實很簡單,這是通過兩個3-8譯碼器74HC138芯片來實現(xiàn),通過這兩個芯片可以實現(xiàn)如下的功能:

當(dāng)管腳LD、LC、LB、LA的輸出分別為0000時,LED顯示屏的第一行被選中;

當(dāng)管腳LD、LC、LB、LA的輸出分別為0001時,LED顯示屏的第二行被選中;

當(dāng)管腳LD、LC、LB、LA的輸出分別為0010時,LED顯示屏的第三行被選中;

......

當(dāng)管腳LD、LC、LB、LA的輸出分別為1111時,LED顯示屏的第十六行被選中。

現(xiàn)在,我們已經(jīng)知道如何通過08接口的四個行信號LA、LB、LC、LD來控制LED顯示屏的每一行了。將08接口的四個列信號都接地,循環(huán)給四個行信號輸入0000到1111,就可以點亮整個LED顯示屏了。

但是要在LED顯示屏上顯示出漢字或是圖形,僅僅對行信號進(jìn)行控制是遠(yuǎn)遠(yuǎn)不夠的,我們還需要對列信號進(jìn)行控制。

3.LED顯示屏的列驅(qū)動

LED顯示屏的列驅(qū)動使用了74HC595芯片,該芯片具有8位串行輸入、8位串行/并行輸出,8位鎖存功能。

對于64*32的LED顯示屏來說,因為其總共有64列,所以通過對8個74HC595芯片進(jìn)行級聯(lián),即可將其擴展為64位串行輸入,64位并行輸出,從而實現(xiàn)對64列信號進(jìn)行控制。

08接口中的管腳R1、R2、G1、G2就是用來輸入64位串行數(shù)據(jù)的。其中,R1、G1分別用來控制上半屏(16行)的紅、綠信號;R2、G2分別用來控制下半屏(16行)的紅綠信號。因此,對于64*32的雙色LED顯示屏來說,總共需要使用32個74HC595芯片。

顯然,當(dāng)紅綠信號同時使能時(列信號低電平使能),就可以控制LED顯示屏顯示出黃色來了。

現(xiàn)在,我們已經(jīng)知道LED顯示屏的列驅(qū)動原理,下一步就可以編寫程序,讓LED顯示屏顯示出任意我們想要的漢字或圖形了。

4.示例程序

了解了LED顯示屏的驅(qū)動原理之后,編寫單片機程序,利用08接口對其進(jìn)行控制是很容易的。

程序的大致流程應(yīng)該是這樣的:

(1)初始化單片機的GPIO引腳。

(2)設(shè)置08接口的使能信號EN。

(3)利用行信號選中第1行,移位串行輸入第1行的列信號數(shù)據(jù),鎖存列信號,并行輸出顯示。

(4)利用行信號選中第2行,移位串行輸入第2行的列信號數(shù)據(jù),鎖存列信號,并行輸出顯示。

(5)依次遍歷,直到第32行,并行輸出顯示為止。

(6)循環(huán)進(jìn)行3-5的過程。

如下的代碼示例了整個程序流程。

 1 void main(void)
 2 {
 3     int rowNumber = 0;                   //行序號
 4     int columnNumber = 0;                //列序號
 5 
 6     InitGPIO();                          //初始化單片機的GPIO引腳    
 7     LED_OE = 1;                          //使能信號
 8 
 9     while(1)                             //循環(huán)刷新顯示
10     {        
11         for(rowNumber=0; rowNumber<16; rowNumber++)                   //寫入上半屏的顯示內(nèi)容
12         {
13               SetRowLight(rowNumber);                                 //行信號選擇
14 
15             for(columnNumber=0; columnNumber<8; columnNumber++)       //寫入列信號數(shù)據(jù)
16             {
17                 Write1ByteToFirstHalfScreen(FirstHalfScreenArray[rowNumber][columnNumber], 0xFF);
18             }
19 
20             LED_STB = 0;                                              //鎖存列信號
21             LED_STB = 1;
22         }
23             
24         for(rowNumber=0; rowNumber<16; rowNumber++)                   //寫入下半屏的顯示內(nèi)容
25         {
26               SetRowLight(rowNumber);                                 //行信號選擇
27                                                                     
28             for(columnNumber=0; columnNumber<8; columnNumber++)       //寫入列信號數(shù)據(jù)
29             {
30                 Write1ByteToLowerHalfScreen(0xFF, LowerHalfScreenArray[rowNumber][columnNumber]);    
31             }
32                                                                    
33             LED_STB = 0;                                              //鎖存列信號
34             LED_STB = 1;
35         }                
36     }
37 }

其中,函數(shù)SetRowLight()用于控制行信號的選擇;函數(shù)Write1ByteToFirstHalfScreen()用于向上半屏寫入列信號數(shù)據(jù);函數(shù)Write1ByteToLowerHalfScreen()用于向下半屏寫入列信號數(shù)據(jù),二維數(shù)組FirstHalfScreenArray[16][8]和LowerHalfScreenArray[16][8]分別用于存儲列信號數(shù)據(jù),該數(shù)據(jù)可以通過漢字圖形取模軟件得到。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628449
  • LED顯示屏
    +關(guān)注

    關(guān)注

    35

    文章

    1805

    瀏覽量

    98402
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51515
  • danpianji
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2933
收藏 人收藏

    評論

    相關(guān)推薦

    單片機驅(qū)動控制TFT真彩色液晶控制程序

    單片機驅(qū)動控制TFT真彩色液晶控制程序
    發(fā)表于 09-28 11:41

    彩色led顯示屏fpga控制程序

    多年前做的設(shè)計,實現(xiàn)led全彩色顯示屏控制。給同行參考設(shè)計原理還可以,工程接口做的不好,不太靈活。
    發(fā)表于 03-16 19:01

    led顯示屏驅(qū)動電路

    led顯示屏驅(qū)動電路(圖1 ) LED顯示
    發(fā)表于 07-08 11:25 ?1.3w次閱讀
    <b class='flag-5'>led</b><b class='flag-5'>顯示屏</b><b class='flag-5'>驅(qū)動</b>電路

    基于VHDL的顯示屏控制電路

    本文介紹了用硬件描述語言 VHDL 設(shè)計顯示屏控制電路的方法,此方法設(shè)計的控制電路達(dá)到了簡化系統(tǒng)總體結(jié)構(gòu)、擴大應(yīng)用范圍,并易于編制控制程序的目的。
    發(fā)表于 07-13 17:50 ?161次下載
    基于VHDL的<b class='flag-5'>顯示屏</b><b class='flag-5'>控制</b>電路

    單片機按鍵控制程序【匯編版】

    單片機按鍵控制程序【匯編版】單片機按鍵控制程序【匯編版】單片機按鍵控制程序【匯編版】單片機按鍵控制程序【匯編版】
    發(fā)表于 12-29 11:04 ?0次下載

    多舵機控制程序

    多舵機控制程序。
    發(fā)表于 03-21 15:43 ?12次下載

    單片機驅(qū)動控制TFT真彩色液晶控制程序

    另一種TFT液晶控制程序參考應(yīng)用測試等。
    發(fā)表于 05-06 16:09 ?63次下載

    步進(jìn)電機控制程序液晶顯示程序

    步進(jìn)電機控制程序液晶顯示程序,快來學(xué)習(xí)吧。
    發(fā)表于 05-12 16:25 ?33次下載

    PLC控制LED燈數(shù)碼顯示控制程序

    PLC控制LED燈數(shù)碼顯示控制程序,初次來到此地,請多關(guān)照。
    發(fā)表于 05-19 14:31 ?0次下載

    基于WinCE通知API的解析及在控制程序中的應(yīng)用

    基于WinCE通知API的解析及在控制程序中的應(yīng)用
    發(fā)表于 10-25 09:42 ?3次下載
    基于WinCE通知API的<b class='flag-5'>解析</b>及在<b class='flag-5'>控制程序</b>中的應(yīng)用

    LED顯示屏控制系統(tǒng)的設(shè)計與整體分析

    的畫面及視頻顯示信息,置入幀存儲器,按分區(qū)驅(qū)動方式生成LED顯示屏所能識別的串行顯示數(shù)據(jù)和掃描控制
    發(fā)表于 11-03 16:12 ?25次下載
    <b class='flag-5'>LED</b><b class='flag-5'>顯示屏</b><b class='flag-5'>控制</b>系統(tǒng)的設(shè)計與整體分析

    led顯示屏控制軟件有哪些_九個led顯示屏控制軟件介紹

    本文開始介紹了LED顯示屏控制系統(tǒng)的相關(guān)概念,其次闡述了LED顯示屏控制系統(tǒng)分類,最后介紹了九大
    的頭像 發(fā)表于 03-21 16:42 ?20.3w次閱讀

    LED顯示屏控制卡有哪些分類_如何選擇LED顯示屏控制卡?

    LED顯示屏控制卡是LED圖文顯示屏的核心部件,負(fù)責(zé)接收來自計算機串行口的畫面顯示信息,置入幀存
    的頭像 發(fā)表于 07-28 10:37 ?1.9w次閱讀

    淺談LED顯示屏控制系統(tǒng)

    LED顯示屏控制系統(tǒng)(LED Display Control System),又稱LED顯示屏
    的頭像 發(fā)表于 07-24 14:55 ?2195次閱讀

    Led顯示屏控制系統(tǒng)怎么使用 led顯示屏控制器怎么設(shè)置

    Led顯示屏控制系統(tǒng)是一種用于控制LED顯示屏的硬件設(shè)備,通過它可以實現(xiàn)對
    的頭像 發(fā)表于 02-03 14:03 ?5940次閱讀