觸控屏的控制電路制作小記(附STM32的驅(qū)動(dòng))
觸控屏已經(jīng)不是什么新鮮的東西,現(xiàn)在的電子產(chǎn)品基本上都帶有一個(gè)大大的彩色液晶,加上一個(gè)輕觸式的觸控屏。使用起來(lái)非常方便,可以完全取代以往那種固定式的按鍵。
下面就介紹一種觸控屏的驅(qū)動(dòng)電路,我也是一個(gè)小時(shí)前才把這個(gè)小板子做出來(lái),測(cè)試成功后馬上發(fā)表這篇日志,新鮮熱辣的哦!
首先,介紹以下觸控屏幕的構(gòu)造,它是由一塊觸控屏幕和一塊液晶顯示屏幕粘合在一起的。液晶顯示屏幕按色彩、材料、成像原理等多種方式分類(lèi),種類(lèi)繁多,這里對(duì)液晶屏幕不做詳細(xì)介紹,本文圖片中所使用的是16Bit半透明反射式TFT液晶點(diǎn)陣顯示屏。而觸摸屏幕主要分為兩大類(lèi),分別是電容式和電阻式。
電容式觸控屏利用人體的電流感應(yīng)進(jìn)行工作,優(yōu)點(diǎn)是使用壽命長(zhǎng),觸摸時(shí)不需用力,面板堅(jiān)硬耐磨;缺點(diǎn)是觸摸精度低,必須使用特定的介質(zhì)觸控(如人體皮膚),受溫度濕度影響很大,外界有較強(qiáng)磁場(chǎng)電場(chǎng)時(shí),觸控屏?xí)ъ`,簡(jiǎn)單來(lái)說(shuō)就是抗干擾性較差。
電阻式觸控屏是利用按壓時(shí)縱軸和橫軸的電阻值來(lái)定位的,優(yōu)點(diǎn)是抗干擾性好,觸摸精度高,可以用任何物體來(lái)觸摸,缺點(diǎn)是表面是塑料薄膜,易磨損,觸摸是需要稍加一點(diǎn)力度按壓。本文中使用的就是電阻式觸控屏。
接下來(lái)介紹一些幾個(gè)觸控屏控制IC:ADS7846、ADS7843和TSC2046,它們是最常見(jiàn)的四線(xiàn)觸摸屏控制芯片,均為BURR-BROWN(已經(jīng)被TI收購(gòu),找封裝庫(kù)的時(shí)候去TI那里找)公司的產(chǎn)品,三者引腳相互兼容,但片內(nèi)的功能是有區(qū)別的,例如7846內(nèi)集成溫度傳感、可檢測(cè)觸摸壓力等功能,具體請(qǐng)參考DataSheet。TSC2046是新出的控制芯片,由于其國(guó)產(chǎn)片價(jià)錢(qián)便宜(零售約1元/片),廣泛應(yīng)用于國(guó)產(chǎn)的具有觸摸屏幕的MP3、手機(jī)等電子產(chǎn)品。
我這次制作采用的是ADS7846。
ADS7846引腳圖:
引腳功能介紹:
DCLK:時(shí)鐘輸入端口
CS:片選信號(hào)
DIN:串行數(shù)據(jù)輸入端,CS為低時(shí)數(shù)據(jù)在DCLK上升沿鎖存
BUSY:忙時(shí)信號(hào)輸出,CS為高時(shí)其為高阻態(tài)
DOUT:串行數(shù)據(jù)輸出端,CS為高時(shí)其為高阻態(tài)
PENIRQ:筆中斷(當(dāng)屏幕被觸壓時(shí),產(chǎn)生中斷信號(hào))
Vref:參考電壓(一般直接接VCC)
Vbat:電源檢測(cè)輸入端(一般不使用)
AUX:備選輸入端(一般不使用)
X+、Y+、X-、Y- :四線(xiàn)觸控屏位置輸入端
程序思路是參考一位網(wǎng)友的,我把它移植過(guò)來(lái)了?! ?/P>
工作原理:每次按下觸摸屏,ADS7846的PEN腳會(huì)拉低,觸發(fā)STM32中斷,然后在中斷服務(wù)程序里面處理要執(zhí)行功能。畫(huà)圖的原理是通過(guò)在中斷里對(duì)X、Y坐標(biāo)連續(xù)采樣十次,若不夠十次,不做任何操作。得到十次數(shù)據(jù)后,進(jìn)行排序,最后取中間三次的數(shù)據(jù)計(jì)算均值,便得到需要的X、Y坐標(biāo)。得到觸屏的點(diǎn)以后,接著就是在屏幕上對(duì)應(yīng)的這個(gè)點(diǎn)上畫(huà)點(diǎn)。
下面是電路的原理圖:
用感光法做的板子(未裁剪):
裁剪出中間那部分后和一元硬幣小一點(diǎn),右側(cè)為硫酸紙打印出來(lái)的負(fù)片。
寫(xiě)了一個(gè)可選畫(huà)筆和背景顏色的畫(huà)板:
最后貼上STM32的觸摸屏驅(qū)動(dòng)程序(已添加畫(huà)板功能),用C語(yǔ)言寫(xiě)的,很容易移植,有興趣的同學(xué)可以將它移到51或其他單片機(jī)上面跑一下。完整的代碼從這里下載
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論