1漢字顯示的原理:
我們以UCDOS中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國標(biāo)漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字, 也可以顯示在256像素
我們以顯示漢字“大”為例,來說明其掃描原理:
在UCDOS中文宋體字庫中,每一個字由16行16列的點陣組成顯示。如果用
8位的AT89C51單片機控制, 由于單片機的總線為8位,一個字需要拆分為2個部分。
一般我們把它拆分為上部和下部,上部由8*16點陣組成, 下部也由8*16點陣組成。
在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的p00---p07口。方向為p00到p07 ,顯示漢字“大”時,p05點亮,由上往下排列,為p0.0 滅,p0.1 滅, p0.2 滅p0.3 滅, p0.4 滅, p0.5 亮,p0.6 滅,p0.7 滅。即二進制00000100,轉(zhuǎn)換為16進制為 04h.。
上半部第一列完成后,繼續(xù)掃描下半部的第一列,為了接線的方便,我們?nèi)栽O(shè)計成由上往下掃描,即從p27向p20方向掃描,從上圖可以看到,這一列全部為不亮, 即為00000000,16進制則為00h。
然后單片機轉(zhuǎn)向上半部第二列,仍為p05點亮,為00000100,即16進制04h.
這一列完成后繼續(xù)進行下半部分的掃描,p21點亮,為二進制00000010,即16進制02h.
依照這個方法,繼續(xù)進行下面的掃描,一共掃描32個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
由這個原理可以看出, 無論顯示何種字體或圖像, 都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。
不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件, 我們就不必自己去畫表格算代碼了。
漢字提取軟件:
temp_08051714583540.zip
;*****************16*16 LED點陣顯示程序*****************
;*MCU: AT89C51
;*MCU-crystal: 12M
;*Version: 1.0
;*Last Updata: 2005-1-1
;*Author: WWW.PICAVR.COM
;*Description: FOR-16*16 LED點陣顯示程序, 參考了一本書上做的.
顯示"歡迎光臨"字符,字符可同時顯示兩個漢字并且
可上下,左右移動顯示.
;**********************************************************
ORG 00H
START: MOV A,#00H ;清除屏幕
MOV P0,A
MOV P2,A
ACALL DISP ;調(diào)用顯示子程序
ACALL MOVE ;調(diào)用左移子程序
AJMP START
;*********************************************************
DISP: MOV R2,#02H





