国产福利在线高清导航大全-国产福利在线-国产福利影视-国产福利一区二区麻豆-成熟少妇大片免费看-成熟女人毛片WWW免费版在线

當(dāng)前位置:首頁(yè) > 觸控技術(shù) > 觸摸屏論文
觸摸屏論文

基于C8051F040單片機(jī)系統(tǒng)“三點(diǎn)法”校準(zhǔn)觸摸屏方法

基于C8051 的電阻式觸摸屏的校準(zhǔn)
張旭
(四平職業(yè)大學(xué)電子工程學(xué)院, 吉林四平136000)

摘要:基于C8051F040 單片機(jī),詳細(xì)講述了四線式電阻觸摸屏與單片機(jī)的電路連接及基于此硬件系統(tǒng)的"三點(diǎn)法"校準(zhǔn)觸摸屏的方法。系統(tǒng)分為單片機(jī)模塊,LCD 顯示模塊及四線式電阻觸摸屏模塊。在安裝或使用過程中,LCD 與觸摸屏之間容易產(chǎn)生較小的機(jī)械偏差,利用程序校準(zhǔn)后的系統(tǒng)能夠很好地顯示觸摸的內(nèi)容。

關(guān)鍵詞:C8051F040;觸摸屏;三點(diǎn)法;校準(zhǔn)

中圖分類號(hào):TP334.3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1008-8725(2011)11-0055-03

0 引言

    在現(xiàn)代生活中,觸摸屏的使用越來(lái)越普遍,無(wú)論是手持設(shè)備(如手機(jī)、照相機(jī)、PDA ),還是辦公設(shè)備(如銀行取款機(jī)、讀報(bào)機(jī)、車間控制器),都與觸摸技術(shù)密切相關(guān)。觸摸屏因其直觀、易學(xué)和易操作而深受大眾喜愛,在許多儀器中逐漸取代了老式的按鍵操作 設(shè)備。觸摸屏分為電阻、電容、表面聲波、紅外線掃描和壓力傳感式等類,各類的工作原 理都不相同,其中以電阻觸摸屏使用最廣。電阻觸摸屏一般以四線為主,所謂的四線是指 整個(gè)觸摸系統(tǒng)只需要4 根線連接到控制器的I/O 上進(jìn)行觸摸操作的控制。

    觸摸屏必須與LCD 液晶顯示屏合在一起使用才有意義,將觸摸屏放在LCD 上,點(diǎn)擊觸 摸屏就等于點(diǎn)擊了LCD,可以將LCD 上被點(diǎn)擊的位置激活,從而產(chǎn)生相應(yīng)的響應(yīng)。

    在生產(chǎn)觸摸產(chǎn)品時(shí),在將觸摸屏與LCD 合在一起的安裝過程中,總會(huì)存在一些不精確 的操作,使得觸摸屏與LCD 不能完全吻合(機(jī)械偏差);或者在用戶使用過程中,由于某些原因,使得觸摸屏與LCD產(chǎn)生了機(jī)械偏差,兩者之間產(chǎn)生平移或者成一定角度。偏差導(dǎo) 致用戶點(diǎn)擊的位置與所要產(chǎn)生的響應(yīng)經(jīng)常不能一致,如圖2 所示的一種夸張的機(jī)械偏差意圖,點(diǎn)PD 代表LCD 上有響應(yīng)的點(diǎn),點(diǎn)P 代表機(jī)械偏差后在觸摸屏上要點(diǎn)擊的點(diǎn),也即必 須點(diǎn)擊P 點(diǎn)的位置才能讓LCD 上的PD 有響應(yīng),這顯然不是用戶所希望的。這時(shí)要么重新將觸摸屏與LCD 對(duì)準(zhǔn),要么進(jìn)行觸摸屏的校準(zhǔn),而采用一鍵校準(zhǔn)的操作顯得更加方便和簡(jiǎn) 捷。所謂校準(zhǔn)也就是即使觸摸屏與LCD 屏平移和/或旋轉(zhuǎn)了,通過校準(zhǔn),仍能精確地點(diǎn)擊屏上的點(diǎn)而產(chǎn)生響應(yīng)。

1 系統(tǒng)框圖及硬件設(shè)計(jì)

    系統(tǒng)框圖見圖1。系統(tǒng)由單片機(jī)模塊、觸摸屏模塊及LCD 模塊三部分構(gòu)成。單片機(jī)模 塊包括主芯片C8051F040 及其它的一些外圍輔助電路。

 

nclick="window.open('/file/uploads/allimg/120315/3_120315115422_1.jpg')" border="0" alt="圖1 系統(tǒng)框圖" src=http://sjb.91mobiles.cn/skin/default/image/nopic.gif _fcksavedurl=http://sjb.91mobiles.cn/skin/default/image/nopic.gif />
圖1 系統(tǒng)框圖
 

    C8051F040 芯片是由Cygnal 集成產(chǎn)品公司生產(chǎn)設(shè)計(jì)的混合信號(hào)系統(tǒng)級(jí)芯片(SoC), 具有與MCS-51 指令集完全兼容的高速CIP-51 內(nèi)核;峰值速度可達(dá)25MIPS,在一個(gè)芯片內(nèi)
集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采集或控制系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè)及其它功能 部件,具有大容量的可在系統(tǒng)(ISP)和在應(yīng)用(IAP) 編程的FLASH 存儲(chǔ)器。同時(shí),C8051F 單片機(jī)與MSC-51 指令集完全兼容,方便用戶編程應(yīng)用。

    VCC 模塊采用LM1117 芯片,通過5V 電源轉(zhuǎn)換成3.3V 電源供給C8051F040 使用。

    JTAG 接口是用戶程序下載口,利用C8051 芯片的TMS,TCK,TDI,TDO 四個(gè)接口與10 針的接頭相連,通過USB 轉(zhuǎn)換器與電腦相連,在電腦上編寫的程序可以方便地下載到C8051F040 中。

    晶振采用22.1184 MHz 的振源,與單片機(jī)的XTAL1 和XTAL2 相連,供給單片機(jī)工作時(shí)鐘。

    觸摸屏和LCD 模塊均使用的是單片機(jī)的固定I/O 口,其中觸摸屏模塊利用AD7843 芯片[2]驅(qū)動(dòng)3.5寸的四線式電阻觸摸屏,AD7843 的DCLK,CS,DIN,BUSY,DOUT 和PENTRQ 與單片機(jī)的P1.0~P1.5 相連,AD7843 的X+,X-,Y+,Y-四個(gè)引腳與四線式觸摸屏相連;LCD 模塊利用11 個(gè)I/O 與單片機(jī)相連,其中DB0~DB7 與單片機(jī)的P2.0~P2.7 相連,CS,RS,WR 與P3.4~P3.6 相連。

2 “三點(diǎn)法”校準(zhǔn)的基本原理

2.1 校準(zhǔn)算法介紹

    觸摸屏與LCD 之間的機(jī)械偏差會(huì)導(dǎo)致錯(cuò)誤點(diǎn)擊或點(diǎn)擊不中。

    為了容易理解,先分析LCD 和觸摸屏的左下角在同一點(diǎn)的情況,僅僅是觸摸屏繞著該點(diǎn)旋轉(zhuǎn)了一個(gè)小角度,如圖2 所示。分析時(shí),可以以LCD 的左下角為坐標(biāo)原點(diǎn),將LCD 定義為XOY 坐標(biāo)系。

 

nclick="window.open('/file/uploads/allimg/120315/3_120315115342_1.jpg')" border="0" alt="圖2 LCD 與觸摸屏的坐標(biāo)圖" src=http://sjb.91mobiles.cn/skin/default/image/nopic.gif _fcksavedurl=http://sjb.91mobiles.cn/skin/default/image/nopic.gif />
圖2 LCD 與觸摸屏的坐標(biāo)圖
 

    如圖2, 在坐標(biāo)系XOY 中,點(diǎn)PD 是LCD 上的點(diǎn),P 是旋轉(zhuǎn)后的觸摸屏上的對(duì)應(yīng)點(diǎn),也即點(diǎn)擊P 點(diǎn)可以讓PD 點(diǎn)產(chǎn)生響應(yīng)。設(shè)點(diǎn)PD 的坐標(biāo)為(XD,YD),其與原點(diǎn)O 的距離為RD,設(shè)P 點(diǎn)的坐標(biāo)為(X,Y),其與O 點(diǎn)的距離為R。由上圖可得如下關(guān)系式:
θD=θ-θq
PD=(XD,YD)=(RDcosθD,RDsinθD)=(RDcos(θ-θq),RDsin
(θ-θq))=(RD(cosθcosθq+sinθsinθq),RD(sinθcosθqcosθsinθq))  (1)

    若θq 比較小,也即觸摸屏只與LCD 有一個(gè)小角度(小于15°)的旋轉(zhuǎn)偏差。則有:sinθq=θq,cosθq=1

    代入(1)式有:PD=(RD(cosθ+θq•sinθ),PD(sinθ-θq•cosθ)

    故有:XD=RDcosθ+θqRDsinθ,YD=RDsinθ-θqRDcosθ

    觸摸屏和LCD 屏所用的尺寸雖然相同,但是分辨率卻不同,比如觸摸屏的分辨率為2048*2048,而LCD 的分辨率為320*240,這樣導(dǎo)致的結(jié)果是空間上相同長(zhǎng)度的線段在觸摸屏上和在LCD 上代表的長(zhǎng)度是不同的。可設(shè):
X 方向上:RD=KXR
Y 方向上:RD=KYR

    其中KX, KY 是某一常系數(shù),與觸摸屏和LCD 屏的分辨率有關(guān)。則根據(jù)
XD=RDcosθ+θqRDsinθ
YD=RDsinθ-θqRDcosθ

可以有:
XD=KXRcosθ+θqKXRsinθ
YD=KYRsinθ-θqKYRcosθ
又因?yàn)镻=(X,Y)=(Rcosθ,Rsinθ)
所以:XD=KXX+θqKXY,YD=-θqKYX+KYY
可設(shè):A=KX,B=θqKX,D=-θqKY,E=KY
于是:XD=AX+BY,YD=DX+EY (2)

    上面分析的只是觸摸屏與LCD 屏在同一原點(diǎn)下有個(gè)小角度的旋轉(zhuǎn)的情況,對(duì)于在旋轉(zhuǎn)基礎(chǔ)上再加上有平移的情況,設(shè)在X 方向上平移了C 距離,在Y 方向上平移了F 距離,根據(jù)坐標(biāo)平移的原理,(2)式可以變換如下:
XD=AX+BY+C,YD=DX+EY+F (3)

    (3)式中,(X,Y)是觸摸屏上的坐標(biāo),(XD,YD)是LCD 上的坐標(biāo)。

2.2 校準(zhǔn)算法驗(yàn)證

    從上面(3)式可以看出,XD 與(X,Y)之間存在A,B,C 三個(gè)未知變量,YD 與(X,Y)之間存在D,E,F(xiàn) 三個(gè)未知變量。因此只需點(diǎn)擊LCD 上事先設(shè)定好的3 個(gè)(XD,YD)點(diǎn),在觸摸屏得到3 組(X,Y)點(diǎn),即可解出A~F 的值,也即知道觸摸屏與LCD 之間的坐標(biāo)關(guān)系,以此即可校準(zhǔn)觸摸屏。設(shè)在LCD 上事先設(shè)定的3 個(gè)比較分開的點(diǎn)為:(XD1,YD1),(XD2,YD2),(XD3,YD3),透過觸摸屏點(diǎn)擊這3個(gè)點(diǎn)得到的觸摸屏上的坐標(biāo)點(diǎn)分別對(duì)應(yīng)為(X1,Y1),(X2,Y2),(X3,Y3)。

于是得到關(guān)系方程組:
XD1=AX1+BY1+C
YD1=DX1+EY1+F
XD2=AX2+BY2+C
YD2=DX2+EY2+F
XD3=AX3+BY3+C
YD3=DX3+EY3+F

    解上面的六元一次方程組,即可得到A~F 的值。當(dāng)A~F 的值已知時(shí),(3)式也就確定了,產(chǎn)生了機(jī)械偏差后的觸摸屏與LCD 之間就有了明確的關(guān)系。當(dāng)透過觸摸屏點(diǎn)擊LCD 上未知某處時(shí),通過得到的觸摸屏(X,Y)點(diǎn)代入(3)式,即可解出LCD上精確對(duì)應(yīng)的點(diǎn)(XD,YD),讓此處產(chǎn)生響應(yīng)。

3 軟件實(shí)現(xiàn)

    基于C8051F040 單片機(jī)的觸摸屏校準(zhǔn)程序,采用的是新華龍電子有限公司Silicon Labs IDE 軟件。

    它是一套完整的軟件程序設(shè)計(jì)軟件,提供了用于開發(fā)和測(cè)試項(xiàng)目的所有工具。使用Silicon Labs IDE編譯、鏈接和運(yùn)行程序時(shí),必須提前在電腦里安裝完整版Keil 8051 工具,在Tool Chain Integration 對(duì)話框中為Keil 8051 工具重新設(shè)置路徑。

    在Silicon Labs IDE 工具中編寫C8051F040 的外圍程序,首先讓C8051F040 能夠工作,同時(shí)識(shí)別LCD 和觸摸屏,并能在LCD 上寫數(shù)據(jù),能夠識(shí)別觸摸屏上的觸點(diǎn)坐標(biāo)[5-6]。在此基礎(chǔ)上,再編寫觸摸屏的校準(zhǔn)程序,流程圖如圖3 所示。

 

nclick="window.open('/file/uploads/allimg/120315/3_120315115231_1.jpg')" border="0" alt="圖3 觸摸屏校準(zhǔn)程序流程圖" src=http://sjb.91mobiles.cn/skin/default/image/nopic.gif _fcksavedurl=http://sjb.91mobiles.cn/skin/default/image/nopic.gif />

圖3 觸摸屏校準(zhǔn)程序流程圖

4 結(jié)論

    基于C8051F040 單片機(jī),設(shè)計(jì)了在此單片機(jī)上如何進(jìn)行四線式觸摸屏和LCD 屏的硬件連接,分析了基于此硬件系統(tǒng)的觸摸屏校準(zhǔn)程序的算法實(shí)現(xiàn)及軟件編寫。實(shí)驗(yàn)發(fā)現(xiàn),該方法能夠很好地針對(duì)觸摸屏與LCD 屏之間存在旋轉(zhuǎn)偏差角度小于15°的系統(tǒng)進(jìn)行一鍵校準(zhǔn),校準(zhǔn)后的系統(tǒng)能夠達(dá)到點(diǎn)擊后精確響應(yīng)的用戶要求。

參考文獻(xiàn):

[1] 潘琢金.C8051F 單片機(jī)應(yīng)用解析[M].北京:北京航空航天大學(xué)出版社,2002.
[2] ADS7843. Datasheet. BURR-BROWN.1998.
[3] 胡冰,吳升艷.ADS7843 觸摸屏接口[J].國(guó)外電子元器件,2002(7):27-29.
[4] 周超,王琛,方彥軍.基于W77E58 的LCD 控制及觸摸屏接口設(shè)計(jì)[J].儀表技術(shù)與傳感器,2009(3):70-71.
[5] 黃彬.基于單片機(jī)的液晶觸摸屏控制系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2005(7):50-51.
[6] LCD-320G240D. Datasheet. VISHAY. 2002.


相關(guān)文章
精彩評(píng)論:
0  相關(guān)評(píng)論
主站蜘蛛池模板: 永春县| 托克托县| 子洲县| 茶陵县| 张家口市| 镇远县| 洛宁县| 石泉县| 镇平县| 大足县| 木兰县| 景德镇市| 盐山县| 大埔区| 崇州市| 五河县| 丹阳市| 玛曲县| 浮梁县| 察哈| 利辛县| 海口市| 宁德市| 灌阳县| 乌海市| 咸宁市| 姚安县| 龙陵县| 渭南市| 介休市| 承德市| 岢岚县| 嘉鱼县| 杭州市| 密云县| 从化市| 曲阳县| 吐鲁番市| 永年县| 南陵县| 申扎县|