內(nèi)置觸摸屏與鍵盤接口的LCD控制器RA8806的應用
LCD作為一種常見的顯示設備。具有功耗低、體積小、重量輕、顯示的信息量大等特點,尤其是在便攜設備中,更是占據(jù)著絕對主流的地位。對于字符或數(shù)字的簡單信息顯示,通??捎枚未a式LCD驅動器。而對于復雜的信息顯示,則必須由點陣式LCD驅動顯示,最常見的點陣式LCD控制/驅動器中,有不帶中文字庫的LCD驅動器T6963,也有帶中文字庫的LCD驅動器ST7920。
對于輸入設備,最常見的是鍵盤。在小型控制系統(tǒng)中,鍵盤通常利用處理器的I/O端口掃描矩陣式行列。但占用I/O端口線,并降低處理器效率。另一種方法是利用專用的鍵盤接口器件,如英特爾的8279。周立功的ZLG7289等。觸摸屏作為一種簡單、自然的輸入設備。具有堅固耐用、反應速度快、節(jié)省空間、易于交流等優(yōu)點。觸摸屏使人機交互更為直截,極大方便用戶操作。常見的觸摸屏控制器有ADS7846。但不論是鍵盤還是觸摸屏,使用外擴器件的實現(xiàn)方法無疑會增加電路的復雜性和成本。
RA8806是一個雙圖層中英文字符與繪圖模式的點陣LCD控制器,最大支持320×240點分辨率的LCD面板(擴展模式下,可支持640×240或是320×480分辨率的LCD面板)。RA8806不僅內(nèi)置中文字庫,還提供了8×8的鍵盤掃描接口和4線電阻式觸摸屏控制接口,為中型尺寸LCD顯示控制提供了完整人機交互的解決方案。這里全面介紹RA8806的硬件配置方法以及軟件編程方法。
2 RA8806主要特性
RA8806的內(nèi)部結構如圖l所示。RA8806內(nèi)置了4×8或8x8的鍵盤掃描接口,支持多鍵同時按下及按鍵時間長短判斷功能;RA8806觸摸屏控制器,支持了4線電阻式觸摸屏掃描接口;一路可編程PWM控制器,可調(diào)節(jié)LCD面板的對比度或背光亮度;在與控制器接口方面,RA8806能夠支持4位或8位數(shù)據(jù)總線寬度的8080/6800系列控制器;在顯示效果方面,RA8806能夠提供4級灰度顯示。此外還提供了屏幕局部滾動、文字反白、粗體顯示、文字放大與旋轉等顯示功能。
3 RA8806接口及編程
3.1 RA8806控制接口
RA8806支持8080和6800兩種微控制器接口,由接口類型選擇引腳MI的狀態(tài)決定;MI接低電平時,選擇8080接口,反之,選擇6800接口。數(shù)據(jù)總線的寬度由引腳DB的狀態(tài)決定:當DB接高電平時,數(shù)據(jù)總線的寬度為8位,反之,總線寬度為4位。在并行模式下,只要將RA8806和微控制器的對應引腳相連即可。對RA8806的控制訪問,與8080/6800控制器對存儲器的訪問方式相同。需要注意的是引腳RS用來確定要傳送的數(shù)據(jù)類型:RS為高電平時表示命令周期,RS為低電平表示為數(shù)據(jù)周期,對RA8806的訪問類型如表l所示。
3.2 RA8806鍵盤接口
RA8806的矩陣鍵盤掃描接口應用起來非常方便,只要將KOUT[7:O]行掃描輸出和KIN[7:O]列信號輸人接上相應的按鍵即可,如圖2所示。
與鍵盤掃描相關的寄存器有:掃描控制寄存器KSCR0和KSCRl,掃描數(shù)據(jù)寄存器KSDRO~KSDR2。在KSCRO中,最高位DB7是鍵盤掃描功能使能位。DB6為鍵盤矩陣大小選擇位,DB6=1,鍵盤大小為4x8;DB6=O,鍵盤大小為8x8。DB[5:4]決定鍵盤消抖動的采樣次數(shù)DB3為按鍵長按判斷功能使能位。DB[2:0]決定鍵盤掃描的速度。KSCRl用來設置鍵盤喚醒功能及長按時間調(diào)整等。通過配置相應命令寄存器,RA8806的鍵盤掃描電路就能正常工作。
當有按鍵事件發(fā)生時RA8806可以通過引腳INT向系統(tǒng)控制器請求中斷,由于RA8806的所有中斷共用一個中斷請求引腳INT。因此系統(tǒng)控制器需要讀取RA8806的中斷狀態(tài)寄存器INTR,以判斷中斷來源,下面以Keil C51為例,給出鍵盤中斷程序的主要代碼:
3.3 RA8806觸摸屏接口
RA8806內(nèi)置一組10位A/D轉換器和控制電路,用來連接4線電阻式觸摸屏。只要將RA8806的X1和X2、Yl和Y2分別與觸摸屏的對應引腳相連,并在Yl引腳接39~51 kΩ的上拉電阻即可,如圖3所示。當觸摸屏被有效觸摸時,觸摸點的X,Y坐標值被記錄在RA8806的相應寄存器中,同時可以向微控制器申請中斷。
與觸摸屏相關的寄存器有:觸摸屏控制寄存器TPCRl和TPCR2;觸摸屏數(shù)據(jù)寄存器TPXR、TPYR和TPZR。TPCRl的DB7是觸摸屏使能位;DB[6:4]決定采樣觸摸屏數(shù)據(jù)前的等待時間;DB[2:0]選擇觸摸屏A/D轉換器的轉換速度;TPCR2用來設置觸摸屏的工作模式。觸摸屏的數(shù)據(jù)寄存器TPXR和TPYR用來保存觸摸點X、Y坐標值的高8位,而低2位則保存在TPZR,如果對觸摸屏的分辨率要求不高,可忽略TPZR的內(nèi)容。當觸摸屏被接觸時,信號不夠穩(wěn)定,為了避免誤動作,通常采取連續(xù)讀兩次坐標值進行對比的方法加以消除,觸摸屏中斷服務程序的流程圖如圖4所示。
3.4 RA8806顯示內(nèi)存訪問
RA8806的顯示內(nèi)存有CGRAM、DDRAMl和DDRAM2 3部分,微控制器訪問的是哪一部分內(nèi)存,RA8806要顯示的是哪部分內(nèi)存的內(nèi)容,都是由內(nèi)存訪問模式寄存器MAMR來決定。需要注意的是要將待顯示的內(nèi)容寫入到顯示內(nèi)存時,必須先執(zhí)行內(nèi)存寫命令寄存器MWCR的命令寫周期,之后才能將顯示內(nèi)容寫入到顯示內(nèi)存中;同樣要讀取顯示內(nèi)存時,也必須先執(zhí)行內(nèi)存讀命令寄存器MRCR的命令寫周期,之后才能讀取顯示內(nèi)存。下面以字符放大顯示為例,給出部分程序代碼段:
4 結語
內(nèi)置中文字庫的LCD驅動器RA8806,支持常見的8080/6800系列控制器并行接口,能夠支持放大、旋轉、反白、粗體及滾動等多種顯示效果。此外,RA8806還提供觸摸屏和鍵盤掃描接口,大大簡化了系統(tǒng)硬件電路設計和軟件設計。實驗結果表明,利用RA8806和低成本的控制器實現(xiàn)人機交互界面是構成微機控制系統(tǒng)人機交互的理想方案。