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