關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 觸摸屏的應用與工作原理

        觸摸屏的應用與工作原理

        作者: 時間:2009-12-28 來源:網絡 收藏

          2.4 A/D轉換時序的程序設計

          ADS7843的典型如圖4所示。假設μP接口與51單片機的P1.3~P1.7相連,現以一次轉換需24個時鐘周期為例,介紹A/D轉換時序的程序設計。

          ; A/D 接口控制線

          DCLK BIT P1.3

          CS BIT P1.4

          DIN BIT P1.5

          BUSY BIT P1.6

          DOUT BIT P1.7

          ; A/D 通道選擇命令字和寄存器

          CHX EQU 094H ;通道X+的選擇控制字

          CHY EQU 0D4H;通道Y+的選擇控制字

          CH3 EQU 0A4H

          CH4 EQU 0E4H

          AD_CH EQU 35H ;通道選擇寄存器

          AD_RESULTH EQU 36H ;存放12 bit A/D值

          AD_RESULTL EQU 37H

          ; 存放通道CHX+的A/D值

          CHXAdResultH EQU 38H

          CHXAdResultL EQU 39H

          ; 存放通道CHY+的A/D值

          CHYAdResultH EQU 3AH

          CHYAdResultL EQU 3BH

          ; 采集通道CHX+的程序段(CHXAD)

          CHXAD: MOV AD_CH,#CHX

          LCALL AD_RUN

          MOV CHXAdResultH,AD_RESULTH

          MOV CHXAdResultL,AD_RESULTL

          RET

          ; 采集通道CHY+的程序段(CHYAD)

          CHYAD: MOV AD_CH,#CHY

          LCALL AD_RUN

          MOV CHYAdResultH,AD_RESULTH

          MOV CHYAdResultL,AD_RESULTL

          RET

          ; A/D轉換子程序(AD_RUN)

          ; 輸入: AD_CH-模式和通道選擇命令字

          ; 輸出: AD_RESULTH,L ;12 bit的A/D轉換值

          ; 使用: R2 ;輔助寄存器

          AD_RUN:

          CLR CS ; 芯片允許

          CLR DCLK

          MOV R2,#8 ;先寫8 bit命令字

          MOV A,AD_CH

          AD_LOOP:

          MOV C, ACC.7

          MOV DIN,C ;時鐘上升沿鎖存DIN

          SETB DCLK ;開始發送命令字

          CLR DCLK ;時鐘脈沖,一共24個

          RL A

          DJNZ R2,AD_LOOP

          NOP

          NOP

          NOP

          NOP

          ADW0: JNB BUSY,AD_WAIT ;等待轉換完成

          SJMP ADW1

          AD_WAIT:

          LCALL WATCHDOG

          NOP

          SJMP ADW0

          CLR DIN

          ADW1: MOV R2,#12 ;開始讀取12bit結果

          SETB DCLK

          CLR DCLK

          AD_READ:

          SETB DCLK

          CLR DCLK ;用時鐘的下降沿讀取

          MOV A,AD_RESULTL

          MOV C,DOUT

          RLC A

          MOV AD_RESULTL,A

          MOV A,AD_RESULTH

          RLC A

          MOV AD_RESULTH,A

          DJNZ R2,AD_READ

          MOV R2,#4 ;最后是沒用的4個時鐘

          IGNORE:

          SETB DCLK

          CLR DCLK

          DJNZ R2,IGNORE

          SETB CS ;禁止芯片

          ANL AD_RESULTH,#0FH ;屏蔽高4 bit

          RET

          2.5 A/D轉換結果的數據格式

          ADS7843轉換結果為二進制格式。需要說明的是,在進行公式計算時,參考電壓在兩種輸入模式中是不一樣的。而且,如果選取8位的轉換精度,1LSB=VREF/256,一次轉換完成時間可以提前4個時鐘周期,此時串口時鐘速率也可以提高一倍。

          結束語

          在許多嵌入式系統中,CPU提供專門的模塊來支持液晶顯示和的輸入,使得接口非常簡單。比如,MOTOROLA的MC68VZ328(稱為 Dragon Ball)就提供專門的引腳來支持8位和4位的液晶顯示,對的支持通過SPI2借助ADS7843也很容易完成。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东乡| 富蕴县| 莱阳市| 临澧县| 司法| 内丘县| 石嘴山市| 县级市| 宜城市| 金堂县| 哈巴河县| 徐闻县| 龙里县| 城步| 景宁| 金堂县| 红原县| 霞浦县| 瓦房店市| 高安市| 涡阳县| 濮阳市| 如东县| 承德市| 沾益县| 大石桥市| 灵寿县| 天水市| 攀枝花市| 茂名市| 祁连县| 云浮市| 博客| 南溪县| 黄大仙区| 阜南县| 桐庐县| 三穗县| 乐亭县| 涞源县| 清水河县|