畢業(yè)設(shè)計(論文)觸摸式LCD人機接口設(shè)計_第1頁
畢業(yè)設(shè)計(論文)觸摸式LCD人機接口設(shè)計_第2頁
畢業(yè)設(shè)計(論文)觸摸式LCD人機接口設(shè)計_第3頁
畢業(yè)設(shè)計(論文)觸摸式LCD人機接口設(shè)計_第4頁
畢業(yè)設(shè)計(論文)觸摸式LCD人機接口設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、工 學(xué) 院 畢 業(yè) 設(shè) 計( 論 文 )題 目:觸摸式lcd人機接口設(shè)計 專 業(yè): 電 子 信 息 工 程 班 級: 電 信 072 班 姓 名: 學(xué) 號: 指導(dǎo)教師: 日 期: 2010 .12 目錄1觸摸屏的概況及簡介11.1概況11.2 簡介22系統(tǒng)器件介紹和工作原理22.1 tftlcd簡介222 xpt2046芯片42.2.1 芯片功能42.2.2 芯片功能特性42.2.3 xpt管腳描述52.2.4 xpt極限參數(shù)62.2.5 基本原理描述62.3壓力傳感器63硬件設(shè)計73.1 單片機最小系統(tǒng)模塊設(shè)計73.1.1 復(fù)位電路83.1.2 時鐘電路93.2 觸摸屏硬件設(shè)計93.3 基于

2、xpt2406的控制電路144 系統(tǒng)軟件設(shè)計144.1觸屏校準(zhǔn)作用144.2主程序流程圖154.3 c語言的簡介164.4關(guān)鍵代碼165 下載與調(diào)試196 結(jié)論21致謝22參考文獻23附錄25觸摸式lcd人機接口設(shè)計工學(xué)院電信072指導(dǎo)老師: 摘要:本文介紹了觸摸屏的軟硬件實現(xiàn)方案,同時介紹了如何實現(xiàn)人機交互。系統(tǒng)模擬對tftlcd(thin film transistor-liquid crystal display)模塊的觸摸屏設(shè)計,最終實現(xiàn)一個手寫的功能。介紹了觸摸屏tftlcd的硬件設(shè)計和基于芯片xpt2406控制觸摸屏的控制電路,以及軟件的c編程。關(guān)鍵字:觸摸屏 tftlcd xpt

3、2406 c編程1觸摸屏的概況及簡介1.1概況 隨著多媒體信息查詢的與日俱增,人們越來越多地談到觸摸屏,因為觸摸屏不僅適用于中國多媒體信息查詢的國情,而且觸摸屏具有堅固耐用、反應(yīng)速度快、節(jié)省空間、易于交流等許多優(yōu)點。利用這種技術(shù),我們用戶只要用手指輕輕地碰計算機顯示屏上的圖符或文字就能實現(xiàn)對主機操作,從而使人機交互更為直截了當(dāng),這種技術(shù)大大方便了那些不懂電腦操作的用戶。 觸摸屏作為一種最新的電腦輸入設(shè)備,它是目前最簡單、方便、自然的一種人機交互方式。它賦予了多媒體以嶄新的面貌,是極富吸引力的全新多媒體交互設(shè)備。觸摸屏在我國的應(yīng)用范圍非常廣闊,主要是公共信息的查詢;如電信局、稅務(wù)局、銀行、電力等

4、部門的業(yè)務(wù)查詢;城市街頭的信息查詢;此外應(yīng)用于領(lǐng)導(dǎo)辦公、工業(yè)控制、軍事指揮、電子游戲、點歌點菜、多媒體教學(xué)、房地產(chǎn)預(yù)售等。將來,觸摸屏還要走入家庭。 隨著使用電腦作為信息來源的與日俱增,觸摸屏以其易于使用、堅固耐用、反應(yīng)速度快、節(jié)省空間等優(yōu)點,使得系統(tǒng)設(shè)計師們越來越多的感到使用觸摸屏的確具有相當(dāng)大的優(yōu)越性。觸摸屏出現(xiàn)在中國市場上至今只有短短的幾年時間,這個新的多媒體設(shè)備還沒有為許多人接觸和了解,包括一些正打算使用觸摸屏的系統(tǒng)設(shè)計師,還都把觸摸屏當(dāng)作可有可無的設(shè)備,從發(fā)達國家觸摸屏的普及歷程和我國多媒體信息業(yè)正處在的階段來看,這種觀念還具有一定的普遍性。事實上,觸摸屏是一個使多媒體信息或控制改頭

5、換面的設(shè)備,它賦予多媒體系統(tǒng)以嶄新的面貌,是極富吸引力的全新多媒體交互設(shè)備。發(fā)達國家的系統(tǒng)設(shè)計師們和我國率先使用觸摸屏的系統(tǒng)設(shè)計師們已經(jīng)清楚的知道,觸摸屏對于各種應(yīng)用領(lǐng)域的電腦已經(jīng)不再是可有可無的東西,而是必不可少的設(shè)備。它極大的簡化了計算機的使用,即使是對計算機一無所知的人,也照樣能夠信手拈來,使計算機展現(xiàn)出更大的魅力。解決了公共信息市場上計算機所無法解決的問題。 隨著城市向信息化方向發(fā)展和電腦網(wǎng)絡(luò)在國民生活中的滲透,信息查詢都已用觸摸屏實現(xiàn)-顯示內(nèi)容可觸摸的形式出現(xiàn)。1.2 簡介 我們一般液晶所用的觸摸屏,最多的就是電阻式觸摸屏了(多點觸摸屬于電容式觸摸屏,比如m8,iphone等支持多點

6、觸摸的手機所用的屏就是電容式的觸摸屏),alientek tftlcd自帶的觸摸屏屬于電阻式觸摸屏,下面簡單介紹下電阻式觸摸屏的原理。 電阻式觸摸屏利用壓力感應(yīng)進行控制。電阻觸摸屏的主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導(dǎo)電電阻)導(dǎo)電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層、它的內(nèi)表面也涂有一層涂層、在他們之間有許多細(xì)小的(小于1/1000英寸)的透明隔離點把兩層導(dǎo)電層隔開絕緣。當(dāng)手指觸摸屏幕時,兩層導(dǎo)電層在觸摸點位置就有了接觸,電阻發(fā)生變化,在x和y兩個方向上產(chǎn)生信號,然后送觸摸屏控

7、制器。控制器偵測到這一接觸并計算出(x,y)的位置,再根據(jù)獲得的位置模擬鼠標(biāo)的方式運作。這就是電阻技術(shù)觸摸屏的最基本的原理。電阻屏的特點有:1)是一種對外界完全隔離的工作環(huán)境,不怕灰塵、水汽和油污。2)可以用任何物體來觸摸,可以用來寫字畫畫,這是它們比較大的優(yōu)勢。3)電阻觸摸屏的精度只取決于a/d轉(zhuǎn)換的精度,因此都能輕松達到4096*4096。從以上介紹可知,觸摸屏都需要一個ad轉(zhuǎn)換器, 一般來說是需要一個控制器的。alientek tftlcd模塊選擇的是四線電阻式觸摸屏,這種觸摸屏的控制芯片有很多,包括:ads7843、ads7846、tsc2046、xpt2046和ak4182等。這幾款

8、芯片的驅(qū)動基本上是一樣的,也就是你只要寫出了ads7843的驅(qū)動,這個驅(qū)動對其他幾個芯片也是有效的。而且封裝也有一樣的,完全pintopin。所以在替換起來,很方便。alientek tftlcd模塊自帶的觸摸屏控制芯片為xpt2046。xpt2046是一款4導(dǎo)線制觸摸屏控制器,內(nèi)含12位分辨率125khz轉(zhuǎn)換速率逐步逼近型a/d轉(zhuǎn)換器。xpt2046支持從1.5v到5.25v的低電壓i/o接口。xpt2046能通過執(zhí)行兩次a/d轉(zhuǎn)換查出被按的屏幕位置, 除此之外,還可以測量加在觸摸屏上的壓力。內(nèi)部自帶2.5v參考電壓可以作為輔助輸入、溫度測量和電池監(jiān)測模式之用,電池監(jiān)測的電壓范圍可以從0v到

9、6v。xpt2046片內(nèi)集成有一個溫度傳感器。在2.7v的典型工作狀態(tài)下,關(guān)閉參考電壓,功耗可小于0.75mw。xpt2046采用微小的封裝形式:tssop-16,qfn-16(0.75mm厚度)和vfbga48。工作溫度范圍為-40+85。該芯片完全是兼容ads7843和ads7846的,關(guān)于這個芯片的詳細(xì)使用,可以參考這兩個芯片的datasheet。2系統(tǒng)器件介紹和工作原理2.1 tftlcd簡介2.1.1工作原理 隨著微電子技術(shù)不斷創(chuàng)新和發(fā)展,高性能arm嵌入式系統(tǒng)已廣泛應(yīng)用于各個領(lǐng)域中。人們在可視化效果的追求方面也與日俱增,高性能 rfrlcd不僅可以顯示華麗的界面和高分辨力多媒體,同

10、時,還具有低壓、低功耗、體積小、重量輕和超薄等諸多優(yōu)點。所以具有高品質(zhì)因數(shù)液晶屏的嵌入式系統(tǒng)被廣泛運用于手持設(shè)備、數(shù)字機頂盒、地學(xué)核儀器中。嵌入式開發(fā)系統(tǒng)是一種軟件和硬件的結(jié)合體,是由硬件層、中間層、軟件層和功能層有機結(jié)合實現(xiàn)1個或多個特定功能的功能體n 。未來嵌入式操作系統(tǒng)發(fā)展,軟件與硬件的無縫結(jié)合是必然的趨勢,尤其是本設(shè)計中用到的嵌入式linux操作系統(tǒng),它與硬件芯片的結(jié)合程度比任何其他操作系統(tǒng)更要緊密。 嵌入式系統(tǒng)中tft液晶軟硬件設(shè)計tftlcd的每個像素點都是由集成在自身上的tft來控制的,每個像素點都是有源像素點。當(dāng)嵌入式處理器給出像點時鐘、數(shù)據(jù)使能信號和rgb數(shù)據(jù)信號時,要經(jīng)過液

11、晶配套芯片iz9fc22數(shù)據(jù)掃描來進行時序匹配。多路矩陣電壓源max1664來控制tft開啟關(guān)閉,tft開啟時,數(shù)據(jù)通過源極驅(qū)動器加載到顯示電極,顯示電極和公共電極間的電壓差再作用于液晶,進而達到tftlcd顯示的目的。2.1.2 tftlcd結(jié)構(gòu) tft-lcd的結(jié)構(gòu)如圖一所示,主要元件之功能說明如下: 圖2-1tft-lcd的結(jié)構(gòu)彩色濾光片(cf。color filter) 彩色的lcd需要用到彩色濾光片(color filter),液晶面板透過驅(qū)動ic的電壓改變,使液晶分子排排站或呈扭轉(zhuǎn)狀,形成閘門選擇背光源光線穿透與否,穿透的光線,再經(jīng)由彩色濾光片的處,才能表現(xiàn)出彩色的畫面。彩色濾光片

12、之制作是于玻璃基板上,將紅、綠、藍三原色之有機材料,制作在每一個盡素之內(nèi),如圖圖2-2彩色濾光片黑色陣列在彩色濾光片上。用來遮住r、g、b各pixel間之空隙,可大幅減少lcd光點間彼此因光害所產(chǎn)生的干擾,使畫面更清晰,提升了閱讀上的舒適度,同時也減輕了長期使用所造成的眼部壓力及疲累感。配向膜 配向膜是用來將液晶分子做定位的工作,其前后兩片光罩上的配向膜需互成九十方能將液晶分子依序旋轉(zhuǎn),其制作方式是用棉刷依一定方向刷過,也有使用蒸度的方式配向,過成本較高。 偏光板 液晶顯示器均須使用上下兩片偏光板,其功能即在于將非偏極光轉(zhuǎn)為偏極光,而液晶顯示器就是利用此偏極光加上液晶扭轉(zhuǎn)特性達到控制光線的通過

13、與否,以形成明暗。透明電極 液晶顯示器之液晶分子須有上下方之電極來感應(yīng),控制其旋轉(zhuǎn),而電極必須是透明且能導(dǎo)電之材質(zhì),目前使用ito(銦錫氧化物)。背光光源 由于液晶本身會發(fā)光,必須在液晶顯示面板后方加上背光源(大部分是冷陰極管或led),光線穿透玻璃基板、液晶、彩色濾光片、偏光板等相關(guān)材料,進入人的眼睛形成影像。玻璃基板 玻璃在tft-lcd產(chǎn)業(yè)中扮演的角色好比是半導(dǎo)體產(chǎn)業(yè)中的晶體,因此tft-lcd產(chǎn)業(yè)對玻璃基板表面精度之要求極高。tft-lcd的制程需要真空蒸鍍與蝕刻,所以基板玻璃必須要能忍受強酸強堿之腐蝕、高溫的制程環(huán)境,并且必須具備比矽晶體精密的表面平整與平面起伏度。 22 xpt20

14、46芯片2.2.1 芯片功能xpt2046是一款4導(dǎo)線制觸摸屏控制器,內(nèi)含12位分辨率125khz轉(zhuǎn)換速率逐步逼近型a/d轉(zhuǎn)換器。xpt2046支持從1.5v到5.25v的低電壓i/o接口。xpt2046能通過執(zhí)行兩次a/d轉(zhuǎn)換查出被按的屏幕位置, 除此之外,還可以測量加在觸摸屏上的壓力。內(nèi)部自帶2.5v參考電壓可以作為輔助輸入、溫度測量和電池監(jiān)測模式之用,電池監(jiān)測的電壓范圍可以從0v到6v。xpt2046片內(nèi)集成有一個溫度傳感器。 在2.7v的典型工作狀態(tài)下,關(guān)閉參考電壓,功耗可小于0.75mw。xpt2046采用微小的封裝形式:tssop-16,qfn-16(0.75mm厚度)和vfbga

15、48。工作溫度范圍為-40+85。2.2.2 芯片功能特性 具有4線制觸摸屏接口 具有觸摸壓力測量功能 能直接測量電源電壓(0v6v) 低功耗(260a) 可單電源工作,工作電壓范圍為2.2v5.25v 支持1.5v5.25v電平的數(shù)字i/o口 內(nèi)部自帶2.5v參考電壓 具有125khz的轉(zhuǎn)換速率 采用qspi 和 spi 3線制通信接口 具有可編程的8位或12位的分辨率 具有1路輔助模擬量輸入 能夠自動掉電 封裝小,節(jié)約電路面積:tssop-16,qfn-16(0.75mm厚度)和vfbga48 全兼容tsc2046,ads7843/7846和ak4182 2.2.3 xpt管腳描述表2-1

16、 管腳描述qfn引腳號 tssop引腳號 vfbga引腳號 名稱 說明 1 13 a5 busy 忙時信號線。當(dāng) 為高電平時為高阻狀態(tài) 2 14 a4 din 串行數(shù)據(jù)輸入端。當(dāng) 為低電平時,數(shù)據(jù)在dclk上升沿鎖存進來 3 15 a3 片選信號??刂妻D(zhuǎn)換時序和使能串行輸入輸出寄存器,高電平時adc掉電 4 16 a2 dclk 外部時鐘信號輸入 5 1 b1和c1 vcc 電源輸入端 6 2 d1 xp xp位置輸入端 7 3 e1 yp yp位置輸入端 8 4 g2 xn xn位置輸入端 9 5 g3 yn yn位置輸入端 10 6 g4和g5 gnd 接地 11 7 g6 vbat 電池

17、監(jiān)視輸入端 12 8 e7 aux adc輔助輸入通道 13 9 d7 vref 參考電壓輸入/輸出 14 10 c7 iovdd 數(shù)字電源輸入端 15 11 b7 penirq 筆接觸中斷引腳 16 12 a6 dout 串行數(shù)據(jù)輸出端。數(shù)據(jù)在dclk的下降沿移出,當(dāng) 高電平時為高阻狀態(tài) 2.2.4 xpt極限參數(shù)表格2-2 極限參數(shù)名稱參數(shù)vcc和iovdd電壓-0.3v至+6v模擬輸入信號電壓0.3v至vcc0.3v數(shù)字輸入信號電壓0.3v至iovdd0.3v功耗250mw最大結(jié)溫150工作溫度4085貯存溫度-65150焊接溫度(小于10秒)300注:在極限值之外或任何其他條件下,芯片

18、的工作性能不予保證。2.2.5 基本原理描述 xpt2046是一種典型的逐次逼近型模數(shù)轉(zhuǎn)換器(sar adc),包含了采樣/保持、模數(shù)轉(zhuǎn)換、串口數(shù)據(jù) 輸出等功能。同時芯片集成有一個2.5v的內(nèi)部參考電壓源、溫度檢測電路,工作時使用外部時鐘。xpt2046可以單電源供電,電源電壓范圍為2.7v5.5v。參考電壓值直接決定adc的輸入范圍,參考電壓可以使用內(nèi)部參考電壓,也可以從外部直接輸入1vvcc范圍內(nèi)的參考電壓(要求外部參考電壓源輸出阻抗低)。x、y、z、vbat、temp和aux模擬信號經(jīng)過片內(nèi)的控制寄存器選擇后進入adc,adc可以配置為單端或差分模式。選擇vbat、temp和aux時應(yīng)該

19、配置為單端模式;作為觸摸屏應(yīng)用時,應(yīng)該配置為差分模式,這可有效消除由于驅(qū)動開關(guān)的寄生電阻及外部的干擾帶來的測量誤差,提高轉(zhuǎn)換精度。2.3壓力傳感器 壓力傳感器是工業(yè)實踐中最為常用的一種傳感器,而我們通常使用的壓力傳感器主要是利用壓電效應(yīng)制造而成的,這樣的傳感器也稱為壓電傳感器。我們知道,晶體是各向異性的,非晶體是各向同性的。某些晶體介質(zhì),當(dāng)沿著一定方向受到機械力作用發(fā)生變形時,就產(chǎn)生了極化效應(yīng);當(dāng)機械力撤掉之后,又會重新回到不帶電的狀態(tài),也就是受到壓力的時候,某些晶體可能產(chǎn)生出電的效應(yīng),這就是所謂的極化效應(yīng)??茖W(xué)家就是根據(jù)這個效應(yīng)研制出了壓力傳感器。壓電傳感器中主要使用的壓電材料包括有石英、酒

20、石酸鉀鈉和磷酸二氫胺。其中石英(二氧化硅)是一種天然晶體,壓電效應(yīng)就是在這種晶體中發(fā)現(xiàn)的,在一定的溫度范圍之內(nèi),壓電性質(zhì)一直存在,但溫度超過這個范圍之后,壓電性質(zhì)完全消失(這個高溫就是所謂的“居里點”)。由于隨著應(yīng)力的變化電場變化微?。ㄒ簿驼f壓電系數(shù)比較低),所以石英逐漸被其他的壓電晶體所替代。而酒石酸鉀鈉具有很大的壓電靈敏度和壓電系數(shù),但是它只能在室溫和濕度比較低的環(huán)境下才能夠應(yīng)用。磷酸二氫胺屬于人造晶體,能夠承受高溫和相當(dāng)高的濕度,所以 已經(jīng)得到了廣泛的應(yīng)用。在現(xiàn)在壓電效應(yīng)也應(yīng)用在多晶體上,比如現(xiàn)在的壓電陶瓷,包括鈦酸鋇壓電陶瓷、pzt、鈮酸鹽系壓電陶瓷、鈮鎂酸鉛壓電陶瓷等等。壓電效應(yīng)是壓

21、電傳感器的主要工作原理,壓電傳感器不能用于靜態(tài)測量,因為經(jīng)過外力作用后的電荷,只有在回路具有無限大的輸入阻抗時才得到保存。實際的情況不是這樣的,所以這決定了壓電傳感器只能夠測量動態(tài)的應(yīng)力。壓電傳感器主要應(yīng)用在加速度、壓力和力等的測量中。壓電式加速度傳感器是一種常用的加速度計。它具有結(jié)構(gòu)簡單、體積小、重量輕、使用壽命長等優(yōu)異的特點。壓電式加速度傳感器在飛機、汽車、船舶、橋梁和建筑的振動和沖擊測量中已經(jīng)得到了廣泛的應(yīng)用,特別是航空和宇航領(lǐng)域中更有它的特殊地位。壓電式傳感器也可以用來測量發(fā)動機內(nèi)部燃燒壓力的測量與真空度的測量。也可以用于軍事工業(yè),例如用它來測量槍炮子彈在膛中擊發(fā)的一瞬間的膛壓的變化和

22、炮口的沖擊波壓力。它既可以用來測量大的壓力,也可以用來測量微小的壓力。壓電式傳感器也廣泛應(yīng)用在生物醫(yī)學(xué)測量中,比如說心室導(dǎo)管式微音器就是由壓電傳感器制成的,因為測量動態(tài)壓力是如此普遍,所以壓電傳感器的應(yīng)用就非常廣。除了壓電傳感器之外,還有利用壓阻效應(yīng)制造出來的壓阻傳感器,利用應(yīng)變效應(yīng)的應(yīng)變式傳感器等,這些不同的壓力傳感器利用不同的效應(yīng)和不同的材料,在不同的場合能夠發(fā)揮它們獨特的用途。3硬件設(shè)計總體設(shè)計框如圖3-1所示:xpt2046最小系統(tǒng)tftld模塊 圖3-13.1 單片機最小系統(tǒng)模塊設(shè)計所謂單片機最小系統(tǒng)是指能維持單片機運行行的最簡單配置系統(tǒng)。最小系統(tǒng)包括晶體振蕩電路 、復(fù)位開關(guān)、接插口

23、和電源部分,本系統(tǒng)單片機采用at89c51或其兼容系列,如圖3-3。采用12mhz高精度的晶振,以獲得較穩(wěn)定的時鐘頻率,減小測量誤差。單片機用p1.0端口輸出超聲波轉(zhuǎn)化器所需的40khz方波信號,利用外中斷0口檢測超聲波接受電路輸出的返回信號。 圖3-2最小系統(tǒng)模塊單元圖單片機為系統(tǒng)的主控單元,系統(tǒng)通過p0口將模數(shù)轉(zhuǎn)換后數(shù)字信號輸入cpu,由cpu比較判斷溫度值,運算功能是由運算部件完成的,運算部件的功能是實現(xiàn)數(shù)據(jù)的算術(shù)邏輯運算、位變址處理和數(shù)據(jù)傳送操作。單片機中通過控制部件完成各項控制功能??刂撇考菃纹瑱C的神經(jīng)中樞,它包括時鐘電路、復(fù)位電路、指令寄存器、譯碼以及信息傳送控制部件。它以主振頻

24、率為基準(zhǔn)發(fā)出cpu的時序,對指令進行譯碼,然后發(fā)出各種控制信號,完成一系列定時控制的微操作,用來控制單片機各部分的運行。其中有一些控制信號線能簡化應(yīng)用系統(tǒng)外圍控制邏輯,如控制地址鎖存的地址鎖存信號ale,控制片外程序存儲器運行的片內(nèi)外存儲器選擇信號ea,以及片外取指信號psen。復(fù)位電路的好壞對系統(tǒng)的啟動、停止有極大的影響;精準(zhǔn)的時鐘電路是保證控制精度的前提。因此單片機模塊中對復(fù)位電路與時鐘電路的設(shè)計非常重要。3.1.1 復(fù)位電路 圖3-3單片機的復(fù)位電路單片機的復(fù)位引腳reset出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。本系統(tǒng)采用的復(fù)位方式為上電自動復(fù)位和開關(guān)復(fù)位相結(jié)合的方式。電

25、源接通后,單片機自動復(fù)位,并且在系統(tǒng)運行期間,用按鍵手動操作也能使單片機復(fù)位。上電后電容充電,使reset持續(xù)一段時間的高電平。當(dāng)單片機已在運行當(dāng)中時,按下復(fù)位按鍵后松開,也能使reset為一段時間的高電平,從而實現(xiàn)開關(guān)復(fù)位操作。3.1.2 時鐘電路單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。本控制器采用的是單片機外接石英晶體的內(nèi)部時鐘方式。因為這種方式得到的時鐘信號比較穩(wěn)定。在at89c51內(nèi)部有一個高增益的反向放大器,其輸入端引腳xtal1和xtal2用于外接石英晶體和微調(diào)電容,構(gòu)成振蕩器,再由內(nèi)部的時鐘發(fā)生器對振蕩信號進行二分頻,向cpu提供時鐘信號。圖3-5中電

26、容c1、c2對振蕩頻率起微調(diào)作用,同時兩個電容器起穩(wěn)定振蕩頻率、快速起振的作用。電容容量的選擇范圍一般為30pf10pf,振蕩器的振蕩頻率選擇范圍為1.2mhz12mhz,典型值為6mhz或12mhz。本模塊中電容c1、c2選擇30pf,振蕩頻率選擇12mhz。圖3-4單片機時鐘電路3.2 觸摸屏硬件設(shè)計本節(jié)實驗功能簡介:開機的時候先通過24c01的數(shù)據(jù)判斷觸摸屏是否已經(jīng)校準(zhǔn)過,如果沒有校準(zhǔn),則執(zhí)行校準(zhǔn)程序,校準(zhǔn)過后再進入手寫程序。如果已經(jīng)校準(zhǔn)了,就直接進入手寫程序,此時可以通過按動屏幕來實現(xiàn)手寫輸入。屏幕上會有一個清空的操作區(qū)域(rst),點擊這個地方就會將輸入全部清除,恢復(fù)白板狀態(tài)。程序會

27、設(shè)置一個強制校準(zhǔn),就是通過按key0來實現(xiàn),只要按下key0就會進入強制校準(zhǔn)程序,這個強制校準(zhǔn)程序是必須的。 所要用到的硬件資源如下: 1)ads7843。 2)ds0(外部led0)。 3)key0。 4)tftlcd液晶模塊。 5)24c01。 原理圖如下3.2-1所示:圖3-5tftlcd模塊圖3.2-1 tftlcd模塊采用2*17的2.54公排針與外部連接,接口圖如下圖3.2-2所示 圖3-6alientek 3.2寸tftlcd模塊接口圖該接口同目前主流的幾款stm32開發(fā)板的接口完全兼容,所以模塊除了用在alientek ministm32開發(fā)板上,也可以用在其他開發(fā)板上,當(dāng)然你

28、也可以使用其他接口一樣的lcd模塊放到我們的alientek ministm32開發(fā)板上使用。alientek tftlcd模塊采用80并口口方與外部鏈接,采用16位數(shù)據(jù)線(低了速度太慢,用彩色就沒什么效果了)。該模塊的80并口有如下一些信號線: cs:tftlcd片選信號。 wr:向tftlcd寫入數(shù)據(jù)。 rd:從tftlcd讀取數(shù)據(jù)。 d15:0:16位雙向數(shù)據(jù)線。 rst:硬復(fù)位tftlcd。 rs:命令/數(shù)據(jù)標(biāo)志(0,讀寫命令;1,讀寫數(shù)據(jù))。 80并口在上一節(jié)我們已經(jīng)有詳細(xì)的介紹了,這里我們就不在介紹,需要說明的是,tftlcd模塊的rst信號線和oled模塊一樣,也是直接接到stm

29、32的復(fù)位腳上,并不由軟件控制,這樣可以省下來一個io口。另外我們還需要一個背光控制線來控制tftlcd的背光。所以,我們總共需要的io口數(shù)目為21個。模塊的控制器為ili9320,該控制器自帶顯存,其顯存總大小為172820(240*320*18/8),即18位模式(26萬色)下的顯存量。模塊的16位數(shù)據(jù)線與顯寸的對應(yīng)關(guān)系為565方式,如下圖所示: 圖3-7 16位數(shù)據(jù)與顯存對應(yīng)關(guān)系圖最低5位代表藍色,中間6位為綠色,最高5位為紅色。數(shù)值越大,表示該顏色越深。接下來,我們介紹一下ili9320的幾個重要命令,因為ili9320的命令很多,我們這里不可能一一介紹,有興趣的大家可以找到ili93

30、20的datasheet看看。里面對這些命令有詳細(xì)的介紹。這里我們要介紹的命令列表如下:表格3-1 ili9320常用命令表r0,這個命令,有兩個功能,如果對它寫,則最低位為osc,用于開啟或關(guān)閉振蕩器。而如果對它讀操作,則返回的是控制器的型號。這個命令最大的功能就是通過讀它可以得到控制器的型號,而我們代碼在知道了控制器的型號之后,可以針對不同型號的控制器,進行不同的初始化。因為93xx系列的初始化,其實都比較類似,我們完全可以用一個代碼兼容好幾個控制器。r3,入口模式命令。我們重點關(guān)注的是i/d0、i/d1、am這3個位,因為這3個位控制了屏幕的顯示方向。am:控制gram更新方向。當(dāng)am=

31、0的時候,地址以行方向更新。當(dāng)am=1的時候,地址以列方向更新。i/d1:0:當(dāng)更新了一個數(shù)據(jù)之后,根據(jù)這兩個位的設(shè)置來控制地址計數(shù)器自動增加/減少1, 其關(guān)系如下圖: 圖3-8 gram顯示方向設(shè)置圖 通過這幾個位的設(shè)置,我們就可以控制屏幕的顯示方向了。 r7,顯示控制命令。該命令cl位用來控制是8位彩色,還是26萬色。為0時26萬色,為1時八位色。d1、d0、basee這三個位用來控制顯示開關(guān)與否的。當(dāng)全部設(shè)置為1的時候開啟顯示,全0是關(guān)閉。我們一般通過該命令的設(shè)置來開啟或關(guān)閉顯示器,以降低功耗。r32,r33,設(shè)置gram的行地址和列地址。r32用于設(shè)置列地址(x坐標(biāo),0239),r33

32、用于設(shè)置行地址(y坐標(biāo),0319)。當(dāng)我們要在某個指定點寫入一個顏色的時候,先通過這兩個命令設(shè)置到改點,然后寫入顏色值就可以了。r34,寫數(shù)據(jù)到gram命令,當(dāng)寫入了這個命令之后,地址計數(shù)器才會自動的增加和減少。該命令是我們要介紹的這一組命令里面唯一的單個操作的命令,只需要寫入該值就可以了,其他的都是要先寫入命令編號,然后寫入操作數(shù)。r80r83,行列g(shù)ram地址位置設(shè)置。這幾個命令用于設(shè)定你顯示區(qū)域的大小,我們整個屏的大小為240*320,但是有時候我們只需要在其中的一部分區(qū)域?qū)懭霐?shù)據(jù),如果用先寫坐標(biāo),后寫數(shù)據(jù)這樣的方式來實現(xiàn),則速度大打折扣。此時我們就可以通過這幾個命令,在其中開辟一個區(qū)域

33、,然后不停的丟數(shù)據(jù),地址計數(shù)器就會根據(jù)r3的設(shè)置自動增加/減少,這樣就不需要頻繁的寫地址了,大大提高了刷新的速度。命令部分,我們就為大家介紹到這里,我們接下來看看要如何才能驅(qū)動alientek tftlcd模塊,這里tftlcd模塊的初始化和我們前面介紹的oled模塊的初始化框圖是一樣的,只是初始化代碼部分不同。接下來我們也是將該模塊用來來顯示字符和數(shù)字。通過以上介紹,我們可以得出tftlcd顯示需要的相關(guān)設(shè)置步驟如下: 1)設(shè)置stm32與tftlcd模塊相連接的io。這一步,先將我們與tftlcd模塊相連的io口設(shè)置為輸出,具體使用哪些io口,這里需要根據(jù)連接電路以及tftlcd模塊的設(shè)置

34、來確定。2)初始化tftlcd模塊。其實這里就是上和上面oled模塊的初始化過程差不多。通過向tftlcd寫入一系列的設(shè)置,來啟動tftlcd的顯示。為后續(xù)顯示字符和數(shù)字做準(zhǔn)備。3)通過函數(shù)將字符和數(shù)字顯示到tftlcd模塊上。這里就是通過我們設(shè)計的程序,將要顯示的字符送到tftlcd模塊就可以了,這些函數(shù)將在軟件設(shè)計部分向大家介紹。通過以上三步,我們就可以使用alientek tftlcd模塊來顯示字符和數(shù)字了, 并且可以顯示各種顏色的背景。3.3 基于xpt2406的控制電路xpt2046控制電路如3.3-1所示:圖3-9 xpt2046控制電路4 系統(tǒng)軟件設(shè)計4.1觸屏校準(zhǔn)作用 我們傳統(tǒng)

35、的鼠標(biāo)是一種相對定位系統(tǒng),只和前一次鼠標(biāo)的位置坐標(biāo)有關(guān)。而觸摸屏則是一種絕對坐標(biāo)系統(tǒng),要選哪就直接點哪,與相對定位系統(tǒng)有著本質(zhì)的區(qū)別。絕對坐標(biāo)系統(tǒng)的特點是每一次定位坐標(biāo)與上一次定位坐標(biāo)沒有關(guān)系,每次觸摸的數(shù)據(jù)通過校準(zhǔn)轉(zhuǎn)為屏幕上的坐標(biāo),不管在什么情況下,觸摸屏這套坐標(biāo)在同一點的輸出數(shù)據(jù)是穩(wěn)定的。不過由于技術(shù)原理的原因,并不能保證同一點觸摸每一次采樣數(shù)據(jù)相同,不能保證絕對坐標(biāo)定位,點不準(zhǔn),這就是觸摸屏最怕出現(xiàn)的問題:漂移。對于性能質(zhì)量好的觸摸屏來說,漂移的情況出現(xiàn)并不是很嚴(yán)重。所以很多應(yīng)用觸摸屏的系統(tǒng)啟動后,進入應(yīng)用程序前,先要執(zhí)行校準(zhǔn)程序。通常應(yīng)用程序中使用的lcd坐標(biāo)是以像素為單位的。比如說:

36、左上角的坐標(biāo)是一組非0的數(shù)值,比如(20,20),而右下角的坐標(biāo)為(620,460)。這些點的坐標(biāo)都是以像素為單位的,而從觸摸屏中讀出的是點的物理坐標(biāo),其坐標(biāo)軸的方向、xy值的比例因子、偏移量、縮放因子都與lcd坐標(biāo)不同,所以,可以在ial的某個函數(shù)(比如wait_event函數(shù))中把物理坐標(biāo)首先轉(zhuǎn)換為像素坐標(biāo),然后再賦給pos結(jié)構(gòu),達到坐標(biāo)轉(zhuǎn)換的目的.觸摸屏校正思路:在ial的某個函數(shù)(比如wait_event函數(shù))中加入調(diào)試信息,開發(fā)板上運行calibrate程序,那么觸摸屏上任何一點的坐標(biāo)就可以在主機監(jiān)視屏上回顯出來。于是,就采集到了4個角的物理坐標(biāo),假設(shè)是6.4英寸屏,640x480分

37、辨率,則它們的像素坐標(biāo)分別是(20,20)、(20,460)、(620,460)和(620,20)。這樣,使用待定系數(shù)法就可以算出坐標(biāo)系之間的平移關(guān)系。比如:vx = xfactor*px + xoffset vy = yfactor*py + yoffset4.2主程序流程圖主程序流程圖如下圖4-1所示否開始硬件初始化刷新并不斷檢測觸摸屏狀延時讀取坐標(biāo)點的坐標(biāo)值獲取初始值的坐標(biāo)值觸摸屏仍被觸摸嗎是觸摸屏被觸摸么圖4-14.3 c語言的簡介c語是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不

38、依賴計算機硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,具體應(yīng)用比如單片機以及嵌入式系統(tǒng)開發(fā)。c 語言具有下列特點:1)c是中級語言。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。c 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作, 而這三者是計算機最基本的工作單元。2)c是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。c 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)

39、化。3)c語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外c語言也具有強大的圖形功能,支持多種顯示器和驅(qū)動器。而且計算功能、邏輯判斷功能也比較強大,可以實現(xiàn)決策目的的游戲。4)c語言適用范圍大。適合于多種操作系統(tǒng),如windows、dos、unix等等;也適用于多種機型。c語言對編寫需要硬件進行操作的場合,明顯優(yōu)于其它解釋型高級語言,有一些大型應(yīng)用軟件也是用c語言編寫的。c語言具有繪圖能力強,可移植性,并具備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計算的高級語言。4.4關(guān)鍵代碼/初始化液晶接口void lcd_port(void)

40、io0set_bit.p0_21 = 1; /wr io0set_bit.p0_20 = 1; /rd io0dir_bit.p0_20 = 1; /rd io0dir_bit.p0_21 = 1; /wr io0dir_bit.p0_30 = 1; /rs io0dir_bit.p0_17 = 1; /cs io0dir_bit.p0_11 = 1; io0dir_bit.p0_12 = 1;/延時void delayms(unsigned short k) unsigned short i; unsigned int j; for(i = k;i 0;i-) for(j = 1000;j

41、0;j-); /向hc573寫入數(shù)據(jù)void write_hc573(unsigned short dat) unsigned char dat; dat = (unsigned char)(dat&0xff); io1set |= (unsigned int)dat)16); io1clr |= (unsigned int)dat)16)&(0xff8)&0xff); io1set |= (unsigned int)dat)16); io1clr |= (unsigned int)dat)16)&(0xff16); io0set_bit.p0_12 = 1;io0clr_bit.p0_12

42、= 1;/向液晶屏寫入數(shù)據(jù)void tftwridata(unsigned short ch) lcd_rs_h(); /rs = 1 lcd_cs_l(); /cs = 0 write_hc573(ch); lcd_wr_l(); /wr = 0 lcd_wr_h(); /wr = 1 lcd_cs_h(); /cs = 1/向液晶屏寫入命令void tftwricom(unsigned short ch) lcd_rs_l(); /rs = 0 write_hc573(ch); lcd_wr_l(); /wr = 0 lcd_cs_l(); /cs = 0 lcd_wr_h(); /wr

43、= 1 lcd_cs_h(); /cs = 1/寫入控制字void write_com(unsigned short address,unsigned short num) tftwricom(address); tftwridata(num);/液晶屏初始化void tftinit(void) lcd_reset_l(); /低電平復(fù)位 delayn(10000); lcd_reset_h();#define delayns delayn write_com(0x0000,0x0001); delayns(1000); /打開晶振 write_com(0x0003,0xa8a4); dela

44、yns(1000); /0xa8a4 write_com(0x000c,0x0000); delayns(1000); write_com(0x000d,0x080c); delayns(1000); write_com(0x000e,0x2b00); delayns(1000); write_com(0x001e,0x00b0); delayns(1000); write_com(0x0001,0x2b3f); delayns(1000); /驅(qū)動輸出控制320*240 0x6b3f write_com(0x0002,0x0600); delayns(1000); write_com(0x0

45、010,0x0000); delayns(1000); write_com(0x0011,0x6070); delayns(1000); /0x4030 /定義數(shù)據(jù)格式 16位色 write_com(0x0005,0x0000); delayns(1000); write_com(0x0006,0x0000); delayns(1000); write_com(0x0016,0xef1c); delayns(1000); write_com(0x0017,0x0003); delayns(1000); write_com(0x0007,0x0233); delayns(1000); /0x02

46、33 write_com(0x000b,0x0000); delayns(1000); write_com(0x000f,0x0000); delayns(1000); /掃描開始地址 write_com(0x0041,0x0000); delayns(1000); write_com(0x0042,0x0000); delayns(1000); write_com(0x0048,0x0000); delayns(1000); write_com(0x0049,0x013f); delayns(1000); write_com(0x004a,0x0000); delayns(1000); wr

47、ite_com(0x004b,0x0000); delayns(1000); write_com(0x0044,0xef00); delayns(1000); write_com(0x0045,0x0000); delayns(1000); write_com(0x0046,0x013f); delayns(1000); write_com(0x0030,0x0707); delayns(1000); write_com(0x0031,0x0204); delayns(1000); write_com(0x0032,0x0204); delayns(1000); write_com(0x003

48、3,0x0502); delayns(1000); write_com(0x0034,0x0507); delayns(1000); write_com(0x0035,0x0204); delayns(1000); write_com(0x0036,0x0204); delayns(1000); write_com(0x0037,0x0502); delayns(1000); write_com(0x003a,0x0302); delayns(1000); write_com(0x003b,0x0302); delayns(1000); write_com(0x0023,0x0000); de

49、layns(1000); write_com(0x0024,0x0000); delayns(1000); write_com(0x0025,0x8000); delayns(1000); write_com(0x004f,0); /行首址0 write_com(0x004e,0); /列首址05 下載與調(diào)試在代碼編譯成功之后,我們通過下載代碼到alientek ministm32開發(fā)板上,可以看到lcd顯示如下內(nèi)容: 圖5-1程序運行效果如果已經(jīng)校準(zhǔn)過了,則在等待1.5s之后進入手寫界面,同時ds0開始閃爍,界面如下圖所:圖5-2手寫界面此時,我們就可以在該界面下用筆或者手指輸入信息了。如果

50、沒有校準(zhǔn)過,則會自動進入校準(zhǔn)程序(當(dāng)你發(fā)現(xiàn)精度不行的時候,也可以通過按key0進入校準(zhǔn)程序),如下圖所示,在校準(zhǔn)完成之后自動進入手寫界面。圖5-3校準(zhǔn)界面6 結(jié)論本文完成了基于xpt2046控制的觸摸屏軟件硬件的設(shè)計,實現(xiàn)了用xpt2046控制tftlcd以及實現(xiàn)人機交匯,在實際應(yīng)用中該系統(tǒng)可靠穩(wěn)定,達到預(yù)期效果。致謝 本論文是在我院指導(dǎo)老師徐朝勝老師的精心指導(dǎo)下完成的,在整個畢業(yè)設(shè)計過程中徐老師給了我很大的幫助,從選題,開題,到設(shè)計方案的確定及最終論文的撰寫,修改,最終完成,都離不開徐老師的精心指導(dǎo)。特別是我在設(shè)計過程中遇到困難不能解決時,徐老師總會在百忙之中抽出寶貴的時間,耐心的給我講解,

51、讓我真正的理解其中的原理,能夠獨立的找到解決問題的途徑。在此我對他表示真誠的感謝!借此機會,我還要感謝校領(lǐng)導(dǎo),和大學(xué)四年的授課老師,在大學(xué)四年中,是他們?yōu)槲姨峁┮粋€良好的學(xué)習(xí)環(huán)境,教給了我很多知識,和學(xué)習(xí)的方法。正是因為有了他們默默無聞的奉獻,我才能成為一個優(yōu)秀的大學(xué)畢業(yè)生。除此之外,我還要感謝曾經(jīng)給予我很多幫助和支持的07電信的全體同學(xué),在他們的熱心幫助下,使我增長了不少知識,積累了不少經(jīng)驗。所以在這里,我要向所有關(guān)心和幫助過我的人表示我最誠摯的祝福和感謝!參考文獻 1何詠、馬孝江、王永剛;基于dsp的人機接口技術(shù);機床與液壓;2004.no.11;p1101122朱宇翔、程明霄、李明;基于

52、dsp的液晶顯示器的軟硬件設(shè)計及實現(xiàn);微型機與應(yīng)用;2005年第2期;p15173觸摸屏技術(shù)與應(yīng)用 作者:成都吉銳觸摸電腦有限公司編寫組 電子科技大學(xué)出版社4 程芳真、蔣滋康,觸摸屏在電站仿真中的應(yīng)用,計算機應(yīng)用研究,1999.45許榮斌、謝瑩、朱永紅,觸摸屏常用校準(zhǔn)算法分析,工業(yè)控制計算機,2006.46龔麗娟、陸以勤、呂錦觸,觸摸屏數(shù)據(jù)處理算法研究及實現(xiàn),微計算機信息,2006.97宋成,孫廣富.觸摸屏在53c2410上的應(yīng)用實例j.單片機及嵌入式系統(tǒng)應(yīng)用,2005.18觸摸屏技術(shù)淺談 j. 現(xiàn)代物理知識, 2004,(03)9觸摸屏讓電腦盲也可使用計算機j. 科學(xué)中國人, 1996,(01) 10觸摸屏的選擇與應(yīng)用j. 三明高等??茖W(xué)校學(xué)報, 1998,(s3) 11感觸隨心三星anycall感觸系列手機j. 新華航空, 2008,(12)12孔瑋. 全新的多媒體設(shè)備觸摸屏j. 武警工程學(xué)院學(xué)報, 2000,(06) 13texas instruments. literature number. sp rs 174n april 2001 revised may 2006. tms320f2810, tms

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論