一、LCD顯示漢字的經(jīng)典做法
現(xiàn)在越來越多的智能產(chǎn)品具有漢字顯示功能。
如何高效、快速地完成漢字顯示的編程呢?經(jīng)典的做法是將16x16完整的漢字點陣庫,(270k),全部裝入閃存或EPROM中,單片機根據(jù)要顯示的漢字的內(nèi)碼,計算出漢字點陣的地址,再讀取32個點陣字節(jié),按照LCD顯示的特性,重新排列點陣的次序后送顯示。這種方法成本高、使用芯片多、功耗大,不適合非總線單片機(不擴展總線)系統(tǒng)的產(chǎn)品開發(fā)。另外,由于所有的計算、控制工作全部由單片機來完成,增加了編程的難度,延長了開發(fā)時間。
用VB6.0編制的一個漢字處理程序(Hz_Make),可以自動生成LCD點陣屏顯示漢字的單片機匯編程序(MCS-51系列)。使用簡單,可以隨時修改要顯示的漢字,而不必人工干預(yù)。
二、VB6.0編制的漢字處理程序的功能
Hz_Make可以完成以下的功能:1.掃描要顯示的漢字,刪除重復(fù)的漢字。2.對漢字重新編碼。3.提取漢字相對應(yīng)的點陣,按LCD顯示要求,縱向排列(見附圖)。4.自動生成:1).點陣表(Zm_Hz.a(chǎn)sm);2)散轉(zhuǎn)程序(Zc_Hz.asm);3)跳轉(zhuǎn)程序(jmp_Hz.asm)。
Hz_Make內(nèi)部可以處理7000個不同的漢字,處理速度快,減少單片機程序的編制,提高了工作效率。
當(dāng)顯示的漢字多、點陣表無法全部裝入單片機的閃存中時,可以將點陣表放入E2PROM24xx中,采用間接尋址的方法讀取。
三、LCD顯示漢字舉例
以“銀行排隊主機”漢字顯示的編程為例。LCD的控制芯片是KS0107、KS0108;128x64點陣縱向排列。
1.用記事本生成一個Hz.TXT文件。
每行必須有一個標號(如:shuzi:),每行的漢字個數(shù)與LCD點陣屏每行的漢字個數(shù)相同,不足的添加空格。所有符號、數(shù)字必須全角輸入。
2.運行Hz_Make,生成Zm_Hz.asm、Zc_Hz.a(chǎn)sm、jmp_Hz.asm三個單片機匯編程序。
3.在單片機匯編主程序中蘊涵上述三個文件:
四、總結(jié)
按照上述的方法,也可以提取ASCII的點陣。在實際應(yīng)用中,還可以將單片機要處理的復(fù)雜運算,生成數(shù)據(jù)表格,使單片機不工作在高主頻,以查表方式快速完成計算。這對手持產(chǎn)品降低功耗、延長工作時間,都非常有意義。