嵌入式 > 技术百科 > 详情

AD574A参考程序

发布时间:2024-09-30 发布时间:
|

ad574a程序:

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



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
光纤通道的实时数字图像存储