當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]引言 隨著嵌入式技術(shù)的迅猛發(fā)展,人機(jī)交互界面也越來越顯示出它的重要性。實(shí)際的LCD應(yīng)用中要顯示的漢字一般很有限,并不需要完整的漢字庫,再加上完整字庫在程序中要占用大量空間,因而非完整漢字庫的研究就有了其自

引言

隨著嵌入式技術(shù)的迅猛發(fā)展,人機(jī)交互界面也越來越顯示出它的重要性。實(shí)際的LCD應(yīng)用中要顯示的漢字一般很有限,并不需要完整的漢字庫,再加上完整字庫在程序中要占用大量空間,因而非完整漢字庫的研究就有了其自身的現(xiàn)實(shí)必要性。本文以AT91SAM7S256處理器的LCD顯示模塊為例,介紹了非完整漢字庫的建立方法及其具體實(shí)現(xiàn)。

1  液晶顯示原理

液晶顯示器LCD (Liquid Crystal Display)主要用于文本、圖形及圖像信息的顯示。液晶顯示屏具有輕薄、體積小、耗電量低、無輻射、平面直角顯示以及影像穩(wěn)定不閃爍等特點(diǎn)。液晶是一種介于固態(tài)和液態(tài)之間的有機(jī)化合物。當(dāng)被加熱時(shí),它會(huì)呈現(xiàn)透明的液態(tài),而冷卻的時(shí)候會(huì)結(jié)晶成混亂的固態(tài)。用于液晶顯示器的是Nematic液晶,當(dāng)向液晶通電時(shí),液晶體分子便排列得井然有序,可以使光線容易通過;而不通電時(shí),液晶分子便排列混亂,阻止光線通過。
??從整體來看,TN(扭曲向列型)單色液晶顯示器液晶分子的排列就像螺旋形的扭轉(zhuǎn)排列。光線從上向下照射時(shí),通常只有一個(gè)角度的光線能夠穿透下來,通過上濾光片導(dǎo)入上部夾層的溝槽中,再通過液晶分子扭轉(zhuǎn)排列的通路從下濾光片穿出。一旦通過電極給這些液晶分子加電之后,液晶分子變成豎立的狀態(tài),這樣光線就無法通過,結(jié)果在顯示屏上出現(xiàn)黑色。這樣會(huì)形成透光時(shí)(即不加電時(shí))為白、不透光時(shí)(加電時(shí))為黑,字符就可以顯示在屏幕上了。

2  漢字信息的編碼知識(shí)

2.1 漢字的編碼標(biāo)準(zhǔn)

漢字系統(tǒng)對(duì)每個(gè)漢字預(yù)先規(guī)定輸入計(jì)算機(jī)中的代碼,即漢字的外部碼。計(jì)算機(jī)為了識(shí)別漢字,要把漢字的外部碼轉(zhuǎn)換成內(nèi)部碼進(jìn)行存儲(chǔ)和處理。輸出時(shí),還將漢字的內(nèi)部碼轉(zhuǎn)換成漢字的字形碼。主要的漢字編碼有以下幾種:

1) 國(guó)標(biāo)碼:計(jì)算機(jī)與其他系統(tǒng)或設(shè)備之間進(jìn)行漢字代碼信息交換的標(biāo)準(zhǔn)漢字代碼。它用兩個(gè)字節(jié)代碼來表示一個(gè)漢字。行、列各 94(0-93),用先行后列的兩個(gè) 7 位二進(jìn)制數(shù)表示。

2) 區(qū)位碼:每個(gè)漢字(圖形符號(hào))用兩個(gè)字節(jié)表示,每個(gè)字節(jié)只用低 7 位,即最高位為 0 的二進(jìn)制碼。漢字編碼使用的高字節(jié)稱為區(qū)碼,低字節(jié)稱為位碼。區(qū)位碼共 94 個(gè)區(qū),每個(gè)區(qū)有 94 個(gè)位,組成一個(gè) 94*94 的矩陣。

3) 機(jī)內(nèi)碼:中文或西文信息在計(jì)算機(jī)系統(tǒng)中的代碼表示稱為機(jī)內(nèi)碼。是計(jì)算機(jī)對(duì)漢字進(jìn)行存儲(chǔ)、運(yùn)算的實(shí)際代碼。一般用連續(xù)兩個(gè)字節(jié)表示漢字的內(nèi)碼且每個(gè)字節(jié)最高位為 1。

2.2 區(qū)位碼、國(guó)標(biāo)碼和機(jī)內(nèi)碼之間的轉(zhuǎn)換關(guān)系

(區(qū)位碼的十六進(jìn)制表示)+A0A0H=機(jī)內(nèi)碼。國(guó)標(biāo)碼+8080H =(區(qū)位碼的十六進(jìn)制表示)+A0A0H。國(guó)標(biāo)碼=(區(qū)位碼的十六進(jìn)制表示)+2020H。

3  完整漢字庫下的漢字顯示以及漢字英文混合顯示

3.1 完整漢字庫下的漢字顯示原理

漢字的輸出是將漢字的筆劃離散化,用點(diǎn)陣來表示。點(diǎn)陣的中每個(gè)點(diǎn)位只有兩種狀態(tài):有筆畫(1)、無筆畫(0)。描述漢字點(diǎn)陣信息的二進(jìn)制代碼集稱為漢字的字模。所有漢字和符號(hào)的點(diǎn)陣信息就組成了漢字庫。

點(diǎn)陣字庫文件已經(jīng)給使用者提供好了,關(guān)鍵在于如何取得漢字的圖形,即漢字的點(diǎn)陣字模。首先看一下如何取得漢字的區(qū)位碼。計(jì)算機(jī)在處理漢字和 ASCII 字符時(shí) ,使每個(gè) ASCII字符占用一個(gè)字節(jié),而一個(gè)漢字占用兩個(gè)字節(jié),其值稱為漢字的內(nèi)碼。其中第一個(gè)字節(jié)的值為區(qū)號(hào)加上 32(20H),第二個(gè)字節(jié)的值為位號(hào)加上 32(20H)。為了與 ASCII 字符區(qū)別開,表示漢字的兩個(gè)字節(jié)的最高位都是 1,也就是兩個(gè)字節(jié)的值都又加上了 128(80H)。這樣,通過漢字的內(nèi)碼,就可以計(jì)算出漢字的區(qū)位碼。具體算式如下:
  qh=c1-32-128=c1-160, wh=c2-32-128=c2-160 或 qh=c1-0xa0, wh=c2-0xa0
  其中 qh 、wh 為漢字的區(qū)號(hào)和位號(hào),c1、c2 為漢字的第一字節(jié)和第二字節(jié)。
  根據(jù)區(qū)號(hào)和位號(hào)可以得到漢字字模在文件中的位置:
  location=(94*(qh-1)+(wh-1))*一個(gè)點(diǎn)陣字模的字節(jié)數(shù)。

字模的表示順序?yàn)椋合葟淖蟮接遥購纳系较?,依此類推,畫滿 16×16 個(gè)點(diǎn)。這樣,一個(gè) 16×16 點(diǎn)陣的漢字總共需要 16*16/8=32 個(gè)字節(jié)表示。因此,當(dāng)顯示16×16 點(diǎn)陣的漢字時(shí),只要根據(jù)區(qū)碼和位碼計(jì)算出該漢字點(diǎn)陣在ROM 中存放的起始地址,然后從此地址連續(xù)地取出 32 個(gè)字節(jié)的漢字點(diǎn)陣,并寫入 LCD 模塊對(duì)應(yīng)的地址中,就可以顯示出該漢字。

3.2 漢字英文混合顯示

在應(yīng)用中,常需要漢字和英文字符混合顯示,在軟件處理時(shí)需要判斷顯示的內(nèi)容是漢字的編碼還是英文字符的編碼,如果是漢字編碼則根據(jù)其機(jī)內(nèi)碼計(jì)算區(qū)位碼,并根據(jù)區(qū)位碼計(jì)算出該漢字在字模中的起始地址。顯示16×16 點(diǎn)陣漢字的混合顯示軟件流程圖如圖1所示:

圖1混合顯示軟件流程圖

按照以上的顯示原理可以編寫出在完整漢字庫下的漢字英文混合顯示程序,具體程序代碼在很多資料中都有,這里就不再贅述。

4  非完整漢字庫的建立及漢字英文混合顯示

4.1 非完整漢字庫的建立

在很多的人機(jī)界面中,雖然顯示的漢字?jǐn)?shù)量較多,但實(shí)際無重復(fù)的漢字?jǐn)?shù)卻較少,而且不同的應(yīng)用環(huán)境用到的漢字也有其自身的特殊性。如果是提供少量的互不重復(fù)的漢字,較好的做法如下:利用 DM Tool 字模轉(zhuǎn)化工具生成所需要的漢字模,然后利用 123.exe 軟件生成相應(yīng)的機(jī)內(nèi)碼。接下來就可將以上所得到的漢字的機(jī)內(nèi)碼和其字模合在一起組成數(shù)組,如此反復(fù)就可以將所需要的所有漢字都形成數(shù)組,最后將這些漢字組成二維數(shù)組。如下所示:

const UINT16T DDSHZTable[][17] = {

{     //時(shí)

    0xCAB1, //機(jī)內(nèi)碼

    0x0010, 0x0010, 0x7c10, 0x4410, 0x47fe, 0x4410, 0x7c10, 0x4510,

    0x4490, 0x4490, 0x7c10, 0x0010, 0x0010, 0x0010, 0x0050, 0x0020//字模

},

……

}

在定義上面的二維數(shù)組時(shí)不規(guī)定數(shù)組的大小,這樣就可以方便地添加自己需要的漢字。要顯示特定漢字的時(shí)候,只需要從數(shù)組中查找內(nèi)碼與要求漢字內(nèi)碼相同的即可獲得字模。

4.2 軟硬件設(shè)計(jì)

下面結(jié)合AT91SAM7S256處理器介紹LCD 模塊的軟硬件設(shè)計(jì)過程。

4.2.1  硬件電路設(shè)計(jì)

LCD 模塊采用 PM04OX1,LED 背光。320*96 點(diǎn)陣,256 色顯示,亮度控制:6位。背光LED :6支(串聯(lián)),亮度控制 2位,背光電流 2.5mA~20mA。CN7,CN8: 連接LCD面板 PM042OX1; CN6: LCD背光電源;U6: Timing Controller,PVI-2003A; U8: VS_ASIC, MCU-LCD 接口轉(zhuǎn)換邏輯。以下介紹 MCU-VS_ASIC-Timing Controller 硬件接口。連接 LCD 面板的接口信號(hào)包括: LCDCLK, R[5:0],G[5:0],B[5:0], VSHS 和 VSVS。其中 VSHS, VSVS 來源于 MCU 的PIO; LCDCLK來源于 MCU-SPI的 NPCS3; R[5:0],G[5:0],B[5:0]是 U8 根據(jù) MCU-SPI 的VSCK(SPI-SCK)、VSDO(SPI-MOSI)、LCDCLK (SPI-NPCS3)和 VSVS 產(chǎn)生。

LED 驅(qū)動(dòng) (LED0~LED15) 是 U8 根據(jù) MCU-SPI 的 VSCK(SPI-SCK)、VSDO(SPI-MOSI)、LCDCLK(SPI-NPCS3) 和 VSVS 產(chǎn)生。 LCD掃描方向選擇:RP1、RP2 為 LCD 掃描方向選擇,它們只能焊接其中的 1 只。LCD驅(qū)動(dòng)原理框圖如圖2所示:

圖2 LCD驅(qū)動(dòng)原理框圖

4.2.2  軟件設(shè)計(jì)

通過 SPI-DMA 完成一個(gè)整行的掃描過程。在該過程中,DMA(直接存儲(chǔ)器存取) 向 SPI(串行外設(shè)接口) 傳輸 400 個(gè) 8 位數(shù)據(jù)。一個(gè)完整周期需要有 104 行掃描。其中第 0 行掃描的前 3 個(gè)數(shù)據(jù)為 PMRAM 數(shù)據(jù),其他數(shù)據(jù)無意義(可以是任何數(shù))。第 1 行和第 103 行掃描的全部數(shù)據(jù)均無意義;第 2~102行為數(shù)據(jù)掃描,每一行數(shù)據(jù)中前 64 個(gè)和后 16 個(gè)數(shù)據(jù)無意義,中間 320 個(gè)數(shù)據(jù)為顯示數(shù)據(jù)。

LCD驅(qū)動(dòng)過程是由 SPI-DMA 操作配合 SPI-DMA 中斷服務(wù)程序完成的。應(yīng)當(dāng)指出的是,在MCU相應(yīng)的設(shè)備按要求初始化后,由于沒有啟動(dòng)SPI-DMA,LCD驅(qū)動(dòng)過程不能自動(dòng)開始。因此顯示初始化程序應(yīng)當(dāng):[!--empirenews.page--]

1) 設(shè)置SPI;

2) 設(shè)置TIMER1(可以啟動(dòng)TIMER);

3) 設(shè)掃描行指針n=0;

4) 設(shè)DMA傳輸數(shù)據(jù)格式(8位/次,400個(gè)數(shù)據(jù));

5) 啟動(dòng)DMA。

以上過程在完成一行空掃描后, 進(jìn)入連續(xù)的 LCD 掃描過程。

4.3 程序舉例

以下列出了16x16方陣漢字顯示的部分程序代碼:

            wm = *(s + i + 1);  //計(jì)算位碼

            ISN = qm<<8;               

ISN += wm;          //機(jī)內(nèi)碼

            ii=0;               //先定位在第一個(gè)漢字

            while((ISN!=DDSHZTable[ii][0]) && (DDSHZTable[ii][0] !=0xffff) )

                    ii++;       //尋找與ISN相同的機(jī)內(nèi)碼,即尋找要顯示的漢字

            for( j = 0; j < 16; j ++ )

                hzbuf[j] = DDSHZTable[ii][j+1];//取字模

               for( y = 0; y < 16; y++ ){

                for( x = 0; x < 16; x++,Hk++ ){

                        Hk = Hk % 16;

                   if( hzbuf[y]  & (0x8000 >> Hk) ){

//確定y行x列是否有筆畫

                        xx = x0 + x + ChiWords * 16;

                        LCDRam[y+y0][xx]  = ForeColor;//顯示像素

                    }

               }

           }

顯示英文字符的原理及程序代碼與漢字的類似,就不再贅述。

5 結(jié)束語

建立非完整漢字庫最大的特點(diǎn)是可以按照現(xiàn)實(shí)需要柔性地顯示漢字、軟件編程容易、可混合顯示漢字和英文字符。作為人機(jī)交互界面的重要部分它可被廣泛應(yīng)用于工業(yè)控制、醫(yī)療、科研以及教學(xué)等領(lǐng)域。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉