AD574A是一种单片高速12位逐次比较型A/D转换器,这里介绍ad574a中文资料,他内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下: 分辨率:12位 非线性误差:小于±1/2LBS或±1LBS 转换速率:25us 模拟电压输入范围:0—10V和0—20V,0—±5V和0—±10V两档四种 电源电压:±15V和5V 数据输出格式:12位/8位 芯片工作模式:全速工作模式和单一工作模式。
| [17]. Pin28(STS)——工作状态指示信号端,STS=1时,表示转换器正处于转换状态,当STS=0时,声明A/D转换结束,通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。 |
sbit ad_status = P3^3;
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采样子程序
;*********************************************
;* 初始化 ad574a程序 *
;*********************************************
ORG 0030H
MAIN: MOV SP,#60H ;设置堆栈
;SETB EA
clr ie1
SETB IT1
START: LCALL MNLCJ
;*****************************************
;* A/D采样子程序 初始化 *
;*****************************************
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
;*****************************
;* A/D 574的中断子程序 *
;*****************************
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
NOP
NOP
LJMP main