STM32學習筆記-LCD中英文字符顯示原理

LCD中英文字符顯示原理

1. 區位碼

在國標GD2312—80中規定,所有的國標漢字及符號分配在一個94行94列的方陣中,方陣的每一行稱爲一個“區”,編號爲01區到94區,每一列稱爲一個“位”,編號爲01位到94位,方陣中的每一個漢字和符號所在的區號和位號組合在一起形成的四個阿拉伯數字就是它們的“區位碼”。**區位碼的前兩位是它的區號,後兩位是它的位號。**用區位碼就可以唯一地確定一個漢字或符號,反過來說,任何一個漢字或符號也都對應着一個唯一的區位碼。漢字“母”字的區位碼是3624,表明它在方陣的36區24位,問號“?”的區位碼爲0331,則它在03區3l位。

2. 機內碼

漢字的機內碼是指在計算機中表示一個漢字的編碼。機內碼與區位碼稍有區別。如上所述,漢字區位碼的區碼和位碼的取值均在1-94之間,如直接用區位碼作爲機內碼,就會與基本ASCII碼混淆。爲了避免機內碼與基本ASCII碼的衝突,需要避開基本ASCII碼中的控制碼(00H~1FH),還需與基本ASCII碼中的字符相區別。爲了實現這兩點,可以先在區碼和位碼分別加上20H,在此基礎上再加80H(此處“H”表示前兩位數字爲十六進制數)。經過這些處理,用機內碼錶示一個漢字需要佔兩個字節,分別
稱爲高位字節和低位字節,這兩位字節的機內碼按如下規則表示:

高位字節 =區碼 + 20H + 80H(或區碼 + A0H)
低位字節 =位碼 + 20H + 80H(或位碼 + A0H)

由於漢字的區碼與位碼的取值範圍的十六進制數均爲01H-5EH(即十進制的01-94),所以漢字的高位字節與低位字節的取值範圍則爲A1H-FEH(即十進制的161~254)。

例如,漢字“啊”的區位碼爲1601,區碼和位碼分別用十六進制表示即爲1001H,它的機內碼的高位字節爲B0H,低位字節爲A1H,機內碼就是B0A1H。

3. 點陣字庫的存儲形式

字庫字符的點陣顯示原理其實就是一張局部的字的圖片,然後把這張圖片裏面的特定點點亮成我們字符的樣子,這樣就顯示出我們字符的形狀了。

ASCII碼和中文字符的點陣原理相同,只是點陣大小不同,ASCII是16x8的小圖,漢字是16x16的小圖,那下面具體舉例說明一下’漢’字的一個點陣數據是啥樣的:

在這裏插入圖片描述

那’漢’字的具體存儲的點陣數據是多少呢?首先我們要確定的是數據高位在哪邊,這邊是左邊的在高位,右邊的在低位,然後呢,從上到下依次存儲,所以數據是如下的:

第一行:0x40,0x08
第二行:0x37,0xfc
第三行:0x10,0x08
第四行:0x82, 0x08 …

依次類推總共有 16行x2byte = 32 byte

要顯示漢字呢,其實就是反過來了,把每一行的數據還原出來,變成一個個點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章