微處理器Rabbit2000與液晶顯示控制器KS0108B的接口及編程
1引言
液晶顯示器具有顯示信息多、體積小、功耗低等特點,被廣泛用于終端顯示和人機接口。它與高性能的RabbitCoreRCM2200型模塊配合使用,可以組成高級智能化儀器。在我們開發(fā)的藍牙無線數據接收與發(fā)送系統(tǒng)中,用于藍牙設備鏈接信息及數據的發(fā)送和接收等相關信息的顯示具有相當重要的作用。本文介紹RabbitCoreRCM2200型模塊與M12864-7A7實用的接口電路及軟件設計。
2Rabbit2000及RabbitCoreRCM2200簡介
Rabbit20008位微處理器和Z80系列微處理器有相似的結構和高度的兼容性,但性能有很大的提高。它具有4個串行端口,40個通用I/O引腳,內建日歷、時鐘、看門狗、定時器、多級中斷、雙DMA通道,可外擴4MB~8MBFlash,用于數據存儲。對于8位總線的微處理器,Rabbit構造了其大部分外部8位總線,并且具有簡潔的指令集合,性能與許多16位處理器一樣,可執(zhí)行16位操作。Rabbit2000用1根接口電纜把PC串口和基于Rabbit2000的目標系統(tǒng)連接起來實現軟件的開發(fā),得到DynamicC編譯器的支持,這種編譯器具有交互式編譯程序、編輯程序和調試程序。匯編語言代碼可嵌入DynamicC代碼中,或作為一個獨立的功能使用。編譯和調試可在不脫離DynamicC開發(fā)環(huán)境下實現,縮短了開發(fā)時間,更易于編程。
RabbitCoreRCM2200模塊采用Rabbit2000型微處理器,有256KB的Flash及128KB的SRAM,4個串口,26個I/O口,10Base-T以太網口。使用RCM2200能夠通過網絡或Internet來控制、監(jiān)測及調試嵌入式系統(tǒng),有支持RCM2200的軟件工具包,提供TCP/IP協(xié)議和DynamicC系統(tǒng)軟件。
3KS0108B型液晶控制器
KS0108B型液晶顯示控制器多用于中小模塊的圖形點陣液晶顯示器(日立的HD61202與其完全兼容,可直接替代),其的特點是內置64位×64位的顯示存儲器,顯示屏上各像素點的顯示狀態(tài)與顯示存儲器的各位數據一一對應,顯示存儲器的數據直接作為圖形顯示的驅動信號,顯示數據?quot;1"時,相應的像素點顯示,為"0"時,相應的像素點不顯示。KS0108B需要與相應的帶振蕩器和顯示時序發(fā)動器的行驅動器KS0107B配套,才能形成一個完整的液晶驅動和控制系統(tǒng)。KS0108B的指令及其功能如表1所示。
4M12864-7A7型液晶模塊的框圖及引腳
M12864-7A7型液晶顯示模塊使用兩個KS0108B作為列驅動器,使用一個KS0107B作為行驅動器,KS0[07B不與MCU聯系,只要提供電源就能產生行驅動信號和各種同步信號。圖1是液晶模塊的結構;框圖,引腳功能如表2所示。
5硬件接口電路
內置KS0l08B型圖形點陣液晶顯示模塊與MCU(單片機或Rabbit2000等)的連接方式有兩種:直接訪問方式和間接控制方式。直接訪問方式是將液晶顯示模塊的接口作為存儲器或I/O設備直接掛在MCU總線上,MCU以訪問存儲器或I/O設備的方式操作液晶顯示模塊的工作。間接控制方式是MCU通過自身或系統(tǒng)中的并行接口與液晶顯示模塊連接,下面給出的應用采用RCM2200的并行端口中的PA口及PB,PD,PE口中的一些引腳。MCU通過對這些接口的操作達到對液晶顯示模塊的控制。
在圖2所示電路中,以RCM2200的PA口作為數據口,PB7為RET,PD3為D/I,PD4為R/W,PD5為E,PE5為CSl和PE7為CS2等信號。V0是液晶顯示器需要的負壓,可通過與它相連的電位器來調節(jié)電壓的大小,電壓變化范圍為-10V~0V,達到調節(jié)顯示對比度的目的。
6DynamicC源程序
6.1程序說明
本文重點介紹顯示漢字的子程序,它可以在指定位置顯示指定的漢字。
下面給出的是圖2所示的間接控制方式的一些子程序,所有的程序都是用DynamicC7.32TSE版本編譯器編譯和調試。
M12864-7A7型液晶顯示模塊是128×64點陣,每個漢字是16×16點陣,所以,每行可以顯示8個漢字,一屏可以顯示4行。整屏最多顯示32個漢字。
函數中的參數pag和col表示頁地址(X地址)和Y地址,*hzk為指向需顯示漢字點陣的指針。其中,0<=pag<=7,col為0、16、32或48中的任一個值;由pag和col便可確定待顯示漢字的位置。由表1可以知道頁地址(X地址)的起始值為Oxb8(程序中已定義為Page_Add),同時顯示一個漢字要跨越兩頁,所以頁地址的計算公式為Page_Add+pag+j,0≤j≤l;而Y地址的開始值為0x40(程序中已定義為Col_Add),顯示每個漢字要16列,因此,計算Y地址的公式為Col_Add+col。Y地址計算器具有自動加1功能,在每次讀/寫數據后自動加1,所以,在連續(xù)進行讀/寫數據時,不必每次都設置一次Y地址計數器。
程序開始必須先調用LCD初始化子程序,接著清屏,再視待顯示的漢字在左屏還是右屏,再將液晶顯示器開為左屏或右屏,然后,將數據送給液晶顯示,直到32個字節(jié)的漢字完全顯示;多個漢字的顯示以同理進行操作。[!--empirenews.page--]
對于多信息的顯示,可以將voidMsg(void)改為voidMsg(flag),既通過flag的不同值來標識不同的待顯示信息,然后,在實際使用中通過調用voidMsg(flaS)即可實現。
7結束語
M12864-7A7型液晶顯示器模塊與RabbitCoreRCM2200型模塊的連接采用間接控制方式,其特點是電路簡單,控制時序由軟件實現,可以實現高速MCU與液晶顯示模塊的接口。而采用DynamicC可以很方便地實現匯編語言要用較復雜的邏輯才能實現液晶模塊的顯示功能,而且,可以縮短開發(fā)和調試的時間。