?? chiplib.asm
字號:
NAME CHIP_LIB
TLV320_DCSI EQU 96H ;P1.6
TLV320_SCLK EQU 97H ;P1.7
AMBE_CHAN_TX_STRB EQU 85H ;P0.5
AMBE_CHAN_RX_STRB EQU 84H ;P0.4
AMBE_CLK EQU 80H ;P0.0
AMBE_CHAN_TX_DATA EQU 82H ;P0.2
AMBE_CHAN_RX_DATA EQU 81H ;P0.1
EXTRN DATA (AMBE2000BUF)
DELAY_NUM EQU 8
CLK_DELAY MACRO NUM
REPT NUM
NOP
ENDM
ENDM
?PR?CHIP_LIB SEGMENT CODE
PUBLIC _TLV320CONFIG
PUBLIC DELAY_FUN
PUBLIC AMBE2000_READ_DATA
PUBLIC AMBE2000_READ_WORD
PUBLIC AMBE2000_WRITE_DATA
PUBLIC _AMBE2000_WRITE_WORD
PUBLIC DELAY_100NM
RSEG ?PR?CHIP_LIB
USING 0
DELAY_FUN: CLK_DELAY DELAY_NUM
RET
DELAY_100NM: NOP
NOP
RET
; void tlv320config(unsigned short ConfigData)
_TLV320CONFIG: MOV A,R6
MOV R5,#8
MOV R4,#8
_TLV320CONFIG_WRITE_H: RLC A
JNB TLV320_SCLK,$
MOV TLV320_DCSI,C
JB TLV320_SCLK,$
DJNZ R5,_TLV320CONFIG_WRITE_H
MOV A,R7
_TLV320CONFIG_WRITE_L: RLC A
JNB TLV320_SCLK,$
MOV TLV320_DCSI,C
JB TLV320_SCLK,$
DJNZ R4,_TLV320CONFIG_WRITE_L
JNB TLV320_SCLK,$
SETB TLV320_DCSI
JB TLV320_SCLK,$
JNB TLV320_SCLK,$
JB TLV320_SCLK,$
JNB TLV320_SCLK,$
JB TLV320_SCLK,$
JNB TLV320_SCLK,$
JB TLV320_SCLK,$
JNB TLV320_SCLK,$
JB TLV320_SCLK,$
JNB TLV320_SCLK,$
JB TLV320_SCLK,$
RET
AMBE2000_READ_DATA: MOV R0,#AMBE2000BUF
MOV R2,#23
AMBE2000_READ_DATA1: LCALL AMBE2000_READ_WORD
CJNE R6,#13H,AMBE2000_READ_DATA1
CJNE R7,#0ECH,AMBE2000_READ_DATA1
MOV @R0,06H
INC R0
MOV @R0,07H
INC R0
AMBE2000_READ_DATA2: LCALL AMBE2000_READ_WORD
MOV @R0,06H
INC R0
MOV @R0,07H
INC R0
DJNZ R2,AMBE2000_READ_DATA2
RET
AMBE2000_READ_WORD: MOV R4,#08H
MOV R3,#07H
MOV R5,#0FFH
CLR AMBE_CLK
LCALL DELAY_FUN
SETB AMBE_CLK
LCALL DELAY_FUN
CLR AMBE_CLK
NOP
CLR AMBE_CHAN_TX_STRB
LCALL DELAY_FUN
AMBE2000_READ_WORD1: SETB AMBE_CLK
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
MOV C,AMBE_CHAN_TX_DATA
RLC A
DJNZ R4,AMBE2000_READ_WORD1
MOV R6,A
AMBE2000_READ_WORD2: SETB AMBE_CLK
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
MOV C,AMBE_CHAN_TX_DATA
RLC A
DJNZ R3,AMBE2000_READ_WORD2
SETB AMBE_CLK
NOP
SETB AMBE_CHAN_TX_STRB
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
MOV C,AMBE_CHAN_TX_DATA
RLC A
MOV R7,A
SETB AMBE_CLK
LCALL DELAY_FUN
AMBE2000_READ_WORD5: RET
AMBE2000_WRITE_DATA: MOV R0,#AMBE2000BUF
MOV R2,#24
AMBE2000_WRITE_DATA1: MOV 06H,@R0
INC R0
MOV 07H,@R0
INC R0
LCALL _AMBE2000_WRITE_WORD
DJNZ R2,AMBE2000_WRITE_DATA1
RET
_AMBE2000_WRITE_WORD: MOV R4,#08H
MOV R5,#07H
CLR AMBE_CLK
LCALL DELAY_FUN
SETB AMBE_CHAN_RX_STRB
NOP
SETB AMBE_CLK
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
SETB AMBE_CLK
LCALL DELAY_FUN
CLR AMBE_CLK
NOP
CLR AMBE_CHAN_RX_STRB
LCALL DELAY_FUN
MOV A,R6
_AMBE2000_WRITE_WORD1: SETB AMBE_CLK
RLC A
MOV AMBE_CHAN_RX_DATA,C
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
DJNZ R4,_AMBE2000_WRITE_WORD1
MOV A,R7
_AMBE2000_WRITE_WORD2: SETB AMBE_CLK
RLC A
MOV AMBE_CHAN_RX_DATA,C
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
DJNZ R5,_AMBE2000_WRITE_WORD2
SETB AMBE_CLK
NOP
SETB AMBE_CHAN_RX_STRB
RLC A
MOV AMBE_CHAN_RX_DATA,C
LCALL DELAY_FUN
CLR AMBE_CLK
LCALL DELAY_FUN
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -