基于單片機(jī)的液晶顯示觸摸屏控制設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 在分析液晶觸摸屏的工作原理基礎(chǔ)上,分析觸摸屏專用控制器ADS7846 的工作原理與控制方式。通過ADS7846 與MCU 的SPI 接口,給出AT89S51 的測(cè)量子程序流程圖,提出觸摸屏觸點(diǎn)坐標(biāo)的獲得方法與液晶屏顯示實(shí)現(xiàn)同步的算法,以提高設(shè)計(jì)觸摸屏與液晶屏的效率,滿足控制精度。
1 引 言
嵌入式觸摸屏裝置是人機(jī)交互設(shè)備,一般將觸摸屏安裝在液晶顯示屏上面,利用微處理器對(duì)觸摸屏與液晶顯示屏進(jìn)行控制,實(shí)現(xiàn)觸摸屏對(duì)液晶顯示屏的控制,方便、直觀,取代了傳統(tǒng)的鍵盤輸入,成為嵌入式計(jì)算機(jī)系統(tǒng)的輸入設(shè)備,廣泛應(yīng)用于電子產(chǎn)品與工業(yè)控制中。由于觸摸屏邊緣電阻不均勻,不易找到變化規(guī)律,難于實(shí)現(xiàn)觸摸屏坐標(biāo)與點(diǎn)陣式液晶顯示屏相互對(duì)應(yīng),會(huì)出現(xiàn)觸摸點(diǎn)與液晶顯示屏顯示信息錯(cuò)位,造成觸摸控制信息不靈敏。本文基于AT89C51 單片機(jī)和ADS7846芯片,輔以點(diǎn)陣式液晶顯示屏,進(jìn)行嵌入式觸摸屏輸入與顯示系統(tǒng)的軟硬件設(shè)計(jì),實(shí)現(xiàn)觸點(diǎn)測(cè)量與液晶屏上像素相對(duì)應(yīng),實(shí)現(xiàn)預(yù)期的控制功能,提高觸摸控制的靈敏度。
2 液晶顯示觸摸屏的硬件設(shè)計(jì)
液晶觸摸屏包含圖形液晶顯示模塊和附著在顯示屏上的觸摸屏兩部分,借助于觸摸屏控制器ADS7846 與微處理器A T89S51 實(shí)現(xiàn)軟硬件接口,通過檢測(cè)用戶在觸摸屏上的觸摸位置,實(shí)現(xiàn)顯示與控制功能。
2. 1 觸摸屏的工作原理
觸摸屏從工作原理上可以分為電阻式、電容式、紅外線式、聲表面波式、矢量壓力傳感器式等多種形式,本文采用目前使用最為普遍的四線電阻式觸摸屏。
電阻式觸摸屏由4 層透明的復(fù)合薄膜組成,底層是玻璃或有機(jī)玻璃構(gòu)成的基層,頂層則是經(jīng)過硬化處理的光滑防刮塑料層,底層、頂層內(nèi)表面間為兩層銦錫氧化物( ITO) 透明導(dǎo)電層,形成觸摸屏的兩個(gè)工作面,在每個(gè)工作面的兩端各涂有一條銀膠,稱為該工作面的一對(duì)電極,若在一個(gè)工作面的電極對(duì)上施加電壓,則在該工作面上就會(huì)形成均勻連續(xù)的平行電壓分布。當(dāng)在X 方向的電極對(duì)上施加一確定的電壓,而Y 方向電極對(duì)上不加電壓時(shí),在X 平行電壓場(chǎng)中,觸點(diǎn)處的電壓值可以在Y+ (或Y - ) 電極上反映出來,通過測(cè)量Y+ 電極對(duì)地的電壓大小,經(jīng)過A/ D 轉(zhuǎn)換便可得知觸點(diǎn)的X 坐標(biāo)值。同理,當(dāng)在Y 電極對(duì)上加電壓,而X 電極對(duì)上不加電壓時(shí),通過測(cè)量X +電極的電壓,經(jīng)過A/ D 轉(zhuǎn)換便可得知觸點(diǎn)的Y坐標(biāo)。電阻式觸摸屏有四線和五線兩種,四線式觸摸屏的測(cè)量過程工作原理如圖1 所示。
圖1 四線電阻式觸摸屏測(cè)量原理
觸摸點(diǎn)P 處測(cè)量結(jié)果計(jì)算如下:
2. 2 ADS7846 控制器
ADS7846 是Burr2Brown 公司的一款觸摸屏專用控制器,其內(nèi)部結(jié)構(gòu)如圖2 所示。
圖2 ADS7846 內(nèi)部結(jié)構(gòu)圖。
摘 要: 在分析液晶觸摸屏的工作原理基礎(chǔ)上,分析觸摸屏專用控制器ADS7846 的工作原理與控制方式。通過ADS7846 與MCU 的SPI 接口,給出AT89S51 的測(cè)量子程序流程圖,提出觸摸屏觸點(diǎn)坐標(biāo)的獲得方法與液晶屏顯示實(shí)現(xiàn)同步的算法,以提高設(shè)計(jì)觸摸屏與液晶屏的效率,滿足控制精度。
1 引 言
嵌入式觸摸屏裝置是人機(jī)交互設(shè)備,一般將觸摸屏安裝在液晶顯示屏上面,利用微處理器對(duì)觸摸屏與液晶顯示屏進(jìn)行控制,實(shí)現(xiàn)觸摸屏對(duì)液晶顯示屏的控制,方便、直觀,取代了傳統(tǒng)的鍵盤輸入,成為嵌入式計(jì)算機(jī)系統(tǒng)的輸入設(shè)備,廣泛應(yīng)用于電子產(chǎn)品與工業(yè)控制中。由于觸摸屏邊緣電阻不均勻,不易找到變化規(guī)律,難于實(shí)現(xiàn)觸摸屏坐標(biāo)與點(diǎn)陣式液晶顯示屏相互對(duì)應(yīng),會(huì)出現(xiàn)觸摸點(diǎn)與液晶顯示屏顯示信息錯(cuò)位,造成觸摸控制信息不靈敏。本文基于AT89C51 單片機(jī)和ADS7846芯片,輔以點(diǎn)陣式液晶顯示屏,進(jìn)行嵌入式觸摸屏輸入與顯示系統(tǒng)的軟硬件設(shè)計(jì),實(shí)現(xiàn)觸點(diǎn)測(cè)量與液晶屏上像素相對(duì)應(yīng),實(shí)現(xiàn)預(yù)期的控制功能,提高觸摸控制的靈敏度。
2 液晶顯示觸摸屏的硬件設(shè)計(jì)
液晶觸摸屏包含圖形液晶顯示模塊和附著在顯示屏上的觸摸屏兩部分,借助于觸摸屏控制器ADS7846 與微處理器A T89S51 實(shí)現(xiàn)軟硬件接口,通過檢測(cè)用戶在觸摸屏上的觸摸位置,實(shí)現(xiàn)顯示與控制功能。
2. 1 觸摸屏的工作原理
觸摸屏從工作原理上可以分為電阻式、電容式、紅外線式、聲表面波式、矢量壓力傳感器式等多種形式,本文采用目前使用最為普遍的四線電阻式觸摸屏。
電阻式觸摸屏由4 層透明的復(fù)合薄膜組成,底層是玻璃或有機(jī)玻璃構(gòu)成的基層,頂層則是經(jīng)過硬化處理的光滑防刮塑料層,底層、頂層內(nèi)表面間為兩層銦錫氧化物( ITO) 透明導(dǎo)電層,形成觸摸屏的兩個(gè)工作面,在每個(gè)工作面的兩端各涂有一條銀膠,稱為該工作面的一對(duì)電極,若在一個(gè)工作面的電極對(duì)上施加電壓,則在該工作面上就會(huì)形成均勻連續(xù)的平行電壓分布。當(dāng)在X 方向的電極對(duì)上施加一確定的電壓,而Y 方向電極對(duì)上不加電壓時(shí),在X 平行電壓場(chǎng)中,觸點(diǎn)處的電壓值可以在Y+ (或Y - ) 電極上反映出來,通過測(cè)量Y+ 電極對(duì)地的電壓大小,經(jīng)過A/ D 轉(zhuǎn)換便可得知觸點(diǎn)的X 坐標(biāo)值。同理,當(dāng)在Y 電極對(duì)上加電壓,而X 電極對(duì)上不加電壓時(shí),通過測(cè)量X +電極的電壓,經(jīng)過A/ D 轉(zhuǎn)換便可得知觸點(diǎn)的Y坐標(biāo)。電阻式觸摸屏有四線和五線兩種,四線式觸摸屏的測(cè)量過程工作原理如圖1 所示。
圖1 四線電阻式觸摸屏測(cè)量原理
觸摸點(diǎn)P 處測(cè)量結(jié)果計(jì)算如下:
2. 2 ADS7846 控制器
ADS7846 是Burr2Brown 公司的一款觸摸屏專用控制器,其內(nèi)部結(jié)構(gòu)如圖2 所示。
圖2 ADS7846 內(nèi)部結(jié)構(gòu)圖。
ADS7846 內(nèi)部由一個(gè)多路選擇器和一個(gè)12位的A/ D 轉(zhuǎn)換器構(gòu)成,根據(jù)串行控制口的控制字控制多路選擇開關(guān)的工作狀態(tài),控制工作面的工作電壓,并把相應(yīng)電極上的觸點(diǎn)坐標(biāo)位置對(duì)應(yīng)的工作電壓送到A/ D 轉(zhuǎn)換器,變成數(shù)字量通過串行口再傳遞給CPU ,經(jīng)過計(jì)算得到觸點(diǎn)的X 、Y 方向的坐標(biāo),確定觸點(diǎn)位置,程序根據(jù)觸點(diǎn)坐標(biāo)位置顯示的信息執(zhí)行相應(yīng)的功能。
則P 點(diǎn)的二進(jìn)制輸出代碼為:
其中:V ref_full為加在ADS7846 內(nèi)部A/ D 轉(zhuǎn)換器上的參考電壓。
ADS7846 控制字見表1 所示,S 為數(shù)據(jù)傳輸?shù)钠鹗紭?biāo)志位,改為必須為"1";A2、A1、A0 用于通道選擇控制,坐標(biāo)與通道選擇之間的關(guān)系見表2 所示。MODE用于控制A/ D轉(zhuǎn)換的精度", 1"選擇8位", 0"選擇12 位。SER/ DFR 選擇輸入?yún)⒖茧妷耗J?quot;, 1"為單端模式", 0"為差分模式。PD1、PD0選擇省電模式:"00"為省電模式允許,在兩次A/ D轉(zhuǎn)換之間掉電,且中斷允許;"01"與"00"相似,但不允許中斷;"10"保留;"11"禁止省電模式。
表1 ADS7846 的控制字
表2 ADS7846 的坐標(biāo)與通道選擇之間的關(guān)系
ADS7846 與MCU 之間通過標(biāo)準(zhǔn)的SPI 接口相連接,如圖3 所示。當(dāng)檢測(cè)到有觸摸動(dòng)作時(shí),ADS7846 的筆中斷請(qǐng)求端( PENIRQ) 輸出一個(gè)低電平信號(hào)向MCU 發(fā)出測(cè)量觸點(diǎn)坐標(biāo)的中斷請(qǐng)求。MCU 通過SPI 接口,選中ADS7846 ,發(fā)出坐標(biāo)測(cè)量控制字,然后讀取ADS7846A/ D 轉(zhuǎn)換結(jié)果數(shù)據(jù),經(jīng)過兩次控制即可分別得到觸點(diǎn)位置的X 、Y 坐標(biāo)。ADS7846 工作時(shí)序如圖4 所示。
圖3 ADS7846 與MCU 之間SPI 接口。
圖4 ADS7846 與MCU 通信時(shí)序。
3 觸點(diǎn)坐標(biāo)與液晶顯示屏控制功能對(duì)應(yīng)定位的確定
本例中ADS7846 采用差動(dòng)參考電壓方式,以減小測(cè)量誤差,由于觸摸屏存在著個(gè)體差異,不同觸摸屏邊沿的測(cè)量值不同,測(cè)量值達(dá)不到0 或者滿量程(4096) ,而液晶顯示屏具有較為準(zhǔn)確的定位數(shù)值,很難實(shí)現(xiàn)觸摸屏與液晶顯示屏的點(diǎn)與點(diǎn)一一對(duì)應(yīng),給編程調(diào)試帶來很大麻煩,只能實(shí)現(xiàn)觸摸屏與液晶顯示屏之間的區(qū)域?qū)?yīng),不影響液晶顯示屏的顯示功能和觸摸屏的控制功能。
觸摸屏控制器ADS7846 通過SPI 接口連接到微控制器A T89S51 上。當(dāng)發(fā)生觸摸時(shí), 由ADS7846 向A T89S51 提出中斷請(qǐng)求, 接著A T89S51 就會(huì)響應(yīng)該中斷請(qǐng)求,通過SPI 讀取ADS7846 的轉(zhuǎn)換結(jié)果,得到觸摸點(diǎn)的坐標(biāo)。圖5為中斷服務(wù)子程序與ADS7846 測(cè)量子程序流程圖。
圖5 中斷服務(wù)子程序與ADS7846 測(cè)量子程序流程圖。
為了有效地找到觸摸屏觸摸點(diǎn)與點(diǎn)陣式液晶顯示屏對(duì)應(yīng)區(qū)域坐標(biāo)范圍,按照液晶顯示屏的顯示功能區(qū)域的點(diǎn)陣坐標(biāo),按照液晶屏上顯示的控制信息字符格式,合理選擇水平線和豎直線,按照液晶顯示和觸摸屏控制功能區(qū)域進(jìn)行觸摸點(diǎn)數(shù)值測(cè)量,找到與液晶顯示屏對(duì)應(yīng)的觸摸屏控制區(qū)域的觸摸點(diǎn)數(shù)值范圍。根據(jù)觸摸屏觸摸點(diǎn)坐標(biāo)實(shí)測(cè)數(shù)據(jù)分析可以得到對(duì)應(yīng)的液晶屏上像素點(diǎn)坐標(biāo)。
液晶屏像素點(diǎn)坐標(biāo)與觸摸屏觸摸點(diǎn)實(shí)測(cè)數(shù)值之間的關(guān)系可以表示為:
式中: X 、Y 為觸點(diǎn)測(cè)量值; ( Xmin , Ymin ) 和( Xmax ,Xmax ) 分別為觸摸屏上的最大值和最小值坐標(biāo)觸點(diǎn)測(cè)量; ( X1 , Y1 ) 為觸點(diǎn)在液晶屏上的像素坐標(biāo),表3 、表4 中數(shù)據(jù)為實(shí)測(cè)數(shù)據(jù)。
表3 實(shí)測(cè)豎直直線上等距離測(cè)量坐標(biāo)值
表4 實(shí)測(cè)水平直線上等距離測(cè)量坐標(biāo)值
值得注意的是,經(jīng)測(cè)量觸摸屏X 方向的轉(zhuǎn)換值為從大到小, Y 方向的轉(zhuǎn)換值為從小到大,坐標(biāo)值在一定范圍內(nèi)基本是成線性變化的。但是在觸摸屏的邊緣地帶X 方向輸出電阻和Y 方向輸出電阻的變化較大,是非線性關(guān)系,因此為了比較準(zhǔn)確地標(biāo)定觸摸屏坐標(biāo),在大范圍內(nèi)采用線性變化的規(guī)律,而在邊緣地帶需采用查表的方式。
4 結(jié) 論
利用ADS7846 實(shí)現(xiàn)觸摸屏控制,可以方便利用SPI 接口實(shí)現(xiàn)與單片機(jī)之間的接口。與點(diǎn)陣式液晶顯示屏相配合使用,通過液晶屏與觸摸屏之間的坐標(biāo)變換,可以便捷實(shí)現(xiàn)工業(yè)控制,同時(shí)提高液晶屏的反映速度。