基于ADS7846的電阻式觸摸屏接口設計

PDl,PD0:低功率模式選擇位。若為11,器件總處于供電狀態;若為OO,器件在兩次變換之間處于低功率模式。
2.4 轉換時序
ADS7846的轉換時序如圖4所示。一次完整的電極電壓切換和A/D轉換,需要ADS7846和微處理器進行3次串行數據傳送,每次傳送需要8個時鐘周期。本文引用地址:http://www.j9360.com/article/187863.htm
第一次傳送由微處理器向ADS7846發送控制字,接下來的兩次傳送是微處理器從ADS7846讀取轉換結果(最后4位自動補O)。由于串口支持雙向同時進行傳送,并且在一次讀數與下一次發控制字之間可以重疊,所以轉換速率可以提高到每次16個時鐘周期。
2.5 觸摸坐標計算
由于四線電阻觸摸屏中,Y方向位置電壓從下向上逐漸增加,X方向位置電壓從右向左逐漸增加,因此Y,X位置電壓對應的坐標原點在觸摸屏的右下角。為了獲得工程上使用的X,Y坐標值(即將坐標原點移為左下角),應將X位置電壓轉換值求補。另外,X,Y位置電壓轉換值還必須與顯示屏幕的點陣(采用的液晶為240×160點陣)相對應。因此校正后的X,Y坐標計算公式為:
式中:Xmax,Xmin為X位置電壓轉換結果的最大、最小值;Ymax,Ymin為Y位置電壓轉換結果的最大、最小值;Y,X為觸摸點位置電壓的轉換值;x,y為校正后的觸摸點坐標。
3 觸摸屏與微機的接口
3.1接口電路
應用ADS7846實現觸摸屏與單片機80C55的接口電路如圖5所示,觸摸屏的X+,X-,Y+,Y-分別與ADS7846的相應端連接,當控制字中A2A1-A0=001時,通過片內模擬開關的切換,將X+接電源VCC,X-接地,將Y+與Y-端以差動形式接到A/D轉換器的輸入端,A/D轉換器的結果就是Y位置電壓。類似當控制字中A2A1A0=101時,A/D轉換器的結果就是X位置電壓。單片機與ADS7846間的數據傳送采用串行通信方式時,由于單片機串口方式1~3為異部通信方式,與ADS7846的時序不相配;串口方式0為移存器方式,雖然與ADS7846時序可以配合,但串口數據輸入/輸出使用同一端子RXD(TXD)為同步脈沖輸出端),ADS7846數據輸入/輸出采用不同端子DIN,DOUT。為了實現正確的數據雙向傳送,設計了雙向數據芯片GAL,該芯片的功能是當E=O時,數據傳送方向為Y到A;當E=1時,傳送方向為B到Y。ADS7846的筆中斷信號接P2.4,當
信號有效時,單片機發送控制字。ADS7846的忙信號BUSY接P2.6,在BUSY信號的下降沿,單片機接收A/D轉換結果。
3.2 接口程序
當觸摸觸摸屏時,ADS7846中斷信號有效,單片機檢測到這一有效信號后,先送測量X坐標控制字,并檢測BUSY信號是否有下降沿到來,下降沿到來后,讀X位置電壓;再送測量Y坐標控制字,獲取Y位置電壓。將得到的X,Y位置電壓用式(1)、式(2)進行計算便得到觸摸點的X,Y坐標。軟件流程如圖6所示。
4 結語
設計的觸摸屏接口電路具有下列優點:通過增加雙向傳輸GAL芯片,解決了51系列單片機與觸摸屏控制器ADS7846的串行通信問題;通過對觸摸點位置電壓進行校正,獲得了正確的觸摸坐標;接口電路易于實現,實用性強。
評論