- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
模数转换芯片AD7810的原理及应用
下面给出PIC16C6X/7X和8051分别与AD7810进行通讯的两段程序,作者只对与A/D转换有关的部分进行了编写(常用资源定义、芯片定义等均未列出),两段程序均可钭AD7810的工作控制在自动低功耗方式。8051与AD7810通讯程序如下:
START:CLR P1.0 ;初始化
SETB P1.0
CLR P1.2
LOOP:CALL CON0
... ;主程序省略
;
;A/D转换子程序,返回时数据低8位在R2中,高2位在R3中
CON0:MOV R1,#`10 ;10位数据
MOV R2,#0
SETB P1.2 ;唤醒启动AD7810
CLR P1.2
CON1:SETB P1.0 ;发送SCLK信号
MOV C,P1.1 ;读一位数据
CLR P1.0
MOV A,R2 ;数据移位
RLC A
MOV R2,A
MOV A,R3
RLC A
MOV R3,A
DJNZ R1,CON1
RET
PIC16C6X/7X与AD7810的通讯程序如下:
REG1 EQU 0X20 ;寄存器定义
REG2 EQU 0X21
CLRF PORTC ;端口初始化
BSF STATUS,RP0
MOVLW 0X30
MOVWF TRISC
BCF STATUS,PR0
BCF SSPCON,SSPEN
MOVLW 0X00 ;SPI初始化
MOVWF SSPCON
BSF SSPCON,SSPEN SPI开放
LOOP CALL ADCON
... ;主程序省略
;
;A/D转换子程序,返回时数据低8位在REFG1中,高2位在REG2中
ADCON BSF PORTC,0 ;唤醒启动AD7810
BCF PORTC,0
MOVWF SSPBUF ;启动接收高8位
BSF STATUS,RP0
CON1 BTFSS SSPSTAT,BF ;数据已接收?
GOTO CON1 ;没有收到
BCF STATUS,RP0
MOVF SSPBUF,W
MOVWF REG1 ;高8位送REG1
MOVWF SSPBUF ;启动接收低2位
BSF STATUS,PR0
CON1 BTFSS SSPSTAT,BF ;数据已接收?
GOTO CON1 ;没有收到
BCF STATUS,RP0
MOVF SSPBUF,W
ANDLW B11000000 ;保留有效位
MOVWF REG2 ;低2位送REG2
BCF STATUS,C ;进位位清零
RLCF REG2,1 ;数据调整
RLCF REG1,1
RLCF REG2,1
RLCF REG1,1 ;低8位
RLCF REG2,1 ;高2位
RETURN
来源:维库开发网
上一篇:一种GaN宽禁带功率放大器的设计
下一篇:倍压整流电路原理