《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STM32的RA8806控制器LCD設(shè)計(jì)
基于STM32的RA8806控制器LCD設(shè)計(jì)
現(xiàn)代電子技術(shù)
孔 勰,,唐 盛,,姚 萌
摘要: RA8806點(diǎn)矩陣液晶顯示控制器內(nèi)置字庫、觸摸屏和鍵盤接口,具有功能強(qiáng),、移植性強(qiáng)、性價(jià)比高的特點(diǎn),,比其他同類產(chǎn)品更受設(shè)計(jì)人員歡迎,。采用RA8806控制器的LCD可以充分滿足STM32嵌入式系統(tǒng)的各種液晶顯示需求,為了實(shí)現(xiàn)這一目的,,給出了在STM32上驅(qū)動(dòng)該控制器的方法,、觸摸屏校準(zhǔn)的思路及部分程序,并在實(shí)驗(yàn)中得以實(shí)現(xiàn),。
Abstract:
Key words :

摘要:RA8806點(diǎn)矩陣液晶顯示控制器內(nèi)置字庫,、觸摸屏和鍵盤接口,具有功能強(qiáng),、移植性強(qiáng),、性價(jià)比高的特點(diǎn),比其他同類產(chǎn)品更受設(shè)計(jì)人員歡迎,。采用RA8806控制器的LCD可以充分滿足STM32嵌入式系統(tǒng)的各種液晶顯示需求,,為了實(shí)現(xiàn)這一目的,給出了在STM32上驅(qū)動(dòng)該控制器的方法、觸摸屏校準(zhǔn)的思路及部分程序,,并在實(shí)驗(yàn)中得以實(shí)現(xiàn),。
關(guān)鍵詞:RA8806;LCD,;STM32,;液晶觸摸屏

0 引言
    在現(xiàn)代電子設(shè)備中,觸摸屏的應(yīng)用使電子設(shè)備更智能化,、人性化,。在手機(jī)、導(dǎo)航儀,、電子儀器,、咨詢終端等設(shè)備中,作為信息交流的媒介,,觸摸屏具有界面編程靈活,、反應(yīng)速度快、功耗低,、體積小的特點(diǎn),。
    RA8806是一個(gè)文字與繪圖模式相結(jié)合的點(diǎn)矩陣液晶顯示控制器,最大能驅(qū)動(dòng)640×240或320×480分辨率的LCD液晶觸摸屏,,可以顯示文字,、圖片、符號(hào)等復(fù)雜信息,,支持文字,、圖片混合顯示和區(qū)域卷動(dòng),支持90°,,180°,,270°的文字旋轉(zhuǎn)顯示,支持4/8 b的8080和6800系列兩種MPU接口,,提供4×8或8×8的鍵盤掃描接口,,提供使用者自行創(chuàng)建字型及符號(hào)的功能,可以進(jìn)行文字對(duì)齊,、設(shè)置粗體字,、設(shè)置行間距和LCD對(duì)比度、背光調(diào)節(jié),。
    STM32系列嵌入式芯片是常用的微控制器芯片,,本文使用的是內(nèi)核為32位CotrexTM-M3的STM32F103,并行LCD接口兼容8080/6800模式,,通過配置FSMC來連接LCD,。在實(shí)驗(yàn)中還把UCGUI軟件移植入STM32F103中,,UCGUI是一種嵌入式系統(tǒng)中常用的圖形支持軟件,適用于各種尺寸的LCD,,將UCGUI軟件移植入微控制器可以方便的繪制圖形,、文字、控件等人機(jī)交互界面元素,。

1 RA8806數(shù)據(jù)總線接口方式
    常見的RA8806是用I/O或總線方式與單片機(jī)或嵌入式系統(tǒng)連接,,本文采用的是320×240分辨率的RA8806控制器觸摸屏以總線方式與STM32F103連接,連接的電路如圖1所示,。

a.JPG


    在設(shè)計(jì)中將BUSY引腳9空置,,復(fù)位引腳11接高電平,可以通過STM32F130復(fù)位完成整個(gè)電路復(fù)位,。RA8806和STM32F103都是采用了Intel 8080模式連接,數(shù)據(jù)總線寬度為8 b,。

2 軟件設(shè)計(jì)
2.1 軟件初始化
    系統(tǒng)軟件初始化包括STM32F103初始化,、UCGUI初始化和RA8806控制器初始化,在STM32F103初始化中FSMC的配置為:
b.JPG
    在RA8806控制器中,,觸摸屏有自動(dòng)模式和手動(dòng)模式兩種,,自動(dòng)模式和手動(dòng)模式中,都可以通過觸碰產(chǎn)生中斷讀取觸碰坐標(biāo)值,,手動(dòng)模式還可以通過輪詢觸碰事件讀取坐標(biāo),,在實(shí)驗(yàn)中采用的是手動(dòng)模式中的輪詢方式,這種方式的流程圖如圖2所示,。在初始化RA8806時(shí),,寄存器TPCR1,TPCR2,,INTR須按流程圖設(shè)置,,DWWR=AWRR=0x27,DWHR=AWBR=0xEF,,其他寄存器默認(rèn)設(shè)置,。

c.JPG


2.2 觸摸屏坐標(biāo)
    觸摸屏的坐標(biāo)分為邏輯坐標(biāo)和物理坐標(biāo),邏輯坐標(biāo)為用戶觸摸是手指所點(diǎn)擊屏幕的坐標(biāo),,物理坐標(biāo)為觸摸屏顯示的實(shí)際坐標(biāo),,邏輯坐標(biāo)和物理坐標(biāo)比較接近,如果相差太多就需要校準(zhǔn),。
    RA8806是通過一個(gè)10位的A/D轉(zhuǎn)換器連接4線電阻式觸摸屏,,用戶觸摸后產(chǎn)生的邏輯坐標(biāo)存于TPXR,TPYR和TPZR 3個(gè)寄存器中,,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)行計(jì)算,再分別取出TPZR寄存器中的低二位進(jìn)行或運(yùn)算,,得出x,,y軸的坐標(biāo)。這個(gè)邏輯坐標(biāo)不能直接顯示,,需要進(jìn)行校準(zhǔn)處理后根據(jù)觸摸屏的大小轉(zhuǎn)換為物理坐標(biāo)顯示,,設(shè)計(jì)程序如下:
d.JPG
    如果用戶觸摸的范圍超出了設(shè)定的顯示窗口,就需要對(duì)邏輯坐標(biāo)(x,,y)進(jìn)行判斷,,如果超出了范圍,邏輯坐標(biāo)無效,,就將鼠標(biāo)設(shè)置到對(duì)應(yīng)的邊緣,,反之邏輯坐標(biāo)有效。
2.3 觸摸屏校準(zhǔn)
    由于觸摸屏自身的性能不好,,或使用一段時(shí)間后會(huì)發(fā)現(xiàn)邏輯坐標(biāo)和物理坐標(biāo)的偏差越來越大,,坐標(biāo)不準(zhǔn)造成誤操作影響用戶使用,這樣就要通過校準(zhǔn)程序來減少誤差,。電阻式觸摸屏的電壓成線性均勻分布,,假設(shè)觸摸屏上一點(diǎn)的邏輯坐標(biāo)為(xA,yA),,對(duì)應(yīng)的物理坐標(biāo)為(xDA,,yDA),由電阻式觸摸屏的線性特性可知,,任意一點(diǎn)B的邏輯坐標(biāo)可以用下面公式表示:
    e.JPG
    只需在觸摸屏上取3個(gè)物理坐標(biāo)已知的點(diǎn)A,,B,C,,這3個(gè)點(diǎn)應(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)后計(jì)算的Kx,,Ky,,由圖可以看出兩個(gè)系數(shù)都接近于1,,說明觸摸屏的坐標(biāo)誤差比較小。

g.JPG



3 結(jié)語
    RA8806控制器在軟件設(shè)計(jì)上方便,、靈活,,能滿足開發(fā)人員對(duì)中等尺寸觸摸屏控制器的要求,豐富的功能和較高的性價(jià)比使RA8806控制器的LCD在市場(chǎng)上有很大的優(yōu)勢(shì),,基于RA8806的觸摸屏與STM32嵌入式系統(tǒng)通過數(shù)據(jù)總線方式相結(jié)合,,可以構(gòu)造出理想的人機(jī)交互界面,具有廣闊的應(yīng)用領(lǐng)域,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。