📄 3314.asm
字号:
;***********************************************************
.IF 0
PT2314_NOMUTE PROC
.ENDIF
PT2314_NOMUTE:
ld ACC_SEN_VAL,#0C0H
call PT2314_SEND
ld ACC_SEN_VAL,#0E0H
call PT2314_SEND
ret
.IF 0
PT2314_MUTE PROC
.ENDIF
PT2314_MUTE:
ld ACC_SEN_VAL,#0FFH
call PT2314_SEND
ld ACC_SEN_VAL,#0DFH
call PT2314_SEND
ret
;**********************************************************************
; PT2313_IC2_START
;**********************************************************************
.IF 0
PT2314_IC2_START proc
.ENDIF
PT2314_IC2_START:
PT2314_DATA_OUT_MODE
SET_PT2314_DATA
call DELAY_TIME
SET_PT2314_CLK
call DELAY_TIME
CLR_PT2314_DATA
call DELAY_TIME ; /* 起始条件锁定时间大于4μs*/
CLR_PT2314_CLK
call DELAY_TIME
ret
;*************************************************************************
;*************************************************************************
;
; PT2313_IC2_END
;
.IF 0
PT2314_IC2_END proc
.ENDIF
;*************************************************************************
PT2314_IC2_END:
CLR_PT2314_CLK
CLR_PT2314_DATA
call DELAY_TIME;
SET_PT2314_CLK
call DELAY_TIME; /*结束条件建立时间大于4μs*/
SET_PT2314_DATA
call DELAY_TIME;
ret
;*************************************************************************
;*************************************************************************
;
; VAL_PT2313_SEND_DATA FORM ACC
;
.IF 0
PT2314_IC2_SEND_8 proc
.ENDIF
;*************************************************************************
PT2314_IC2_SEND_8:
push R0
push R1
ld R1,#08H
s_nextb:
CLR_PT2314_DATA
tm ACC_SEN_VAL,#80H
jr Z,no_set_data
SET_PT2314_DATA
no_set_data:
rl ACC_SEN_VAL
SET_PT2314_CLK
call DELAY_TIME
CLR_PT2314_CLK
call DELAY_TIME
dec R1
cp R1,#00H
jr NE,s_nextb
call DELAY_TIME
PT2314_DATA_IN_MODE
call DELAY_TIME
SET_PT2314_CLK
call DELAY_TIME
test_ack:
PT2314_DATA_IS_HIGH
jr Z,ack_error_ret
CLR_PT2314_CLK
PT2314_DATA_OUT_MODE
call DELAY_TIME
ld ACC_RET_VAL,#01H
jp send_8_ret
ack_error_ret:
CLR_PT2314_CLK
call DELAY_TIME
PT2314_DATA_OUT_MODE
call DELAY_TIME
clr ACC_RET_VAL
send_8_ret:
pop R1
pop R0
ret
;*************************************************************************
;*************************************************************************
; MAIN:PT2313_SEND
;
; pt2313_send_data from acc
;
.IF 0
PT2314_SEND PROC
.ENDIF
;*************************************************************************
PT2314_SEND:
;----------send addr------------
push ACC_SEN_VAL
call PT2314_IC2_START
ld ACC_SEN_VAL,#88H
call PT2314_IC2_SEND_8
cp ACC_RET_VAL,#0h
jp Z,send_error
;----------send val-------------
pop ACC_SEN_VAL
call PT2314_IC2_SEND_8
cp ACC_RET_VAL,#00H
jp Z,send_error1
call PT2314_IC2_END
ret
send_error:
pop ACC_SEN_VAL
send_error1:
call PT2314_IC2_END
ret ;fail
.IF 0
PT2314_SEND ENDP
.ENDIF
;*************************************************************************
;**********************************************************************
.IF 0
DELAY_TIME PROC
.ENDIF
DELAY_TIME:
NOP
NOP
nop
nop
nop
nop
ret
;**********************************************************************
;**********************************************************************
.IF 0
SEND_EQ_VAL PROC
.ENDIF
SEND_EQ_VAL:
push R2
push R3
push R0
clr R2
ld R3,EQ_VAL
add R3,EQ_VAL
ldc R0,#Eq_Val[RR2]
ld ACC_SEN_VAL,R0
call PT2314_SEND
inc R3
ldc R0,#Eq_Val[RR2]
ld ACC_SEN_VAL,R0
call PT2314_SEND
call LIGHT_EQ_LED
pop R0
pop R3
pop R2
EQ_RET:
ret
;**********************************************************************
Eq_Val: ;EQ VAL PT2314
DB 67H
DB 77H
DB 6BH
DB 7DH
DB 6CH
DB 7EH
DB 6AH
DB 7BH
; eq function
;*************************************************************
.IF 0
EQ_key_par proc
.ENDIF
EQ_key_par:
EQ_JAZZ:
POWER_IS_LOW
jp Z,eq_ret
KEY_VALID_IS_LOW
jp Z,eq_ret
cp Current_Key,#IR_JAZZ_KEY
jp NE,EQ_FLAT
ld EQ_VAL,#1H
jp EQ_FUNCTION
EQ_FLAT:
cp Current_Key,#IR_FLAT_KEY
jp NE,EQ_CLASSIC
ld EQ_VAL,#0H
jp EQ_FUNCTION
EQ_CLASSIC:
cp Current_Key,#IR_CLASSIC_KEY
jp NE,EQ_ROCK
ld EQ_VAL,#02H
jp EQ_FUNCTION
EQ_ROCK:
cp Current_Key,#IR_ROCK_KEY
jp NE,EQ_SINGNED
ld EQ_VAL,#03H
jp EQ_FUNCTION
EQ_SINGNED:
cp Current_Key,#IR_CHANGE_EQ_KEY
jp NE,EQ_RET
inc EQ_VAL
cp EQ_VAL,#04H
jp ULT,EQ_FUNCTION
clr EQ_VAL
EQ_FUNCTION:
CLR_KEY_VALID
call SEND_EQ_VAL
eq_ret:
RET
;------------------------------------------------------
;------------------------------------------------------
.IF 0
LIGHT_EQ_LED PROC
.ENDIF
LIGHT_EQ_LED:
CLR_FLAT
CLR_POP
CLR_ROCK
CLR_JAZZ
cp EQ_VAL,#00H
jp NE,VFD_PANEL_JAZZ
SET_FLAT
RET
VFD_PANEL_JAZZ:
cp EQ_VAL,#01H
jp NE,VFD_PANEL_CLASSIC
SET_JAZZ
RET
VFD_PANEL_CLASSIC:
cp EQ_VAL,#02H
jp NE,VFD_PANEL_ROCK
SET_POP
RET
VFD_PANEL_ROCK:
SET_ROCK
RET
;------------------------------------------------------
;*************************************************************************
; MAIN:PT2258_SEND
; pt2258send_data from PT2258_VOL
.IF 0
Pt2258_Send PROC
.ENDIF
;*************************************************************************
Pt2258_Send:
ld ACC_SEN_VAL,PT2258_VOL
call PT2314_SEND
RET ;fail
;**********************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -