摘要:介紹了處理器與液晶顯示模塊之間硬件接口的一種設(shè)計方案。采用I/O方式連接,實(shí)現(xiàn)了SEP3203與液晶顯示控制器JM12864G的一種接口設(shè)計方法,并通過與鍵盤復(fù)用接口,節(jié)省了處理器硬件引腳資源。給出了主要部分軟件實(shí)現(xiàn)的流程,并在實(shí)際系統(tǒng)中得到驗證。
關(guān)鍵詞:SEP3203;JM12864G液晶顯示控制器;接口復(fù)用
中圖分類號:TN709 文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)04-0994-03
Interface Sharing Design Between LCD and Keyboard based-on SEP3203
YANG Xiao-jian, ZHONG Rui
(National ASIC System Engineering Center, Southeast University, Nanjing 210096,China)
Abstract: Introduce a hardware interface design between CPU and LCD controller. The design implements an interface between SEP3203 and JM12864G.useing an I/O request signal. By interface sharing, retrench the hardware resource of the CPU pins. The main part of the software flowchart is proposed and the design was validated in practical system application.
Key words:SEP3203; JM12864G LCD controller; interface sharing
1 引言
在智能儀器儀表的開發(fā)中,為了實(shí)現(xiàn)良好的操作界面,通常要有人機(jī)交互的顯示界面與輸入設(shè)備。液晶顯示模塊具有低功耗等特點(diǎn),廣泛的應(yīng)用于各種數(shù)字儀表。由于液晶顯示是一種慢速器件,因此如何控制讀寫時序在顯示過程中顯得十分重要。
JM12864G 漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個中文漢字(16X16點(diǎn)陣)、128個字符(8X16 點(diǎn)陣)及64X256 點(diǎn)陣顯示RAM(GDRAM)。
東芯IV SEP3203F50(簡稱SEP3203)移動終端應(yīng)用處理器是由江蘇東大集成電路系統(tǒng)工程技術(shù)有限公司設(shè)計的16/32 位RISC 微控制器,面向低成本手持設(shè)備和其它通用嵌入式設(shè)備。SEP3203 使用0.25um 標(biāo)準(zhǔn)CMOS 的設(shè)計工藝。使用ARM7TDMI 處理器內(nèi)核,具有低功耗、低成本的優(yōu)點(diǎn)。SEP3203 提供了完整的通用外設(shè)接口,可以滿足系統(tǒng)用戶的各種需求。
本文給出了處理器SEP3203與液晶顯示控制器JM12864G之間的一種接口設(shè)計方法及軟件設(shè)計方法,用處理器的I/O口來產(chǎn)生控制時序,并實(shí)現(xiàn)了液晶顯示與鍵盤輸入的接口復(fù)用。
2 JM12864G介紹
2.1 引腳及指令說明
JM12864G引腳如表1所示。JM12864G液晶顯示模塊有11 條基本指令集以及7 條擴(kuò)充指令集組成。下面簡要要介紹幾條常用的指令。指令格式見表2。
指令1功能:清除顯示屏幕,把DDRAM 地址計數(shù)器調(diào)整為“00H”。
指令2功能:把DDRAM 地址計數(shù)器調(diào)整為“00H”,游標(biāo)回原點(diǎn),該功能不影響顯示
DDRAM 功能:執(zhí)行該命令后,所設(shè)置的行將顯示在屏幕的第一行。
指令3功能:顯示狀態(tài)設(shè)定。D=1:整體顯示ON;C=1:游標(biāo)ON;B=1:游標(biāo)位置ON。
指令4功能:顯示模塊功能設(shè)定。DL=1(必須設(shè)為1);RE=1:擴(kuò)充指令集動作;RE=0:基本指令集動作。
指令5功能:讀取忙碌狀態(tài)(BF)可以確認(rèn)內(nèi)部動作是否完成,同時可以讀出地址計數(shù)
器(AC)的值。
指令6功能:寫入資料到內(nèi)部的RAM(DDRAM/CGRAM/TRAM/GDRAM)。
指令7功能:讀出內(nèi)部RAM(DDRAM/CGRAM/TRAM/GDRAM)的資料。
表1 JM12864G引腳介紹表2 JM12864G部分指令
■
2.2接口時序
模塊有并行和串行兩種連接方式。本文采用的是串行接口方式。串行方式的接口時序如圖1所示。
串行數(shù)據(jù)傳送共分三個字節(jié)完成:
第一字節(jié):串口控制—格式 11111ABC
A 為數(shù)據(jù)傳送方向控制:“1” 表示數(shù)據(jù)從LCD 到CPU,“0” 表示數(shù)據(jù)從CPU 到LCD
B 為數(shù)據(jù)類型選擇: “1” 表示數(shù)據(jù)是顯示數(shù)據(jù),“0” 表示數(shù)據(jù)是控制指令
C 固定為0
第二字節(jié):8 位數(shù)據(jù)的高4 位—格式 DDDD0000
第三字節(jié):8 位數(shù)據(jù)的低4 位—格式 0000DDDD
■
圖1 JM12864G串行方式的時序
3硬件原理與設(shè)計
這里我們利用SEP3203的GPIO(通用輸入/輸出多路復(fù)用器)口有鎖存功能的特性,讓GPIO口工作在數(shù)字I/O方式下,采用I/O訪問式連接,接口簡單,實(shí)現(xiàn)方便。處理器與液晶顯示模塊以及鍵盤的硬件接口電路如圖2。
本設(shè)計用到了SEP3203的10個I/O數(shù)字接口,配合兩片74HC244,實(shí)現(xiàn)了以下功能:
1)3×4鍵盤輸入;
2)JM12864G顯示控制;
3)8個LED燈控制;
3.1 74HC244
74HC244是常用的8輸入3態(tài)緩沖芯片。2,4,6,8 腳 1A1~1A4 輸入對應(yīng)18,16,14,12腳 1Y1~1Y4輸出;11,13,15,17腳 2A1~2A4輸入對應(yīng)9,7,5,3腳 2Y1~2Y4 輸出。
74HC244芯片內(nèi)部共有兩個四位三態(tài)緩沖器,使用時可分別以1OE和2OE作為它們的選通工作信號。當(dāng)1OE和2OE都為低電平時,輸出端Y和輸入端A狀態(tài)相同;當(dāng)1OE和2OE都為高電平時,輸出呈高阻態(tài)。
這里我們用了兩片74HC244。一片專門用于鍵盤輸入;一片用于LED與LCD的控制。通過SEP3203的57、58兩個引腳來控制兩個芯片的選通信號。
3.2 JM12864G
CS,SID,CLK三個引腳通過74HC244分別與SEP3203的I/O口相連,作為時序控制與數(shù)據(jù)輸入。VO為驅(qū)動電壓輸入端,通過調(diào)節(jié)外接20K 電位器來調(diào)節(jié)顯示屏的對比度。LEDA為背光光源正極,通過一個三極管連接5V電源。三極管的基極直接連接到SEP3203的I/O口。通過控制基極電壓來控制顯示屏背光的開啟與關(guān)閉。
3.3 74HC595
74HC595芯片是串行輸入并行輸出芯片,在電子顯示屏制作當(dāng)中有廣泛的應(yīng)用。
74HC595同數(shù)據(jù)相關(guān)的引腳可以分為三類:
SER:串行數(shù)據(jù)輸入,通過74HC244連接SEP3203的I/O口。
O0~O7:8位并行數(shù)據(jù)輸出,可以直接控制8個LED,或者是七段數(shù)碼管的8個引腳。
Q7′:級聯(lián)輸出端,與下一個74HC595的SER相連,可以實(shí)現(xiàn)多個芯片之間的級聯(lián)。
74HC595同控制相關(guān)的引腳一共有四個:
SRCLK:移位寄存器的時鐘輸入。上升沿時移位寄存器中的數(shù)據(jù)依次移動一位,即Q0中的數(shù)據(jù)移到Q1中,Q1中的數(shù)據(jù)移到Q2中,依次類推;下降沿時移位寄存器中的數(shù)據(jù)保持不變。
RCLK:存儲寄存器的時鐘輸入。上升沿時移位寄存器中的數(shù)據(jù)進(jìn)入存儲寄存器,下降沿時存儲寄存器中的數(shù)據(jù)保持不變。應(yīng)用時通常將RCLK置為低電平,移位結(jié)束后再在RCLK端產(chǎn)生一個正脈沖更新顯示數(shù)據(jù)。
RESET:重置,低電平時將移位寄存器中的數(shù)據(jù)清零,應(yīng)用時通常將它直接連高電平。
OE:輸出允許,高電平時禁止輸出。引腳不緊張的情況下可以用一個引腳來控制它,這樣可以很方便地產(chǎn)生閃爍和熄滅的效果。這里我們將它直接連低電平。
本設(shè)計中只用了一片74HC595來實(shí)現(xiàn)對8個LED的控制,如果需要使用更多LED,可以采用多片級聯(lián)的方式,不需要改動前面的電路結(jié)構(gòu)。
4程序設(shè)計
SEP3203 的GPIO復(fù)用端口,既可用作片內(nèi)外設(shè)的輸入輸出口也可用作數(shù)字輸入輸出口。本設(shè)計中用到了10個GPIO復(fù)用端口。在系統(tǒng)初始化時,需將這10個GPIO復(fù)用端口用作通用數(shù)字輸入輸出口,這是通過將寄存器PORT_SEL的相應(yīng)位置0來實(shí)現(xiàn)的。通過設(shè)置寄存器PORT_DIR來決定GPIO口信號的I/O方向,當(dāng)PORT_DIR為1時,GPIO口為輸出端口,為0時,則為輸入端口。在系統(tǒng)運(yùn)行 時,可以通過對寄存器PORT_DATA對應(yīng)位置位來實(shí)現(xiàn)GPIO口的置高置低,0為低電平,1為高電平。
系統(tǒng)運(yùn)行時,通過控制SEP3203的47,58引腳,在需要的時候選通合適的74HC244,實(shí)現(xiàn)輸入與顯示的接口復(fù)用。程序運(yùn)行流程如圖3。
4.1 鍵盤輸入
將SEP3203的47引腳置低,58引腳置高,此時鍵盤輸入有效。這里采用鍵盤掃描方式,SEP3203的48至51這四個引腳作為鍵盤掃描的輸出,52、54、55這三個引腳作為鍵盤掃描的輸入。
4.2 顯示控制
根據(jù)JM12684G的時序,可以編寫如下寫數(shù)據(jù)操作子程序。寫命令子程序與之相似。
void OutPortData(U8 data) /*寫數(shù)據(jù)操作時序*/
{
inti;
U32data_set = DataToSend(data) ;//將數(shù)據(jù)設(shè)置為24位格式(寫模式)
RWCheckEx(); //測試指令和數(shù)據(jù)讀寫狀態(tài)
Set_CS(1); //設(shè)置片選有效
Set_CLK(0);//設(shè)置時鐘為低
for(i=0; I < 24; i++)
{
Set_CLK(1);//設(shè)置時鐘為高
GPB0 = (data_set>>(23 – i)) 0x1; //按位傳送數(shù)據(jù)
Delay();//延時50ns;
Set_CLK(0);//設(shè)置時鐘為低
Delay();//延時50ns;
}
Set_CS(0); //設(shè)置片選無效
}
漢字顯示時只需要把漢字的GB 碼寫入LCM 寄存器,寫入時候要注意顯示漢字坐標(biāo)即可。系統(tǒng)運(yùn)行表明,該子程序完全可以滿足需要,顯示界面沒有出現(xiàn)缺字現(xiàn)象,而且顯示流暢。
5 結(jié)論
本文提出的處理器與液晶顯示外設(shè)及鍵盤的接口復(fù)用設(shè)計,實(shí)現(xiàn)了系統(tǒng)所要求的各種復(fù)雜界面的顯示與外部輸入要求。實(shí)際應(yīng)用中,該設(shè)計用于微機(jī)繼電保護(hù)系統(tǒng),具有可靠性高、成本低等優(yōu)點(diǎn),具有很高的實(shí)用價值。
參考文獻(xiàn):
[1] 南京博芯電子技術(shù)有限公司.SEP3203F50用戶手冊[P].2004.
[2] 深圳俊顯電子有限公司. 液晶顯示模塊技術(shù)手冊JM12864G[P].儀表技術(shù)與傳感器,2004.
[3] 田軍夏,路平.中文LCD與單片機(jī)的4種常用接口電路[J].儀表技術(shù)與傳感器,2005(3):1-2.
[4] 沙占有,孟志水,等.單片機(jī)外圍電路設(shè)計[M].北京:電子工業(yè)出版社,2003.
[4] 時龍興,凌明,王學(xué)香.嵌入式系統(tǒng)[M].北京:電子工業(yè)出版社,2006.
楊曉健(1983-), 男, 江蘇啟東人, 碩士,主要研究方向:嵌入式系統(tǒng)與微機(jī)繼電保護(hù)。