📄 7122.asm
字号:
;*******************************************************************
; Function name :delay100us
; Description :延时A*100us
; Input : a
; Output :
; Useram :SPI_DATA0 SPI_TEMP
; call moudle :
;*******************************************************************
delay100us:
mov SPI_TEMP,a
mov a,@60
delay100us0: wdtc
mov SPI_DATA0,a
delay100us1:
nop ;
nop
nop
nop ;4
djz SPI_DATA0 ;
jmp delay100us1
djz SPI_TEMP
jmp delay100us0
wdtc
ret
;--------------------------------------
;spi 字写入(16位)
;--------------------------------------
;*******************************************************************
; Function name : write_spi_register
; Description : SPI 字写入(16位)
; Input : SPI_ADDRES,SPI_DATA0 ,SPI_DATA1
; Output :
; Useram : count,SPI_TEMP
; call moudle :
;********************************************************************
write_spi_register:;word:
bc PORT_SPI,SPI_CS
bc PORT_SPI,SPI_CLK
bs PORT_SPI,SPI_RXD
mov a,SPI_ADDRES
mov SPI_TEMP,a
mov a,@0x08
mov count,a
write_spi_ADDRES:
bs PORT_SPI,SPI_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,SPI_CLK
djz count
jmp write_spi_ADDRES
mov a,SPI_DATA1
mov SPI_TEMP,a
mov a,@0x08
mov count,a
write_spi_byteh:
bs PORT_SPI,SPI_CLK
rlc SPI_TEMP
jbs status,c
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,SPI_CLK
djz count
jmp write_spi_byteh
mov a,SPI_DATA0
mov SPI_TEMP,a
mov a,@0x08
mov count,a
write_spi_bytel:
bs PORT_SPI,SPI_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,SPI_CLK
djz count
jmp write_spi_bytel
bs PORT_SPI,SPI_CS
bs PORT_SPI,SPI_RXD
ret
;--------------------------------------
;spi 字读出(16位)
;--------------------------------------
;*******************************************************************
; Function name : read_spi_word
; Description : SPI 字读出(16位)
; Input : SPI_ADDRES,
; Output : SPI_DATA0 ,SPI_DATA1
; Useram : count,SPI_TEMP
; call moudle : write_spi_byte,
;********************************************************************
read_spi_register:
bc PORT_SPI,SPI_CLK
bc PORT_SPI,SPI_CS
mov a,SPI_ADDRES
mov SPI_TEMP,a
mov a,@0x08
mov count,a
read_spi_word0:
bs PORT_SPI,SPI_CLK
rlc SPI_TEMP
; jbs status,c
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,SPI_CLK
djz count
jmp read_spi_word0
mov a,@0x08
mov count,a
read_spi_word1:
bs PORT_SPI,SPI_CLK
bs status,c
jbs PORT_SPI,SPI_TXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,SPI_CLK
djz count
jmp read_spi_word1
mov a,SPI_TEMP
mov SPI_DATA1,a
mov a,@0x08
mov count,a
read_spi_word2:
bs PORT_SPI,SPI_CLK
bs status,c
jbs PORT_SPI,SPI_TXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,SPI_CLK
djz count
jmp read_spi_word2
mov a,SPI_TEMP
mov SPI_DATA0,a
bs PORT_SPI,SPI_CS
bs PORT_SPI,SPI_RXD
ret
;*******************************************************************
; Function name : read_FIFO
; Description : FIFO 字节读出(8位)
; Input :
; Output : A
; Useram : count,SPI_TEMP
; call moudle :
;********************************************************************
read_FIFO:
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
bs status,c
jbs PORT_SPI,TRXD
bc status,c
rlc SPI_TEMP
bc PORT_SPI,FIFO_CLK
mov a,SPI_TEMP
ret
;*******************************************************************
; Function name : write_FIFO
; Description : FIFO 字节写入(8位)
; Input : A
; Output :
; Useram : count,SPI_TEMP
; call moudle :
;********************************************************************
write_FIFO:
mov SPI_TEMP,a
; mov a,@0x08
; mov count,a
write_FIFO1:
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
bs PORT_SPI,FIFO_CLK
rlc SPI_TEMP
bc PORT_SPI,SPI_RXD
jbc status,c
bs PORT_SPI,SPI_RXD
bc PORT_SPI,FIFO_CLK
ret
;*******************************************************************
; Function name : FIFOWr_En
; Description : 开启TX FIFO
; Input :
; Output :
; Useram :
; call moudle : write_spi_register
;********************************************************************
FIFOWr_En:
mov a,@W_FIFO_Control
mov SPI_ADDRES,a
mov a,@(FIFO_Constant_C0|0x04)
mov SPI_DATA0,a
mov a,@FIFO_Constant_C1
mov SPI_DATA1,a
call write_spi_register
ret
;*******************************************************************
; Function name : FIFOWr_Di
; Description : 关闭TX FIFO
; Input :
; Output :
; Useram : count,SPI_TEMP
; call moudle :write_spi_register
;********************************************************************
FIFOWr_Di:
mov a,@W_FIFO_Control
mov SPI_ADDRES,a
mov a,@(FIFO_Constant_C0&0xfb) ;!04
mov SPI_DATA0,a
mov a,@FIFO_Constant_C1
mov SPI_DATA1,a
call write_spi_register ;
ret
;*******************************************************************
; Function name : FIFORd_En
; Description : 开启 RX FIFO
; Input :
; Output :
; Useram :
; call moudle : write_spi_register
;********************************************************************
FIFORd_En:
mov a,@W_FIFO_Control
mov SPI_ADDRES,a
mov a,@FIFO_Constant_C1
mov SPI_DATA1,a
mov a,@(FIFO_Constant_C0|0x10) ;10
mov SPI_DATA0,a
call write_spi_register ;
ret
;*******************************************************************
; Function name : FIFORd_Di
; Description : 关闭RX FIFO
; Input :
; Output :
; Useram :
; call moudle : write_spi_register
;********************************************************************
FIFORd_Di:
mov a,@W_FIFO_Control
mov SPI_ADDRES,a
mov a,@FIFO_Constant_C1
mov SPI_DATA1,a
mov a,@(FIFO_Constant_C0&0x0ef) ;!10
mov SPI_DATA0,a
call write_spi_register ;
ret
;*******************************************************************
; Function name : SYNth_En
; Description :将MODE Register 中的SYN位置1,pin MS0=1时进入SYNthsizer mode
; Input :
; Output :
; Useram :
; call moudle : write_spi_register
;********************************************************************
SYNth_En:
mov a,@W_Mode_Control
mov SPI_ADDRES,a
mov a,@MODE_Constant_C1
mov SPI_DATA1,a
mov a,@(MODE_Constant_C0|0x04)
mov SPI_DATA0,a
call write_spi_register ;
mov a,@0x01
call delay100us ;4
ret
;*******************************************************************
; Function name : SYNth_Di
; Description :将MODE Register 中的SYN位清0,pin MS0=1时进入standby mode
; Input :
; Output :
; Useram :
; call moudle : write_spi_register
;********************************************************************
SYNth_Di:
mov a,@W_Mode_Control
mov SPI_ADDRES,a
mov a,@MODE_Constant_C1
mov SPI_DATA1,a
mov a,@(MODE_Constant_C0&0xfb)
mov SPI_DATA0,a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -