999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ALIENTKE MiniSTM32開發板的觸摸屏實驗

2014-06-11 08:24:50王曉
電腦迷 2014年5期
關鍵詞:程序

王曉

摘 要 ALIENTKE MiniSTM32開發板本身并沒有觸摸屏控制器,但是它支持觸摸屏,可以通過外接帶觸摸屏的LCD模塊(比如ALIENTEK TFTLCD模塊),來實現觸摸屏控制。利用軟件模擬來實現對TFTLCD模塊的觸摸屏控制,最終實現手寫功能。

關鍵詞 ALIENTKE MiniSTM32開發板 TFTLCD模塊 觸摸屏控制 手寫功能

中圖分類號:TP33 文獻標識碼:A

1觸摸屏TFTLCD簡介

TFT-LCD即薄膜晶體管液晶顯示器,其英文全稱為Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設置有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態特性與掃描線數無關,因此大大提高了圖像質量。TFT-LCD也被叫做真彩液晶顯示器。

1.1電阻式觸摸屏顯示原理

電阻式觸摸屏是利用壓力感應進行控制的,主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬導電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層,它的內表面也涂有一層涂層、在他們之間有許多細小的透明隔離點把兩層導電層隔開絕緣。當手指觸摸屏幕時,兩層導電層在觸摸點位置就有了接觸,電阻發生變化,在X和Y兩個方向上產生信號,然后送觸摸屏控制器。當控制器偵測到這一接觸并計算出(X,Y)的位置,再根據獲得的位置模擬鼠標的方式運作,這就是電阻式觸摸屏的最基本的原理。

1.2電阻式觸摸屏控制器XPT2046簡介

ALIENTEK TFTLCD模塊自帶的觸摸屏控制芯片為XPT2046。XPT2046是一款4導線制觸摸屏控制器,內含12位分辨率125KHz轉換速率逐步逼近型A/D轉換器。XPT2046支持從1.5V到5.25V的低電壓I/O接口。XPT2046能通過執行兩次A/D轉換查出被按的屏幕位置,除此之外,還可以測量加在觸摸屏上的壓力。內部自帶2.5V參考電壓可以作為輔助輸入、溫度測量和電池監測模式之用,電池監測的電壓范圍可以從0V到6V。XPT2046片內集成有一個溫度傳感器。

2硬件設計

實驗功能簡介:開機的時候先通過24C02的數據判斷觸摸屏是否已經校準過,如果沒有校準,則執行校準程序,校準過后再進入手寫程序。如果已經校準了,就直接進入手寫程序,此時可以通過按動屏幕來實現手寫輸入。屏幕上會有一個清空的操作區域(RST),點擊這個地方就會將輸入全部清除,恢復白板狀態。程序會設置一個強制校準,就是通過按KEY0來實現,只要按下KEY0就會進入強制校準程序。

3軟件設計

該實驗最核心的程序模塊應該屬于觸摸屏校準代碼了。觸摸屏的校準通過void Touch_Adjust(void)函數實現。觸摸屏校正原理:觸摸屏是一種絕對坐標系統,特點是每一次定位坐標與上一次定位坐標沒有關系,每次觸摸的數據通過校準轉為屏幕上的坐標,不管在什么情況下,觸摸屏這套坐標在同一點的輸出數據是穩定的。不過由于技術原理的原因,不能保證絕對坐標定位,點不準,這就是觸摸屏最怕出現的問題:漂移。

很多應用觸摸屏的系統啟動后先要執行校準程序。通常應用程序中使用的LCD坐標是以像素為單位的。比如說:左上角的坐標是一組非0的數值,比如(20,20),而右下角的坐標為(220,300)。這些點的坐標都是以像素為單位的,而從觸摸屏中讀出的是點的物理坐標,其坐標軸的方向、XY值的比例因子、偏移量都與LCD坐標不同,可以在程序中使用一個函數(我們采用Convert_Pos函數)中把物理坐標首先轉換為像素坐標,然后再賦給POS結構,達到坐標轉換的目的。

校正思路:在了解了校正原理之后,我們可以得出下面的一個從物理坐標到像素坐標的轉換關系式:

LCDx=xfac*Px+xoff;

LCDy=yfac*Py+yoff;

其中(LCDx,LCDy)是在LCD上的像素坐標,(Px,Py)是從觸摸屏讀到的物理坐標。xfac,yfac分別是X軸方向和Y軸方向的比例因子,而xoff和yoff則是這兩個方向的偏移量。

這樣只要事先在屏幕上面顯示4個點(這四個點的坐標是已知的),分別按這四個點就可以從觸摸屏讀到4個物理坐標,這樣就可以通過待定系數法求出xfac、yfac、xoff、yoff這四個參數。我們保存好這四個參數,在以后的使用中,我們把所有得到的物理坐標都按照這個關系式來計算,得到的就是準確的屏幕坐標,從而達到觸摸屏校準的目的。

void Touch_Adjust(void)

{

u16 pos_temp[4][2];

u8 cnt=0;

u16 d1,d2;

u32 tem1,tem2;

float fac;

while(1)

{

if(Pen_Point.Key_Sta==Key_Down)

{

if(Read_TP_Once())

{

pos_temp[cnt][0]=Pen_Point.X;

pos_temp[cnt][1]=Pen_Point.Y;

cnt++;

}

switch(cnt)

{

case 1:

LCD_Clear(WHITE);

Drow_Touch_Point(220,20);

break;

case 2:

LCD_Clear(WHITE);

Drow_Touch_Point(20,300);

break;

case 3:

LCD_Clear(WHITE);

Drow_Touch_Point(220,300);

break;

case 4: tem1=abs(pos_temp[0][0]-pos_temp[1][0]);

tem2=abs(pos_temp[0][1]-pos_temp[1][1]);

tem1*=tem1;

tem2*=tem2;

d1=sqrt(tem1+tem2);

tem1=abs(pos_temp[2][0]-pos_temp[3][0]);

tem2=abs(pos_temp[2][1]-pos_temp[3][1]);

tem1*=tem1;

tem2*=tem2;

d2=sqrt(tem1+tem2);

fac=(float)d1/d2;

tem1=abs(pos_temp[0][0]-pos_temp[2][0]);

tem2=abs(pos_temp[0][1]-pos_temp[2][1]);

tem1*=tem1;

tem2*=tem2;

d1=sqrt(tem1+tem2);

tem1=abs(pos_temp[1][0]-pos_temp[3][0]);

tem2=abs(pos_temp[1][1]-pos_temp[3][1]);

tem1*=tem1;

tem2*=tem2;

d2=sqrt(tem1+tem2);

fac=(float)d1/d2;

if(fac<0.95||fac>1.05)

{

cnt=0;

LCD_Clear(WHITE);

Drow_Touch_Point(20,20);

continue; (下轉第31頁)(上接第2頁)

}

tem1=abs(pos_temp[1][0]-pos_temp[2][0]);

tem2=abs(pos_temp[1][1]-pos_temp[2][1]);

tem1*=tem1;

tem2*=tem2;

d1=sqrt(tem1+tem2);

tem1=abs(pos_temp[0][0]-pos_temp[3][0]);

tem2=abs(pos_temp[0][1]-pos_temp[3][1]);

tem1*=tem1;

tem2*=tem2;

d2=sqrt(tem1+tem2);

274

fac=(float)d1/d2;

Pen_Point.xfac=(float)200/(pos_temp[1][0]-pos_temp[0][0]);

Pen_Point.xoff=(240-Pen_Point.xfac*(pos_temp[1][0]+

pos_temp[0][0]))/2;

Pen_Point.yfac=(float)280/(pos_temp[2][1]-pos_temp[0][1]);

Pen_Point.yoff=(320-Pen_Point.yfac*(pos_temp[2][1]+

pos_temp[0][1]))/2;

POINT_COLOR=BLUE;

LCD_Clear(WHITE);

LCD_ShowString(35,110,"Touch Screen Adjust OK!");

delay_ms(1000);

LCD_Clear(WHITE);

return;

}

}

}

}

4下載與測試

在代碼編譯成功之后,我們通過下載代碼到ALIENTEK MiniSTM32開發板上,可以看到LCD顯示如圖1所示。

如果已經校準過了,則在等待2秒之后進入手寫界面,同時DS0開始閃爍,界面如圖2所示。

5結論與展望

我們借助ALIENTKE MiniSTM32開發板,編寫與設計程序,實現了TFTLCD觸摸屏控制,可以在觸摸屏上用筆或者手指輸入信息,非常方便,而且界面友好。

參考文獻

[1] 章毓晉.圖象處理和分析.北京:清華大學出版社,1999.

[2] 郎銳.數字圖像處理學.北京:希望電子出版社,2002.

[3] 楊淑瑩.圖像模式識別――VC++技術實現.北京:清華大學出版社,2005.

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 精品视频第一页| 国产激情第一页| 香蕉久久国产超碰青草| 欧美激情综合一区二区| 国产玖玖玖精品视频| 免费一级毛片不卡在线播放| 真实国产乱子伦高清| 色婷婷成人| 色婷婷狠狠干| 欧洲日本亚洲中文字幕| 黄色网站在线观看无码| 欧美精品xx| 日韩色图区| 国产91精品久久| 91最新精品视频发布页| 美女高潮全身流白浆福利区| 国产原创演绎剧情有字幕的| 亚洲熟女中文字幕男人总站| 亚洲日韩每日更新| 天天综合天天综合| 97国产在线播放| 一区二区三区国产精品视频| a级毛片毛片免费观看久潮| 国产欧美日韩专区发布| 午夜丁香婷婷| 亚洲午夜18| 五月婷婷精品| 亚洲精品无码久久久久苍井空| 天堂久久久久久中文字幕| 亚洲天堂色色人体| 视频一区亚洲| 波多野衣结在线精品二区| 国产成人亚洲精品色欲AV| 国产午夜无码专区喷水| 久久99国产综合精品1| 国产美女叼嘿视频免费看| 亚洲人成电影在线播放| 国产精品无码AⅤ在线观看播放| 色综合a怡红院怡红院首页| 亚洲中文字幕97久久精品少妇| 91麻豆国产视频| 日韩精品一区二区三区中文无码| 中文字幕久久精品波多野结| 色综合久久88色综合天天提莫| 欧美成人免费午夜全| 91无码视频在线观看| 久久久久人妻一区精品色奶水| 亚洲婷婷六月| 在线观看免费黄色网址| 亚洲男人天堂2018| 国产成人1024精品下载| 2020精品极品国产色在线观看 | 素人激情视频福利| 亚洲一区二区成人| 亚洲综合国产一区二区三区| 国产高清色视频免费看的网址| 九九精品在线观看| 97综合久久| 精品夜恋影院亚洲欧洲| a级毛片网| 国产精品蜜臀| 人妻丰满熟妇啪啪| 亚洲成aⅴ人在线观看| 亚洲清纯自偷自拍另类专区| 久久男人视频| 午夜视频免费试看| 国产精品成人不卡在线观看| 日本精品影院| 国产精品免费p区| 色综合狠狠操| 国产精品视频导航| 亚洲国产中文精品va在线播放| 亚洲欧美另类日本| 亚洲美女一级毛片| 天天爽免费视频| 亚洲第一成人在线| 日韩成人在线一区二区| 欧美精品啪啪一区二区三区| 久久综合激情网| 国产精品妖精视频| 亚洲日韩精品综合在线一区二区| 久久香蕉国产线看观看式|