基于觸摸屏的太陽能熱水器控制系統設計
李香宇, 任建存
(海軍航空工程學院控制工程系, 山東煙臺264001)
摘要: 在分析液晶觸摸屏的工作原理基礎上,分析觸摸屏專用控制器RA8806 的工作原理與控制方式。通過RA8806與單片機PIC16F877 的接口設計,給出系統中觸摸屏的顯示畫,以及觸摸控制的程序流程圖,同時寫出了具體程序。實踐證明該設計方法完全能夠滿足實際應用的需要。
關鍵詞: 觸摸屏; 控制器RA8806; 太陽能熱水器; PIC16F877
中圖分類號: TN873+.93 文獻標識碼: A 文章編號:1674-6236(2011)10-0089-03
觸摸屏作為智能儀器、儀表的輸入設備,是具有簡單、方便、自然的人機交互方式。而電阻式觸摸屏對外完全隔離,不怕油污、灰塵、水,經濟性很好,適應于各種惡劣的環境,因此應用到太陽能熱水器的顯示界面,同時起到控制執行器工作的作用。
1 觸摸屏的結構和原理
觸摸屏的基本原理是,用手指或其他物體觸摸安裝在顯示器前端的觸摸屏時,所觸摸的位置(以坐標形式)由觸摸屏控制器檢測,并通過I/O 口送到CPU,從而確定輸入的信息。觸摸屏的本質是傳感器,它由觸摸檢測部件和觸摸屏控制器組成。觸摸檢測部件安裝在顯示器屏幕前面,用于檢測用戶觸摸位置,接受后送觸摸屏控制器;而觸摸屏控制器的主要作用是從觸摸點檢測裝置接收觸摸信息,并將它轉換成觸點坐標送給觸摸屏控制器,它同時能接收觸摸屏控制器發來的命令并加以執行[1]。
本設計選用的是四線制電阻式觸摸屏,是在強化玻璃表面分別涂上兩層透明氧化金屬導電層,利用壓力感應進行控制。當手指觸摸屏幕時,兩層導電層在觸摸點位置就有了接
觸,電阻發生變化。在X 和Y 兩個方向上產生信號,然后傳送到觸摸屏控制器RA8806。控制器偵測到這一接觸并計算出(X,Y)的位置,再根據模擬鼠標的方式動作[2]。
電阻式觸摸屏將矩形區域中觸摸點的物理位置轉換為代表X 方向和Y 方向的電壓。上下兩個導電層一個是水平方向,一個是豎直方向,分別用來測量X 和Y 的坐標位置,在水平面上的電極稱為X+電極和X-電極,在豎直平面的電極稱為Y+電極和Y-電極,如圖1 所示。測量X 方向的時候,將X+、X-之間加上參考電壓VCC,Y-斷開, 用Y+電極作為測量點,獲得X 方向的電壓,得到的電壓值經A/D 轉換,就可對應的判斷出接觸點的X 坐標;同理測量Y 方向的電壓,之后再完成電壓與坐標的換算[3]。觸摸點M 處測量結果計算如下:
圖1 四線電阻式觸摸屏測量原理
2 液晶顯示觸摸屏的硬件設計
液晶觸摸屏包含圖形液晶顯示模塊和附著在顯示屏上的觸摸屏兩部分, 借助于觸摸屏控制器RA8806 與微處理器PIC16F877 實現軟硬件接口, 通過檢測用戶在觸摸屏上的觸
摸位置,實現顯示與控制功能。
2.1 RA8806 控制器
對觸摸屏的控制需要選用專門的觸摸屏控制芯片,觸摸屏控制芯片不僅能夠完成A/D 轉換而且能夠實現電極電壓的切換,本設計選用了四線電阻式觸摸屏控制器RA8806。RA8806 是一個文字與繪圖模式的點矩陣液晶顯示控制器,其內建了雙圖層(Two Page)顯示內存,及512 kB ROM 的字型碼,可以顯示全型(16×16 pixels)的繁體中文字型或是簡體中文字型。RA8806 支持可轉換8-bit 數據總線的8080/6800 系列之MPU 接口,而對于LCD 驅動接口,RA8806 亦可以被設定為4-bit 或8-bit 的數據總線。在一般模式下,RA8806 可支持最大到320×240 點分辨率的LCD 面板。RA8806 也內建了智能型觸控掃瞄控制器, 支持了4 線電阻式觸控掃瞄接口,而可程序化的PWM 可以用來調節LCD 面板的對比或背光。RA8806 也提供一個強大且聰穎的4×8(32鍵)或8×8(64 鍵)的鍵盤掃瞄接口,其中更包含了長按鍵的功能,同時透過適當的中斷和輪詢機制讓使用者可以輕易的操作觸控掃瞄、鍵盤掃瞄和電源管理等功能,因此可以有效的減輕MPU 的負擔[4]。
2.2 液晶顯示模塊接口設計
本設計中采用的液晶顯示模塊是一種分辨率為320×240點陣的液晶顯示器DV320240GB, 是一款內含硬件字庫的圖形點陣液晶顯示器,具有體積小、重量輕、顯示靈活等優點。它主要采用動態驅動原理,由行驅動控制器和列驅動器兩部分組成了320×240 的全點陣液晶顯示, 編程模式簡潔方便。具有兩種顯示方式:文本顯示和圖形顯示[5]。觸摸屏液晶顯示DV320240GB 和控制器RA8806 之間的連接如圖2 所示。
圖2 液晶顯示屏DV320240GB 與控制器RA8806 接線圖
3 控制系統硬件設計
由下位機采集溫度和水位信息, 經過通信傳輸給上位機,之后通過液晶顯示模塊將其顯示在液晶屏上,同時顯示日歷時鐘DS1302 的實時時間。同時四線電阻式觸摸屏通過觸摸送給觸摸屏控制器RA8806, 將觸摸的信息送給上位機進行處理之后,一方面改變了液晶屏上的顯示信息,另一方面主動發送給下位機進行處理,由此來控制電磁閥、加熱器、水泵的工作[6]。控制系統的總體框圖如圖3 所示。
4 系統軟件設計
4.1 觸摸屏畫面設計
單片機開始運行,首先進入主界面顯示,顯示采集的溫度、水位信息和北京時間,同時在主界面通過觸摸相應位置又可以進入參數設置界面和手動控制界面,以及故障檢測界面。主界面示意圖如圖4 所示。
圖4 參數顯示的主界面
4.2 觸摸屏控制程序設計
觸摸屏控制器RA8806 連接到微控制器PIC16F877 上。當發生觸摸時, 由RA8806 向PIC16F877 提出中斷請求, 接著PIC16F877 就會響應該中斷請求, 通過RA8806 的轉換結果,得到觸摸點的坐標。圖5 為RA8806 測量子程序流程圖。
圖5 RA8806 測量子程序流程圖
觸摸屏控制器RA8806 進入中斷程序后,采集X、Y 坐標值的命令程序如下:
LCD_CmdWrite ( INTR); //Check INT status
INT_Sta=LCD_DataRead ( );
if (INT_Sta&0x01 ) //Check if TP interrupt
{
LCD_CmdWrite ( TPXR);
X1=LCD_DataRead ( ); //MSB of X
LCD_CmdWrite ( TPYR);
Y1=LCD_DataRead ( ); //MSB of Y
LCD_CmdWrite ( TPZR);
X2= LCD_DataRead ( ) &0x03; //LSB two Bits of X
LCD_CmdWrite ( TPZR);
Y2= LCD_DataRead ( ) &0x0C; //LSB two Bits of Y
… …
LCD_CmdWrite ( INTR); //Clear Touch Panel
Status
temp=LCD_DataRead ( ) &0xfe;
LCD_CmdWrite(INTR);
LCD_DataWrite ( temp);
}
5 結論
觸摸屏作為一種新型的輸入設備正在得到日益廣泛的應用。而利用RA8806 實現觸摸屏控制,可以方便實現與單片機之間的連接,與點陣式液晶顯示屏DV320240GB 相配合使用,通過單片機與觸摸屏之間的接口設計,可以便捷地實現控制功能。
參考文獻:
[1] 王富東. 電阻式觸摸屏與單片機的接口技術[J].蘇州大學學報,2006,12
[2] 石楊, 閔子建. 基于觸摸屏控制器的在線動態數據采集及預處理[J].微計算機信息, 2008,24
[3] 劉彬, 韓進. 基于單片機的液晶顯示觸摸屏控制設計[J].液晶與顯示,2010,4
2010,4(2):240-244.
[4] 劉升. 基于RA8806 控制器的LCD和51單片機接口技術[J],電子設計工程,2009,17
[5] 黎安軍,藍飄先. 51單片機的觸摸屏系統的應用[J].計算機科學與技術,2008,26
[6] 王選民, 李明利,等.基于ADS7846 的電阻式觸摸屏接口設計[J].現代電子技術,2010(11)