51XA單片機(jī)與圖形液晶顯示器的接口設(shè)計(jì)
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)移,也為我們提供了更加廣泛的選擇。
評(píng)論