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