某型導(dǎo)航數(shù)據(jù)仿真器的液晶顯示系統(tǒng)的軟硬件設(shè)計(jì)方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
與傳統(tǒng)的數(shù)碼顯示管相比,液晶顯示器件因具有顯示信息多、低工作電壓、微功耗、信息量大、壽命長(zhǎng)、體積小、價(jià)格低及控制方便等諸多特點(diǎn),在科研生產(chǎn)與產(chǎn)品設(shè)計(jì)等領(lǐng)域正發(fā)揮著越來越重要的作用,其應(yīng)用范圍也呈現(xiàn)迅速擴(kuò)展的態(tài)勢(shì)。而某型大氣慣導(dǎo)數(shù)據(jù)仿真器需要輸入和顯示大量的數(shù)據(jù)參數(shù),因此,為了提高系統(tǒng)的先進(jìn)性及易操作性,在系統(tǒng)的輸入及信息輸出顯示中選用了以T6963C控制器為核心的精電M-240128T液晶顯示模塊,該顯示模塊為點(diǎn)陣式液晶圖形顯示器,分辨率為240×128,能直接與51系列的8位單片機(jī)接口。
1. T6963C控制器及M-240128T顯示模塊
在中規(guī)模圖形液晶顯示器中,T6963C是目前較為常用的內(nèi)置控制器型圖形液晶顯示器中的一種。它具有一般液晶顯示器所具備的優(yōu)點(diǎn),其最大特點(diǎn)是具有獨(dú)特的硬件初始值設(shè)置功能。初始化在上電時(shí)就已經(jīng)基本設(shè)置完成,軟件操作主要是顯示畫面的設(shè)計(jì),從而加強(qiáng)了T6963C的顯示控制能力。T6963C不僅具備基本的文字顯示和圖形顯示功能,它還具有將文字顯示與圖形顯示以某種邏輯關(guān)系在顯示屏上顯示的合成功能。T6963C內(nèi)置有128個(gè)5×8點(diǎn)陣的ASCI字符。而文本方式下的特征顯示功能,能使顯示屏上每一字符的顯示具有一定的屬性,是T6963C控制器的一個(gè)獨(dú)特之處。使用T6963C控制器型圖形液晶顯示器作為界面顯示器件可以提高產(chǎn)品設(shè)計(jì)的先進(jìn)性。
液晶模塊M-240128T受T6963C控制器的控制。T6963C提供了許多命令字。由于T6963C的初始化設(shè)置都由管腳設(shè)置來完成,因此其指令系統(tǒng)集中在顯示功能的設(shè)置上。T6963C的指令可帶一個(gè)、兩個(gè)或者無參數(shù)。每條指令的執(zhí)行都是先送入?yún)?shù)(若有參數(shù)),再送入指令代碼。液晶控制器T6963C的主要指令可分為四類。一是讀狀態(tài)指令,在對(duì)T6963C的每一次操作前都要讀這個(gè)狀態(tài)字,并對(duì)它相應(yīng)位進(jìn)行判斷,以決定計(jì)算機(jī)對(duì)T6963C的訪問是否有效;二是設(shè)置指令,該類指令用于設(shè)置顯示數(shù)據(jù)地址、顯示區(qū)域、顯示方式以及光標(biāo)的形狀和數(shù)據(jù)的讀寫方式等:三是數(shù)據(jù)的讀寫指令,該指令能讀寫顯示屏上的內(nèi)容,不過只能在地址指針在圖形顯示區(qū)內(nèi)才有效,而且要注意顯示寬度和硬件設(shè)置保持一致,否則地址計(jì)算有誤,而且每次讀寫時(shí)要檢查S6的狀態(tài)是否屏讀/復(fù)制出錯(cuò);四是位操作指令,該指令專用于處理液晶屏上的像素點(diǎn)操作(可用于繪點(diǎn),繪制曲線)。如圖1為內(nèi)置T6963C的點(diǎn)陣液晶顯示模塊原理圖。
500)this.style.width=500;" border="0" />
2. 系統(tǒng)硬件接口設(shè)計(jì)
由于整個(gè)仿真器需要大量的程序空間,因此系統(tǒng)使用了具有64K存儲(chǔ)空間的ATMEL公司出品的89C51ED2芯片。
單片機(jī)訪問圖形液晶模塊的方式都是通過液晶控制器T6963C進(jìn)行的,為了實(shí)現(xiàn)單片微控器與控制器T6963C的時(shí)序匹配,可采用兩種連接方式來實(shí)現(xiàn)他們之間的接口。一種方式為間接控制方式,另一種為直接連接方式。前一種方式單片微控器通過并行接口間接實(shí)現(xiàn)對(duì)液晶顯示模塊控制,然后使用軟件間接控制使其時(shí)序匹配。后一種方式采用直接訪問I/O設(shè)備,液晶模塊直接掛在系統(tǒng)的總線上。在仿真器系統(tǒng)中我們采用后一種連接方式,這種方式簡(jiǎn)單、實(shí)用且方便。微處理器分配給T6963C一個(gè)尋址地址,微處理器就能跟訪問一般的I/O設(shè)備一樣訪問它,其硬件接口原理圖如圖2所示。
500)this.style.width=500;" border="0" />
單片機(jī)數(shù)據(jù)口P0直接與液晶顯示模塊的數(shù)據(jù)口相連接,由于T6963C接口適用于本系列單片機(jī)的MPU,故可以直接用89C51ED2的/RD、/WD作為液晶顯示模塊的讀寫控制信號(hào),液晶顯示模塊的/RESET、/HALT掛在+5V上。片選信號(hào)/CE由地址線譯碼產(chǎn)生,同時(shí)C/D信號(hào)也由地址線P2.4提供,1為指令口地址,0為數(shù)據(jù)口地址。
3. 系統(tǒng)軟件設(shè)計(jì)
液晶顯示模塊的初始化設(shè)置一般由管腳設(shè)置完成,因此其指令系統(tǒng)主要集中于顯示功能的設(shè)置上。T6963C的指令可帶一個(gè)或兩個(gè)參數(shù),也可無參數(shù)。每條指令的執(zhí)行都是先送入?yún)?shù),再送入指令。每次操作之前最好先對(duì)狀態(tài)字進(jìn)行檢測(cè)。T6963C的狀態(tài)字如下所示。
500)this.style.width=500;" border="0" />
其中,STA0為指令讀寫狀態(tài),1為準(zhǔn)備好,0 為忙;STA1為數(shù)據(jù)讀寫狀態(tài),1為準(zhǔn)備好,0為忙;STA2為數(shù)據(jù)自動(dòng)讀狀態(tài),1為準(zhǔn)備好,0為忙;STA3為數(shù)據(jù)自動(dòng)寫狀態(tài),1為準(zhǔn)備好,0為忙;STA4未用;STA5為控制器運(yùn)行檢測(cè)可能性,1為可能,0為不可能;STA6為屏讀/拷貝出錯(cuò)狀態(tài),1為出錯(cuò),0為正確;STA7為閃爍狀態(tài)檢測(cè),1為正常顯示,0為關(guān)顯示。
由于狀態(tài)位作用不一樣,因此執(zhí)行不同指令必須檢測(cè)不同狀態(tài)位。在MPU一次讀、寫指令和數(shù)據(jù)時(shí),STA0和STA1必須同時(shí)有效。當(dāng)MPU讀、寫數(shù)組時(shí),STA2或STA3有效,而STA0和STA1無效。屏讀,屏拷貝指令使用STA6。STA5和STA7反映模塊內(nèi)部運(yùn)行狀態(tài),很少使用。
3.1 初始化液晶顯示模塊
在 T6963C中內(nèi)嵌有128種字符點(diǎn)陣的CGRAM(字符發(fā)生器ROM),同時(shí)T6963C還可管理一定大小的顯示緩沖區(qū)。顯示緩沖區(qū) RAM 的具體大小由不同顯示尺寸的模塊決定,點(diǎn)陣越大RAM越多,本設(shè)計(jì)采用的240×128模塊帶有16KB的RAM。該顯示緩沖區(qū)分為文 本 顯 示 區(qū) 、 圖 形 顯 示 區(qū) 和CGRAM區(qū)。文本顯示區(qū)和圖形顯示區(qū)是兩個(gè)不同性質(zhì)的使用區(qū)域,是本設(shè)計(jì)使用的重點(diǎn)。CGRAM區(qū)是用戶為方便制作特殊符號(hào)而在顯示緩沖區(qū)內(nèi)任意設(shè)置的一個(gè)區(qū)域,它可作為外擴(kuò)的字符發(fā)生器。對(duì)T6963C初始化時(shí),在關(guān)閉顯示后應(yīng)該先確定采用哪種方式進(jìn)行顯示(文本/圖形),再來設(shè)置顯示緩沖區(qū)中圖形區(qū)的首地址、寬度和文本區(qū)的首地址、寬度。此后可選擇光標(biāo)的形狀,繼而進(jìn)行顯示開關(guān)設(shè)置。其程序流程如圖3所示。
500)this.style.width=500;" border="0" />
3.1 漢字顯示
漢字顯示就是將程序中以字摸數(shù)據(jù)形式表示的漢字在顯示屏上顯示出來。漢字顯示的基本方法有兩種,即文本顯示方式和圖形顯示方式。二者顯示的方法不同,但都必須先在程序區(qū)設(shè)定漢字的字模數(shù)據(jù)。字??赏ㄟ^一些特定軟件如北京精電蓬遠(yuǎn)顯示技術(shù)有限公司提供的PICKHZB.EXE軟件提取生成,字模的排列格式也是由用戶自己選定的,如可為16×16、16×14或16×12等,本系統(tǒng)的字模排列格式是第16×14?,F(xiàn)分別簡(jiǎn)要介紹兩種方式的顯示過程,以下為“檢測(cè)”二字在程序中的字模數(shù)據(jù)表:
uint code hztab[]={
0x00,0x00,0x22,0x00,0x23,0x00,0xF4,0x80,0x28,0x40,0x67,0xA0,0x70,0x00,0xAA,0x40,0xA5,0x40,0x25,0x40,0x20,0x80,0x3F,0xE0,0x00,0x00,0x00,0x00,//檢
0x00,0x00,0x9E,0x20,0x52,0x20,0x12,0xA0,0x96,0xA0,0x56,0xA0,0x56,0xA0,0x56,0xA0,0xD6,0xA0,0x44,0xA0,0x4A,0x20,0x71,0x60,0x00,0x00,0x00,0x00,//測(cè)
}
文本方式下必須先將程序中的字模數(shù)據(jù)寫入顯示緩沖區(qū)中建立,如圖4所示。由數(shù)據(jù)在CGRAM中的位置取得相應(yīng)的漢字代碼(一個(gè)漢字占用4個(gè)字符代碼),通過寫漢字代碼將漢字在文本顯示區(qū)上屏坐標(biāo)為(X,Y)處依次顯示出來。
500)this.style.width=500;" border="0" />
圖形方式下顯示漢字也是比較常用的方法,在本系統(tǒng)中也使用了這種方法。與文本方式不同的是漢字代碼不是取決于字模數(shù)據(jù)在CGRAM中的位置,而是按其在字模數(shù)據(jù)表中排列順序定義的。漢字的顯示不是通過寫其代碼而是將字模數(shù)據(jù)逐個(gè)字節(jié)地寫入圖形顯示區(qū)。同樣可在顯示屏上坐標(biāo)為(X,Y)處順序顯示出漢字。軟件流程圖如圖5所示。
在軟件編制過程中,其他如字符、直線等顯示方法大同小異,在此不加贅述。用戶可以通過運(yùn)算,編制波形顯示等復(fù)雜的液晶顯示程序。同時(shí)由于顯示屏的顯示容量總是一定的,為了能夠更多的顯示信息,用戶可以通過鍵盤掃描,進(jìn)行菜單的多級(jí)調(diào)用,解決顯示容量的限制。定時(shí)間定間隔地修改文本顯示區(qū)與圖形顯示區(qū)首地址將會(huì)產(chǎn)生顯示畫面滾動(dòng)顯示效果,這樣可以使一個(gè)菜單的內(nèi)容大于一屏允許的顯示量。是兩種常用的方法。
4 結(jié)論
以T6963C控制器為核心的精電M-240128T液晶顯示模塊實(shí)現(xiàn)了某型導(dǎo)航數(shù)據(jù)仿真器的數(shù)據(jù)顯示,使用戶在儀器使用過程中更加靈活方便。