0 引言
P51XA是PHILIPS公司的一種16位單片機,可管理的存儲器空間大,運行速度快,支持實時多任務(wù)系統(tǒng)的增強了實現(xiàn)高級語言的支持,可以運用在需要復(fù)雜、高速控制的場合,在體系結(jié)構(gòu)上與MCS-5高度兼容,便于實現(xiàn)向高性能微控制器的快速、平滑轉(zhuǎn)移。北京精電蓬遠顯示技術(shù)有限公司的MGLS240128T是一種240×128點陣的圖形LCD(液晶顯示器),可以顯示圖形、曲線,全屏可顯示15×8個漢字,適宜用在需要有較多顯示內(nèi)容的場合,它內(nèi)含T6963C控制器,能直接與INTEL系列的微處理器接口。
1 P51XAG37單片機和T6963C簡介
P51XA單片機的內(nèi)部結(jié)構(gòu)和外部數(shù)據(jù)總線均為16位結(jié)構(gòu),支持擴展的外部存儲器空間為1MB-16MB,P51XA內(nèi)核的結(jié)構(gòu)進行了優(yōu)化,克服了一般微處理器單累加器的瓶頸,其內(nèi)核的幾個寄存器中的每一個都可作為累加器使用,可以實現(xiàn)預(yù)取指令和操作數(shù)據(jù)的回寫。P51XA在訪問外部存儲器時一個ALE(地質(zhì)鎖存允許)脈沖可以讀取16個字節(jié),從而大大提高訪問外部存儲器的速度,P51XA的存儲器按分段組織,每段為64KB,P51XA有系統(tǒng)模式和用戶模式兩種工作模式,有SSP(系統(tǒng)堆棧指針)和USP(用戶堆棧指針)兩個堆棧指針,堆??梢园才旁趦?nèi)部存儲中,也可以安排在外部存儲器中。在運行實時多任務(wù)系統(tǒng)的情況下可以有效地實現(xiàn)任務(wù)間的保護,P51XA支持4種類型的中斷--異常中斷、事件中斷、陷阱中斷和軟中斷,采用矢量中斷的方法,加快了中斷的相應(yīng)速度,圖1為P51XA訪問外部數(shù)據(jù)總線的單個數(shù)據(jù)的時序圖,在時鐘頻率為30M赫茲時的一個時鐘周期為33.3ns。
圖2為T6963C時序及參數(shù),P51XA工作在30M赫茲時與T6963C的時序配合有一定差異,需要用軟件和硬件的方法解決,在運行速度滿足要求的情況下可適當減低XA的時鐘頻率。
MGLS240128T內(nèi)部使用T6963C控制器和8KB的數(shù)據(jù)緩沖器,可以工作在圖形模式和本文模式,工作在本文模式時可以使用其內(nèi)部的字符發(fā)生器,也可以使用外部的字符發(fā)生器。但它的字符發(fā)生器的容量不大,如果系統(tǒng)中僅需要顯示部分特定的漢字,則可以在LCD的片內(nèi)RAM中建立一個字符發(fā)生器,工作在本文模式,這里主要介紹圖形模式下工作。T6963C通過指令設(shè)置其顯示功能,指令可以帶1個或2個參數(shù),也可不帶參數(shù),T6963C的指令系統(tǒng)有10種指令,這里僅介紹用于圖形顯示的部分指令。如圖3所示。
MGLS240128T內(nèi)部的顯示緩存在系統(tǒng)中的地址安排由其地址譯碼電路決定,而圖形顯示區(qū)的首地址則可以由軟件設(shè)定,通過修改顯示首地址可以實現(xiàn)滾動效果。首地址的第1個字節(jié)的D7位對應(yīng)于LCD顯示屏左上角的一個點,然后是D6、D5、…D0位等,再接下一個字節(jié)等,直到設(shè)定的圖形顯示區(qū)右邊界為止。然后是下一行第1個字節(jié),如此等等,寫入指令前最好先檢查它的狀態(tài)字,如T6963C處于準確就緒狀態(tài),則可以寫入指令,順序是先寫入?yún)?shù),然后寫入指令。它的狀態(tài)字結(jié)構(gòu)如圖4所示。
進行不同的操作時需檢測不同的狀態(tài)位。
(1)顯示區(qū)域設(shè)置
設(shè)置圖形區(qū)首地址:PAR1,PAR2,42H,其中:PAR1、PAR2分別為圖形顯示區(qū)首地址的低字節(jié)和高字節(jié),42H為指令代碼。
設(shè)置圖形區(qū)寬度(字節(jié)數(shù)/行):PAR,00H,43H。其中:PAR為用字節(jié)數(shù)表示的寬度,43H為指令代碼。
(2)顯示開關(guān)
格式如下:
98H:圖形顯示開
90H:圖形顯示關(guān)
(3)數(shù)據(jù)自動讀寫方式設(shè)置
設(shè)置數(shù)據(jù)自動讀/寫方式后,每讀/寫顯示緩沖區(qū)一次,其內(nèi)部地址指針自動加1,格式如下:
B0H:設(shè)置自動寫
B1H:設(shè)置自動讀
B2H/B3H:自動讀/寫結(jié)束
(4)數(shù)據(jù)一次讀寫方式
共有6條,分別如下所示(其中DATA為要寫入的數(shù)據(jù),讀操作時不需要數(shù)據(jù)):
DATA C0H:數(shù)據(jù)寫,地址加1
C1H:數(shù)據(jù)讀,地址加1
DATA C2H:數(shù)據(jù)寫,地址減1
C3H:數(shù)據(jù)讀,地址減1
DATA C4H:數(shù)據(jù)寫,地址不變
C5H:數(shù)據(jù)讀,地址不變
(5)位操作
該指令可將當前地址指針位置的顯示緩沖區(qū)的某一字節(jié)的制定位置1或清零,格式如下:
1 1 1 1 n3 n2 n1 n0
其中:n3=1置1,n3=0清零,n2 n1 n0為字節(jié)內(nèi)的位地址。利用位操作指令可以在屏上顯示各種曲線或圖形。
2 接口硬件設(shè)計
雖然P51XA有SFR(特殊功能寄存器)總線,可以將擴展的外部接口器件連接在SFR總線上,但并不是每一種派生產(chǎn)品都將SFR總線引到片上外,所以在大多數(shù)情況下和MCS-51類似,利用外部數(shù)據(jù)存儲器空間來擴展外部接口,由于一般使用XA的場合往往需要數(shù)據(jù)存儲器的空間較大,而XA的外部數(shù)據(jù)存儲器空間是分段結(jié)構(gòu)的,為了使接口電路簡單一般可將系統(tǒng)中需要擴展的外部接口集中在一個專門的段內(nèi),同時盡可能安排在該段的前1KB空間,以便于用直接尋址方式訪問。在簡單的前、后臺方式下,擴展的外部接口可直接用絕對地址進行訪問。
需要注意的是,P51XA的外部總線進行了優(yōu)化,地址的低4位A0-A3不是分時復(fù)用的及在外部總線設(shè)為16位的情況下不需要地質(zhì)線A0,此時A0作為高位數(shù)據(jù)的寫信號線--WRH,而原來的WR作為低8位數(shù)據(jù)的寫信號線--WRL,在擴展8位的外部接口器件的時一般盡量安排在偶地址。LCD的模塊MGLS240128T可以直接與P51XA總線實現(xiàn)接口,其邏輯圖見圖5所示,這里就MGLS240128T連接在XA數(shù)據(jù)總線的低8位,寫入時用WRL控制信號線,XA地址總線的A1用做MGLS240128T的CD控制,根據(jù)系統(tǒng)的具體安排,用XA地址線的高位譯碼后驅(qū)動MGLS240128T的片選線。
3 接口軟件設(shè)計
接口軟件用HI-TECH C編寫,分成為應(yīng)用程序提供服務(wù)的接口函數(shù)和訪問硬件的驅(qū)動程序等兩個層次,接口函數(shù)通過調(diào)用驅(qū)動程序?qū)崿F(xiàn)初始化、漢字、圖形等的顯示。
根據(jù)對T6963C的指令系統(tǒng)的分析可知,指令有雙字節(jié)數(shù)據(jù)、單字節(jié)數(shù)據(jù)和無數(shù)據(jù)等,在對T6963C進行讀寫之前其必須根據(jù)其狀態(tài)寄存器來判斷是否可以進行操作,以下為底層的3個寫指令/數(shù)據(jù)的函數(shù)和初始化函數(shù):
4 結(jié)束語
P51XA是一種與標準的MCS-51高度兼容、高性能的16位單片機,它為廣大熟悉MCS-51的開發(fā)人員提供了一種向16位單片機的平滑轉(zhuǎn)移,也為我們提供了更加廣泛的選擇。