引 言
液晶顯示器具有顯示信息多、體積小、功耗低等特點,被廣泛用于終端顯示、人機接口。它與高性能的RabbitCore RCM2200模塊配合使用,可以組成高級智能化儀器。在我們開發(fā)的藍牙無線數(shù)據(jù)接收與發(fā)送系統(tǒng)中用于藍牙設(shè)備鏈接信息及數(shù)據(jù)的發(fā)送和接收量等相關(guān)信息的顯示具有相當重要的作用。本文給出RabbitCore RCM2200模塊與M12864-7A7實用的接口電路及軟件設(shè)計。
Rabbit2000及RabbitCore RCM2200簡介
Rabbit2000是8位微處理器,它和Z80系列微處理器有相似的結(jié)構(gòu)和高度的兼容性,但性能有很大的提高。它具有4個串行端口,40個通用I/O引腳,內(nèi)建日歷、時鐘、看門狗、定時器、多級中斷、雙DMA通道,可外擴4~8MB Flash,用于數(shù)據(jù)存儲。對于8位總線的微處理器,Rabbit構(gòu)造了其大部分外部8位總線并且具有簡嗟鬧噶羆希蚨閱苡胄磯?6位處理器一樣棒,可執(zhí)行許多16位操作。Rabbit2000用1根接口電纜把PC串口和基于Rabbit2000的目標系統(tǒng)連接起來就可實現(xiàn)軟件的開發(fā),并得到Dynamic C編譯器的支持,這種編譯器的特點是有一個交互式編譯程序、編輯程序和調(diào)試程序。匯編語言代碼可嵌入Dynamic C代碼中,或作為一個獨立的功能使用。編譯和調(diào)試可在不脫離Dynamic C開發(fā)環(huán)境下實現(xiàn),既縮短了開發(fā)時間,也更易于編程。
RabbitCore RCM2200模塊采用Rabbit 2000微處理器,有256K的Flash及128K的SRAM,4個串口,26個I/O口,10Base-T 以態(tài)網(wǎng)口。使用RCM2200能夠通過網(wǎng)絡(luò)或Internet來控制、監(jiān)測及調(diào)試嵌入式系統(tǒng)。有支持RCM2200的軟件工具包,提供TCP/IP協(xié)議和Dynamic C系統(tǒng)軟件。
KS0108B液晶控制器
KS0108B液晶顯示控制器多用于中小模塊的圖形點陣液晶顯示器件(日立的HD61202與其完全兼容,可直接替代)。KS0108B的特點是內(nèi)置64 64位的顯示存儲器,顯示屏上各象素點的顯示狀態(tài)與顯示存儲器的各位數(shù)據(jù)一一對應(yīng),顯示存儲器的數(shù)據(jù)直接作為圖形顯示的驅(qū)動信號:顯示數(shù)據(jù)為"1"相應(yīng)的象素點顯示,為"0"時相應(yīng)的象素點不顯示。KS0108B需要與相應(yīng)的帶振蕩器和顯示時序發(fā)動器的行驅(qū)動器KS0107B配套才能形成一個完整的液晶驅(qū)動和控制系統(tǒng)。
M12864-7A7液晶模塊框圖及引腳說明
M12864-7A7液晶顯示模塊使用兩片KS0108B作為列驅(qū)動器,同時使用一片KS0107B作為行驅(qū)動器,KS0107B不與MCU發(fā)生聯(lián)系只要提供電源就能產(chǎn)生行驅(qū)動信號和各種同步信號。圖1是液晶模塊的框圖和接口引腳說明。
硬件接口電路及說明
內(nèi)置KS0108B圖形點陣液晶顯示模塊與MCU(單片機或Rabbit2000等)的連接方式有兩種:直接訪問方式和間接控制方式。直接訪問方式是將液晶顯示模塊的接口作為存儲器或I/O設(shè)備直接掛在MCU總線上,MCU以訪問存儲器或I/O設(shè)備的方式操作液晶顯示模塊的工作。間接控制方式是MCU通過自身或系統(tǒng)中的并行接口與液晶顯示模塊連接,下面給出的應(yīng)用中就是用到了RCM2200的并行端口中的PA口及PB,PD,PE口中的某些引腳。MCU通過對這些接口的操作以達到對液晶顯示模塊的控制。
電路中以RCM2200的PA口作為數(shù)據(jù)口,PB7為RET,PD3為D/I,PD4為R/W,PD5為E,PE5為CS1和PE7為CS2等信號。V0是液晶需要的負壓,可通過與它相連的電位器來調(diào)節(jié)電壓大小(電壓變化范圍為-10~0V),從而達到調(diào)節(jié)顯示對比度的目的。
Dynamic C源程序及說明
程序說明
本段重點講述顯示漢字的子程序,它可以在指定位置顯示指定的漢字。7個子程序分別為初始化LCD子程序、清屏子程序、寫指令子程序、寫數(shù)據(jù)子程序、延時子程序、指定位置顯示單個漢字和信息顯示子程序。
下面給出的是圖2所示的間接控制方式的一些子程序,所有的程序都是用Dynamic C 7.32TSE版本編譯器來編譯調(diào)試并通過的。
源程序及解釋
/*-----------定義寄存器的指令代碼----------*/
#define Disp_On 0x3f
#define Disp_Off 0x3e
#define Col_Add 0x40
#define Page_Add 0xb8
#define Start_Line 0xc0
const char xian[]={ /*--文字: 顯,宋體12;此字體下對應(yīng)的點陣為:寬x高=16x16 --*/
0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x00,
0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00
}
const char shi[]={ /*--文字: 示,宋體12;此字體下對應(yīng)的點陣為:寬x高=16x16 --*/





