四線電阻觸摸屏的工作原理詳解
2.4 A/D轉(zhuǎn)換時(shí)序的程序設(shè)計(jì)
ADS7843的典型應(yīng)用如圖4所示。假設(shè)μP接口與51單片機(jī)的P1.3~P1.7相連,現(xiàn)以一次轉(zhuǎn)換需24個(gè)時(shí)鐘周期為例,介紹A/D轉(zhuǎn)換時(shí)序的程序設(shè)計(jì)。
; A/D 接口控制線
DCLKBITP1.3
CSBITP1.4
DINBITP1.5
BUSYBITP1.6
DOUTBITP1.7
; A/D 信道選擇命令字和工作寄存器
CHXEQU094H;信道X+的選擇控制字
CHYEQU0D4H;信道Y+的選擇控制字
CH3EQU0A4H
CH4EQU0E4H
AD_CHEQU35H;信道選擇寄存器
AD_DATAHEQU36H;存放12 bit A/D值
AD_DATALEQU37H
; 存放信道CHX+的A/D值
CHX_AdHEQU38H
CHX_AdLEQU39H
; 存放信道CHY+的A/D值
CHY_AdHEQU3AH
CHY_AdLEQU3BH
;===============================
; 采集信道CHX+的程序段(CHXAD)
CHXAD:
MOVAD_CH,#CHX
LCALLAD_RUN
MOVCHX_AdH,AD_DATAH
MOVCHX_AdL,AD_DATAL
RET
; 采集信道CHY+的程序段(CHYAD)
CHYAD:
MOVAD_CH,#CHY
LCALLAD_RUN
MOVCHY_AdH,AD_DATAH
MOVCHY_AdL,AD_DATAL
RET
;=====================================
; A/D轉(zhuǎn)換子程序(AD_RUN)
; 輸入: AD_CH-模式和信道選擇命令字
; 輸出: AD_RESULTH,L ;12 bit的A/D轉(zhuǎn)換值
; 使用: R2 ;輔助工作寄存器
AD_RUN:
CLRCS; 芯片允許
CLRDCLK
MOVR2,#8;先寫(xiě)8 bit命令字
MOVA,AD_CH
AD_LOOP:
MOVC, ACC.7
MOVDIN,C;時(shí)鐘上升沿鎖存DIN
SETBDCLK;開(kāi)始發(fā)送命令字
CLRDCLK;時(shí)鐘脈沖,一共24個(gè)
RL A
DJNZR2,AD_LOOP
NOP
NOP
NOP
NOP
ADW0:
JNBBUSY,AD_WAIT;等待轉(zhuǎn)換完成
SJMPADW1
AD_WAIT:
LCALLWATCHDOG
NOP
SJMPADW0
CLRDIN
ADW1:
MOVR2,#12;開(kāi)始讀取12bit結(jié)果
SETBDCLK
CLRDCLK
AD_READ:
SETBDCLK
CLRDCLK;用時(shí)鐘的下降沿讀取
MOVA,AD_DATAL
MOVC,DOUT
RLCA
MOVAD_DATAL,A
MOVA,AD_DATAH
RLCA
MOVAD_DATAH,A
DJNZR2,AD_READ
MOVR2,#4;最后是沒(méi)用的4個(gè)時(shí)鐘
IGNORE:
SETBDCLK
CLRDCLK
DJNZR2,IGNORE
SETBCS;禁止芯片
ANLAD_DATAH,#0FH;屏蔽高4 bit
RET
2.5 A/D轉(zhuǎn)換結(jié)果的資料格式
ADS7843轉(zhuǎn)換結(jié)果為二進(jìn)制格式。需要說(shuō)明的是,在進(jìn)行公式計(jì)算時(shí),參考電壓在兩種輸入模式中是不一樣的。而且,如果選取8位的轉(zhuǎn)換精度,1LSB=VREF/256,一次轉(zhuǎn)換完成時(shí)間可以提前4個(gè)時(shí)鐘周期,此時(shí)串口時(shí)鐘速率也可以提高一倍。
結(jié)束語(yǔ)
在許多嵌入式系統(tǒng)中,CPU提供專(zhuān)門(mén)的模塊來(lái)支持液晶顯示和觸摸屏的輸入,使得接口非常簡(jiǎn)單。比如,MOTOROLA的MC68VZ328(稱(chēng)為DragON Ball)就提供專(zhuān)門(mén)的引腳來(lái)支持8位和4位的液晶顯示,對(duì)觸摸屏的支持通過(guò)SPI2借助ADS7843也很容易完成。
電阻相關(guān)文章:電阻的作用居然有這么多,你造嗎
光敏電阻相關(guān)文章:光敏電阻工作原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
評(píng)論