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

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 8096系列單片機(jī)與觸摸屏芯片的接口設(shè)計(jì)與實(shí)現(xiàn)

          8096系列單片機(jī)與觸摸屏芯片的接口設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-04-26 來(lái)源:網(wǎng)絡(luò) 收藏
          流向見(jiàn)圖4所示。

            8096系列單片機(jī)與觸摸屏芯片的接口設(shè)計(jì)與實(shí)現(xiàn)

            圖3 AD7843內(nèi)部原理結(jié)構(gòu)

            8096系列單片機(jī)與觸摸屏芯片的接口設(shè)計(jì)與實(shí)現(xiàn)

            圖4 ADS7843

            對(duì)于ADS7843來(lái)說(shuō), 除了電源與地線, 輸入模擬信號(hào)X+ 、X- 、Y+ 、Y - 、IN3、IN4, 輸入數(shù)字信號(hào)DCLK、/CS、DIN;輸出數(shù)字信號(hào)BUSY、DOUT、/PEN IRQ.與編程有關(guān)的均是數(shù)字信號(hào), 數(shù)據(jù)輸入、輸出、時(shí)鐘輸入均為串行方式, 最高轉(zhuǎn)換速率為1/125KH z, 線路設(shè)計(jì)結(jié)構(gòu)上比較方便只需要6根端口線就可以建立完全的數(shù)據(jù)交互。

            2. 4 現(xiàn)象分析

            采用80196的P1口的6個(gè)端口專(zhuān)門(mén)與其打交道, 從硬件上講是完全可以的。然而由于在編程中P1口有些端口是作輸入、有些端口需要作為輸出, 80196又沒(méi)有對(duì)位直接進(jìn)行操作的指令, 對(duì)P1某一個(gè)端口作輸出操作, 通常196會(huì)先讀P1口的8個(gè)管腳, 然后再進(jìn)行 寫(xiě)!的操作, 根據(jù)P1口結(jié)構(gòu), 必然會(huì)帶來(lái)若作為輸入端口的管腳在其外部輸入信號(hào)為低時(shí), 執(zhí)行 寫(xiě)!指令后出現(xiàn)了將其輸入狀態(tài)改為了輸出狀態(tài)。此時(shí)在80196與ADS7843的DOUT與/PEN IRQ這兩根線上都將出現(xiàn)了同一根線上出現(xiàn)兩個(gè)輸出信號(hào)、爭(zhēng)搶信號(hào)的問(wèn)題, 這是數(shù)字電路中絕對(duì)不允許的, 它的出現(xiàn)就有可能損壞。

            根據(jù)資料介紹, 在編程操作中, 當(dāng)P1口中有些管腳作為輸入, 有些管腳作為輸出時(shí)要特別注意對(duì)P1 口寫(xiě)指令操作,它是一個(gè)讀、寫(xiě)過(guò)程, 最好借助于一些單元。

            3 軟件設(shè)計(jì)分析

            對(duì)于按鍵的處理, 系統(tǒng)采用中斷方式, 流程如圖5所示。

            圖5按鍵流程圖

            圖5按鍵流程圖

            主要相關(guān)程序如下:

            /* 寫(xiě)控制指令、讀數(shù)據(jù)子程序* /

            LDB R6, # 08H ; 寫(xiě)8位控制指令代碼

            CLRC; LDB AL, COM ; 指令代碼準(zhǔn)備發(fā)送

            ADS7843_W: SHLB AL, # 1 ; 數(shù)據(jù)串行發(fā)送

            JC S_D I_1; JMP S_DI_0

            S_DI_1: LDB BL, IOPORT1 ; 將P1 口狀態(tài)保存在BL 寄存器中

            ORB BL, # 03H ; 將數(shù)據(jù)出DOUT置高, 數(shù)據(jù)入DIN 為信號(hào)輸入狀態(tài)

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            JMP SKCLK

            S_DI_0: LDB BL, IOPORT1 ; 將P1 口狀態(tài)保存在BL 寄存器中

            ANDB BL, # 0FEH ; 將數(shù)據(jù)出DOUT 置低

            ORB BL, # 02H ; 數(shù)據(jù)入D IN為信號(hào)輸入狀態(tài)

            LDB IOPORT1, BL; 將修改后的狀態(tài)送至P1口

            SKCLK: LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中

            ANDB BL, # 0F7H ; 時(shí)鐘信號(hào)DCLK為低

            ORB BL, # 01H ; 將數(shù)據(jù)出DOUT 置高

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中

            ORB BL, # 09H ; 時(shí)鐘信號(hào)DCLK 為高, 將數(shù)據(jù)出DOUT置高

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            DJNZ R6, ADS7843_W ; 8位指令送完

            LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中

            ANDB BL, # 0F7H ; 時(shí)鐘信號(hào)DCLK為低

            ORB BL, # 01H ; 將數(shù)據(jù)出DOUT 置高

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            /* 準(zhǔn)備接受按鍵讀14 位數(shù)據(jù)數(shù)據(jù), 先接受低8位數(shù)據(jù)* /

            LDB R6, # 08H ; 鍵值設(shè)定方向讀低8位數(shù)據(jù)程序

            DATA_OUT: LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中

            ORB BL, # 09H ; 時(shí)鐘信號(hào)DCLK 為高, 將數(shù)據(jù)出DOUT置高

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            LDB BL, IOPORT1 ; 將P1口狀態(tài)保存在BL寄存器中

            ANDB BL, # 0F7H ; 時(shí)鐘信號(hào)DCLK為低

            ORB BL, # 01H ; 將數(shù)據(jù)出DOUT 置高

            LDB IOPORT1, BL ; 將修改后的狀態(tài)送至P1口

            SHLB AL, # 1 ; 數(shù)據(jù)左移一位

            JBS IOPORT1, 0, DI_O_1 ; 判數(shù)據(jù)入DIN 高?

            ANDB AL, # 0FEH ; 數(shù)據(jù)入DIN低, 輸入0

            JMP DATA_OUT1

            DI_O_1: ORB AL, # 01H ; 數(shù)據(jù)入DIN高, 輸入1

            DATA_OUT1: DJNZ R6, DATA_OUT ; 8位數(shù)據(jù)讀完

            STB AL, FIRST ; 低8位數(shù)據(jù)保存至FIRST單元同樣處理接受數(shù)據(jù)高4位數(shù)據(jù)

            …… …… ; 4位數(shù)據(jù)讀完, 數(shù)據(jù)保存。讀14 位數(shù)據(jù)程序完成后返回

            程序上機(jī)調(diào)試后再?zèng)]有出現(xiàn)之間指令不執(zhí)行, 燒壞觸摸的問(wèn)題。也許你會(huì)發(fā)現(xiàn), 在程序編程中, 我們使用了BL寄存器作P1口的過(guò)渡保護(hù)單元, 對(duì)輸出信號(hào)采用了對(duì)位的或、與方式達(dá)到輸出“1”、 “0”電平。保證P1的輸入端口不會(huì)因其他P1 端口的操作而改變其狀態(tài), 在信號(hào)線上出現(xiàn)兩個(gè)輸出、爭(zhēng)搶信號(hào)的現(xiàn)象。這就是觸摸屏出問(wèn)題的主要原因。

            4 結(jié)語(yǔ)

            在項(xiàng)目鑒定時(shí), 專(zhuān)家們給出了系統(tǒng)設(shè)計(jì)新穎、結(jié)構(gòu)合理、功能比較完善, 擴(kuò)展性強(qiáng), 有一定的市場(chǎng)空間。特別提到了每個(gè)觸摸鍵設(shè)計(jì)合理、反映正確的結(jié)論。

            在本項(xiàng)目結(jié)束時(shí)還有一個(gè)關(guān)于按鍵的遺留問(wèn)題: 由于是使用單端模式工作, 且CPU 接到請(qǐng)求后, 為了消除抖動(dòng)、防止誤觸發(fā), 延時(shí)后再響應(yīng)其請(qǐng)求, 造成了按鍵反映遲緩, 這是一個(gè)硬件、軟件都需改進(jìn)的問(wèn)題, 硬件需換模擬數(shù)據(jù)轉(zhuǎn)換,軟件上延時(shí)可以短一些。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 單片機(jī) 觸摸屏 芯片 接口

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();