?? adcvtxl.a96
字號:
;----------------------------------------------------------------
; A/D CONVERTION MODULE -
;----------------------------------------------------------------
; By Niu.Y.J
; Creat on 03/16/2002.
; Last version: 08/15/2002.
;---------------------------------------
ADCVTXL module
$include(80c296sa.inc)
$include(pmain.inc)
; LABLES
CYBASE EQU 0F800H ; base address of A/D buffer
BASE0 EQU CYBASE+700H
;========================== SUB START ========================
CSEG FAR
;************************ INI ADCONVT ***********************
; Name : INI_AD. *
; Func : initialize variables that about AD convertion. *
; Input : no. *
; Output: no. *
; Temp : TMPAL. *
; Call : no. *
;****************************************************************
PUBLIC INI_AD
INI_AD: ESTB TMPAL,INGRP ; select group 2.
;;INI_AD: ELDB TMPAL,INGRP ; select group 1.
LD REC_PT,#LSW AD_BASE ; rec_pointer.
LD REC_PTH,#MSW AD_BASE
RET
RST
RST
RST
;************************* AD CONVERT *************************
; Name : ADCONVT. *
; Func : get data from 12 channels in two times, and write *
; them to sample buffer and wave-record buffer. *
; Input : REC_PT,REC_PTH, recorder pointer. *
; Output: REC_PT,REC_PTH. *
; Temp : TMPAX;DPTR0,DPTR0H;DPTR1,DPTR1H *
; Call : RESULT_RD. *
;****************************************************************
PUBLIC ADCONVT
ADCONVT:PUSH TMPAX
PUSH DPTR0
PUSH DPTR0H
PUSH DPTR1
PUSH DPTR1H
PUSH WSR
LD DPTR1,#LSW BASE0+12
LD DPTR1H,#MSW BASE0
ADD REC_PT,#12
ESTB R0,RSTAD
LD DPTR0,#LSW CSAD
LD DPTR0H,#MSW CSAD
ELDB R0,SAMPLE
LDB TMPAL,#20
DJNZ TMPAL,$
ELDB TMPAL,INGRP
;;ESTB TMPAL,INGRP
LCALL RESULT_RD
ESTB R0,SAMPLE
LDB TMPAL,#10
DJNZ TMPAL,$
LD DPTR1,#LSW BASE0
LD DPTR1H,#MSW BASE0
SUB REC_PT,#24
ESTB R0,RSTAD
LD DPTR0,#LSW CSAD
LD DPTR0H,#MSW CSAD
ELDB R0,SAMPLE
LDB TMPAL,#20
DJNZ TMPAL,$
;;ELDB TMPAL,INGRP
LCALL RESULT_RD
ESTB R0,SAMPLE
ESTB TMPAL,INGRP
LDB TMPAL,#10
DJNZ TMPAL,$
ADD REC_PT,#12
CMP REC_PT,#1FC0H
JLT AD_END
LD REC_PT,#1000H
LD REC_PTH,#01H
AD_END: POP WSR
POP DPTR1H
POP DPTR1
POP DPTR0H
POP DPTR0
POP TMPAX
RET
RST
RST
RST
;*********************** AD RESULT READ ***********************
; Name : RESULT_RD. *
; Func : read the result, write to SCADA and REC buffer. *
; Input : DPTR1,DPTR1H,REC_PT,REC_PTH. *
; Output: DPTR1,DPTR1H,REC_PT,REC_PTH. *
; Temp : TMPAX;DPTR0,DPTR0H. *
; Call : no. *
;****************************************************************
RESULT_RD:
NOP
AD_RD: ELD TMPAX,[DPTR0]+
EST TMPAX,[DPTR1]+
EST TMPAX,[REC_PT]+
CMP DPTR0,#LSW CSAD+0CH
JLT AD_RD
RET
RST
RST
RST
;-----------------------------------------------------------------
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -