📄 ads1100.asm
字号:
;ADS1100单端输入,损失一位数据,只能做15位
I2CRBUF EQU 18H
I2CWBUF EQU 18H
SCL BIT P1.1
SDA BIT P1.2
;====================================
START: SETB SDA
SETB SCL
NOP
NOP
CLR SDA
CLR SCL
RET
STOP: CLR SDA
SETB SCL
NOP
NOP
SETB SDA
; CLR SCL
RET
;====================================
I2CBYTEOUT: MOV R7,#08H
I2CW1: RLC A
MOV SDA,C
NOP
SETB SCL
NOP
CLR SCL
DJNZ R7,I2CW1
SETB SDA
SETB SCL
JB SDA,$
CLR SCL
RET
;R0中:总复位:00h,06h;运行:90h,9ch
ADW:
ACALL START
MOV R5,#02H
MOV R0,#I2CWBUF
ADW1: MOV A,@R0
ACALL I2CBYTEOUT
INC R0
DJNZ R5,ADW1
CLR SCL
ACALL STOP
RET
;====================================
I2CBYTEIN: MOV R7,#08H
I2CR1: SETB SDA
SETB SCL
NOP
MOV C,SDA
RLC A
CLR SCL
DJNZ R7,I2CR1
RET
;=================================
ADR: ACALL START
MOV A,#91H
ACALL I2CBYTEOUT
MOV R5,#03H
MOV R0,#I2CRBUF
ADR1: ACALL I2CBYTEIN
MOV @R0,A
INC R0
MOV A,R5
XRL A,#01H
JZ ADR2
CLR SDA
SETB SCL
NOP
CLR SCL
DJNZ R5,ADR1
ADR2: ACALL STOP
DEC R0
MOV A,@R0
JB ACC.7,ADR
RET
;=================================
AD1100WORK:
mov r0,#i2cwbuf
mov @r0,#00h
inc r0
mov @r0,#06h
acall adw
AD1100: mov r0,#i2cwbuf
mov @r0,#090h
inc r0
mov @r0,#09Ch
acall adw
acall adr
JMP AD1100
;====================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -