微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 24位模数转换器AD7713及其应用

24位模数转换器AD7713及其应用

时间:06-14 来源:互联网 点击:

、图5所示,其中图4为读操作程序流程图,图5为写操作程序流程图,下面是按照各自流程图给出的8031单片机的相应操作码。

(1)读程序清单:

MOV SCON,#11H ;设置8031为串口方式0

MOV IE,#10H ;中断初始化

SETB 90H;SETB 91H ;使RFS=TFS=1

SETB 93H ;使A0=1

MOV R1,#03H ;设置循环计数器次数

MOV R0,#30H ;置数据缓冲区首地址

MOV R6,#04H ;用P1.2读DRDY状态

WAIT:MOV A,PI ;读P1口

ANL A,R6 ;判P1.2状态

JZ READ ;若P1.2为0则继续

SJMP WAIT ;若P1.2为1则等待

READ:CLR 90H ;使RFS=0

CLR 98H ;清除串口接收中断标志

POLL:JB 98H,READ1 ;判RI=1否

SJMP POLL ;RI=0继续等待

READ1:MOV A,SBUF ;RI=1则读数

RLC A ;数据位重排列

MOV B.0,C;

RLC A;MOV B.1,C;RLC A;MOV B.2,C;

RLC A;MOV B.3,C;RLC A;MOV B4,C;

RLC A;MOV B.5;RLC A;MOV B.6,C;

RLC A;MOV B.7,C;

MOV A,B:MOV @R0,A;数据暂存

INC R0;DEC R1 ;修正地址

MOV A,R1;JZ END ;R1=0则退出

JMP WAIT ;继续下一字节

END:SETB 90H ;使RFS=1

SJMP END;

写程序清单:

MOV SCON,#00H ;设置8031为串口方式0

MOV IE,#10H ;中断初始化

MOV IP,#10H ;串口中断优先级高

SETB 90H;SETB 91H ;使RFS=TFS=1

SETB 93H ;使A0=1

MOV R1,#03H ;设置循环计数器次数

MOV R0,#30H ;置数据缓冲区首地址

MOV A,#00H ;清累加器

MOV SBUF,A ;初始化串口

WAIT:NOP;

JMP WAIT ;等待串口中断

SINT:MOV A,R1;

JZ FIN ;若R1为0则退出

DEC R1 ;计数器R1减1

MOV A,@R0 ;读数据到A

INC R0 ; 地址加1

RLC A ;数据位重排列

MOV B.0,C ;高位在前

RLC A;MOV B.1,C;RLC A;MOV B.2,C;

RLC A;MOV B.3,C;RLC A;MOV B.4,C;

RLC A;MOV B.5,C;RLC A;MOV B.6,C;

RLC A;MOV B.7,C;

MOV A,B;

CLR 93H;CLR 91H ;使A0,TFS为低

MOV SBUF,A ;写串口数据

RETI ;中断退出

FIN;SETB 91H ;使TFS为高

SETB 93H ;使A0为高

RETI ;中断退出

5 注意事项

(1)模拟电源AVDD不得低于数字电源DVDD,至少DVDD不能超过AVDD幅度0.3V;

(2)AD7713的电源必须比系统的数字电源优先加载,否则可能出现自锁;

(3)给AD7713的控制寄存器写入控制字时,字长必须是24位,否则不能可靠加载;

(4)对AD7713进行读/写操作时,应注意串行数据流的顺序。

更多资讯请关注:21ic模拟频道

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top