引言
觸摸屏是目前最簡單、方便、自然的而且又適用于中國多媒體信息查詢國情的輸入設備, 它具有堅固耐用、反應速度快、節省空間、易于交流等許多優點。觸摸屏技術被認為是未來人機交互科技的主流方向之一,相關的產業及其產品的應用也正在成為一個熱點。
本設計題目來自于廣西區自然科學基金項目, 是基金項目中的一個研究子模塊, 本文作者在畢業設計期間針對NL 6448AC33218 彩色液晶顯示屏及其觸摸屏, 應用C8051F020 單片機控制芯片, 采用單片機C 語言編制程序并進行調試, 并且程序采用模塊化設計。
一、系統構成
本設計是基于單片機C8051F020 微處理器控制的彩色液晶及觸摸屏的控制系統, 系統結構框圖如圖1所示:
二、系統連接方式及工作過程
(一)C8051F020 控制TFT6448b 的工作過程
在用C8051F020 實現對TFT 6448b 的控制過程中, 采用總線方式進行控制。因為TFT 6448b 液晶控制器自帶有鎖存功能, 所以在使用總線方式進行控制時并不需要外加鎖存芯片, 只須使用單片機C8051F020 的P0、P2、P3 口就可以實現。在系統加電之前, 由于C8051F020 的典型工作電壓為313V , TFT 6448b 的工作電壓是5V , 對P0、P2、P3 口相應連接管腳進行驅動能力擴展; 根據控制需求, 通過P0、P2、P3 端口寄存器, 將相應端口的引腳配置成漏極輸出方式。將P3 口配置成為數據?地址輸出口, 輸出地址時, 其為地址總線的低八位, P2 口提供高位地址; 傳輸數據時, 其為8 位數據總線口。系統加電后, 使得TFT 6448b 的片選信號?C S 有效, 通過往TFT 6448b 的相應行、列、控制、數據寄存器中寫入數據, 即可用C8051F020 芯片實現對TFT 6448b的控制, 從而實現彩色液晶的顯示控制。
(二) 觸摸屏硬件接口電路及工作原理
圖2 觸摸屏硬件接口電路
根據四線電阻式觸摸屏的工作原理, 結合圖2 中觸摸屏硬件接口電路。
該觸摸屏硬件接口電路的具體工作過程如下: 1、如圖2 所示電路, 連接好線路, 給電源輸入端、參考基準電壓端接入313V 的直流電源; 2、結合軟件編程對AD0 進行初始化, 系統處于休眠狀態時, 軟件開中斷, 截止PN P1、PN P2、N PN 1, 飽和導通N PN 2; 3、等待觸摸屏被觸摸; 4、若觸摸屏上發生觸摸, 進入中斷服務程序, 關掉外部中斷, 進行短暫延時以消除外界抖動。通過判斷中斷輸入口P010 的電平變化, 確定抖動是否結束。通過軟件截止PN P2、N PN 2, 飽和導通PN P1、N PN 1, 選擇模數轉換通道A IN 010, 采集觸摸點的X 方向坐標值,延時等待轉換結束, 移出轉換結果; 電極電壓切換, 通過軟件置位, 截止PN P1、N PN 1, 飽和導通PN P2、N PN 2, 選擇模數轉換通道A IN 011, 采集觸摸點的Y 方向坐標值, 延時等待轉換結束, 移出轉換結果; 5、通過將采集到的X 和Y 坐標值與設定的按鍵邊界值進行比較, 若比較結果為真, 則切換到相應的子頁面, 否則, 重新開中斷, 并返回主程序; 6、觸摸屏硬件接口電路工作過程重新回到步驟3, 繼續等待下一次觸摸。
三、彩色液晶顯示及觸摸屏軟件設計
(一) 顯示原理
如要在點陣液晶顯示器上顯示漢字, 首先從漢字點陣生成工具中提取要顯示的漢字的點陣字模。因為每個漢字在字庫中是以點陣字模形式存儲的, 所以在程序當中建立字庫, 以便調用。程序監測, 是"1"就顯示, 是"0"就不顯示。檢測某位是否為"1"的方法兩種: 一種是移位法。每次向左移動一位, 然后判斷進位的值, 若為"1", 說明要顯示, 則向寫數據寄存器DA T 送該字要顯示的顏色代碼; 若為"0", 說明不用顯示, 跳過; 另一種是位與法。先與80H 位與, 判斷該字節的最高位是否為"1", 若是, 說明要顯示; 若不是, 跳過; 再依次與40H、20H、10H、08H、04H、02H、01H 位與, 判斷相應位是否為"1".如要顯示字符、數字和圖形等, 其方法和原理與顯示漢字一樣。
(二) 程序設計
1、顯示程序程序設計。
其程序流程圖如圖3 所示:
2、觸摸屏軟件設計。
結合圖2 所示觸摸屏硬件接口電路, 為實現對觸摸屏上觸摸點的識別, 實現頁面切換功能。本設計中觸摸屏模塊軟件設計思想是: 對P0 端口的P010 引腳、P1 端口的P114~ P117 引腳, 通過相應的端口輸出方式寄存器, 配置為推挽輸出方式; 對模數轉換器ADC0 的相關寄存器進行設置, 將模擬輸入通道配置為單端輸入方式, 通過通道選擇寄存器分時選通采集數據的模數轉換通道。進入主程序, 等待外部觸摸中斷發生。若外界產生觸摸, 進入中斷服務程序, 關掉外部中斷, 可以避免多個觸摸點發生沖突。通過判斷中斷輸入口電平的變化消除非意圖觸摸產生的抖動; 消除抖動后。通過電壓切換, 分別導通X 電極對、Y 電極對, 分別采集X 方向、Y 方向的模擬輸入量并移出轉換結果, 將采集到的值與事先設定的按鍵邊界值進行比較, 若在按鍵范圍內, 則切換到相應頁面, 否則開中斷并返回主程序, 繼續等待外部觸摸中斷發生。相應軟件設計流程圖如圖4所示。
3、觸點判斷程序設計。
在本設計當中彩色液晶顯示屏的坐標分布情況分布如下: 屏的最左上角(0, 0) , 屏的最左下腳(0, 479) ,屏的最右上角(639, 0) , 屏的最右下角(639, 479)。通過往彩色液晶顯示控制芯片TFT 6448b 的列、行、控制、數據寄存器中送入相應的值, 即可以在液晶屏上任何地方實現顯示。根據顯示頁面設計要求, 將需要顯示的按鍵用文字、字符或者圖形標識事先在液晶顯示屏上顯示出來。譬如其中頁面中有兩個按鍵標識, 即"返回"和"下一頁".這兩個標識在液晶顯示屏的位置是這樣的, 如上圖5 所示。