基于T6963CFG的LCD在嵌入式系統中的應用
在嵌入式系統的研發和應用中,選擇低價位、高性能的液晶顯示設備一直是設計者追求的目標。中小型液晶顯示器以其規格多、價位低以及非常適用于嵌入式系統"量身定制"的特點深受研發者的青睞。T6963CFG是TOSHIBA公司生產的一款LCD控制器,可用于不同規格的液晶顯示器。深圳漢升公司生產的HS240128顯示器采用了這款LCD控制器,其分辨率達240×128,帶自掃描電路,具有文本顯示、圖形顯示和圖文混合顯示功能。
??? 2 T6963CFG控制命令及時序
??? T6963CFG是一款與大規模LCD驅動器和數據存儲器配合使用的LCD控制器。該控制器有8條并行數據、讀/寫控制、模式選擇以及亮度和背光控制等接口線,可以方便地與多種型號的處理器或微控制器直接相連。T6963CFG內置128個字符的字模;外部擴展存儲器高達64 KB(HS240128顯示器擴展了32 KB),用于顯示緩沖區,如文本區、圖形區以及自定義字符區;LCD顯示窗口能在顯示緩沖區內方便地移動。
??? 2.1 控制命令及狀態字
??? T6963CFG命令字有三種基本格式:
??? 格式1:數據1 數據2 命令碼
??? 格式2:數據1 命令碼
??? 格式3:命令碼
??? 在使用格式1時,需要按照數據1、數據2、命令碼的先后順序進行寫操作,每次寫一個字節。如果選擇格式3,只有寫命令碼的操作。在對LCD讀數據或寫數據操作之前都要進行狀態檢測。只有在LCD允許的情況下才可以進行相應的操作。其狀態字及其功能如表l所示。
????
??? 2.2 接口信號及時序
??? HS240128-1顯示器封裝后留有21個接口信號線:
??? C/D:命令/數據(高/低)選擇信號;
??? CE:片選(低)信號;
??? WR:寫(低)信號;
??? RD:讀(低)信號;
??? D0~D7:數據信號;
??? FS:字體選擇信號(高:6×8,低:8×8);
??? FG:外殼安全地;
??? VSS:GND(地);
??? VDD:邏輯電路和LCD的電源(5 V);
??? VD:驅動電壓調整輸入(亮度);
??? VEE:LCD驅動電源(輸出,-15 V);
??? RST:復位(低)信號;
??? K:背光(地);
??? A:背光(5 V)。
??? LCD接口控制信號的讀寫時序如圖1所示。各控制信號的時序可由微控制器的通用輸入輸出(GPIO)接口仿真實現,例如:C/D為高電平,CE為低電平,WR為高電平以及RD為低電平時,可以從數據線上(D0~D7)讀取T6963CFG的狀態字。
????
??? 3 在嵌入式系統中的硬件接口電路
??? 通常LCD產品都具有相應的硬件接口電路,但其類型不盡相同。帶自掃描電路,可提供文本、圖形和圖文混合顯示功能的LCD可以方便地與市場提供的嵌入式微控制器或單片機相連,如Phlips公司的LPC2104、2119等。S3C44B0X是Samsung公司提供的高性價比嵌入式片上系統解決方案,采用ARM7TDMI內核,片上集成了豐富的外圍元件,特別適用于對成本和功耗敏感的應用。S3C44BOX雖然集成有LCD控制邏輯,但是,HS240128顯示器的控制接口內置了控制電路,利用S3C44BOX豐富的GPIO口資源(71個),很容易實現配接。在本系統設計中選用PD0~PD7、PE0~PE2、PG4~PG5作為LCD的控制線和數據線。其電路連接如圖2所示。
????
??? 根據T6963CFG的讀寫時序和相應的電路配接,讀寫操作的函數為:
?????
??? char read(char type) ∥從T6963CFG讀取數據
?
??? 4 顯示控制及程序設計
??? 4.1 顯示緩沖區的設置
??? 顯示緩沖區可分為系統內存顯示緩沖區和LCD顯示緩沖區。當然,系統也可以只設置LCD顯示緩沖區,程序可以只對LCD顯示緩沖區進行操作。通常LCD顯示緩沖區設置在I/O接口電路中,如HS240128的顯示緩沖大小為32 KB。根據需要,LCD顯示緩沖區可以定義一個、二個或三個不同的顯示區,例如:文本區、圖形區和自定義字符字模區。可以自定義各區大小.如圖3所示。LCD控制器可以自動將LCD顯示緩沖區中文本區和圖形區的顯示信息向屏幕輸出和刷新。屏幕的顯示位置與顯示緩沖區的位置具有映射對應關系。
???
??? 在系統內存中設置顯示緩沖區,通常是為了規范程序設計,提高工作效率。程序首先對系統內存中的顯示緩沖區進行讀/寫操作,然后將其數據更新到LCD顯示緩沖區中。系統內存顯示緩沖區分為文本區和圖形區,本設計設置8 KB文本區和16 KB的圖形區。在字符方式下文本區可映射17個顯示頁,在圖形方式下圖形區可映射4個顯示頁。
??? 4.2 字符和圖形顯示過程
??? 4.2.1 字符顯示過程
??? 在字符方式下,HS240128-1已裝配了128個常用字符字模。在指定的文本顯示緩沖區寫入相應的字符碼00H~7FH,即可實現LCD輸出字符[1]。該LCD顯示器還提供了擴展字符功能,字符碼為80H~FFH,它的字形碼(8×8點字模)需要提前寫入自定義字符的字模緩沖區中。其地址為7800H~7FFFH。在應用中,通過控制FS引腳選擇字體大小(1:6×8或0:8×8)。在6×8方式下,屏幕一行可以顯示40個字符,在8×8方式下,一行顯示30個字符。整屏可以顯示16行字符。
??? 系統內存文本緩沖區與LCD文本顯示緩沖區有著映射關系.其數據格式是按屏幕格式大小設定的。例如:一行30個字符對應著內存連續的30個字節。一屏(頁)16行對應內存連續的480字節。如果內存文本緩沖區為8 KB,可映射17頁(共272行),其緩沖區設置為:Text_Buffer[272][30](行列二維數組),內存文本緩沖區中的數據傳送到LCD文本緩沖區的過程可以通過下面的代碼實現:
????
?
??? LCD控制器自動掃描并顯示從內存送來的17頁數據的第一頁,如果要顯示第二頁或其他頁,只要向LCD控制器重新設置文本區起始地址即可,因此,LCD可以從顯示緩沖區的任意位置開始顯示。例如.從第二行開始顯示,LCD文本區開始地址應該為30(0x001E)。
??? 設置文本區開始地址的過程如下:
????
??? 4.2.2 圖形顯示過程
??? 在圖形方式下,顯示方法是寫點作圖,每次向圖形緩沖區寫入數據時,單位是一個字節(8點),HS240128是240x128分辨率,寫滿一屏(頁)共有3840字節。HS240128-1的控制器T6963CFG自動掃描并顯示圖形緩沖區的信息。系統內存圖形顯示緩沖區與LCD圖形顯示緩沖區具有映射關系,其數據格式是按屏幕格式大小設定的。
??? 例如:一行240個點對應著內存連續的30個字節。一屏(頁)128行,對應內存連續的3 840字節。設置內存圖形緩沖區為16 kB,映射LCD屏4頁(共512行)。內存圖形緩沖區設置為:Graph-ic_buffer[512][30](行列數組),則將內存圖形緩沖區中的數據傳送到LCD圖形緩沖區的過程可以通過下面的代碼實現:
??? ?
??? 另外,通過設置圖形區的起始地址實現屏幕滾動功能,每次滾動一行時,圖形區開始修改地址增量為+30。例如圖形從第二行開始顯示.向T6963CFG控制器送入圖形區的地址應該是0x201E,即圖形區首地址為2000H+30=0x201E。
??? 其過程如下:
????
??? 4.2.3 漢字顯示過程
??? 漢字的顯示過程是在圖形方式下進行的。HS240128-1中無漢字庫,顯示漢字時需要用戶自定義字模并寫入LCD圖形顯示緩沖區,其顯示位置按顯示頁映射即可。漢字字模為16×16點陣格式(32字節)。需漢字16x16字模的用戶可以從一般的漢字字模提取軟件中獲取,本文不再贅述。
??? 4.3 程序設計流程
??? 在對HS240128編程時,首先在內存顯示緩沖區中準備好數據,并把數據寫入LCD緩沖區,LCD自動實現掃描顯示功能。要實現屏幕滾動功能時,只要簡單的修改LCD文本區和圖形區的起始地址即可。其基本流程如圖4所示。
????
??? 5 結束語
??? 本文系統介紹了T6963CFG控制器的工作原理及LCD軟硬件應用接口,詳細討論了點陣液晶顯示器的應用方法和在嵌入式系統中的設計實例,希望為嵌入式系統開發人員在選擇和使用液晶顯示器時提供參考。文中所述的方法已經在一些嵌入式系統設計中得到了很好的應用。
評論
查看更多