📄 p08008-1.asm
字号:
NOP
;;;;;;;;;;
LDM TIME1_MARK,#0000B
;FUNCTION
CALL !R_KEY_SET
CALL !AI_SRS_F
CALL !ESD
;FUNCTION
TIME_1_3:
CMNE TIME1_MARK,#1111B
BR !TIME_1_3
NOP
;;;;;;;;;;
LDM TIME1_MARK,#0000B
;FUNCTION
CALL !R_KEY_SET
CALL !ESD
;FUNCTION
TIME_1_4:
CMNE TIME1_MARK,#1111B
BR !TIME_1_4
BR !TIME_1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;FIRST LAYER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AI_SRS_F:
CMNE SRSAI_ACTION,#0
BR !AI_SRS_F_1
CMNE KEY_STATUS,#1111B
BR !AI_SRS_FA
LRI IENR,#1001B
BR !AI_SRS_FB
AI_SRS_FA:
LRI IENR,#1000B
AI_SRS_FB:
RET
AI_SRS_F_1:
LRI IENR,#1000B ;如果有SRS数据要发送,就关闭IR接收
CMNE SRSAI_ACTION,#1
BR !AI_SRS_F_2
;;;;;;;;;;
CMNE SRSAI_FLOW,#0
BR !AI_SRS_F_1A
LDM SRSAI_FLOW,#1
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
LDM SRS_DATA5,#1110B
LDM SRS_DATA6,#0000B
LDM SRS_DATA11,#0011B ;左喇叭音量
LDM SRS_DATA12,#1111B
LDM SRS_DATA13,#0011B ;右喇叭音量
LDM SRS_DATA14,#1111B
LDM SRS_DATA25,#0011B ;重低音音量
LDM SRS_DATA26,#1111B
CALL !SRS_I2C_ALL
RET
AI_SRS_F_1A:
CLRC
ADDC SRSAI_C1,#1
LDM SRSAI_C1,A
ADDC SRSAI_C2,#0
LDM SRSAI_C2,A
TSTC
BR !AI_SRS_F_1B
RET
AI_SRS_F_1B:
CMNE SRSAI_FLOW,#1
BR !AI_SRS_F_1C
LDM SRSAI_FLOW,#2
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CLR1 SRS_DATA7.#3
CALL !SRS_I2C_ALL
RET
AI_SRS_F_1C:
CMNE SRSAI_FLOW,#2
BR !AI_SRS_F_1D
LDM SRSAI_FLOW,#4 ;跳过下面一个环节
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
LDM SRS_DATA5,#1110B
LDM SRS_DATA6,#0000B
CALL !SRS_I2C_ALL
RET
AI_SRS_F_1D:
CMNE SRSAI_FLOW,#3
BR !AI_SRS_F_1E
LDM SRSAI_FLOW,#4
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
LDM SRS_DATA5,#1110B
LDM SRS_DATA6,#0000B
CALL !SRS_I2C_ALL
RET
AI_SRS_F_1E:
CMNE SRSAI_FLOW,#4
BR !AI_SRS_F_1F
LDM SRSAI_FLOW,#5
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
CLR1 SRS_DATA5.#0
LDM SRS_DATA6,#0000B
CALL !LOAD_EQDATA
CALL !SRS_I2C_ALL
LDM VOL_DATA1,#1111B
LDM VOL_DATA3,#1000B
CALL !VOL1_I2C
RET
AI_SRS_F_1F:
CMNE SRSAI_FLOW,#5
BR !AI_SRS_F_1G
LDM SRSAI_FLOW,#6
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
LDA SPEAKER_VOL1
LDM SRS_DATA11,A
LDM SRS_DATA13,A
LDA SPEAKER_VOL2
LDM SRS_DATA12,A
LDM SRS_DATA14,A
LDA SUB_VOL1
LDM SRS_DATA25,A
LDA SUB_VOL2
LDM SRS_DATA26,A
CALL !LOAD_EQDATA
CALL !SRS_I2C_ALL
RET
AI_SRS_F_1G:
CMNE SRSAI_FLOW,#6
BR !AI_SRS_F_1H
LDM SRSAI_FLOW,#7
LDM SRSAI_C1,#0
LDM SRSAI_C2,#0
LDM VOL_DATA1,#1101B ;调整总音量
LDA VOL_DATA_H
LDM VOL_DATA2,A
LDM VOL_DATA3,#1110B
LDA VOL_DATA_L
LDM VOL_DATA4,A
CALL !VOL_I2C
RET
AI_SRS_F_1H:
CMNE SRSAI_FLOW,#7
BR !AI_SRS_F_1I
LDM SRSAI_FLOW,#8
LDM SRSAI_C1,#0
LDM SRSAI_C2,#0
RET
AI_SRS_F_1I:
CMNE SRSAI_FLOW,#8
BR !START
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
LRI CGMR,#0000B ;开启功放
LRI RCR,#0001B
;;;;;;;;;;
RET
AI_SRS_F_2:
CMNE SRSAI_ACTION,#2
BR !AI_SRS_F_3
;;;;;;;;;;
CMNE SRSAI_FLOW,#0
BR !AI_SRS_F_2A
LDM SRSAI_FLOW,#1
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
AI_SRS_F_2A:
CLRC
ADDC SRSAI_C1,#1
LDM SRSAI_C1,A
ADDC SRSAI_C2,#0
LDM SRSAI_C2,A
TSTC
BR !AI_SRS_F_2B
RET
AI_SRS_F_2B:
CMNE SRSAI_FLOW,#1
BR !AI_SRS_F_2C
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
CALL !SOUND_DOWN
RET
AI_SRS_F_2C:
CMNE SRSAI_FLOW,#2
BR !AI_SRS_F_2D
LDM SRSAI_FLOW,#3
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CLR1 SRS_DATA5.#0
LDM SRS_DATA6,#0000B
LDM SRS_DATA11,#0011B ;左喇叭音量
LDM SRS_DATA12,#1111B
LDM SRS_DATA13,#0011B ;右喇叭音量
LDM SRS_DATA14,#1111B
LDM SRS_DATA25,#0011B ;重低音音量
LDM SRS_DATA26,#1111B
CALL !SRS_I2C_ALL
RET
AI_SRS_F_2D:
CMNE SRSAI_FLOW,#3
BR !AI_SRS_F_2E
LDM SRSAI_FLOW,#4
LDM SRSAI_C1,#0
LDM SRSAI_C2,#8
LDM SRS_DATA5,#1110B
LDM SRS_DATA6,#0000B
CALL !SRS_I2C_ALL
LDM VOL_DATA1,#1111B
LDM VOL_DATA3,#1001B
CALL !VOL1_I2C
RET
AI_SRS_F_2E:
CMNE SRSAI_FLOW,#4
BR !AI_SRS_F_2F
LDM SRSAI_FLOW,#5
LDM SRSAI_C1,#0
LDM SRSAI_C2,#0
LRI CGMR,#0000B ;关闭功放
LRI RCR,#0000B
RET
AI_SRS_F_2F:
CMNE SRSAI_FLOW,#5
BR !AI_SRS_F_2G
LDM SRSAI_FLOW,#6
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CLR1 SRS_DATA7.#3
CALL !SRS_I2C_ALL
RET
AI_SRS_F_2G:
CMNE SRSAI_FLOW,#6
BR !AI_SRS_F_2H
LDM SRSAI_FLOW,#7
LDM SRSAI_C1,#0
LDM SRSAI_C2,#14
LDM SRS_DATA7,#0111B ;模式设置成POWERDOWN
CALL !SRS_I2C_ALL
RET
AI_SRS_F_2H:
CMNE SRSAI_FLOW,#7
BR !START
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
LDM SRS_DATA7,#1111B
CALL !SRS_I2C_ALL
;;;;;;;;;;
RET
AI_SRS_F_3:
CMNE SRSAI_ACTION,#3
BR !AI_SRS_F_4
;;;;;;;;;;
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
CALL !LOAD_EQDATA
CALL !SRS_I2C_ALL
;;;;;;;;;;
RET
AI_SRS_F_4:
CMNE SRSAI_ACTION,#4
BR !AI_SRS_F_5
;;;;;;;;;;
CMNE SRSAI_FLOW,#0
BR !AI_SRS_F_4A
LDM SRSAI_FLOW,#2 ;跳过音量减少
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
AI_SRS_F_4A:
CLRC
ADDC SRSAI_C1,#1
LDM SRSAI_C1,A
ADDC SRSAI_C2,#0
LDM SRSAI_C2,A
TSTC
BR !AI_SRS_F_4B
RET
AI_SRS_F_4B:
CMNE SRSAI_FLOW,#1
BR !AI_SRS_F_4C
LDM SRSAI_C1,#14
LDM SRSAI_C2,#15
CALL !SOUND_DOWN
RET
AI_SRS_F_4C:
CMNE SRSAI_FLOW,#2
BR !AI_SRS_F_4C1
LDM SRSAI_FLOW,#3 ;跳过下面2个环节直接去换模式数据
LDM SRSAI_C1,#8
LDM SRSAI_C2,#14
LRI CGMR,#0000B
LRI RCR,#0000B
RET
AI_SRS_F_4C1:
CMNE SRSAI_FLOW,#3
BR !AI_SRS_F_4D
LDM SRSAI_FLOW,#6
LDM SRSAI_C1,#0
LDM SRSAI_C2,#7
CALL !LOAD_DATA
CALL !SRS_I2C_ALL
RET
AI_SRS_F_4D:
CMNE SRSAI_FLOW,#4
BR !AI_SRS_F_4E
LDM SRSAI_FLOW,#5
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
RET
AI_SRS_F_4E:
CMNE SRSAI_FLOW,#5
BR !AI_SRS_F_4F
LDM SRSAI_FLOW,#6
LDM SRSAI_C1,#15
LDM SRSAI_C2,#15
CALL !LOAD_DATA ;把对应模式的参数放入寄存器SRS_DATA5/6/7/8/9/10/23/24
CALL !SRS_I2C_ALL
RET
AI_SRS_F_4F:
CMNE SRSAI_FLOW,#6
BR !AI_SRS_F_4F1
LDM SRSAI_FLOW,#9 ;结束模式转换
LDM SRSAI_C1,#0
LDM SRSAI_C2,#8
LRI CGMR,#0000B
LRI RCR,#0001B
RET
AI_SRS_F_4F1:
CMNE SRSAI_FLOW,#7
BR !AI_SRS_F_4G
LDM SRSAI_FLOW,#9
LDM SRSAI_C1,#14
LDM SRSAI_C2,#15
CALL !LOAD_DATA
CALL !SRS_I2C_ALL
RET
AI_SRS_F_4G:
CMNE SRSAI_FLOW,#8
BR !AI_SRS_F_4H
LDM SRSAI_C1,#0
LDM SRSAI_C2,#15
CALL !SOUND_UP
RET
AI_SRS_F_4H:
CMNE SRSAI_FLOW,#9
BR !START
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
;;;;;;;;;;
RET
AI_SRS_F_5:
CMNE SRSAI_ACTION,#5
BR !AI_SRS_F_6
;;;;;;;;;;
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
CALL !LOAD_DATA
LDA SPEAKER_VOL1
LDM SRS_DATA11,A
LDM SRS_DATA13,A
LDA SPEAKER_VOL2
LDM SRS_DATA12,A
LDM SRS_DATA14,A
LDA SUB_VOL1
LDM SRS_DATA25,A
LDA SUB_VOL2
LDM SRS_DATA26,A
CALL !LOAD_EQDATA
CALL !SRS_I2C_ALL
LDM VOL_DATA1,#1111B
LDM VOL_DATA3,#1000B
CALL !VOL1_I2C
;;;;;;;;;;
RET
AI_SRS_F_6:
CMNE SRSAI_ACTION,#6
BR !AI_SRS_F_7
;;;;;;;;;;
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
LDM SRS_DATA11,#0011B ;左喇叭音量
LDM SRS_DATA12,#1111B
LDM SRS_DATA13,#0011B ;右喇叭音量
LDM SRS_DATA14,#1111B
LDM SRS_DATA25,#0011B ;重低音音量
LDM SRS_DATA26,#1111B
CALL !SRS_I2C_ALL
LDM VOL_DATA1,#1111B
LDM VOL_DATA3,#1001B
CALL !VOL1_I2C
;;;;;;;;;;
RET
AI_SRS_F_7:
CMNE SRSAI_ACTION,#7
BR !AI_SRS_F_8
;;;;;;;;;;
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
CALL !LOAD_DATA
LDA SPEAKER_VOL1
LDM SRS_DATA11,A
LDM SRS_DATA13,A
LDA SPEAKER_VOL2
LDM SRS_DATA12,A
LDM SRS_DATA14,A
LDA SUB_VOL1
LDM SRS_DATA25,A
LDA SUB_VOL2
LDM SRS_DATA26,A
CALL !LOAD_EQDATA
CALL !SRS_I2C_ALL
;;;;;;;;;;
RET
AI_SRS_F_8:
CMNE SRSAI_ACTION,#8
BR !START
;;;;;;;;;;
LDM SRSAI_ACTION,#0
LDM SRSAI_FLOW,#0
LDM VOL_DATA1,#1101B ;调整总音量
LDA VOL_DATA_H
LDM VOL_DATA2,A
LDM VOL_DATA3,#1110B
LDA VOL_DATA_L
LDM VOL_DATA4,A
CALL !VOL_I2C
;;;;;;;;;;
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY_SCAN:
CMNE R_KEY_STATUS1,#0 ;没有遥控时候才响应按键功能
BR !KEY_SCANX
CMNE R_KEY_STATUS2,#0
BR !KEY_SCANX
BR !KEY_SCANXX
KEY_SCANX:
LDM KEY_STATUS,#1111B
LDM KEY_COUNT1,#0
RET
KEY_SCANXX:
;;;;;;;;;;
LAR PGDR ;读取IO口状态
LDM VARIABLE2,A
XOR KEY_STATUS ;和原来IO口的值比较
LDM VARIABLE1,A ;存起发生改变的输入口
CANE #0
BR !KEY_SCAN_1 ;如果不同就进行去抖处理,相同就没有任何事情发生
LDM KEY_COUNT1,#0
;判断是否有连续按键按下
TM !KEY_STATUS.#3
BR !KEY_SCANXX_1
BR !KEY_SCAN_7
KEY_SCANXX_1:
TM !KEY_STATUS.#2
BR !KEY_SCANXX_2
BR !KEY_SCAN_7
KEY_SCANXX_2:
;判断是否有连续按键按下
KEY_SCAN_OUT:
RET
KEY_SCAN_1:
CLRC
ADDC KEY_COUNT1,#1 ;去抖处理寄存器加1
LDM KEY_COUNT1,A
TSTC
BR !KEY_SCAN_2
RET
KEY_SCAN_2:
LDM KEY_COUNT1,#0
LDA VARIABLE2 ;去抖结束后把输入按键最新值放入状态寄存器保存
XMA KEY_STATUS
CMNE SRSAI_ACTION,#0 ;AI功能必须动作过后才能重新响应开关按键功能
BR !KEY_SCAN_OUT
TM VARIABLE1.#0 ;判断那个口的按键状态有改变
BR !KEY_SCAN_3
TM VARIABLE1.#1
BR !KEY_SCAN_4
TM VARIABLE1.#2
BR !KEY_SCAN_5
TM VARIABLE1.#3
BR !KEY_SCAN_6
BR !START
KEY_SCAN_3:
TM KEY_STATUS.#0 ;判断该按键是否由高电平变低,是就响应按键,否就没有动作
BR !KEY_SCAN_OUT
;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -