📄 ad1240soft.txt
字号:
初始化ads1240
init1240:
mov.b #0feh,r4
call #AD_WR
call #sclkdelay
mov.b #51h,r4 ;写寄存器,从#00寄存器开始
call #AD_WR
mov.b #01h,r4 ;写2个寄存器,MUX和ACR
call #AD_WR
mov.b #23h,r4 ;MUX多路选择寄存器,正向通道选择Ain2,负向通道选
择Ain3
call #AD_WR
call #sclkdelay
mov.b #0c5h,r4 ;ACR模拟控制寄存器,单极模式(0-FFFFFF),调制
器时钟速率fOSC=fOSC/128
call #AD_WR ;缓冲关闭,位顺序为先MSB,参考电压为5v,满量程
电压范围为1/2Vref,数据速率为2*12.78Hz。
call #sclkdelay
; mov.b #0f2h,r4 ;自增益检验
; call #AD_WR
;w1: bit.b #drdy,&P2IN
; jc w1
mov.b #50h,r4 ;setup寄存器
call #AD_WR
mov.b #00h,r4
call #AD_WR
mov.b #06h,r4 ;64X增益
call #AD_WR
call #sclkdelay
; mov.b #0f1h,r4 ;自偏移校验
; call #AD_WR
;w2: bit.b #drdy,&P2IN
; jc w2
mov.b #53h,r4 ;ODAC设置偏移寄存器,最小值30000
call #AD_WR
mov.b #00h,r4
call #AD_WR
mov.b #86h,r4
call #AD_WR
call #sclkdelay
mov.b #55h,r4
call #AD_WR
mov.b #01h,r4
call #AD_WR
mov.b #02h,r4 ;DIR寄存器:AN0=output,AN1=input
call #AD_WR
call #sclkdelay
mov.b #03h,r4 ;IOCON寄存器:AN1,AN0作为IO使用。
call #AD_WR
call #sclkdelay
#ifdef adf
call #bisPTT
#endif
mov.b #03h,r4 ;开始连续采集
call #AD_WR
ret
sclkdelay:
push r7
mov.b #0fh,r7
loop1: dec.b r7
jnz loop1
pop r7
ret
;**************************************************************************
;-------------------------------------
;写ads1240一个字节
AD_WR:
mov #8,r7
AD_WR2:
clk_1: bis.b #sclk,&P2OUT ;sclk=1
bic.b #sdi,&P1OUT
rlc.b r4
jnc clk_0
out_1: bis.b #sdi,&P1OUT
clk_0: bic.b #sclk,&P2OUT ;sclk=0
dec r7
jnz AD_WR2
ret
;-------------------------------------
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;读ads1240一个字节
AD_RD:
mov.b #1,r4
AD_RD2: bis.b #sclk,&P2OUT ;sclk=0
nop
bic.b #sclk,&P2OUT ;sclk=1
bit.b #sdo,&P1IN
rlc.b r4
jnc AD_RD2
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -