AD574A数据采集
0赞
发表于 7/3/2012 9:46:05 PM
阅读(1865)
uchar xdata ad_convert _at_ 0x6000; //开始转换
uchar xdata ad_read_hi _at_ 0x6002; //读取高字节
uchar xdata ad_read_lo _at_ 0x6003; //读取低字节
uint ad_1674 (void){union adc{uint adcc;uchar ad[2];};union adc add;
ad_convert=0xff;while(ad_status);add.ad[0]=ad_read_hi;add.ad[1] =ad_read_lo;add.adcc=add.adcc>>4;return add.adcc;}ORG 0000H
AJMP MAIN ;主程序
ORG 0013H
LJMP XAD ;中断1 A/D采样子程序
ORG 0030H;//初始化
MAIN: MOV SP,#60H ;设置堆栈
;SETB EA
clr ie1
SETB IT1
START: LCALL MNLCJ
AD1: PUSH DPH//初始化
PUSH
DPL
PUSH ACC
MOV DPTR,#0C000H;打开 0 通道
MOV A,#08H
MOVX @DPTR,A
MOV DPTR,#9000H ;启动A/D转换
MOVX @DPTR,A
SETB EX1
POP ACC
POP DPL
POP DPH
RET
XAD: PUSH DPH//中断
PUSH DPL
PUSH ACC
MOV DPTR,#9002H;读入高8位结果放入50H
MOVX A,@DPTR
MOV 50H,A
INC DPTR
MOVX A,@DPTR ;读入低4 位结果放入51H
MOV 51H,A
CLR EX1
POP ACC
POP DPL
POP DPH
RETI
MNLCJ: MOV R0,#40H//数据采集
LCALL AD1 ;第一端口模拟量采集
ajmp $
; MOV A,50H
; MOV @R0,A
;INC R0
;MOV A,51H
;MOV @R0,A
END
