📄 spi接口ad转换器代码.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;SPI接口AD转换器代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CS EQU p1.2
CLK EQU p1.3
DIN EQU p1.0
DOUT EQU P1.1
;BUSY EQU P
MAIN:
MOV SP,#0A0H
SETB CS
CLR CLK
NOP
MOV 22H,#00000000B
MOV 23H,#10001100B
ACALL CONVERSION
ACALL CLEAR
MOV R0,#24H
MOV R1,#36H
LOOP1:
ACALL CONVERSION
MOV @R0,20H
INC R0
MOV @R0,21H
INC R0
DJNZ R1,LOOP1
AJMP MAIN
CLEAR:
MOV R0,#24H
MOV R1,#06CH
LOOP_C:
CLR A
MOV @R0,A
INC R0
DJNZ R1,LOOP_C
RET
;*********************************************
;DOUT: 21H,20H(MSB---LSB)
;DIN: 23H,22H(MSB---LSB)
;*********************************************
CONVERSION:
CLR CS
NOP
MOV C,1FH ;15(MSB)
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0FH,C
CLR CLK
MOV C,1EH ;14
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0EH,C
CLR CLK
MOV C,1DH ;13
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0DH,C
CLR CLK
MOV C,1CH ;12
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0CH,C
CLR CLK
MOV C,1BH ;11
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0BH,C
CLR CLK
MOV C,1AH ;10
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 0AH,C
CLR CLK
MOV C,19H ;9
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 09H,C
CLR CLK
MOV C,18H ;8
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 08H,C
CLR CLK
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,17H ;7
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 07H,C
CLR CLK
MOV C,16H ;6
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 06H,C
CLR CLK
MOV C,15H ;5
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 05H,C
CLR CLK
MOV C,14H ;4
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 04H,C
CLR CLK
MOV C,13H ;3
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 03H,C
CLR CLK
MOV C,12H ;2
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 02H,C
CLR CLK
MOV C,11H ;1
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 01H,C
CLR CLK
MOV C,10H ;0(LSB)
MOV DIN,C
SETB CLK
NOP
MOV C,DOUT
MOV 00H,C
CLR CLK
SETB CS
NOP
ACALL DELAY1
;JNB BUSY,$
RET
DELAY1:
MOV R7 ,#01H ;0AH*0.1S=1S
LOOP_A_A:
MOV R6 ,#064H
LOOP_B_A:
MOV R5 ,#0FAH
DJNZ R5 ,$ ;延时1ms
DJNZ R6 ,LOOP_B_A ;延时(R6)*1ms
DJNZ R7 ,LOOP_A_A
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -