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

          新聞中心

          EEPW首頁(yè) > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 點(diǎn)陣LED顯示屏的原理與制作

          點(diǎn)陣LED顯示屏的原理與制作

          作者: 時(shí)間:2011-11-28 來(lái)源:網(wǎng)絡(luò) 收藏

          漢字到處可見(jiàn),被廣泛應(yīng)用于與汽車(chē)報(bào)站器,廣告屏等。本文中的16*16是采用4塊8*8合并而成的。

            下圖是4個(gè)8*8組成的。

          點(diǎn)陣LED顯示屏的原理與制作
          (圖1)

            這里我把LED顯示屏制作的電路原理分成兩個(gè)部分來(lái)介紹即顯示屏電路和顯示屏驅(qū)動(dòng)電路。

            一、顯示屏電路

            本人用的是共陰極的8*8,在市場(chǎng)上是比較容易買(mǎi)到,下圖是8*8屏的實(shí)物圖。

          點(diǎn)陣LED顯示屏的原理與制作

          (圖2)

            點(diǎn)陣屏有兩個(gè)類(lèi)型,一類(lèi)為共陰極(左),另一類(lèi)則為共陽(yáng)極(右),下圖給出了兩種類(lèi)型的內(nèi)部電路原理及相應(yīng)的管腳圖。

          點(diǎn)陣LED顯示屏的原理與制作

          (圖3)

          LED陣列的顯示方式是按顯示編碼的順序,一行一行地顯示。每一行的顯示時(shí)間大約為4ms,由于人類(lèi)的視覺(jué)暫留現(xiàn)象,將感覺(jué)到8行LED是在同時(shí)顯示的。若顯示的時(shí)間太短,則亮度不夠,若顯示的時(shí)間太長(zhǎng),將會(huì)感覺(jué)到閃爍。本文采用低電平逐行掃描,高電平輸出顯示信號(hào)。即輪流給行信號(hào)輸出低電平,在任意時(shí)刻只有一行發(fā)光二極管是處于可以被點(diǎn)亮的狀態(tài) ,其它行都處于熄滅狀態(tài)。
          為了方便調(diào)試本文把4塊8*8組成的16*16的點(diǎn)陣屏的行信號(hào)掃描輸出管腳和列信號(hào)顯示輸出管腳分別引到顯示屏的兩邊。
          ProtEL原理圖如下:

          點(diǎn)陣LED顯示屏的原理與制作
          (圖4)


            如圖4 所示的原理圖中的Si(i=1,2,3,…,16) 代表行掃描信號(hào)輸出,Di(i=1,2,3,…,16)代表列顯示信號(hào)輸出。

          實(shí)物電路圖的正反面如下:


          點(diǎn)陣LED顯示屏的原理與制作
          (圖5)

           二、顯示屏驅(qū)動(dòng)電路

            顯示屏驅(qū)動(dòng)電路的原理圖如下:

            顯示屏驅(qū)動(dòng)電路主要由主芯片控制電路、電源電路、控制信號(hào)放大電路等組成。

            1、主芯片控制電路

            該部分電路主要由AT89S52和74LS154組成。單片機(jī)的P0和P2號(hào)控制顯示信號(hào)的輸出,P1號(hào)的低4位控制74LS154的譯碼輸入,從而控制掃描信號(hào)的輸出。

            2、電源電路

            整個(gè)電路的供電由USB電源提供,利用我們的電腦主機(jī)USB接口可以輸出+5V電壓,方便我們?cè)趯?shí)驗(yàn)室調(diào)試

            3、控制信號(hào)放大電路

            為提供負(fù)載能力,在P0和P2口接16個(gè)常用9013的NPN三極管放大驅(qū)動(dòng)信號(hào)。電路中列方向由p0口和p2口完成掃描,由于p0口沒(méi)有上拉電阻,因此接一個(gè)1k*8的排阻上拉。

            行方向則由4—16譯碼器74LS154完成掃描,它由89C51的P1.0---P1.3控制。同樣,驅(qū)動(dòng)部分則是16個(gè)9015的三極管完成的。

          點(diǎn)陣LED顯示屏的原理與制作
          (圖6)

          三、程序與軟件

            在UCDOS中文宋體字庫(kù)中,每一個(gè)字由16行16列的點(diǎn)陣組成顯示,即國(guó)標(biāo)漢字庫(kù)中的每一個(gè)字均由256點(diǎn)陣來(lái)表示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字, 也可以顯示在256像素范圍內(nèi)的任何圖形。用8位的AT89S52單片機(jī)控制, 由于單片機(jī)的總線(xiàn)為8位,一個(gè)字需要拆分為2個(gè)部分如圖9所示。本電路把它拆分為左部和右部,左部由16(行)*8(列)點(diǎn)陣組成, 下部也由16(行)*8(列)點(diǎn)陣組成。

          點(diǎn)陣LED顯示屏的原理與制作
          圖(7)

            為了讓大家更清楚的理解點(diǎn)陣的掃描過(guò)程,在這我們以顯示漢字“我”為例,來(lái)說(shuō)明其掃描原理:
            單片機(jī)首先由P2口輸出顯示數(shù)據(jù)信號(hào)給右部分的第一行如圖9所示,即第一行的P20---P27口。方向?yàn)镻20到P27 ,顯示漢字“我”時(shí),P21點(diǎn)亮,由左到右排,為P20滅,P21亮, P22滅,P23滅, P24滅, P25滅, P26滅, P27滅。即二進(jìn)制00000010,轉(zhuǎn)換為16進(jìn)制為 0x02。

            右部分的第一行完成后,繼續(xù)掃描左半部的第一行,為了接線(xiàn)的方便,我們?nèi)栽O(shè)計(jì)成由左往右掃描,即從P00向P07方向掃描,從上圖可以看到,這一行只有P05、P06亮,其它滅, 即為00000110,16進(jìn)制則為0x60。然后單片機(jī)再次轉(zhuǎn)向右半部第二行,仍為P21、P23點(diǎn)亮,為01010000,即16進(jìn)制0x0A。這一行完成后繼續(xù)進(jìn)行左半部分的第二行掃描,P02、P03、P04點(diǎn)亮,為二進(jìn)制00111000,即16進(jìn)制0x1C。

          依照這個(gè)方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個(gè)8位,可以得出漢字“我”的掃描代碼為:
          0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10,
          0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10,
          0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10,
          0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08
            由這個(gè)原理可以看出, 無(wú)論顯示何種字體或圖像, 都可以用這個(gè)方法來(lái)分析出它的掃描代碼從而顯示在屏幕上。

            不過(guò)現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件, 我們就不必自己去畫(huà)表格算代碼了。
            在網(wǎng)上漢字字模生成軟件有很多種,本文告別推薦一種漢字字模生成軟件,HZDotReader V3.0,我個(gè)人認(rèn)為這個(gè)軟件的功能相當(dāng)完美。最主要的一個(gè)功能是可以選擇漢字編碼的取模方式,本例中的“我”字的取模方式為以橫向8個(gè)連續(xù)點(diǎn)構(gòu)成一個(gè)字節(jié),最左邊的點(diǎn)為字節(jié)的最低位,即BIT0,最右邊的點(diǎn)為BIT7。很少有字模軟件可以實(shí)現(xiàn)這一功能。
            下面給出一個(gè)簡(jiǎn)單的靜態(tài)顯示“我”字的程序清單:
            #includereg52.h>
            #define CCED2 0x0000 /*我 */
            unsigned char code word_zai[16][2] = {/*我 CCED2 */
            0x02,0x60,0x0A,0x1C,0x12,0x10,0x12,0x10,
            0x02,0x10,0x7F,0xFF,0x02,0x10,0x12,0x10,
            0x14,0x70,0x0C,0x1C,0x04,0x13,0x0A,0x10,
            0x49,0x90,0x50,0x10,0x60,0x14,0x40,0x08};

          void main()
          { char scan,i,j;
          P0=0;P1=0;P2=0;
          while(1)
          { scan=0;
          for(i=0;i16;i++)
          {P1=scan;
          for(j=0;j50;j++) //顯示五十次
          {P2=word_zai[i][0] ;
          P0=word_zai[i][1] ;
          }
          P0=0;P2=0;
          scan++;
          }
          }
          }

           四、安裝與調(diào)試

            把顯示屏電路和顯示屏驅(qū)動(dòng)電路分別做在兩塊電路板上,顯示屏電路的行掃描信號(hào)輸出管腳和列顯示信號(hào)數(shù)據(jù)輸出管腳分別引用兩排16針的排針引出,排針長(zhǎng)的那一頭接到電路板的底層,以方便插入驅(qū)動(dòng)電路的插槽中。同樣在驅(qū)動(dòng)電路用兩排16腳的插槽將行掃描信號(hào)輸出管腳和列顯示信號(hào)數(shù)據(jù)輸出管腳引出,在畫(huà)PCB時(shí)應(yīng)當(dāng)注意屏電路PCB中兩排排針之間的距離要與驅(qū)動(dòng)電路PCB中兩排插槽之間的距離一樣,才能保證能正確地將顯示屏電路板排到驅(qū)動(dòng)電路電路板上方。以下為該電路的實(shí)物圖與PCB。

            在畫(huà)PCB時(shí)注意雙面電路板的做板規(guī)則,特別要注意以下
          幾個(gè)方面:
            ①雙面電路板的過(guò)孔比較大,一般在80mil以上;
           ?、诙ㄎ豢椎姆胖?;
           ?、垡陧攲雍附訒r(shí),應(yīng)注意在頂層插上元器件后是否會(huì)影響到焊接,如芯片等管腳比較短的元器件,當(dāng)插在電路板后要在頂層焊接其管腳是比較困難的;
          安裝安電路后,可將以下的測(cè)試程序燒到AT89S52中,將AT89S52插入驅(qū)動(dòng)電路, 若每一個(gè)發(fā)光二極管都能被點(diǎn)亮,則說(shuō)明電路硬件做成功。 以下為測(cè)試程序清單:
          #includereg52.h>
          void main()
          { char scan,i;
          P0=0;P1=0;P2=0;
          while(1)
          { scan=0;
          for(i=0;i16;i++)
          {P1=scan;
          P0=0xff;
          P2=0xff;
          scan++;
          }
          }
          }
            若發(fā)現(xiàn)二極管不是全被點(diǎn)亮則要用萬(wàn)用表來(lái)仔細(xì)地檢測(cè)。一般會(huì)出現(xiàn)的問(wèn)題是電路板上的線(xiàn)被短路,斷開(kāi)等。根據(jù)不亮的二極管來(lái)找電路出現(xiàn)的問(wèn)題應(yīng)該是比較容易的。所以本電路的調(diào)試過(guò)程是較簡(jiǎn)單的。當(dāng)


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

          關(guān)鍵詞: 點(diǎn)陣 LED 顯示屏

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();