點(diǎn)陣式漢字LED顯示屏電路原理與制作

發(fā)布時(shí)間:2011-6-22 11:51    發(fā)布者:circuit_share
關(guān)鍵詞: 點(diǎn)陣式 , 漢字 , 顯示屏
漢字顯示屏廣泛應用與汽車(chē)報站器,廣告屏等。本文介紹一種實(shí)用的漢字顯示屏的制作,考慮到電路元件的易購性,沒(méi)有使用8*8的點(diǎn)陣發(fā)光管模塊, 而是直接使用了256個(gè)高量度發(fā)光管,組成了16行16列的發(fā)光點(diǎn)陣。同時(shí)為了降低制作難度, 僅作了一個(gè)字的輪流顯示,實(shí)際使用時(shí)可根據這個(gè)原理自行擴充顯示的字數。 1漢字顯示的原理: 我們以UCDOS中文宋體字庫為例,每一個(gè)字由16行16列的點(diǎn)陣組成顯示。即國標漢字庫中的每一個(gè)字均由256點(diǎn)陣來(lái)表示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)像素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字, 也可以顯示在256像素 范圍內的任何圖形。





用 8位的AT89C51單片機控制, 由于單片機的總線(xiàn)為8位,一個(gè)字需要拆分為2個(gè)部分。一般我們把它拆分為上部和下部,上部由8*16點(diǎn)陣組成, 下部也由8*16點(diǎn)陣組成。在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的p00---p07口。方向為p00到p07 ,顯示漢字“大”時(shí),p05點(diǎn)亮,由上往下排列,為p0.0 滅,p0.1 滅, p0.2 滅p0.3 滅, p0.4 滅, p0.5 亮,p0.6 滅,p0.7 滅。即二進(jìn)制00000100,轉換為16進(jìn)制為 04h.。上半部第一列完成后,繼續掃描下半部的第一列,為了接線(xiàn)的方便,我們仍設計成由上往下掃描,即從p27向p20方向掃描,從上圖可以看到,這一列全部為不亮, 即為00000000,16進(jìn)制則為00h。 然后單片機轉向上半部第二列,仍為p05點(diǎn)亮,為00000100,即16進(jìn)制04h. 這一列完成后繼續進(jìn)行下半部分的掃描,p21點(diǎn)亮,為二進(jìn)制00000010,即16進(jìn)制02h. 依照這個(gè)方法,繼續進(jìn)行下面的掃描,一共掃描32個(gè)8位, 可以得出漢字“大” 的掃描代碼為:
04H,00H,04H,02H,04H,02H,04H,04H 04H,08H,04H,30H,05H,0C0H,0FEH,00H 05H,80H,04H,60H,04H,10H,04H,08H 04H,04H,0CH,06H,04H,04H,00H,00H 由這個(gè)原理可以看出, 無(wú)論顯示何種字體或圖像, 都可以用這個(gè)方法來(lái)分析出它的掃描代碼從而顯示在屏幕上。 不過(guò)現在有很多現成的漢字字模生成軟件, 我們就不必自己去畫(huà)表格算代碼了。



軟件打開(kāi)后輸入漢字,點(diǎn)“檢取”,十六進(jìn)制數據的漢字代碼即可自動(dòng)生成,把我們所需要的豎排數據復制到我們的程序中即可。 我們把行列總線(xiàn)接在單片機的i0口,然后把上面分析到的掃描代碼送入總線(xiàn), 就可以得到顯示的漢字了。 在這個(gè)例子里,由于一共用到16行,16列, 如果將其全部接入89c51 單片機, 一共使用32條io口,這樣造成了io資源的耗盡,系統也再無(wú)擴充的余地。 實(shí)際應用中我們使用4-16線(xiàn)譯碼器74ls154來(lái)完成列方向的顯示。 而行方向16條線(xiàn)則接在 p0口和p2口。




程序清單:

ORG 00H LOOP: MOV A,#0FFH ;開(kāi)機初始化,清除畫(huà)面

MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口

MOV R2,#200 D100MS:

MOV R3,#250 ;延時(shí)100毫秒

DJNZ R3,$ DJNZ R2,

D100MS MOV 20H,#00H ;取碼指針的初值 l100:

MOV R1,#100 ;每個(gè)字的停留時(shí)間

L16: MOV R6,#16 ;每個(gè)字16個(gè)碼

MOV R4,#00H ;掃描指針清零

MOV R0,20H ;取碼指針存入

R0 L3: MOV A,R4 ;掃描指針存入A

MOV P1,A ;掃描輸出

INC R4 ;掃描指針加1,掃描下一個(gè)

MOV A,R0 ; 取碼指針存入A

MOV DPTR,#TABLE ;取數據表的上半部分的代碼

MOVC A,@A+DPTR MOV P0,A ; 輸出到P0 INC R0 ;取碼指針加1,取下一個(gè)碼。

MOV A,R0 MOV DPTR,#TABLE ;取數據表下半部份的代碼

MOVC A

評分

參與人數 1積分 +1 收起 理由
lemenade + 1 好東西,起點(diǎn)設定的好

查看全部評分

本文地址:http://selenalain.com/thread-69290-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
lemenade 發(fā)表于 2012-1-17 17:01:21
學(xué)習一下,好多年前弄過(guò)
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页