<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 元件/連接器 > 設(shè)計(jì)應(yīng)用 > 單片機(jī)擴(kuò)展觸摸屏人機(jī)接口的應(yīng)用實(shí)例

          單片機(jī)擴(kuò)展觸摸屏人機(jī)接口的應(yīng)用實(shí)例

          ——
          作者:杭州電子科技大學(xué) 王愛華 時(shí)間:2007-08-03 來源:電子產(chǎn)品世界 收藏

          摘要: 本文介紹了四線電阻式控制器BB與AVRAtmega128的硬件連接和驅(qū)動(dòng)程序設(shè)計(jì)。

          關(guān)鍵詞: ;



          如圖1,典型觸摸屏的工作部分一般由三部分組成:兩層透明的阻性導(dǎo)體層、兩層導(dǎo)體之間的隔離層、電極。阻性導(dǎo)體層選用阻性材料,如銦錫氧化物(ITO)涂在襯底上構(gòu)成,上層襯底用塑料,下層襯底用玻璃。隔離層為粘性絕緣液體材料,如聚脂薄膜。電極選用導(dǎo)電性能極好的材料(如銀粉墨)構(gòu)成,其導(dǎo)電性能大約為ITO的1000倍。

          圖1  觸摸屏

          觸摸屏工作時(shí),上下導(dǎo)體層相當(dāng)于電阻網(wǎng)絡(luò)。當(dāng)某一層電極加上電壓時(shí),會(huì)在該網(wǎng)絡(luò)上形成電壓梯度。如有外力使得上下兩層在某一點(diǎn)接觸,則在電極未加電壓的另一層可以測(cè)得接觸點(diǎn)處的電壓,從而知道接觸點(diǎn)處的坐標(biāo)。比如,在頂層的電極(X+,X-)上加上電壓,則在頂層導(dǎo)體層上形成電壓梯度,當(dāng)有外力使得上下兩層在某一點(diǎn)接觸,在底層就可以測(cè)得接觸點(diǎn)處的電壓,再根據(jù)該電壓與電極(X+)之間的距離關(guān)系,知道該處的X坐標(biāo)。然后,將電壓切換到底層電極(Y+,Y-)上,并在頂層測(cè)量接觸點(diǎn)處的電壓,從而知道Y坐標(biāo)。四線制電阻觸摸屏也是目前最常用的觸摸屏產(chǎn)品。本系統(tǒng)中選用AMT9502。
            
          觸摸屏控制器硬件設(shè)計(jì)

          Atmega128 是Atmel公司的8位RISC,片內(nèi)有128Kflash、4K RAM、4K EEPROM、兩個(gè)可編程的USART、1個(gè)可工作在主機(jī)/從機(jī)的SPI串行接口。此外還有豐富的I/O接口,8通道10位分辨率ADC轉(zhuǎn)換器等硬件資源。

          單片機(jī)最小系統(tǒng)設(shè)計(jì)如圖2所示。低電壓版本的 Atmega 128支持3.3V、5V兩種供電電壓,本系統(tǒng)采用5V供電,便于供電電壓統(tǒng)一。晶振采用常規(guī)直插晶振7.373800M,選用標(biāo)準(zhǔn)晶振的目的主要是為了提高USART通訊波特率的準(zhǔn)確性,使單片機(jī)能夠使用于比較高的通訊波特率。復(fù)位電路采用常規(guī)的RC復(fù)位,沒有使用特殊的復(fù)位器件,Atmega 128已經(jīng)內(nèi)置了看門狗,并且可以通過編程使看門狗在程序啟動(dòng)前啟動(dòng),即上電后程序啟動(dòng)前,看門狗已經(jīng)啟動(dòng),這樣系統(tǒng)的可靠性可以得到保證,看門狗最高分頻系數(shù)是2048K,最小分頻系統(tǒng)是16K。系統(tǒng)中PB0(SS)已經(jīng)直接接到+5V,這樣硬件配置了單片機(jī)為主機(jī),下面所有外掛的均為從機(jī),本系統(tǒng)外掛只有一個(gè)就是。單片機(jī)和觸摸屏控制器連接如圖3所示,PB1(CLK) 為SPI時(shí)鐘,PB2(MOSI)為SPI主機(jī)輸出從機(jī)輸入, PB3(MISO)SPI主機(jī)輸入從機(jī)輸出。這三根線為SPI總線。

          圖2 單片機(jī)最小系統(tǒng)圖

          圖3 單片機(jī)和觸摸屏控制器連接圖

          ADS7843是TI公司的觸摸屏控制器芯片 專門應(yīng)用于四線電阻式觸摸屏,最高達(dá)到125K的轉(zhuǎn)換率 8位或者12位可編程精度。外部參考電壓范圍從1V到VCC均可,VCC最高電壓為5V,高速低功耗使得ADS7843非常適合于使用電阻觸摸屏的手持設(shè)備。寬溫度設(shè)計(jì)使得它很適用于大量的工業(yè)現(xiàn)場(chǎng)。

          ADS7843連接觸摸屏的示意圖如圖4所示。

          圖4 ADS7843和觸摸屏連接圖

          觸摸屏是一個(gè)四線電阻屏幕,可以示意出兩個(gè)電阻,測(cè)量X方向的時(shí)候,將X+,X-之間加上參考電壓Vref,Y-斷開,Y+作為A/D輸入,進(jìn)行A/D轉(zhuǎn)換獲得X方向的電壓,同理測(cè)量Y方向的時(shí)候,將Y+,Y-之間加上參考電壓Vref,X-斷開,X+作為A/D輸入,進(jìn)行A/D轉(zhuǎn)換獲得Y方向的電壓,之后再完成電壓與坐標(biāo)的換算。整個(gè)過程類似一個(gè)電位器,觸摸不同的位置分得不同的電壓。

          以上所需要的加參考電壓斷開A/D轉(zhuǎn)換等工作都是ADS7843直接完成的,只需要將相應(yīng)的命令傳輸?shù)紸DS7843即可,等待轉(zhuǎn)換周期完成,檢測(cè)到BUSY信號(hào)不再忙,即可以獲得相應(yīng)電壓的數(shù)據(jù)。

          此外PENIRQ一般需要一個(gè)上拉電阻,因?yàn)锳DS7843是一個(gè)OC門輸出結(jié)構(gòu),本系統(tǒng)中直接使用Atmega 128內(nèi)部的上拉電阻。單片機(jī)中斷系統(tǒng)中將INT0分配給觸摸屏控制器,并且設(shè)定成低電平觸發(fā),這樣可以檢測(cè)按鍵時(shí)間,可以用按鍵長短處理不同的功能。

          觸摸屏控制器驅(qū)動(dòng)程序

          驅(qū)動(dòng)程序的編寫與硬件的設(shè)計(jì)是直接相關(guān),驅(qū)動(dòng)程序是以上面所設(shè)計(jì)的硬件為基礎(chǔ)的。

          表1 ADS7843的控制字及數(shù)據(jù)傳輸格式

          根據(jù)ADS7843的Datasheet,ADS7843的控制字及數(shù)據(jù)傳輸格式如表1。其中S為數(shù)據(jù)傳輸起始標(biāo)志位,該位必為“1”。A2~A0進(jìn)行通道選擇。MODE用來選擇A/D轉(zhuǎn)換的精度,“1”選擇8位,“0”選擇12位。SER/選擇參考電壓的輸入模式。PD1、PD0選擇省電模式:“00”省電模式允許,在兩次A/D轉(zhuǎn)換之間掉電,且中斷允許;“01”同“00”,只是不允許中斷;“10”保留;“11”禁止省電模式。
          為了完成一次電極電壓切換和A/D轉(zhuǎn)換,需要先通過串口往ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過串口讀出電壓轉(zhuǎn)換值。標(biāo)準(zhǔn)的一次轉(zhuǎn)換需要24個(gè)時(shí)鐘周期。由于串口支持雙向同時(shí)進(jìn)行傳送,并且在一次讀數(shù)與下一次發(fā)控制字之間可以重疊,所以轉(zhuǎn)換速率可以提高到每次16個(gè)時(shí)鐘周期。如果條件允許,CPU可以產(chǎn)生15個(gè)CLK的話(比如FPGA和ASIC),轉(zhuǎn)換速率還可以提高到每次15個(gè)時(shí)鐘周期。
          所以我們選擇控制字 :

          0x94-----X+輸入得到Y(jié) AD值    0xe4----Y+輸入得到X AD值
          SPI初始化程序:
          void spi_init(void)
          {
           SPCR = 0x53; //setup SPI
           SPSR = 0x00; //setup SPI
          }
          SPI主機(jī)傳輸函數(shù):
          void SPI_MasterTransmit(char cData)
          {
          SPDR = cData; /* 啟動(dòng)數(shù)據(jù)傳輸 */
          while(!(SPSR & (1<<SPIF))); /*等待傳輸
            結(jié)束*/
          }
          讀取ADS7843的模擬量值;
          unsigned int Get_Touch_Ad(unsigned char
            channel)
          {
          unsigned int ad_tem;            
          SPI_MasterTransmit(channel);//發(fā)送控制字
          if(PING&&0x08==0)  ;      //判斷busy 
          delayms(1);
          SPI_MasterTransmit(0);
          delayms(1);              //等待發(fā)送完畢 
          ad_tem=SPDR; 
          ad_tem=ad_tem<<8;
          SPI_MasterTransmit(0);       //啟動(dòng)spi傳送
          delayms(1);    //等待發(fā)送完畢   
           ad_tem|=SPDR;
          ad_tem=ad_tem>>4;
          return(ad_tem);  //返回的參數(shù) 
          }

          不同的用戶還需根據(jù)自己設(shè)計(jì)的系統(tǒng),做一個(gè)簡(jiǎn)單的四點(diǎn)校正程序,這樣可以獲得一個(gè)精確度較高的觸摸屏坐標(biāo)體系。

          結(jié)語

          本系統(tǒng)已經(jīng)在國家重點(diǎn)建設(shè)項(xiàng)目揚(yáng)州二電廠工程2



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();