51單片機系統(tǒng)中的觸摸屏坐標算法
引 言:
本文引用地址:http://m.butianyuan.cn/article/171688.htm人機對話的界面種類有很多,比如顯示器、LED、LCD及帶觸摸屏的LCD等。其中后者是最近幾年剛發(fā)展起來的一項新技術(shù),它通過計算機技術(shù)處理聲音、圖像、視頻、文字、動畫等信息,并在這些信息間建立一定的邏輯關(guān)系,使之成為能交互地進行信息存取和輸出的集成系統(tǒng)。換而言之,它能綜合信息發(fā)布者的意愿和接受者對信息的需求及接受習慣,對信息進行收集、加工、整合并雙向式傳播。觸摸屏系統(tǒng)符合簡便、經(jīng)濟、高效的原則,具有人機交互性好、操作簡單靈活、輸入速度快等特點。它與迅猛發(fā)展的計算機網(wǎng)絡和多媒體技術(shù)相結(jié)合,使用者僅僅用手指觸摸屏幕,就能進行信息檢索、數(shù)據(jù)分析,甚至可以做出身臨其境、栩栩如生的效果;較鍵盤輸入簡單、直觀、快捷,具有豐富多采的表現(xiàn)能力,比以往任何傳媒更具親合力。
觸摸屏和51單片機接口,可以使一些小系統(tǒng)的操作更加方便、快捷。使用觸摸屏時最重要的問題是確定坐標位置,即確定觸點位置是否在該鍵的有效區(qū)域之內(nèi)。由于51系列單片機的匯編語言不具備其它高級語言所具有的豐富庫函數(shù)及邏輯運算能力,所以如何用51單片機簡捷準確地完成這一任務,便成為應用中迫切需要解決的問題。
在實際應用中,我們采用了ADS7843作為觸摸屏的控制器。關(guān)于ADS7843的原理及工作方式,已經(jīng)有很多文章發(fā)表,而如何確認坐標位置卻很少提及。本文僅就坐標確定問題做如下分析。
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 坐標確定
PDA240160觸摸顯示屏的坐標如圖1。
其中,(X,Y)是一個圖表按鍵的中心坐標,(X’,Y’)是右下角坐標,(X”,Y”)是其左上角的坐標。在觸及屏幕時,觸點只要在(X’,Y’)和(X”,Y”)矩形區(qū)域內(nèi)均認為是觸摸該鍵有效。假設一個32×32點陣的圖標按鍵中心坐標(X,Y)為(50,50),那么(X’,Y’)就是(35,40),(X”,Y”)就是(65,60)。在觸摸時只要得到的鍵坐標在(X’,Y’)和(X”,Y”)之間,即認為是觸摸到了該鍵。而在該鍵坐標范圍內(nèi)的值又是如此之多,如何來處理得到的坐標呢?最初我們采取散轉(zhuǎn)方式,結(jié)果是程序太冗長、可讀性差且可移植性不好,不能作為子程序來調(diào)用。經(jīng)過探討分析,我們最后采取了查表的方式。
首先,制作如下所示的坐標表(包含當前屏幕上的所有鍵的兩個角坐標):
表中每一行均代表一個鍵值的兩個角坐標(需要放置完圖標按鍵后調(diào)用相關(guān)程序確定兩個角的坐標值),最后的字符001~n是每個鍵值的標志(簡寫A)。這個標志很有用,在以后的程序中會看到。
3 程序流程圖與程序清單
程序流程圖如圖2 :
評論