基于PIC32MX的液晶觸摸屏人機(jī)界面設(shè)計(jì)
PIC32MX是Microchip公司推出的新型32位高性能系列單片機(jī)。采用改進(jìn)的哈佛架構(gòu)、C編譯器優(yōu)化的指令集、流水線取指令方式,具有實(shí)用、指令集小、體積小、功耗低、速度高、功能強(qiáng)、抗干擾能力強(qiáng)等特點(diǎn)。除了本文主要介紹的8位/16位并行控制接口模塊和10/12位的A/D轉(zhuǎn)換器(500 Ksps)外,還提供了CAN、UART、SPI、I2C等豐富的外圍接口,可以方便地與其他設(shè)備進(jìn)行通信。彩色液晶觸摸屏不僅可以顯示字符、數(shù)字、圖形、曲線及漢字,還具有觸摸功能,用途十分廣泛。
工業(yè)上用32位單片機(jī)PIC32MX460F512L來(lái)控制帶觸摸屏的液晶顯示器是一種理想的方案。本文使用PIC32MX460F512L的并行接口模塊,按照8080時(shí)序驅(qū)動(dòng)所羅門公司的SSD1926芯片,實(shí)現(xiàn)了5.7 in TFT彩色液晶觸模屏的觸摸和顯示功能。該方案在噴水織機(jī)控制應(yīng)用中,已經(jīng)整體實(shí)現(xiàn)了數(shù)據(jù)輸入/輸出、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理及傳輸?shù)纫幌盗猩衔粰C(jī)功能,而且用戶界面友好。
1 PIC32MX與SSD1926的接口電路
SSD1926是一款中小規(guī)模的顯示控制芯片。采用128引腳LQFP封裝,256 KB靜態(tài)存儲(chǔ)空間和2D圖像引擎,可以支持單色和彩色LCD;32位內(nèi)部數(shù)據(jù)通道,可以提供高帶寬的顯示內(nèi)存,以實(shí)現(xiàn)快速的屏幕刷新;擁有MMC/SD接口,可以與SD卡等外部存儲(chǔ)器件方便地進(jìn)行數(shù)據(jù)交換;采用單電源供電和單時(shí)鐘輸入,具有很短的CPU訪問延遲時(shí)間,可以支持無(wú)READY/WAIT信號(hào)的微處理器。這些特點(diǎn)能夠極大地簡(jiǎn)化外圍電路的設(shè)計(jì)。同時(shí),SSD1926還具有強(qiáng)大的總線兼容性,可與多種類型的MCU連接,除了支持SRAM接口與ARM系列連接、ISA接口與NEC系列連接外,還支持8/16位8080時(shí)序間接尋址方式,能夠方便地與各種具有并口的MCU連接。本文使用:PIC32MX460F512L的8位/16位并行控制接口模塊與SSD1926接口。硬件接口框圖如圖1所示。
CS為片選信號(hào),RS為地址與數(shù)據(jù)選擇信號(hào),RESET為復(fù)位信號(hào),都可以由通用I/O口進(jìn)行控制,分別用RC1、RC2和RC3與其連接。數(shù)據(jù)總線DB[15:0]與并行控制接口模塊中的PMD[15:0]引腳分別對(duì)接。WR和RD為讀寫信號(hào),由并行控制接口模塊中的PMWR和PMRD引腳分別控制。SSD1926對(duì)接收到的數(shù)據(jù)進(jìn)行處理之后,再通過與LCD的接口驅(qū)動(dòng)TFT彩色液晶屏進(jìn)行顯示。
2 觸摸功能的軟硬件設(shè)計(jì)
電阻式觸摸屏處于與外界完全隔離的工作環(huán)境,不怕灰塵和水汽,可以用任何物體來(lái)觸摸,可以寫字畫圖,廣泛應(yīng)用于工業(yè)控制領(lǐng)域中。觸摸屏工作時(shí),上下導(dǎo)體層可以看作電阻網(wǎng)絡(luò)。當(dāng)某一層電極加上電壓時(shí),會(huì)在該電阻網(wǎng)絡(luò)上形成電壓梯度。若外力使得上下兩層電極在某一點(diǎn)相接觸,則在電極未施加電壓的另一層可以檢測(cè)出接觸點(diǎn)的電壓,從而換算出接觸點(diǎn)的坐標(biāo)值。本文選用4線電阻式觸摸屏,其電阻網(wǎng)絡(luò)工作原理如圖2所示。
系統(tǒng)工作時(shí),首先把AN11/RB11、AN4/RB4復(fù)用引腳設(shè)置為I/O引腳。RB11輸出高電平(+3.3 V),RB4引腳輸出低電平(0 V),在頂層的電極X+、X-上即產(chǎn)生了3.3 V的電壓。當(dāng)有外力使得上下兩層在某一點(diǎn)接觸時(shí),在底層Y+、Y-引腳上就會(huì)輸出接觸點(diǎn)處的電壓。此時(shí),AN10/RB10、AN5/RB5設(shè)置為A/D輸入通道。采樣此引腳上的電壓信號(hào),即可得到Y(jié)+、Y-引腳上的電壓值,根據(jù)下式可以計(jì)算出X坐標(biāo):
觸點(diǎn)X坐標(biāo)=X軸分辨率×X相電壓采樣值/1 024
本文為10位精度A/D采樣,3.3 V輸入時(shí)對(duì)應(yīng)的采樣值即為1 024。然后,改變4個(gè)引腳的輸出定義,將A/D輸入引腳RB10設(shè)置為I/O引腳輸出高電平,RB5設(shè)置為I/O引腳輸出低電平,將3.3 V電壓切換到底層電極Y+、Y-上,設(shè)置AN11和AN4為A/D輸入引腳。對(duì)X+、X-引腳進(jìn)行A/D采樣,測(cè)量得到接觸點(diǎn)處的Y相電壓,根據(jù)下式可以計(jì)算出Y坐標(biāo):
觸點(diǎn)Y坐標(biāo)=y軸分辨率×y相電壓采樣值/1 024
在工業(yè)應(yīng)用中,由于A/D采樣信號(hào)為模擬量輸入,很容易受到現(xiàn)場(chǎng)環(huán)境的電磁干擾。除了在硬件上設(shè)計(jì)濾波電路等抗干擾措施外,還需要在軟件中設(shè)計(jì)抗干擾算法,具體軟件流程如圖3所示。通過采樣兩次輸入進(jìn)行比較的方法,能夠有效地減少由A/D采樣模擬信號(hào)源帶來(lái)的干擾。根據(jù)采樣得到的X、Y坐標(biāo)值,能夠準(zhǔn)確地知道觸摸屏上接觸點(diǎn)的位置,再根據(jù)X、Y坐標(biāo)的歷史值,還能夠分析出接觸點(diǎn)的狀態(tài)是接觸、移動(dòng),還是放開等狀態(tài)。
3 顯示觸摸功能的綜合實(shí)現(xiàn)
PIC32MX系列的并行控制接口模塊功能非常強(qiáng)大,只需要對(duì)其寄存器進(jìn)行正確的初始化配置,即可自動(dòng)適應(yīng)各種并行接口的時(shí)序要求。當(dāng)需要進(jìn)行讀寫指令切換時(shí),只需要改變讀寫狀態(tài)寄存器的值,芯片就會(huì)根據(jù)初始化配置時(shí)設(shè)置的值自動(dòng)產(chǎn)生時(shí)序電平。在進(jìn)行寫操作時(shí),芯片也會(huì)根據(jù)設(shè)置的值,自動(dòng)使數(shù)據(jù)信號(hào)達(dá)到所要求的建立電平和保持電平的時(shí)間。SSD1926相對(duì)應(yīng)的寄存器配置如下:
并行接口數(shù)據(jù)傳輸時(shí)序如圖4所示。
評(píng)論