基于SPCE061A的ACM12864J液晶顯示模塊設計
最常用的辦法是采用字模提取軟件提取字模,這種方法在資源比較少的條件下是適宜的。缺點(diǎn)是比較麻煩,要來(lái)回改動(dòng),且不好尋址。一種比較實(shí)用的方法是制作好一個(gè)ASCII字模表,定義為一個(gè)一維數組的形式。程序中若出現數字變量的操作,須把變量轉化為字符顯示時(shí)。因此,先判斷顯示的是字符還是數字,若是數字,先應轉化為字符。然后再把ASCII值減去32得到索引值,根據索引值直接查表,查得8*16的點(diǎn)陣字模,送出顯示。在程序中可以用變量直接表示數字并進(jìn)行運算,顯示時(shí)只送變量。對于SPCE061A,內置有32K字的flash ROM,而表格又不大,在數組前加入const即可把數組存到內部的flash ROM中。在ACM12864J中,取每個(gè)ASCII字模為8*16,每個(gè)ASCII字模占16個(gè)字節,按ASCII從小到大的順序排列,便于查找。
3.3 漢字的顯示
漢字在ACM12864J上一般采用兩種取模方式:一種為12*12點(diǎn)陣,可顯示5行漢字,缺點(diǎn)是編程較為困難;一種為16*16點(diǎn)陣,可顯示4行漢字,編程比較簡(jiǎn)單。以16*16點(diǎn)陣為例來(lái)說(shuō),每個(gè)漢字占用32個(gè)字節,根據LCD顯示的要求,利用字模提取軟件,采用縱向8點(diǎn)下高位能滿(mǎn)足要求。
在進(jìn)行中文菜單設計時(shí),每行可顯示8個(gè)漢字,有個(gè)焦點(diǎn)問(wèn)題,編程時(shí)可設置一個(gè)焦點(diǎn)指針,處于焦點(diǎn)之下的反白顯示,其他的正常顯示。這樣可把每行顯示編成一個(gè)函數的形式,控制好焦點(diǎn),顯示時(shí)調用一次顯示行子函數。漢字顯示程序如下(fb=1,反白顯示):

3.4 圖形及動(dòng)畫(huà)的顯示
圖形及動(dòng)畫(huà)的顯示一般是整屏操作的,字模的選取可以先用windows下的畫(huà)筆工具。新建一幅128*64像素的圖片,編完圖片后,保存為黑白圖象。然后在字模軟件中打開(kāi),提取出字模來(lái)。每幅圖片占用128*8個(gè)字節的空間,根據圖片數據存儲的特點(diǎn),提取的鄰近字模數據相同。若是圖片比較多或者進(jìn)行動(dòng)畫(huà)顯示,最好進(jìn)行壓縮保存,節省控制器寶貴的資源,讀取時(shí)編寫(xiě)控制器軟件解壓縮。
3.5 曲線(xiàn)的顯示與繪制
點(diǎn)是組成曲線(xiàn)的基本單位,畫(huà)曲線(xiàn)也就是多次調用點(diǎn)函數進(jìn)行顯示的。點(diǎn)函數編制思想也就是根據橫坐標X(1=X=128),縱坐標Y(1=Y=64)來(lái)確定某一點(diǎn),而在畫(huà)函數時(shí),X坐標從左往右,正好符合人的習慣。但Y坐標從上到下依次增大,與人相反,故必須校正。以畫(huà)兩個(gè)周期的正弦函數為例,可包含頭文件math.h,調用庫函數y=sinf(x),其中x為浮點(diǎn)數弧度顯示,y的值介于-1與1之間。要滿(mǎn)屏顯示,須加1變?yōu)檎?,放?1倍;x坐標為128點(diǎn),取步進(jìn)量為0.1弧度,可參考以下程序:

本文介紹了不帶中文字庫的ACM12864J與SPCE061A的接口技術(shù),提出了技巧性的編程解決辦法。采用ACM12864J液晶顯示模塊,可以顯示字符、中文漢字、圖形與動(dòng)畫(huà)等,提高了系統的可視化界面,在工業(yè)儀器儀表中得到了廣泛的應用。凌陽(yáng)公司生產(chǎn)的SPCE061A具有不僅具有一般控制器的功能,加上其獨具特色的語(yǔ)音處理功能,可以開(kāi)發(fā)出許多智能化的產(chǎn)品。
本文引用地址:http://dyxdggzs.com/article/171076.htm
評論