51單片機系統(tǒng)中的觸摸屏坐標(biāo)算法
引 言:
人機對話的界面種類有很多,比如顯示器、LED、LCD及帶觸摸屏的LCD等。其中后者是最近幾年剛發(fā)展起來的一項新技術(shù),它通過計算機技術(shù)處理聲音、圖像、視頻、文字、動畫等信息,并在這些信息間建立一定的邏輯關(guān)系,使之成為能交互地進行信息存取和輸出的集成系統(tǒng)。換而言之,它能綜合信息發(fā)布者的意愿和接受者對信息的需求及接受習(xí)慣,對信息進行收集、加工、整合并雙向式傳播。觸摸屏系統(tǒng)符合簡便、經(jīng)濟、高效的原則,具有人機交互性好、操作簡單靈活、輸入速度快等特點。它與迅猛發(fā)展的計算機網(wǎng)絡(luò)和多媒體技術(shù)相結(jié)合,使用者僅僅用手指觸摸屏幕,就能進行信息檢索、數(shù)據(jù)分析,甚至可以做出身臨其境、栩栩如生的效果;較鍵盤輸入簡單、直觀、快捷,具有豐富多采的表現(xiàn)能力,比以往任何傳媒更具親合力。
觸摸屏和51單片機接口,可以使一些小系統(tǒng)的操作更加方便、快捷。使用觸摸屏?xí)r最重要的問題是確定坐標(biāo)位置,即確定觸點位置是否在該鍵的有效區(qū)域之內(nèi)。由于51系列單片機的匯編語言不具備其它高級語言所具有的豐富庫函數(shù)及邏輯運算能力,所以如何用51單片機簡捷準(zhǔn)確地完成這一任務(wù),便成為應(yīng)用中迫切需要解決的問題。
在實際應(yīng)用中,我們采用了ADS7843作為觸摸屏的控制器。關(guān)于ADS7843的原理及工作方式,已經(jīng)有很多文章發(fā)表,而如何確認(rèn)坐標(biāo)位置卻很少提及。本文僅就坐標(biāo)確定問題做如下分析。
1 轉(zhuǎn)換模式
ADS7843的轉(zhuǎn)換精度有8位和12位兩種,可以精確到X或Y方向上的1/256和1/4096。我們采用清華蓬遠公司的PDA240160觸摸顯示屏,外形尺寸是61.6mm×42.4mm,所以沒必要采用12位A/D轉(zhuǎn)換,而只需要8位A/D轉(zhuǎn)換就足以達到所需精度,即最小分度是X、Y長度方向的 1/256。
2 坐標(biāo)確定
PDA240160觸摸顯示屏的坐標(biāo)如圖1。
其中,(X,Y)是一個圖表按鍵的中心坐標(biāo),(X’,Y’)是右下角坐標(biāo),(X”,Y”)是其左上角的坐標(biāo)。在觸及屏幕時,觸點只要在(X’,Y’)和(X”,Y”)矩形區(qū)域內(nèi)均認(rèn)為是觸摸該鍵有效。假設(shè)一個32×32點陣的圖標(biāo)按鍵中心坐標(biāo)(X,Y)為(50,50),那么(X’,Y’)就是(35,40),(X”,Y”)就是(65,60)。在觸摸時只要得到的鍵坐標(biāo)在(X’,Y’)和(X”,Y”)之間,即認(rèn)為是觸摸到了該鍵。而在該鍵坐標(biāo)范圍內(nèi)的值又是如此之多,如何來處理得到的坐標(biāo)呢?最初我們采取散轉(zhuǎn)方式,結(jié)果是程序太冗長、可讀性差且可移植性不好,不能作為子程序來調(diào)用。經(jīng)過探討分析,我們最后采取了查表的方式。
首先,制作如下所示的坐標(biāo)表(包含當(dāng)前屏幕上的所有鍵的兩個角坐標(biāo)):
表中每一行均代表一個鍵值的兩個角坐標(biāo)(需要放置完圖標(biāo)按鍵后調(diào)用相關(guān)程序確定兩個角的坐標(biāo)值),最后的字符001~n是每個鍵值的標(biāo)志(簡寫A)。這個標(biāo)志很有用,在以后的程序中會看到。
3 程序流程圖與程序清單
程序流程圖如圖2 :
[!--empirenews.page--]
子程序清單見網(wǎng)絡(luò)補充版(www.dpj.com.cn)。其中XA、YA存儲的是A/D轉(zhuǎn)換后的坐標(biāo)值。程序已經(jīng)調(diào)試通過,敬請讀者驗證。
結(jié) 語
經(jīng)過反復(fù)測試后得出:每個觸摸鍵的反應(yīng)都很靈敏,而且在每個圖標(biāo)鍵的有效區(qū)域內(nèi)都能反應(yīng)。證明這個思路簡捷、易懂、可移植性好,在確定觸摸按鍵位置坐標(biāo)時是非常具有實際應(yīng)用價值的。
參考文獻
1 Burr-Brown公司. ADS7843 Data Book. 1998
2 何立民. 單片機應(yīng)用技術(shù)選編(5). 北京:北京航空航天大學(xué)出版社,1997
3 萬福君, 潘松峰,等. 單片微機原理系統(tǒng)設(shè)計與應(yīng)用. 合肥: 中國科學(xué)技術(shù)大學(xué)出版社, 2001
4 胡冰,吳升艷,等. ADS7843觸摸屏接口. 國外電子元器件. 2002(7):27~29