cs5550.asm
来自「CS5532及cs5550的测试程序,包含器件校准,配置等」· 汇编 代码 · 共 645 行 · 第 1/2 页
ASM
645 行
;-----------------------------------------------------------------
; 测试CS5550
;-----------------------------------------------------------------
;端口定义:
cs bit p1.5
sdi bit p1.0
sdo bit p1.1
sck bit p1.2
byte_1 equ 10h
byte_2 equ 11h
byte_3 equ 12h
org 0000h
ajmp main
;org 0003h
;ajmp int_0
org 0050h
main: mov sp , #70h
nop
nop
acall dly_50ms
nop
clr cs
nop
acall rst5550
mov a , #80h
acall wr_byte
;----------------------------------------------------------------
; 修改5550的初始值
;----------------------------------------------------------------
init5550:nop
clr cs
setb sck
mov a , #4ah ; 通道1计数值
acall wr_byte
mov a , #00h
acall wr_byte
mov a , #00h
acall wr_byte
mov a , #20
acall wr_byte
clr sck
setb cs
nop
clr cs
clr sck
mov a , #0ah
acall wr_data
acall rd_byte
mov byte_1 , a
acall rd_byte
mov byte_2 , a
acall rd_byte
mov byte_3 , a
setb sck
setb cs
nop
nop
clr cs
setb sck
mov a , #40h ; 通道1配置值,增益50倍,分频系数为1,低电平方式
acall wr_byte
mov a , #01h
acall wr_byte
mov a , #00h
acall wr_byte
mov a , #01h ;K=1 AIN1高通滤波器未打开
acall wr_byte
clr sck
setb cs
nop
;ajmp s_gain
clr cs
clr sck
mov a , #00h
acall wr_data
acall rd_byte
mov byte_1 , a
acall rd_byte
mov byte_2 , a
acall rd_byte
mov byte_3 , a
setb sck
setb cs
nop
clr cs
setb sck
mov a , #42h ; 通道1偏移值
acall wr_byte
mov a , #0feh
acall wr_byte
mov a , #79h
acall wr_byte
mov a , #0c0h
acall wr_byte
clr sck
setb cs
nop
clr cs
clr sck
mov a , #02h
acall wr_data
acall rd_byte
mov byte_1 , a
acall rd_byte
mov byte_2 , a
acall rd_byte
mov byte_3 , a
setb sck
setb cs
nop
clr cs
setb sck
mov a , #44h ; 通道1增益值
acall wr_byte
mov a , #41h
acall wr_byte
mov a , #35h
acall wr_byte
mov a , #1eh
acall wr_byte
clr sck
setb cs
nop
clr cs
clr sck
mov a , #04h
acall wr_data
acall rd_byte
mov byte_1 , a
acall rd_byte
mov byte_2 , a
acall rd_byte
mov byte_3 , a
setb sck
setb cs
nop
nop
clr cs
setb sck
mov a , #5eh ; 清除DRDY位
acall wr_byte
mov a , #0ffh
acall wr_byte
mov a , #0ffh
acall wr_byte
mov a , #0ffh
acall wr_byte
clr sck
setb cs
nop
clr cs
mov a , #0e8h ; 发连续转换命令 e8h
acall wr_byte
setb cs
continue:mov r1 , #60h
mov r0 , #40h
mov r6 , #16
continue1:nop
acall rd_data
;mov a , byte_1
;mov @r0 , a
;inc r0
mov a , byte_2
mov @r0 , a
inc r0
;mov a , byte_3
;mov @r0 , a
;inc r0
djnz r6 , continue1
nop
mov r0 , #40h
mov r6 , #16
mov 18h , #0
mov 19h , #0
zzz1:mov a , @r0
mov r5 , a
mov a , 18h
add a , r5
mov 18h , a
mov a , 19h
addc a , #0
mov 19h , a
inc r0
djnz r6 , zzz1
nop
mov r6 , #4
div_d1:mov a , 19h
rrc a
mov 19h , a
mov a , 18h
rrc a
mov 18h , a
djnz r6 , div_d1
mov a , 18h
mov @r1 , a
inc r1
mov r0 , #50h
mov r6 , #16
continue2:nop
acall rd_data
mov a , byte_2
mov @r0 , a
inc r0
djnz r6 , continue2
nop
mov r0 , #50h
mov r6 , #16
mov 18h , #0
mov 19h , #0
zzz2:mov a , @r0
mov r5 , a
mov a , 18h
add a , r5
mov 18h , a
mov a , 19h
addc a , #0
mov 19h , a
inc r0
djnz r6 , zzz2
nop
mov r6 , #4
div_d2:mov a , 19h
rrc a
mov 19h , a
mov a , 18h
rrc a
mov 18h , a
djnz r6 , div_d2
mov a , 18h
mov @r1 , a
inc r1
ajmp main
mov r0 , #50h
mov r6 , #8
continue3:nop
acall rd_data
mov a , byte_2
mov @r0 , a
inc r0
djnz r6 , continue3
nop
mov r0 , #50h
mov r6 , #8
mov 18h , #0
mov 19h , #0
zzz3:mov a , @r0
mov r5 , a
mov a , 18h
add a , r5
mov 18h , a
mov a , 19h
addc a , #0
mov 19h , a
inc r0
djnz r6 , zzz3
nop
mov r6 , #3
div_d3:mov a , 19h
rrc a
mov 19h , a
mov a , 18h
rrc a
mov 18h , a
djnz r6 , div_d3
mov a , 18h
mov @r1 , a
inc r1
mov r0 , #58h
mov r6 , #8
continue4:nop
acall rd_data
mov a , byte_2
mov @r0 , a
inc r0
djnz r6 , continue4
nop
mov r0 , #58h
mov r6 , #8
mov 18h , #0
mov 19h , #0
zzz4:mov a , @r0
mov r5 , a
mov a , 18h
add a , r5
mov 18h , a
mov a , 19h
addc a , #0
mov 19h , a
inc r0
djnz r6 , zzz4
nop
mov r6 , #3
div_d4:mov a , 19h
rrc a
mov 19h , a
mov a , 18h
rrc a
mov 18h , a
djnz r6 , div_d4
mov a , 18h
mov @r1 , a
inc r1
nop
ajmp continue
;----------------------------------------------------------------
; 中断方式下设置
;----------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?