《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 液晶顯示控制器T6963C與單片機的接口及編程
液晶顯示控制器T6963C與單片機的接口及編程
李曉靜 蔣云峰 劉開培
武漢大學電氣工程學院(430072)
摘要: 液晶顯示控制器T6963C的特點及其與單片機的接口電路,。闡述了以模塊化為基礎(chǔ)的顯示軟件的設(shè)計,,具體分析了狀態(tài)位檢測,、顯示初始化,、英文及漢字顯示等功能的程序設(shè)計。
Abstract:
Key words :
</a></a>

摘   要: 液晶顯示控制器" title="液晶顯示控制器">液晶顯示控制器" title="液晶顯示控制器">液晶顯示控制器T6963C的特點及其與單片機的接口電路,。闡述了以模塊化為基礎(chǔ)的顯示軟件的設(shè)計,,具體分析了狀態(tài)位檢測、顯示初始化,、英文及漢字顯示等功能的程序設(shè)計,。
關(guān)鍵詞: T6963C  接口  編程  顯示

  液晶顯示器件(LCD)由于具有顯示信息多、體積小,、重量輕,、功耗低、壽命長,、價格低,、接口控制方便等優(yōu)點,正在被測量及控制領(lǐng)域廣泛地推廣和應(yīng)用,。液晶顯示器按其功能可分為筆段式和點矩陣式液晶顯示器,,后者又可以分為字符點陣式和圖形點陣式液晶顯示器。圖形點陣式液晶顯示器不僅可顯示數(shù)字,、字符等內(nèi)容,,還能顯示漢字和任意圖形。
  目前用于圖形液晶模塊的控制器很多,,本文以T6963C為例,,簡單地介紹液晶顯示模塊與CPU的接口以及軟件編程問題。
1  T6963C及其構(gòu)成的液晶顯示模塊
  液晶顯示控制器T6963C具有以下特點[1]:
  (1)圖形點陣式液晶顯示控制器,,能直接與80 系列的8 位微處理器接口,。
  (2)字符字體可由硬件或軟件設(shè)置,其字體有4 種:5×8,、6×8,、7×8、8×8,。
  (3)占空比為1/16~1/128,。
  (4)可以圖形方式、文本方式及圖形和文本合成方式進行顯示,,以及文本方式下的特征顯示,,還可以實現(xiàn)圖形拷貝操作等。
  (5)具有內(nèi)部字符發(fā)生器CGROM(共有128個字符),,可管理64KB顯示緩沖區(qū)及字符發(fā)生器CGRAM,,并允許MPU 隨時訪問顯示緩沖區(qū),甚至可以進行位操作,。
  在內(nèi)藏T6963C的液晶顯示模塊上已經(jīng)實現(xiàn)了T6963C與行,、列驅(qū)動器及顯示緩沖區(qū)RAM 的接口,同時也已用硬件設(shè)置了數(shù)據(jù)傳輸方式,、顯示窗口長度和寬度等,。內(nèi)藏T6963C 的單屏點陣圖形液晶顯示模塊結(jié)構(gòu)如圖1所示。該模塊的初始化設(shè)置一般均由管腳設(shè)置完成,。所以初始化時,,由軟件編寫的指令就集中在顯示功能的設(shè)置上。T6963C的指令可帶1~2個參數(shù),,或無參數(shù),。若指令中含有參數(shù),則執(zhí)行每條指令時均須先送入?yún)?shù),,再送入指令代碼,。每次操作之前最好先進行狀態(tài)字檢測,因為狀態(tài)位的作用不同,,因此執(zhí)行不同指令必須檢測不同的狀態(tài)位,。

2  液晶顯示模塊與單片機的接口電路
  在本例中選用80C320作為CPU,且在此設(shè)計中,,不是將CPU與液晶顯示模塊直接相連,,而是通過PSD813F1來連接。PSD813F1是由WSI公司研制的新一代可編程微控制器系統(tǒng)外圍器件,,具備完整的在系統(tǒng)可編程特性[2],。PSD813F1的功能比較強大,通過它還可以連接其他的器件和模塊,,如數(shù)據(jù)采集模塊,、鍵盤等,便于在原有基礎(chǔ)上進行功能擴展,。
  將CPU的地址/數(shù)據(jù)線AD0~AD7,、A8~A15與PSD813F1的AD0~AD15連接起來,由PSD813F1的PB口輸出信號來選擇和控制芯片,。也就是說利用這些輸出信號來片選LCD和數(shù)據(jù)緩沖器74LS245,。同時CPU的地址/數(shù)據(jù)線AD0~AD7也接到74LS245的A端(A0~A7)上,而74LS245的B端(B0~B7)的輸出連接到液晶顯示模塊的數(shù)據(jù)輸入端DB0~DB7,。這樣,,數(shù)據(jù)就可以先在CPU內(nèi)完成處理,然后通過PSD813F1來選擇74LS245,,將數(shù)據(jù)轉(zhuǎn)入74LS245完成緩沖,,根據(jù)需要由PSD813F1選擇LCD,,此時數(shù)據(jù)就可以從74LS245送到LCD中顯示了。液晶顯示模塊與單片機的接口電路如圖2所示,。

3  軟件設(shè)計
3.1 狀態(tài)位檢測與數(shù)據(jù)/指令讀寫程序
  在本例中用C語言編程[3],。
  (1)狀態(tài)位檢測。由于LCD指令的執(zhí)行是一個不斷地檢測狀態(tài),、寫指令和數(shù)據(jù)及讀寫數(shù)據(jù)的過程,,因此可把指令編寫成通用的函數(shù),以便隨時調(diào)用,。
在進行分模塊設(shè)計以前,,首先必須了解各個模塊中都要用到的狀態(tài)位檢測的編程。液晶顯示控制器T6963C的狀態(tài)位一共有8位,,從低到高分別是STA0~STA7,,其功能如下:
  STA0——指令讀寫狀態(tài),1:準備好,;0:忙,。
  STA1——數(shù)據(jù)讀寫狀態(tài),1:準備好,;0:忙,。
  STA2——數(shù)據(jù)自動讀狀態(tài),1:準備好,;0:忙,。
  STA3——數(shù)據(jù)自動寫狀態(tài),1:準備好,;0:忙,。
  STA4——未用。
  STA5——控制器運行檢測可能性,,1:可能,;0:不能。
  STA6——屏讀/拷貝出錯狀態(tài),,1:出錯,;0:正確。
  STA7——閃爍狀態(tài)檢測,,1:正常顯示,;0:關(guān)。
  進行狀態(tài)位檢測時,,先從T6963C的狀態(tài)寄存器中讀取狀態(tài)字,,然后提取對應(yīng)的狀態(tài)值,通過判斷決定下一步的操作,。
  (2)數(shù)據(jù)/指令的讀寫程序,。讀寫數(shù)據(jù)和命令可以分為自動和非自動2種,。由于非自動寫命令或數(shù)據(jù)的步驟基本類似,均是在檢測狀態(tài)字的STA0和STA1二位是否準備好的情況下來決定寫命令或數(shù)據(jù)到輸出口,,因此可把非自動寫命令或數(shù)據(jù)流程圖綜合在一起,,即如圖3所示。非自動讀數(shù)據(jù)的流程圖如圖4所示,,也是在檢測STA0和STA1已經(jīng)準備好的基礎(chǔ)上由輸入口讀取數(shù)據(jù),然后將此數(shù)據(jù)返回,,以便于其他程序調(diào)用,。圖5是自動寫數(shù)據(jù)的程序流程圖,它僅需要檢測狀態(tài)字的STA3即可,。自動讀數(shù)據(jù)時只須檢測STA2,,但自動讀數(shù)據(jù)在本例中用得較少,故其流程圖在此省略,。

3.2  模塊化設(shè)計
  根據(jù)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ū)是2個不同性質(zhì)的使用區(qū)域,是本設(shè)計的重點,。CGRAM區(qū)是用戶為方便制作特殊符號而在顯示緩沖區(qū)內(nèi)任意設(shè)置的一個區(qū)域,,它可作為外擴的字符發(fā)生器。另外,,對于文本顯示區(qū),,如果需要特征顯示,則需要同樣大小的文本特征區(qū),,其中每個字節(jié)對應(yīng)著文本區(qū)相同位置的那個字符,,并可以控制該字符的特征顯示。
  初始化流程圖如圖6所示,。從圖中可以看到,,對T6963C初始化時,,在關(guān)顯示后應(yīng)該先確定采用哪種方式顯示(文本/圖形),再來設(shè)置顯示緩沖區(qū)中圖形區(qū)的首地址,、寬度和文本區(qū)的首地址,、寬度,然后再選擇光標的形狀,,繼而進行顯示開關(guān)設(shè)置,。

   (2)英文顯示模塊。初始化時已經(jīng)定義了文本區(qū)的首地址,,此地址存放的是顯示屏左上角(第1行第1列)的字符代碼,,每個字符位置對應(yīng)1個字節(jié),逐行對應(yīng)至屏幕右下角,。英文顯示模塊程序編制的任務(wù)就是把想要顯示的字符代碼送入與行列位置對應(yīng)的文本顯示緩沖區(qū)中,。只需定位首字符地址,設(shè)置使LCD控制器的地址指針自動增1,,然后連續(xù)向LCD的數(shù)據(jù)口送入顯示數(shù)據(jù)即可,。
  英文顯示程序比較簡單,寫單個字符時,,只需確定顯示字符的坐標位置(X,,Y),然后按照T6963C的特點將此坐標寫入控制器,,接著寫要顯示的英文字符即可(顯示的英文字符可以從T6963C自帶的CGROM或外擴的CGRAM中選?。5⒁馐褂玫?ldquo;寫1次,,地址不變”的方式,。其程序流程如圖7所示。

   (3)漢字顯示模塊,。液晶顯示控制器T6963C可以按圖形方式,、文本方式及圖形和文本合成方式進行顯示。文本方式下可以顯示字符等內(nèi)容,;圖形方式下不僅可以顯示圖形,,還能顯示字符和漢字。本例采用直接在圖形方式下顯示漢字的方式,。顯示字符可以直接從T6963C自帶的CGROM中選取,。如要顯示漢字則要建立漢字字模。字模建立方法有多種,,可采用從UCDOS的漢字點陣字庫中提取所需要漢字的16點陣字模,,進而生成漢字庫以備選取漢字之用。漢字字模在此漢字庫中以一定的順序存放,,每一個漢字有其對應(yīng)的一個順序號,,這個順序號以變量HZH表示,。
  本例采用的240×128模塊的漢字顯示液晶屏幕,橫向為240點,分成30個字節(jié),,縱向則是128行,。若要顯示16×16點陣的漢字,需占用32個字節(jié),,因而每行可顯示15個漢字,,共8行。下面是顯示1個漢字的過程,。
  漢字顯示的程序流程如圖8所示,。在計算要顯示的漢字在漢字庫中的位置HZADD時,首先把漢字庫的地址賦給變量HZKADD,,即HZADD=HZH×32+HZKADD,。該漢字的顯示位置即縱橫坐標記為(X,,Y),,將此坐標換算成其在液晶顯示屏幕上的地址并保存。在設(shè)置顯示地址后,,程序通過循環(huán)把1個漢字的32個字節(jié)一一寫到輸出口,,就可以顯示漢字了。

4  結(jié)束語
  T6963C液晶顯示控制器在應(yīng)用中可以與各種型號的微控制器接口,,實現(xiàn)控制和現(xiàn)場過程的動態(tài)顯示,。在本系統(tǒng)開發(fā)中,顯示模塊采用了T6963C液晶顯示控制器來實現(xiàn),,上位接口電路采用了可編程微控制器系統(tǒng)外圍器件PSD813F1,,使系統(tǒng)易于進一步擴展功能。實踐證明該系統(tǒng)具有良好的顯示界面,,同時也提高了液晶顯示系統(tǒng)的可操作性,。在軟件設(shè)計中采用了模塊化結(jié)構(gòu),使程序可占用較少的代碼空間,,提高了編程效率,,便于開發(fā)。
  本系統(tǒng)可靈活地嵌入各種大型設(shè)備或大規(guī)模系統(tǒng)中,,用于顯示必要的數(shù)據(jù)或執(zhí)行參數(shù)設(shè)定,。
參考文獻
1   北京精電蓬遠顯示技術(shù)有限公司.內(nèi)藏T6963C液晶顯示模塊使用手冊(第二版).1999
2   武漢力源電子股份有限公司.可編程單片機外圍器件PSD8XXF系列使用手冊.1998
3   馬忠梅.單片機的C語言應(yīng)用程序設(shè)計.北京:北京航空航天大學出版社,2001

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。