液晶顯示控制器T6963C與單片機的接口及編程
摘要:本文介紹了液晶顯示控制器T6963C的眾多優(yōu)點,給出了其與單片機的接口電路。并闡述了以模塊化為基礎(chǔ)的顯示軟件設(shè)計,具體分析了狀態(tài)位檢測、顯示初始化、英文顯示、漢字顯示等功能的程序設(shè)計。
引言:液晶顯示器件(LCD)由于具有顯示信息多、體積小、重量輕、功耗低、壽命長、價格低、接口控制方便等優(yōu)點,正在測量及控制領(lǐng)域被廣泛地推廣和應(yīng)用。液晶顯示器按其功能可分為筆段式和點矩陣式兩種。后者又可以分成字符點陣式和圖形點陣式,圖形點陣式液晶顯示器不僅可顯示數(shù)字、字符等內(nèi)容,還能顯示漢字和任意圖形。 目前用于圖形液晶模塊的控制器很多。本文以T6963C為例簡單介紹一下液晶顯示模塊與CPU的接口以及軟件編程問題。
1、T6963C及其構(gòu)成的液晶顯示模塊 T6963C 是圖形點陣式液晶顯示控制器,能直接與80 系列的8 位微處理器接口。字符字體可由硬件或軟件設(shè)置,字體有4 種:5×8、 6×8 、7×8、8×8。 在內(nèi)置T6963C 的液晶顯示模塊上已經(jīng)實現(xiàn)了T6963C 與行、列驅(qū)動器及顯示緩沖區(qū)RAM 的接口,同時也已用硬件設(shè)置了數(shù)據(jù)傳輸方式、顯示窗口長度、寬度等。內(nèi)置T6963C 的單屏點陣圖形液晶顯示模塊結(jié)構(gòu)如圖1所示。

圖1 內(nèi)置T6963C的點陣圖形液晶顯示模塊原理圖
此模塊的初始化設(shè)置一般由管腳設(shè)置完成,所以初始化時,由軟件編寫的指令就集中在顯示功能的設(shè)置上。T6963C的指令可帶一個、兩個參數(shù),或無參數(shù)。若指令中含有參數(shù),則每條指令執(zhí)行時均須先送入?yún)?shù),再送入指令代碼。由于狀態(tài)位作用不一樣,因此執(zhí)行不同指令必須檢測不同狀態(tài)位。
2、液晶顯示模塊與單片機的接口電路
在本例中以80C320為CPU。另外,在此設(shè)計中,不是將CPU與液晶顯示模塊直接相連,而是通過PSD813F1連接的。PSD813F1是由WSI公司研制的新一代可編程微控制器系統(tǒng)外圍器件,具備完整的在系統(tǒng)可編程特性。不僅功能比較強大,通過PSD還可以連接其他的器件和模塊,比如數(shù)據(jù)采集模塊、鍵盤等,便于在原有基礎(chǔ)上進行功能擴展。 將CPU的地址/數(shù)據(jù)線AD0~AD7及A8~A15與PSD813F1的AD0~AD15連接起來,由PSD的PB口輸出信號來片選LCD和數(shù)據(jù)緩沖器74LS245。同時CPU的地址/數(shù)據(jù)線AD0~AD7也接到74LS245的A端A0~A7上,其B端B0~B7的輸出連接到液晶顯示模塊的數(shù)據(jù)輸入端DO0~DO7。接口電路如圖2所示。

圖2 接口部分硬件原理圖
3、狀態(tài)位檢測與數(shù)據(jù)/指令讀寫程序
由于LCD指令的執(zhí)行是一個不斷地檢測狀態(tài)、寫指令及讀寫數(shù)據(jù)的過程,因此可把它們編寫成通用的函數(shù),以便隨時調(diào)用。液晶顯示控制器T6963C的狀態(tài)位從低到高分別是STA0~STA7。進行狀態(tài)位檢測時,先從T6963C的狀態(tài)寄存器中讀取狀態(tài)字,然后提取對應(yīng)的狀態(tài)值,通過判斷決定下一步的操作。
讀寫數(shù)據(jù)和命令可以分為自動和非自動兩種情況。由于非自動寫命令或數(shù)據(jù)的步驟基本類似,均是在檢測狀態(tài)字的STA0和STA1兩位是否準(zhǔn)備好的情況下來決定寫命令或數(shù)據(jù)到輸出口,這里就把非自動寫命令或數(shù)據(jù)流程圖綜合在一起,如圖3所示。

圖3 非自動寫命令/數(shù)據(jù)流程圖 圖4 非自動讀數(shù)據(jù)流程圖 圖5 自動寫數(shù)據(jù)程序流程圖
非自動讀數(shù)據(jù)的流程圖如圖4所示,,也是在檢測STA0和STA1已經(jīng)準(zhǔn)備好的基礎(chǔ)上由輸入口讀取數(shù)據(jù)的,然后將此數(shù)據(jù)返回,以便于別的程序調(diào)用。
圖5是自動寫數(shù)據(jù)的程序流程圖,它僅需要檢測狀態(tài)字的STA3即可。當(dāng)然,自動讀數(shù)據(jù)時只須檢測STA2,但自動讀數(shù)據(jù)在本例中用的較少,其流程圖在此省略。
4、模塊化設(shè)計
鑒于T6963C的特點,設(shè)計中采用模塊化結(jié)構(gòu)。這里主要介紹初始化、英文字符顯示、漢字顯示等幾個模塊。
(1)初始化模塊
在T6963C中內(nèi)嵌有128種字符點陣的CGROM(字符發(fā)生器ROM),同時T6963C還可管理一定大小的顯示緩沖區(qū)。顯示緩沖區(qū)RAM的具體大小由不同顯示尺寸的模塊決定,點陣越大RAM越多,本設(shè)計采用的240×128模塊帶有16KB的RAM。該顯示緩沖區(qū)分為文本顯示區(qū)、圖形顯示區(qū)和CGRAM區(qū)。文本顯示區(qū)和圖形顯示區(qū)是兩個不同性質(zhì)的使用區(qū)域,是本設(shè)計使用的重點。CGRAM區(qū)是用戶為方便制作特殊符號而在顯示緩沖區(qū)內(nèi)任意設(shè)置的一個區(qū)域,它可作為外擴的字符發(fā)生器。對T6963C初始化時,在關(guān)閉顯示后應(yīng)該先確定采用哪種方式進行顯示(文本/圖形),再來設(shè)置顯示緩沖區(qū)中圖形區(qū)的首地址、寬度和文本區(qū)的首地址、寬度。此后可選擇光標(biāo)的形狀,繼而進行顯示開關(guān)設(shè)置。
(2)英文顯示模塊
英文顯示模塊程序編制的任務(wù)是把欲顯示的字符代碼送入和行列位置對應(yīng)的文本顯示緩沖區(qū)中。只需定位首字符地址,設(shè)置使LCD控制器的地址指針自動增1,然后連續(xù)往LCD的數(shù)據(jù)口送入顯示數(shù)據(jù)即可。
(3)漢字顯示模塊
本設(shè)計采用直接在圖形方式下顯示漢字的方式。顯示字符可以直接從T6963C自帶的CGROM中選取,而要顯示漢字則要建立漢字字模。其建立方法有多種,可采用從UCDOS的漢字點陣字庫中提取所需要漢字的16點陣字模,進而生成漢字庫以備選取漢字之用。漢字字模在此漢字庫中以一定的順序存放,每一個漢字有一個對應(yīng)的順序號,該順序號以變量HZH表示。圖6是漢字顯示的程序流程。

圖6 漢字顯示流程圖
結(jié)語:T6963C液晶顯示控制器在應(yīng)用中可以與各種型號的微控制器接口,實現(xiàn)控制和現(xiàn)場過程的動態(tài)顯示。本系統(tǒng)可靈活地嵌入各種大型設(shè)備或大規(guī)模系統(tǒng)中,用于顯示必要的數(shù)據(jù),或執(zhí)行參數(shù)設(shè)定。