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