1 引言
由于點陣液晶顯示具有高清晰度和高分辨率,可顯示復雜文字和圖形,耗電省等優(yōu)點,在移動通訊、儀器儀表、電子設備等方面得到廣泛應用。而觸摸屏作為良好的人機接口一直應用于儀器儀表。觸摸屏和點陣液晶顯示模塊的相互配合使用,使得人機界面更加完善美觀。這里介紹的基于RA8806控制器的LCD就是內建觸摸屏控制器的點陣液品顯示模塊。
2 RA8806控制器簡介
RA8806是點矩陣液晶顯示控制器,支持320x240、四灰階、雙圖層文字及圖形顯示模式,內建中、日、英、歐文字型碼,可將文字旋轉90°、180°、270°顯示。RA8806內建智能型觸摸掃描控制器,支持4線電阻式觸摸屏接口,帶8x8的鍵盤掃描接口,可編程設置的脈寬調制用來調節(jié)LCD面板的對比度或背光。RA8806也提供如區(qū)域卷動、文字反白、粗體文字、文字放大、內存清除等功能。RA8806還提供一項創(chuàng)新功能即無雪花模式,可有效移除當頻繁對內存讀寫所產生的雪花。
3 RA8806和51單片機接口電路
RA8806支持4位或8位數據總線的8080/6800系列MPU接口,其外部接口引腳功能描述如表1所示。基于RA8806控制器的LCD和51系列單片機的接口采用總線或直接I/O方式,基于總線的接口方式如圖1所示,數據總線直接和單片機的PO端口相連,P20選擇指令或數據,P27作為片選信號,因此LCD的命令端口地址是0x7100,數據端口地址是0x7000。LCD的復位信號直接從51單片機的復位信號取反得到,為保證LCD復位信號的穩(wěn)定,單片機復位的對地電阻不能大于4.7 kΩ。LCD的復位也可采用基于直接I/O方式的LCD接口方式(圖2),用一個單片機引腳產生復位信號。
4 軟件設計
基于RA8806控制器的LCD軟件設計包括基本讀寫函數、字符串顯示函數、畫線函數、圖像顯示函數、觸摸屏相關函數等。這里重點介紹基本讀寫函數的編程方法,編程注意事項及觸摸屏的開發(fā)過程。
4.1 基本讀寫函數
基于RA8806控制器的LCD和51單片機接口的基本讀寫函數主要包括:指令寫入函數(寫數據到寄存器),緩沖器讀取函數,內存寫入和讀取函數,以及狀態(tài)讀取函數。這些函數主要是按照RA8806數據資料給出的時序要求進行編寫。單片機和 RA8806接口方式不同,編程方式也不同。以RA8806指令寫入函數為例,時序要求如圖3所示。
若RA8806和單片機的接口按圖1的總線方式,指令簡單,接口時序由單片機自動形成,其指令如下:
4.2 RA8806編程注意事項
(1)內存寫入與讀取 當寫數據到內存(可能是顯示內存或字型產生內存)時,必須先執(zhí)行緩存器編號為B0h的“寫入指令周期”。反之,如果讀取內存中的數據時,則必須先執(zhí)行緩存器編號為B1h的“寫入指令周期”。
(2)字符模式和圖形模式 RA8806支持兩種自MPU寫入內存的模式:字符模式和圖形模式。在圖形模式時,數據以點陣的方式直接寫入內存;而在字符模式下,寫入的數據以字碼的形式被寫入RA8806,而寫入的字碼會再到CGROM中讀出相對的字型碼而后寫入內存。因此,當需要畫線或顯示圖像時,必須設置LCD 工作在圖形方式;當顯示字符時,務必切換到文字方式。
(3)LCD的復位和初始化 為保證RA8806無誤操作,RA8806供電后要進行復位。復位方式可采用圖1方式,也可采用圖2方式,或單獨采用阻容方式。復位后要初始化設定RA8806內部緩存器,即編寫一個初始化函數,并在復位后運行。
RA8806功能強大,只有包括卷動、反白、雙圖層、四灰度等功能,以及獨特的消除閃爍模式功能,建議使用C51編程,以函數的形式實現以上功能,將這些函數封裝在一個C程序中,通過頭文件供主程序調用。
4.3 觸摸屏編程
RA8806內建一組10位A/D轉換和控制電路,以連接4線電阻式觸摸屏。一般,電阻式觸摸屏由兩層很薄的電阻式屏幕組成,當外力施加在面板上的某一點時,兩層屏幕將被觸碰,相對于觸碰的位置,系統將偵測到一個(X,Y)坐標值。觸摸屏查詢方式流程(圖4)的作用是開啟觸屏功能,判斷當觸控事件發(fā)生時,首先讀回對應的(X,Y)坐標值(兩組10位A/D轉換值),再轉換為對應的屏幕坐標。
觸摸控制電路的10位A/D轉換器產生的(X、Y)坐標都在1 023~0中,而基于RA8806的LCD分辨率是320x240,程序要將觸摸屏的(X,Y)坐標值轉換為LCD坐標值,確定兩者間的轉換關系一般通過觸摸屏的校準程序完成。最簡單的校準算法是兩點校準:在LCD的左上角和右下角顯示2個校準圖標(長為20的十字光標),十字光標的交叉點即為校準點。分別觸摸2個十字中心的交點,可得到兩組觸摸屏的(X,Y)坐標值,而LCD的2個十字中心的坐標已知,由式(1)可得到水平和垂直方向的斜率和截距,然后將水平和垂直方向的斜率和截距保存在EEPROM中。
對于要求觸摸定位不很精確的場合,比如僅以字符為單位的定位精度,也可在系統中省去校準程序,而在程序轉換中給出一個相近的斜率和截距。
5 結束語
基于RA8806的LCD與同類產品相比,具有功能強、調試簡單、編程靈活和性價比高等優(yōu)點,且內建4線電阻式觸摸屏接口,內置中文字庫和ASCII碼字庫。因此基于RA8806的LCD可廣泛應用于智能儀表、數字化儀器等。