摘要:RA8806點矩陣液晶顯示控制器內置字庫、觸摸屏和鍵盤接口,具有功能強、移植性強、性價比高的特點,比其他同類產品更受設計人員歡迎。采用RA8806控制器的LCD可以充分滿足STM32嵌入式系統(tǒng)的各種液晶顯示需求,為了實現(xiàn)這一目的,給出了在STM32上驅動該控制器的方法、觸摸屏校準的思路及部分程序,并在實驗中得以實現(xiàn)。
關鍵詞:RA8806;LCD;STM32;液晶觸摸屏
0 引言
在現(xiàn)代電子設備中,觸摸屏的應用使電子設備更智能化、人性化。在手機、導航儀、電子儀器、咨詢終端等設備中,作為信息交流的媒介,觸摸屏具有界面編程靈活、反應速度快、功耗低、體積小的特點。
RA8806是一個文字與繪圖模式相結合的點矩陣液晶顯示控制器,最大能驅動640×240或320×480分辨率的LCD液晶觸摸屏,可以顯示文字、圖片、符號等復雜信息,支持文字、圖片混合顯示和區(qū)域卷動,支持90°,180°,270°的文字旋轉顯示,支持4/8 b的8080和6800系列兩種MPU接口,提供4×8或8×8的鍵盤掃描接口,提供使用者自行創(chuàng)建字型及符號的功能,可以進行文字對齊、設置粗體字、設置行間距和LCD對比度、背光調節(jié)。
STM32系列嵌入式芯片是常用的微控制器芯片,本文使用的是內核為32位CotrexTM-M3的STM32F103,并行LCD接口兼容8080/6800模式,通過配置FSMC來連接LCD。在實驗中還把UCGUI軟件移植入STM32F103中,UCGUI是一種嵌入式系統(tǒng)中常用的圖形支持軟件,適用于各種尺寸的LCD,將UCGUI軟件移植入微控制器可以方便的繪制圖形、文字、控件等人機交互界面元素。
1 RA8806數(shù)據總線接口方式
常見的RA8806是用I/O或總線方式與單片機或嵌入式系統(tǒng)連接,本文采用的是320×240分辨率的RA8806控制器觸摸屏以總線方式與STM32F103連接,連接的電路如圖1所示。
在設計中將BUSY引腳9空置,復位引腳11接高電平,可以通過STM32F130復位完成整個電路復位。RA8806和STM32F103都是采用了Intel 8080模式連接,數(shù)據總線寬度為8 b。
2 軟件設計
2.1 軟件初始化
系統(tǒng)軟件初始化包括STM32F103初始化、UCGUI初始化和RA8806控制器初始化,在STM32F103初始化中FSMC的配置為:
在RA8806控制器中,觸摸屏有自動模式和手動模式兩種,自動模式和手動模式中,都可以通過觸碰產生中斷讀取觸碰坐標值,手動模式還可以通過輪詢觸碰事件讀取坐標,在實驗中采用的是手動模式中的輪詢方式,這種方式的流程圖如圖2所示。在初始化RA8806時,寄存器TPCR1,TPCR2,INTR須按流程圖設置,DWWR=AWRR=0x27,DWHR=AWBR=0xEF,其他寄存器默認設置。
2.2 觸摸屏坐標
觸摸屏的坐標分為邏輯坐標和物理坐標,邏輯坐標為用戶觸摸是手指所點擊屏幕的坐標,物理坐標為觸摸屏顯示的實際坐標,邏輯坐標和物理坐標比較接近,如果相差太多就需要校準。
RA8806是通過一個10位的A/D轉換器連接4線電阻式觸摸屏,用戶觸摸后產生的邏輯坐標存于TPXR,TPYR和TPZR 3個寄存器中,TPXR中存放了x軸坐標的高8位,TPYR中存放了y軸坐標的高8位,TPZR的bit[1:0]是x軸的低二位,bit[3:2]是y軸的低二位。
為了便于處理邏輯坐標,將TPXR和TPYR寄存器的數(shù)據左移2位進行計算,再分別取出TPZR寄存器中的低二位進行或運算,得出x,y軸的坐標。這個邏輯坐標不能直接顯示,需要進行校準處理后根據觸摸屏的大小轉換為物理坐標顯示,設計程序如下:
如果用戶觸摸的范圍超出了設定的顯示窗口,就需要對邏輯坐標(x,y)進行判斷,如果超出了范圍,邏輯坐標無效,就將鼠標設置到對應的邊緣,反之邏輯坐標有效。
2.3 觸摸屏校準
由于觸摸屏自身的性能不好,或使用一段時間后會發(fā)現(xiàn)邏輯坐標和物理坐標的偏差越來越大,坐標不準造成誤操作影響用戶使用,這樣就要通過校準程序來減少誤差。電阻式觸摸屏的電壓成線性均勻分布,假設觸摸屏上一點的邏輯坐標為(xA,yA),對應的物理坐標為(xDA,yDA),由電阻式觸摸屏的線性特性可知,任意一點B的邏輯坐標可以用下面公式表示:
只需在觸摸屏上取3個物理坐標已知的點A,B,C,這3個點應該分布均勻不靠近邊緣以免不準確,通過讀取TPXR,TPYR,TPZR寄存器讀出邏輯坐標求出Kx,Ky,求出Kx,Ky后由式(1)校準邏輯坐標與物理坐標,圖3(a)為校準的界面,圖3(b)為校準后計算的Kx,Ky,由圖可以看出兩個系數(shù)都接近于1,說明觸摸屏的坐標誤差比較小。
3 結語
RA8806控制器在軟件設計上方便、靈活,能滿足開發(fā)人員對中等尺寸觸摸屏控制器的要求,豐富的功能和較高的性價比使RA8806控制器的LCD在市場上有很大的優(yōu)勢,基于RA8806的觸摸屏與STM32嵌入式系統(tǒng)通過數(shù)據總線方式相結合,可以構造出理想的人機交互界面,具有廣闊的應用領域。