⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p08008-1.asm

📁 IPOD通讯控制程序,采用ETA的MCU,对IPOD进行控制
💻 ASM
📖 第 1 页 / 共 5 页
字号:
					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 + -